Skip to content

C · Temperature-change burst protocol (tactic)#65

Closed
pskeshu wants to merge 9 commits into
feature/manual-mode-live-viewfrom
feature/temp-change-tactic
Closed

C · Temperature-change burst protocol (tactic)#65
pskeshu wants to merge 9 commits into
feature/manual-mode-live-viewfrom
feature/temp-change-tactic

Conversation

@pskeshu

@pskeshu pskeshu commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator

Sub-project C. The automated temperature-strain protocol.

  • wait_for_temperature_lock + the before/during/after burst driver, burst-acquisition wiring, protocol events + agent tool.
  • Per-task + whole-branch reviewed + fixes.

Stack:feature/manual-mode-live-view (B1).

pskeshu added 9 commits June 28, 2026 14:26
Add three EventType members (TEMPERATURE_SETPOINT_CHANGED, TEMP_PROTOCOL_STARTED,
TEMP_PROTOCOL_COMPLETED) to event_bus.py and map them to timeline subtypes in
timeline.py for persistence to timeline.jsonl. Includes unit tests.
Adds temperature_protocol_tools.py with the @tool-decorated
run_temp_change_burst_protocol_tool: resolves agent/orchestrator/client
from context, guards all three (returns error strings if absent), then
launches the driver via asyncio.create_task so the thermal ramp runs in
the background and the agent turn returns immediately. Registered in
tools/__init__.py. TDD: 5 tests covering happy path (task created +
started message), no-client, no-orchestrator, no-agent, and registry
discoverability.
…gy snapshot

Initialize temp_protocol (None) and setpoint_changes ([]) on every embryo
dict in _build_embryos_static. In _replay_timeline, handle the three new
subtypes from Task 1: temp_protocol_started opens a band (start + params),
temp_protocol_completed closes it (end), setpoint_changed appends {t, to}
to the list. Bursts continue to render as burst phases unchanged.
…apse, harden driver test

- event_bus.py: fix TEMPERATURE_SETPOINT_CHANGED/TEMP_PROTOCOL_STARTED/TEMP_PROTOCOL_COMPLETED
  inline comments to match actual emitted payloads ({embryo_id,to} / {embryo_id,target_setpoint_c,
  frames,bursts_before,bursts_after} / {embryo_id,locked,cancelled,error})
- temperature_protocol_tools.py: refuse to launch if orchestrator._status == TimelapseStatus.RUNNING
  (would contend with timelapse RunEngine); returns clear refusal string, no task created
- test_temp_protocol_driver.py: assert burst phase sequence (first=="before", last=="after") and
  event order (STARTED < SETPOINT_CHANGED < COMPLETED)
- test_temp_protocol_tool.py: add test_tool_refuses_during_active_timelapse for the guard
@pskeshu

pskeshu commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator Author

Superseded by #72 — the temperature + Operations/tactics suite and the new Operate (bottom-cam→SPIM) surface are consolidated onto feature/temperature-operations-all (now targeting development). This increment's work is included there; its feature branch was deleted. Closing to keep a single main PR.

@pskeshu pskeshu closed this Jul 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant