Skip to content

Imaging boundary: the 2P imaging work moves to the private rig repo; gateway keeps the 2P topics (LAB-303, LAB-319) - #284

Merged
2 commits merged into
mainfrom
claude/move-imaging-to-rig-repo
Oct 29, 2026
Merged

2 commits merged into
mainfrom
claude/move-imaging-to-rig-repo

Conversation

@hanmarsan

Copy link
Copy Markdown
Contributor

Summary

This PR sets the imaging boundary: everything specific to the 2P imaging experiments moves to the private rig repository, reiserlab/scanimage-2026-bergamo, under 2p-rig-nodes/. That directory is a pixi workspace in the rig-nodes layout (package twop_rig_nodes), built on the public rig_nodes package. Michael decided this on 2026-10-28 (LAB-303, LAB-319).

The PR has two commits: the removal, and the gateway half of #261 / #266, which stays public.

1. Removal (32264be)

  • Deleted. Each file now lives in the private repo; 2p-rig-nodes/PROVENANCE.md there gives each file's source commit:
    • tiff2mcap (rig: tiff2mcap --runlog drives the timeline and the clock (LAB-303) #273): rig/tools/tiff_run_to_mcap.py, check_tiff2mcap.py, rig/tests/test_tiff2mcap_runlog.py, and the three tasks
    • tools/led_sweep_si.py, tools/led_sweep_quicklook.py
    • the records: rig/SCANIMAGE-DAY.md, rig/scanimage-day-2026-10-16.md, docs/development/2p-scanimage-signal-logging.md, the superseded 2p-line-sync-rig-checklist.md
  • The ScanImage node leaves the arena composition: rig.py loses --scanimage, --si-mock and --scanimage-args, and the scanimage-node, scanimage-cmd, si-mock tasks go. The harness no longer starts the ScanImage stand-in and node, and drops its 5 ScanImage checks; rig/WINDOWS-TEST.md has the new totals.
  • Kept: rig/tools/patfile.py. It is arena code, bound for pyDisplayTools per §3.3; the private repo has a copy.
  • Docs:
    • rig-software-repos-and-runners.md gets a dated §3.3 amendment recording the decision and the boundary.
    • The orientation skill's rig-nodes row and CLAUDE.md's rig line are updated.
    • Comments in the Bergamo rig profile and three 2P protocols point to the moved notes.
    • tests/test-flasher-catalog.js loses its exception for the moved checklist.

2. Gateway half of #261 / #266 (e25914e), ported from #266's head a4442ad (which includes #261):

What stays public (the boundary):

  • the connector mechanism: dispatch, CONNECTOR_TOPICS (including scanimage), mcap_convert's connector derivation, the /<src>/cmd|reply|status contract, ConnectorReply
  • the Studio's ScanImagePlugin, and the emulator's --scanimage-cmds option
  • for now: the 2P protocols (g6_2p_*, g6_2x10_2p_*) and configs/rigs/bergamo_g6_2x10_2p.yaml

History: the moved files were copied, not rewritten in history, so earlier versions stay readable here. #261 and #266 get closed with a pointer after the release.

Provenance: commits in the private repo, main:

  • e3e9ba8: 2p-rig-nodes/ with the ScanImage, frames and SiPM nodes, the records and PROVENANCE
  • d235f9e: tiff2mcap and the LED-sweep tools
  • 8ceddf6: SETUP.md, the Bergamo rows from rig-nodes
  • dea41ed: re-pinned to rig_nodes 0.3.0
  • 694348b: the patfile.py note

Off-rig on the Bergamo PC, the private tests pass: test-sipm 25/25, test-frames 39/39, test-scanimage 11/11, test-tiff2mcap.

Tier

next candidate (2026-10-28 rc2). It merges after #281, #269 and #282. It is based on main 8d5b952, not rebased onto the candidate. Expect conflicts in rig/nodes/rig.py and rig/pixi.toml, resolved in the candidate build. rig/pixi.lock is byte-identical to main; #281 carries the re-lock.

Release notes

none (rig-side only)

Test plan

Run on the Bergamo PC (Windows 11, pixi 0.82), on rig_nodes 0.2.1 as main pins it.

  • pixi run test (root): 72/72 files
  • cd rig && pixi run test: 54/54 (main: 59, minus the 5 ScanImage checks)
  • cd rig && pixi run -e typed test: 57/57 (main: 62)
  • cd rig && pixi run test-gateway: 5/5; on the gateway commit alone, the harness is 59/59, the same as main
  • the two commits merge cleanly
  • Note: pixi 0.82 rejects main's rig/pixi.lock with --locked (rig/pixi.lock: re-lock with pixi >= 0.80 and pin requires-pixi (plain install on a rig rewrites the lock) #280). For these runs the environments were installed unlocked, and the lock was then restored.

🤖 Generated with Claude Code

hanmarsan and others added 2 commits October 28, 2026 18:30
…on record §3.3 amendment)

Michael's decision, 2026-10-28: everything specific to the 2P imaging experiments
lives in reiserlab/scanimage-2026-bergamo `2p-rig-nodes/` (a pixi workspace in the
rig-nodes layout on the public rig_nodes package; PROVENANCE.md there lists the
source commit of every file). Copied with provenance, not rewritten in history.

Removed here:
- tiff2mcap (#273): rig/tools/tiff_run_to_mcap.py, check_tiff2mcap.py,
  rig/tests/test_tiff2mcap_runlog.py and the tiff2mcap / test-tiff2mcap /
  check-tiff2mcap tasks (patfile.py stays: arena code bound for pyDisplayTools)
- tools/led_sweep_si.py, tools/led_sweep_quicklook.py
- records: rig/SCANIMAGE-DAY.md, rig/scanimage-day-2026-10-16.md,
  docs/development/2p-scanimage-signal-logging.md, 2p-line-sync-rig-checklist.md
- the arena composition's ScanImage node: rig.py --scanimage / --si-mock /
  --scanimage-args, the scanimage-node / scanimage-cmd / si-mock tasks, and the
  harness's ScanImage stand-in + its 5 checks (rig-nodes 0.4.0 drops the node,
  rig-nodes #4; re-pinning rig/ to 0.4.0 must not precede this change)

Kept public (the boundary): the gateway's connector dispatch and its scanimage
CONNECTOR_TOPICS entry, mcap_convert's connector derivation, the Studio's
ScanImagePlugin and the emulator's --scanimage-cmds path; the 2P protocols and
the Bergamo arena rig profile stay for now (comments repointed).

Also: the dated §3.3 amendment in rig-software-repos-and-runners.md, the
orientation skill's rig-nodes row, CLAUDE.md's rig line, and
tests/test-flasher-catalog.js (its exception for the moved checklist), the expected
harness counts in rig/WINDOWS-TEST.md.

Tests on the Bergamo PC: root `pixi run test` 72/72 files; rig/ harness
`pixi run test` 54/54 and `-e typed` 57/57 (main: 59 / 62, minus the 5 ScanImage
checks; rig/WINDOWS-TEST.md updated), run on
rig_nodes 0.2.1 with rig/pixi.lock unchanged (pixi 0.82 needed an unlocked
install, the known #280 lock-format issue the next candidate re-locks).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ateway half of #261 / #266)

The 2P rig's nodes are private since 2026-10-28 (reiserlab/scanimage-2026-bergamo
`2p-rig-nodes/`; decision record §3.3 amendment). What stays public is the gateway's
side, ported from #266's head (a4442ad, which includes #261) onto main:

- bridge_node: the `sipm` connector (/sipm/cmd|reply|status in CONNECTOR_TOPICS,
  every bag's topic map and hello_ack), and the ScanImage frame-stream STREAM_TOPICS
  (/scanimage/frame_meta, frame_stats, preview/meta, preview/ch1-4 as
  sensor_msgs/CompressedImage) recorded on arrival, never derived into the run log
- mcap_convert: /sipm/reply|status → {"type":"connector","src":"sipm",…} events
- tests/test_gateway_registration.py (`pixi run test-gateway`, 5 checks): the
  gateway checks of #266's test_sipm (D1-D3) and #261's test_scanimage_frames (§G),
  which the private harnesses no longer carry

Not ported: the nodes, their harnesses and tasks, the rig.py flags (all private
now), and #261's rig_nodes._common SIGBREAK fix (_common lives in rig-nodes; the
private package carries it as a shim).

Tests on the Bergamo PC: test-gateway 5/5; harness `pixi run test` 59/59 (same
as main); rig/pixi.lock unchanged (installed unlocked for the test, #280).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mbreiser added a commit that referenced this pull request Oct 28, 2026
…e rig repo; gateway keeps the 2P topics (LAB-303, LAB-319)

# Conflicts:
#	rig/nodes/bridge_node.py
#	rig/nodes/rig.py
#	rig/pixi.toml
#	rig/tests/test_ros2_poc.py
mbreiser added a commit that referenced this pull request Oct 28, 2026
Candidate for Production. PRs: #281, #269, #282, #284.

Release-Manifest: releases/2026-10-28.json
@mbreiser mbreiser closed this pull request by merging all changes into main in 59a377b Oct 29, 2026
@mbreiser
mbreiser deleted the claude/move-imaging-to-rig-repo branch October 29, 2026 00:43
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.

2 participants