From e5debc20544bdab822477d433612c180da0f5339 Mon Sep 17 00:00:00 2001 From: Michael B Reiser Date: Tue, 29 Sep 2026 16:37:25 -0400 Subject: [PATCH 1/5] =?UTF-8?q?docs(linear):=20cleanup=20progress=202026-0?= =?UTF-8?q?9-29=20(WIP)=20=E2=80=94=20sections=201=20+=20project=20passes?= =?UTF-8?q?=20ticked?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- .../linear-cleanup-handover-2026-09-28.md | 56 +++++++++++++------ 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/docs/development/linear-cleanup-handover-2026-09-28.md b/docs/development/linear-cleanup-handover-2026-09-28.md index c549a320..54edd005 100644 --- a/docs/development/linear-cleanup-handover-2026-09-28.md +++ b/docs/development/linear-cleanup-handover-2026-09-28.md @@ -40,45 +40,57 @@ tick the box. Nothing below has been written to Linear yet. ## 1. Status fixes on existing tickets -- [ ] **LAB-169** "closed-loop-plus-bias" command (Backlog, past due 09-18) → **Duplicate of LAB-185**. +- [x] **LAB-169** "closed-loop-plus-bias" command (Backlog, past due 09-18) → **Duplicate of LAB-185**. *(Applied 2026-09-29; the comment was posted as a reply in Isabel's thread.)* - Comment: Bias waveforms shipped via PR #175 (LAB-185, Done 2026-09-24) and the coupling rework #211 (Studio v0.85, bridge 3.3). - Isabel asked about the duplication on 08-25. -- [ ] **LAB-160** 0x8F purge semantics + refresh defaults (Backlog) → **In Review**, then **Done** once release `2026-09-28` ships. +- [x] **LAB-160** 0x8F purge semantics + refresh defaults (Backlog) → **In Review**, then **Done** once release `2026-09-28` ships. *(Applied 2026-09-29, straight to **Done**: release `2026-09-28` shipped 09-28 via #229. All five stale spots were re-verified on `main`; #228 attached.)* - Comment: 3 of the 5 stale spots were fixed in a12101b (opcode rename, tooltip, confirm text). The rest (the 30 s → 120 s shared `PURGE_MEMORY_TIMEOUT_MS`, and the Console refresh-rate tooltip now reading 400/1200 Hz) are in PR #228, part of Next candidate `2026-09-28` rc1 (release PR #229). - Attach #228. -- [ ] **LAB-212** self-healing web runner (Backlog) → **In Progress**. +- [x] **LAB-212** self-healing web runner (Backlog) → **In Progress**. *(Applied 2026-09-29, with the scope narrowed instead of the comment below. Renamed "Controller-fault recovery through flow control (trial_check: device reset → retry → abort)". The description was rewritten with Done / Remaining / Dropped sections: root cause fixed in fw #56, watchdog self-reset shipped, resume-with-gap / max_recoveries / recovered status dropped. It is now blocked by the new flow-control ticket LAB-218 (item 3h).)* - Comment: Detection and fail-closed are shipped: #198 (v0.76, CONTROLLER_FAULT, post-mortem, soak driver), #206 (slow-host fix), #202 (SD-stall visibility), and the firmware watchdog self-reset path. - Remaining: recover()/resume-with-gap (web issues #200, #201). - PR #219's controller-settings block is the state that recover() must re-apply. -- [ ] **LAB-149** controller + panel diagnostics / event log (Backlog) → **In Progress**. +- [x] **LAB-149** controller + panel diagnostics / event log (Backlog) → **In Progress**. *(Applied 2026-09-29, with an updated comment: fw #56 had MERGED 09-27 (the doc said Frank was reviewing it), fw #62 was added, and the remaining work is the panel inventory, fw #59 + web #233.)* - Comment: The telemetry ring is built (0xA8/0xA9) and passed a 28 h lossless soak. It identified the Mode-3 wedge mechanism. - Firmware is in fw PR #56 (Frank reviewing); the host drainer is in web #198. - fw #54 (telemetry hardening) is the gate before course controllers. -- [ ] **LAB-150** firmware versioning + capability discovery (Backlog, Frank) → **In Progress**. +- [x] **LAB-150** firmware versioning + capability discovery (Backlog, Frank) → **In Progress**. *(Applied 2026-09-29 as a **split**: LAB-150 keeps the firmware work (Frank: panel identity via fw #59, the capability registry). The Studio half became **LAB-220** (V1.0, Michael: one capability-gating rule + a compatibility note + web #233). The panel colour layout became **LAB-221** (Frank, an open question: programmed flag vs hardware ID vs host-declared; no per-colour firmware). Resident pattern identity moved to LAB-147.)* - Comment: GET_FIRMWARE_VERSION 0xCB with its flag bits is live and used as the gate for telemetry and the SD info commands. - Remaining: the Studio disabling unsupported commands; reporting the resident pattern set (from LAB-100); and the panel **color layout** that the color epic needs. -- [ ] **LAB-141** design the primary 12/18 G6 arena (Backlog, High, due 10-01) → **In Progress** (the 10-01 due date stays). +- [x] **LAB-141** design the primary 12/18 G6 arena (Backlog, High, due 10-01) → **In Progress** (the 10-01 due date stays). *(2026-09-29: this decision was superseded, and the ticket was closed as **Done**. The 12/18 v1.0 was built, but the lab chose the smaller 10-14 (LAB-219) as the primary design. LAB-219 took over the three builds (Jin Yang ephys (it may need a corner cutout or a special top), Hannah 2P, FlyMAX). LAB-27 (already Done on 09-28) keeps its historical LAB-141 link.)* - Comment: arena_12-18 v1.0 hardware is on the bench (used in the 09-15 light-sensor tests). Remaining: the three builds (Jin Yang, Hannah Marie, FlyMAX). - Note: Studio support for >20 panels is LAB-159. -- [ ] **LAB-146** controller-board improvements incl. STEMMA QT (Backlog, no assignee) → **In Progress**. +- [x] **LAB-146** controller-board improvements incl. STEMMA QT (Backlog, no assignee) → **In Progress**. *(Applied differently 2026-09-29: assigned **Michael**, **rescoped** to "Update the 10-10 arena controller design with the fixes proven on the 10-14 board", stays Backlog, **blocked by LAB-219**. The fixes to carry back include the LAB-209 divider, Will Dickson's power-supply changes, and a possible analog-in ground island. LAB-219 gained the matching controller-board checklist.)* - Comment: STEMMA QT shipped on 12/18 v1.0. Remaining decisions: a second analog output and the analog-input count, for the next board revision. -- [ ] **LAB-86** validate + calibrate G6 analog input (Backlog, no assignee) → **In Progress**, marked **blocked by LAB-209**. +- [x] **LAB-86** validate + calibrate G6 analog input (Backlog, no assignee) → **In Progress**, marked **blocked by LAB-209**. *(Applied 2026-09-29: assigned **Michael**, In Progress, related to (not blocked by) LAB-209, because many arenas have been reworked. Attached #191 and fw #46/#47. LAB-87 (Mode 4) was also → **In Review**, since it is on fw main and fw #46 fixes the gain. LAB-209 got a comment: the design fix goes into 10-14 / 10-10 (LAB-146) / 12-18.)* - Comment: The substance is in fw PRs #46/#47 (F1/F2) and web PR #191 (calibration UI). It is physically blocked by the swapped stage-2 divider resistors, which only read −10…0 V. - Attach #191 and fw #46/#47. -- [ ] **LAB-18** red + IR checkerboard panels (In Progress, due 08-21, no assignee) → assign **Frank**, due **2026-10-26**. +- [x] **LAB-18** red + IR checkerboard panels (In Progress, due 08-21, no assignee) → assign **Frank**, due **2026-10-26**. *(Applied 2026-09-29. A status block was prepended to the description instead of a long comment: v0.4r1 exists (it has vertical stripes, and its IR resistors run at 198 % of rating); v0.4r2 is in review in HW Panel PR #1 (47/100 Ω 0402), which supersedes the 301 Ω / IR-stepping plan. PR #1 is attached.)* - Comment: The v0.4r2 board is in LED-Display_G6_Hardware_Panel PR #1 (red on T0/T3 at 630 nm, IR on T1/T2 at 850 nm, 0402 column resistors 47/100 Ω, ≈0.72 A per panel at full field). - The release-gate checks (400-pixel map, red < 610 nm, IR resistor steps, behavioral no-detection) are still unrecorded. - Panel firmware PR #30 has the color-channel bench commands. -- [ ] **LAB-6** PSRAM demonstration check-in (In Progress, untouched 76 days) → **Backlog**. +- [x] **LAB-6** PSRAM demonstration check-in (In Progress, untouched 76 days) → **Backlog**. *(2026-09-29: this decision was stale. PSRAM V2 display is production firmware (panel fw #15, arena fw #12/#36), so LAB-6 was closed as **Done** instead. Full panel local storage and panel telemetry go to a new standalone project, starting January 2027 or later.)* - Comment: parked; related to fw issue #40 (PSRAM duty byte). -- [ ] **LAB-158** Claude-derived Studio revision (Backlog) → stays Backlog, add a comment. +- [x] **LAB-158** Claude-derived Studio revision (Backlog) → stays Backlog, add a comment. *(2026-09-29: first changed to "close ASAP" and delegated to the parallel audit session. That session built a ports candidate (Protocol ▾ + ⚙ Settings menus, Console Tools checklist + two columns, 1500 px Run view, labelled Scope controls, replay re-pin), which is uncommitted. Final decision: **In Progress**, assigned **Michael**. The candidate is staged via Next after the queued candidates (#219/#178/#233); Alt retirement is a separate PR; **light mode is kept as a later step**. Close after release. The audit session was told not to close the ticket and to attach its ports PR.)* - Comment: Most of the "retain from Alt" features are now in Classic (#210 runtime vars, #220–#224 replay + 3D). - Remaining: the side-by-side visual candidate and light mode. It is the natural candidate for the Next tier (validate beside Production before replacing it). -- [ ] **LAB-139** 40-panel load validation — **no change** (decision above). +- [x] **LAB-151** bridge closed loop with independent gain + extensible offsets (G6 Arena Extensions, Backlog) → **Done**. *(Added and applied 2026-09-29; it wasn't in the original audit. Delivered by #211 coupling, #175 bias, #223/#225 frame_index start, and `idx` / `cf` / `config` / `bias_config` / `heading_tare` in the run log.)* +- [x] **LAB-156** composable display / accessory / physical-rig configuration (Backlog) → stays Backlog, **scope narrowed**. *(Added and applied 2026-09-29. Renamed "Rig config declares its accessories (LED driver, FicTrac, STEMMA QT); gate controls and protocol requires: on them". The three-layer registry was dropped, since there are only 5 rig files. Related to LAB-213 and LAB-214.)* +- [x] **LAB-147** pattern storage / caching / provenance (Backlog) → stays Backlog, **scope narrowed**. *(Added and applied 2026-09-29. Renamed "Record the exact pattern content in every run log (pattern provenance)". Goal: provenance by identity, not by copies into the repo. The cache/RAM/panel architecture was dropped. Related to LAB-150.)* +- [x] **LAB-148** YAML analysis context (Backlog) → stays Backlog, priority **Medium → Low**, comment posted. *(Added and applied 2026-09-29. The dashboard infers the protocol family from filename substrings and condition-name regexes; the question stays open until the dashboard has to support non-course protocols.)* +- [x] **LAB-159** larger G6 displays (Backlog, High) → assigned **Michael**; supported geometries fixed at **1–4 rows × 10 and × 12 columns** (the 12/18 arena, ≤ 48 panels). 3×16 dropped; scope and acceptance edited. *(Applied 2026-09-29.)* +- [x] **LAB-155** G4.1 compatibility (Backlog) → priority **Medium → Low**, comment: "may not happen, G6 has clear advantages". *(Applied 2026-09-29.)* +- [x] **LAB-217** post-run metadata correction (Backlog) → assigned **Michael**. *(Applied 2026-09-29.)* +- [x] **LAB-106** panel V1 test suite (Backlog) → **Canceled**: the bench tools have been adequate, and panel telemetry (P-LAB-28) would improve on them. *(Added and applied 2026-09-29.)* +- [x] **LAB-213** LED intensity/colour calibration → moved to **Web-based V1.0**: the hardware is validated and Isabel's holder exists; the remaining work is the Studio tool. *(Added and applied 2026-09-29.)* +- [x] **LAB-214** Qwiic peripherals → **In Progress**: parts are ordered; light, temperature/humidity, tilt and maybe servos are in the plan. *(Added and applied 2026-09-29.)* +- [x] **New project P-LAB-28 "G6 Panel Local Storage + Telemetry"**: Backlog, start January 2027. It covers full PSRAM local storage and host↔panel round-trip telemetry with error logging. *(Created 2026-09-29.)* +- [x] **LAB-86 / LAB-87 / LAB-146** → assigned **Michael** (2026-09-29, at his request). Status decisions follow below. +- [x] **LAB-139** 40-panel load validation — **no change** (decision above). *(2026-09-29: status unchanged. Added a comment documenting the exception, as the gate's rule asks: the 12/18 (36 panels) and the 10-14 (30 panels) are under 40, and the ticket still gates 4×10 / 4×12.)* ## 2. Project hygiene -- [ ] **Arena Software Control**: +- [ ] **Arena Software Control** *(renamed by Michael 2026-09-29 to "Arena Software Control - towards Web-based V1.0". Applied 2026-09-29: the summary and description were rewritten around a V1.0 end state with "done when" criteria, and the **target date moved 2026-06-27 → 2026-12-19**. The milestone and status update are deferred until the survey is done.)*: - Add a milestone, **"Studio v0.9x — release tiers + backlog"** (target 2026-10-31). - Put the new tiers ticket and LAB-212/160/159/158 in it. - Retarget the project date from 2026-06-27 to 2026-12-19. @@ -86,7 +98,7 @@ tick the box. Nothing below has been written to Linear yet. - [ ] **G6 Arena Hardware & Firmware**: - Post its **first-ever status update** (draft below). - Consider retargeting the project date (06-05) and the four expired milestones. Close or archive the done ones. -- [ ] **G6 Arena Extensions**: make it the home of the color epic (item 3b). +- [x] **G6 Arena Extensions**: make it the home of the color epic (item 3b). *(2026-09-29: the project was **retired** instead, as Canceled. LAB-84 (flat arena, wanted, Backlog) and the red + IR design doc moved to G6 HW & FW. LAB-140 (cylindrical colour arena) was **Canceled**, because the 12/18 arena has higher resolution. The colour epic now goes in **Web-based V1.0**, and the V1.0 "done when" list gained a "Multi-colour panels" line. The HW & FW boundary text was updated.)* **Status update draft — Arena Software Control (onTrack):** > **September recap:** Studio went from v0.70 to v0.91 in about 40 PRs: @@ -117,7 +129,7 @@ tick the box. Nothing below has been written to Linear yet. - Description: the model (one frozen candidate), the rules, `docs/development/release-process.md`. - Done when the first release ships and one hotfix/rollback drill has been exercised. - [ ] **b. Multi-color G6 panels — web support (epic)** - - G6 Arena Extensions · Backlog. **Sub-issues: LAB-18, LAB-213** (plus c). + - ~~G6 Arena Extensions~~ **Web-based V1.0** (decided 2026-09-29) · Backlog. **Sub-issues: LAB-18, LAB-213** (plus c). - Description: - The panel is a four-color 2×2 mosaic, `ch = 2*(row%2)+(col%2)`, banks T0–T3. There is no firmware fork and no frame-format change. - Web scope, in order: @@ -133,7 +145,7 @@ tick the box. Nothing below has been written to Linear yet. - G6 Arena Hardware & Firmware · Backlog. - Description: resistor banks 910/442/442/301 Ω (T0–T3). Today this exists only in a 07-15 comment on LAB-18. Bench commands are in panel fw PR #30. Calibration priority is 615–625, 420, 475, 525 nm. - [ ] **d. Write up the LAB-119 multicolor (UV) LED research findings** - - G6 Arena Extensions · Todo. LAB-119 is Done but has an empty description and no comments, so its findings aren't recorded anywhere. + - ~~G6 Arena Extensions~~ **G6 Arena Hardware & Firmware** (the Extensions project was retired 2026-09-29) · Todo. LAB-119 is Done but has an empty description and no comments, so its findings aren't recorded anywhere. - [ ] **e. Mode-3 wedge — firmware root cause + fix (fw #50)** - G6 Arena Hardware & Firmware · In Progress · Frank. Attach fw #56 and issues #50, #51, #52, #54. - Links: LAB-149 (ring), LAB-212 (web recovery). @@ -143,11 +155,19 @@ tick the box. Nothing below has been written to Linear yet. - Arena Software Control · Backlog. Contents: the lab repo picker, the "Bench id" → "Rig id" rename, and no default repo. It is course-facing, so announce it. Planned for candidate 2. - Relates to LAB-147. +- [x] **h. Flow control Stage 1 in the web runner (`trial_check` + `repeat_until`)** *(added 2026-09-29; it wasn't in the audit)* + - Created as **LAB-218**: Arena Software Control · Todo · Michael. Blocks LAB-212. Links the design PRs #171 and #173. + +- [x] **i. Design and build the 10-14 partial G6 arena (3 rows, 10 of 14 columns)** *(added 2026-09-29; it wasn't in the audit)* + - Created as **LAB-219**: G6 Arena Hardware & Firmware · In Progress · **Frank** · High. Built from the 2026-09-11 → 09-28 group DM (Michael, Frank, Isabel, Hannah): the 10-14 geometry (R 99.5 mm, 257°, 1.29°/px, 68.8° vertical, 30 panels), C2 layout, vertical BNCs + strain-relief holes, and Qwiic + JST PH 5 V on the long back side. Related to LAB-141, 146, 159, 139 and 203; Fly-Lab-Gear #50 attached. + - LAB-159 gained the **10-14 partial-arena mapping** next to the 12/18 (2026-09-29). + - ⚠ **LAB-141** (the "primary 12/18" arena) is now out of date: the 2P setup moves to the 10-14. Revise it when we reach it. + ## 4. GitHub ↔ Linear links (attachments) -- [ ] #228 → LAB-160 +- [x] #228 → LAB-160 *(attached 2026-09-29 with the LAB-160 close)* - [ ] #219 (controller-settings block) → LAB-156, LAB-212, LAB-150 -- [ ] #191 (analog-in calibration UI) → LAB-86, LAB-209 +- [x] #191 (analog-in calibration UI) → LAB-86, LAB-209 *(attached to LAB-86 with fw #46/#47, 2026-09-29; LAB-209 is linked via relations instead)* - [ ] #226, #227, #229 → new ticket 3a - [ ] fw #58 (Qwiic I2C) → LAB-213, LAB-214, LAB-146 From e6c220e88818746203e39a17ef673bbcbd1d65d0 Mon Sep 17 00:00:00 2001 From: Michael B Reiser Date: Tue, 29 Sep 2026 16:48:51 -0400 Subject: [PATCH 2/5] docs(linear): section 3 new tickets LAB-222..227 recorded Co-Authored-By: Claude Opus 5.5 --- .../linear-cleanup-handover-2026-09-28.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/development/linear-cleanup-handover-2026-09-28.md b/docs/development/linear-cleanup-handover-2026-09-28.md index 54edd005..033c5947 100644 --- a/docs/development/linear-cleanup-handover-2026-09-28.md +++ b/docs/development/linear-cleanup-handover-2026-09-28.md @@ -124,11 +124,11 @@ tick the box. Nothing below has been written to Linear yet. ## 3. New tickets -- [ ] **a. Two-tier web releases (Production + Next)** +- [x] **a. Two-tier web releases (Production + Next)** → **LAB-222** (V1.0 · In Progress · Michael; #226/#227/#228/#229 attached; first release shipped 09-28, done after a hotfix/rollback drill) - Arena Software Control · In Progress · Michael. Attach #226, #227, #228, #229. - Description: the model (one frozen candidate), the rules, `docs/development/release-process.md`. - Done when the first release ships and one hotfix/rollback drill has been exercised. -- [ ] **b. Multi-color G6 panels — web support (epic)** +- [x] **b. Multi-color G6 panels — web support (epic)** → **LAB-223** (V1.0 · Backlog · Michael). ⚠ The sub-issues (LAB-18, LAB-224, LAB-213, LAB-221) are **not attached yet**; Michael reviews them first. - ~~G6 Arena Extensions~~ **Web-based V1.0** (decided 2026-09-29) · Backlog. **Sub-issues: LAB-18, LAB-213** (plus c). - Description: - The panel is a four-color 2×2 mosaic, `ch = 2*(row%2)+(col%2)`, banks T0–T3. There is no firmware fork and no frame-format change. @@ -141,17 +141,17 @@ tick the box. Nothing below has been written to Linear yet. 6. MATLAB + `g6_04` parity - Dependencies: panel fw #30, fw #58, HW PR #1, LAB-150, LAB-139/141/159. - Development goes on a `batch/color` branch through the Next tier. -- [ ] **c. Build the fly-vision four-color panels (violet / blue / green / orange)** +- [x] **c. Build the fly-vision four-color panels (violet / blue / green / orange)** → **LAB-224** (HW & FW · In Progress · Frank). **Corrected from the HW Panel decisions doc:** yellow-orange, not orange; Yongyu 0402 LEDs, 68 Ω ×3 + 110 Ω, not 910/442/442/301 Ω. 15 panels are built and in bench test. - G6 Arena Hardware & Firmware · Backlog. - Description: resistor banks 910/442/442/301 Ω (T0–T3). Today this exists only in a 07-15 comment on LAB-18. Bench commands are in panel fw PR #30. Calibration priority is 615–625, 420, 475, 525 nm. - [ ] **d. Write up the LAB-119 multicolor (UV) LED research findings** - ~~G6 Arena Extensions~~ **G6 Arena Hardware & Firmware** (the Extensions project was retired 2026-09-29) · Todo. LAB-119 is Done but has an empty description and no comments, so its findings aren't recorded anywhere. -- [ ] **e. Mode-3 wedge — firmware root cause + fix (fw #50)** +- [x] **e. Mode-3 wedge — firmware root cause + fix (fw #50)** → **LAB-225**, created as **Done** (the fix is in fw #56); Michael (the #56 author); fw #50/#51/#52/#54 attached. - G6 Arena Hardware & Firmware · In Progress · Frank. Attach fw #56 and issues #50, #51, #52, #54. - Links: LAB-149 (ring), LAB-212 (web recovery). -- [ ] **f. Flashing tooling: cross-platform port detection + Windows notes** +- [x] **f. Flashing tooling: cross-platform port detection + Windows notes** → **LAB-226**, created as **Done** (fw #57 merged 09-28, #49 closed); Frank. - G6 Arena Hardware & Firmware · In Review. Attach fw PRs #57, #49. -- [ ] **g. Data-repo registry / lab repo picker (web PR #178)** +- [x] **g. Data-repo registry / lab repo picker (web PR #178)** → **LAB-227** (V1.0 · In Review · Michael; #178 attached; related LAB-147). - Arena Software Control · Backlog. Contents: the lab repo picker, the "Bench id" → "Rig id" rename, and no default repo. It is course-facing, so announce it. Planned for candidate 2. - Relates to LAB-147. @@ -168,7 +168,7 @@ tick the box. Nothing below has been written to Linear yet. - [x] #228 → LAB-160 *(attached 2026-09-29 with the LAB-160 close)* - [ ] #219 (controller-settings block) → LAB-156, LAB-212, LAB-150 - [x] #191 (analog-in calibration UI) → LAB-86, LAB-209 *(attached to LAB-86 with fw #46/#47, 2026-09-29; LAB-209 is linked via relations instead)* -- [ ] #226, #227, #229 → new ticket 3a +- [x] #226, #227, #229 → new ticket 3a *(attached on creation of LAB-222, plus #228)* - [ ] fw #58 (Qwiic I2C) → LAB-213, LAB-214, LAB-146 ## 5. Going forward (so this doesn't drift again) From 98d9a63ff66dc818e64d9a60331358251fb8e9d7 Mon Sep 17 00:00:00 2001 From: Michael B Reiser Date: Tue, 29 Sep 2026 16:57:08 -0400 Subject: [PATCH 3/5] docs(linear): color epic sub-issues + LAB-119 findings recorded Co-Authored-By: Claude Opus 5.5 --- docs/development/linear-cleanup-handover-2026-09-28.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/development/linear-cleanup-handover-2026-09-28.md b/docs/development/linear-cleanup-handover-2026-09-28.md index 033c5947..a81efa57 100644 --- a/docs/development/linear-cleanup-handover-2026-09-28.md +++ b/docs/development/linear-cleanup-handover-2026-09-28.md @@ -128,7 +128,7 @@ tick the box. Nothing below has been written to Linear yet. - Arena Software Control · In Progress · Michael. Attach #226, #227, #228, #229. - Description: the model (one frozen candidate), the rules, `docs/development/release-process.md`. - Done when the first release ships and one hotfix/rollback drill has been exercised. -- [x] **b. Multi-color G6 panels — web support (epic)** → **LAB-223** (V1.0 · Backlog · Michael). ⚠ The sub-issues (LAB-18, LAB-224, LAB-213, LAB-221) are **not attached yet**; Michael reviews them first. +- [x] **b. Multi-color G6 panels — web support (epic)** → **LAB-223** (V1.0 · Backlog · Michael). Sub-issues **attached 2026-09-29** after Michael's review: LAB-18, LAB-224, LAB-213, LAB-221. The HW Panel repo and decisions doc are linked. - ~~G6 Arena Extensions~~ **Web-based V1.0** (decided 2026-09-29) · Backlog. **Sub-issues: LAB-18, LAB-213** (plus c). - Description: - The panel is a four-color 2×2 mosaic, `ch = 2*(row%2)+(col%2)`, banks T0–T3. There is no firmware fork and no frame-format change. @@ -144,7 +144,7 @@ tick the box. Nothing below has been written to Linear yet. - [x] **c. Build the fly-vision four-color panels (violet / blue / green / orange)** → **LAB-224** (HW & FW · In Progress · Frank). **Corrected from the HW Panel decisions doc:** yellow-orange, not orange; Yongyu 0402 LEDs, 68 Ω ×3 + 110 Ω, not 910/442/442/301 Ω. 15 panels are built and in bench test. - G6 Arena Hardware & Firmware · Backlog. - Description: resistor banks 910/442/442/301 Ω (T0–T3). Today this exists only in a 07-15 comment on LAB-18. Bench commands are in panel fw PR #30. Calibration priority is 615–625, 420, 475, 525 nm. -- [ ] **d. Write up the LAB-119 multicolor (UV) LED research findings** +- [x] **d. Write up the LAB-119 multicolor (UV) LED research findings** *(2026-09-29: no new ticket. The findings are already in `LED-Display_G6_Hardware_Panel/docs/Four-color and Red+IR panel decisions.md`, which is now attached to LAB-119 with a comment. LAB-18 and LAB-224 gained "As ordered" sections confirmed from the BOMs; the IR LED is Inolux IN-S42CTQIR, not the OSRAM SFH 4053B.)* - ~~G6 Arena Extensions~~ **G6 Arena Hardware & Firmware** (the Extensions project was retired 2026-09-29) · Todo. LAB-119 is Done but has an empty description and no comments, so its findings aren't recorded anywhere. - [x] **e. Mode-3 wedge — firmware root cause + fix (fw #50)** → **LAB-225**, created as **Done** (the fix is in fw #56); Michael (the #56 author); fw #50/#51/#52/#54 attached. - G6 Arena Hardware & Firmware · In Progress · Frank. Attach fw #56 and issues #50, #51, #52, #54. From 4e4e559e241395d98df738f5473431432f04fe15 Mon Sep 17 00:00:00 2001 From: Michael B Reiser Date: Tue, 29 Sep 2026 17:49:28 -0400 Subject: [PATCH 4/5] docs: status updates, American spelling convention (g6-orientation skill), Linear-sync rule recorded Co-Authored-By: Claude Opus 5.5 --- .agents/skills/g6-orientation/SKILL.md | 3 +++ docs/development/linear-cleanup-handover-2026-09-28.md | 10 +++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.agents/skills/g6-orientation/SKILL.md b/.agents/skills/g6-orientation/SKILL.md index 36084a16..b8462d37 100644 --- a/.agents/skills/g6-orientation/SKILL.md +++ b/.agents/skills/g6-orientation/SKILL.md @@ -85,6 +85,9 @@ interface. feature PR — see *Release tiers* below. - **Design system** — dark theme (`--bg #0f1419`, surface `#1a1f26`, border `#2d3640`, accent `#00e676`); JetBrains Mono headings, IBM Plex Mono body. +- **Spelling** — American English everywhere: code, docs, Linear tickets, commit/PR text, Slack + posts. **color** (never "colour"), center, -ize. Identifiers already use it (`panel-color.js`, + "Four-color" docs); keep prose consistent with them. - **Dev env = pixi only** — `pixi install` provisions Node + Prettier + Python + websockets (conda-forge). **No npm / package.json / node_modules.** `pixi run test | format | bridge | sim`. - **Two gotchas** — Prettier is scoped to `**/*.js`; **never run it on the HTML tools** (it diff --git a/docs/development/linear-cleanup-handover-2026-09-28.md b/docs/development/linear-cleanup-handover-2026-09-28.md index a81efa57..c735deea 100644 --- a/docs/development/linear-cleanup-handover-2026-09-28.md +++ b/docs/development/linear-cleanup-handover-2026-09-28.md @@ -54,7 +54,7 @@ tick the box. Nothing below has been written to Linear yet. - Comment: The telemetry ring is built (0xA8/0xA9) and passed a 28 h lossless soak. It identified the Mode-3 wedge mechanism. - Firmware is in fw PR #56 (Frank reviewing); the host drainer is in web #198. - fw #54 (telemetry hardening) is the gate before course controllers. -- [x] **LAB-150** firmware versioning + capability discovery (Backlog, Frank) → **In Progress**. *(Applied 2026-09-29 as a **split**: LAB-150 keeps the firmware work (Frank: panel identity via fw #59, the capability registry). The Studio half became **LAB-220** (V1.0, Michael: one capability-gating rule + a compatibility note + web #233). The panel colour layout became **LAB-221** (Frank, an open question: programmed flag vs hardware ID vs host-declared; no per-colour firmware). Resident pattern identity moved to LAB-147.)* +- [x] **LAB-150** firmware versioning + capability discovery (Backlog, Frank) → **In Progress**. *(Applied 2026-09-29 as a **split**: LAB-150 keeps the firmware work (Frank: panel identity via fw #59, the capability registry). The Studio half became **LAB-220** (V1.0, Michael: one capability-gating rule + a compatibility note + web #233). The panel color layout became **LAB-221** (Frank, an open question: programmed flag vs hardware ID vs host-declared; no per-color firmware). Resident pattern identity moved to LAB-147.)* - Comment: GET_FIRMWARE_VERSION 0xCB with its flag bits is live and used as the gate for telemetry and the SD info commands. - Remaining: the Studio disabling unsupported commands; reporting the resident pattern set (from LAB-100); and the panel **color layout** that the color epic needs. - [x] **LAB-141** design the primary 12/18 G6 arena (Backlog, High, due 10-01) → **In Progress** (the 10-01 due date stays). *(2026-09-29: this decision was superseded, and the ticket was closed as **Done**. The 12/18 v1.0 was built, but the lab chose the smaller 10-14 (LAB-219) as the primary design. LAB-219 took over the three builds (Jin Yang ephys (it may need a corner cutout or a special top), Hannah 2P, FlyMAX). LAB-27 (already Done on 09-28) keeps its historical LAB-141 link.)* @@ -82,7 +82,7 @@ tick the box. Nothing below has been written to Linear yet. - [x] **LAB-155** G4.1 compatibility (Backlog) → priority **Medium → Low**, comment: "may not happen, G6 has clear advantages". *(Applied 2026-09-29.)* - [x] **LAB-217** post-run metadata correction (Backlog) → assigned **Michael**. *(Applied 2026-09-29.)* - [x] **LAB-106** panel V1 test suite (Backlog) → **Canceled**: the bench tools have been adequate, and panel telemetry (P-LAB-28) would improve on them. *(Added and applied 2026-09-29.)* -- [x] **LAB-213** LED intensity/colour calibration → moved to **Web-based V1.0**: the hardware is validated and Isabel's holder exists; the remaining work is the Studio tool. *(Added and applied 2026-09-29.)* +- [x] **LAB-213** LED intensity/color calibration → moved to **Web-based V1.0**: the hardware is validated and Isabel's holder exists; the remaining work is the Studio tool. *(Added and applied 2026-09-29.)* - [x] **LAB-214** Qwiic peripherals → **In Progress**: parts are ordered; light, temperature/humidity, tilt and maybe servos are in the plan. *(Added and applied 2026-09-29.)* - [x] **New project P-LAB-28 "G6 Panel Local Storage + Telemetry"**: Backlog, start January 2027. It covers full PSRAM local storage and host↔panel round-trip telemetry with error logging. *(Created 2026-09-29.)* - [x] **LAB-86 / LAB-87 / LAB-146** → assigned **Michael** (2026-09-29, at his request). Status decisions follow below. @@ -98,7 +98,7 @@ tick the box. Nothing below has been written to Linear yet. - [ ] **G6 Arena Hardware & Firmware**: - Post its **first-ever status update** (draft below). - Consider retargeting the project date (06-05) and the four expired milestones. Close or archive the done ones. -- [x] **G6 Arena Extensions**: make it the home of the color epic (item 3b). *(2026-09-29: the project was **retired** instead, as Canceled. LAB-84 (flat arena, wanted, Backlog) and the red + IR design doc moved to G6 HW & FW. LAB-140 (cylindrical colour arena) was **Canceled**, because the 12/18 arena has higher resolution. The colour epic now goes in **Web-based V1.0**, and the V1.0 "done when" list gained a "Multi-colour panels" line. The HW & FW boundary text was updated.)* +- [x] **G6 Arena Extensions**: make it the home of the color epic (item 3b). *(2026-09-29: the project was **retired** instead, as Canceled. LAB-84 (flat arena, wanted, Backlog) and the red + IR design doc moved to G6 HW & FW. LAB-140 (cylindrical color arena) was **Canceled**, because the 12/18 arena has higher resolution. The color epic now goes in **Web-based V1.0**, and the V1.0 "done when" list gained a "Multi-color panels" line. The HW & FW boundary text was updated.)* **Status update draft — Arena Software Control (onTrack):** > **September recap:** Studio went from v0.70 to v0.91 in about 40 PRs: @@ -122,6 +122,10 @@ tick the box. Nothing below has been written to Linear yet. > - Color: red+IR v0.4r2 board in review (HW PR #1); the four-color board is being bench-tested (panel fw #30). > - Dates and milestones below are from June and need a re-plan. +- [x] **Status updates posted (2026-09-29):** Web-based V1.0 (On track) and the **first-ever** G6 HW & FW update (On track). The HW & FW target date moved **2026-06-05 → 2026-12-19**. Milestones are still to set (round C). +- [x] **Spelling convention (2026-09-29):** American English, "color" not "colour". Every "colour" in Linear was fixed (titles, descriptions, comments, attachment titles, the status update). A "Conventions" line was added to the V1.0, HW & FW and Panel Storage project descriptions, and to `~/.claude/CLAUDE.md` and the `g6-orientation` skill. +- [x] **Linear-sync rule (2026-09-29):** added to the user-level `~/.claude/CLAUDE.md`, plus a user-level PreToolUse hook (`~/.claude/hooks/linear_sync_reminder.py`) that fires on `gh pr create|merge` and `pixi run candidate|release`. The Linear GitHub integration for `reiserlab` is to be connected by Michael. + ## 3. New tickets - [x] **a. Two-tier web releases (Production + Next)** → **LAB-222** (V1.0 · In Progress · Michael; #226/#227/#228/#229 attached; first release shipped 09-28, done after a hotfix/rollback drill) From d053ac567a4dcb44e4619107d7034c77beb6be39 Mon Sep 17 00:00:00 2001 From: Michael B Reiser Date: Tue, 29 Sep 2026 18:13:47 -0400 Subject: [PATCH 5/5] =?UTF-8?q?docs(linear):=20V1.0=20milestones=20M1?= =?UTF-8?q?=E2=80=93M4=20recorded,=20section=204=20links=20ticked?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- .../linear-cleanup-handover-2026-09-28.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/docs/development/linear-cleanup-handover-2026-09-28.md b/docs/development/linear-cleanup-handover-2026-09-28.md index c735deea..c18274be 100644 --- a/docs/development/linear-cleanup-handover-2026-09-28.md +++ b/docs/development/linear-cleanup-handover-2026-09-28.md @@ -90,14 +90,22 @@ tick the box. Nothing below has been written to Linear yet. ## 2. Project hygiene -- [ ] **Arena Software Control** *(renamed by Michael 2026-09-29 to "Arena Software Control - towards Web-based V1.0". Applied 2026-09-29: the summary and description were rewritten around a V1.0 end state with "done when" criteria, and the **target date moved 2026-06-27 → 2026-12-19**. The milestone and status update are deferred until the survey is done.)*: +- [x] **Arena Software Control** *(renamed by Michael 2026-09-29 to "Arena Software Control - towards Web-based V1.0". Applied 2026-09-29: the summary and description were rewritten around a V1.0 end state with "done when" criteria, and the **target date moved 2026-06-27 → 2026-12-19**. The milestone and status update are deferred until the survey is done.)*: - Add a milestone, **"Studio v0.9x — release tiers + backlog"** (target 2026-10-31). - Put the new tiers ticket and LAB-212/160/159/158 in it. - Retarget the project date from 2026-06-27 to 2026-12-19. - Post a **status update** (draft below). -- [ ] **G6 Arena Hardware & Firmware**: + - **Done 2026-09-29 (round C):** instead of the single "v0.9x" milestone, the project got **four milestones** ending at the 12-19 target: + - **M1 · Land in-flight work, one Studio** (2026-10-17): LAB-158, LAB-227, LAB-228, LAB-222, plus the new **LAB-230** (#219 controller settings) and **LAB-233** (housecleaning: retire the legacy standalones, Arena Studio Alt and the unlinked pages; blocked by LAB-158). LAB-232 was an accidental duplicate of LAB-233 (a Linear 502 on create) and is marked Duplicate. + - **M2 · Hardware coverage + provenance** (2026-11-14): LAB-159, LAB-220, LAB-156, LAB-147. + - **M3 · Experiments + color prototype** (2026-12-05): LAB-218, LAB-212, LAB-223 (color epic, to prototype stage), LAB-213, LAB-229. + - **M4 · V1.0 release** (2026-12-19): the new **LAB-231** (license, install and getting-started docs, reference rig, tagged release). + - Unscheduled: LAB-148 and LAB-217. Not in V1.0: LAB-155 (G4.1). Light mode ships in M1 with #238, not in M4. +- [x] **G6 Arena Hardware & Firmware**: - Post its **first-ever status update** (draft below). - Consider retargeting the project date (06-05) and the four expired milestones. Close or archive the done ones. + - *(2026-09-29: the status update was posted and the target moved to 2026-12-19; see below.)* + - [ ] **Still open:** re-plan the four expired June milestones (retarget, or close the done ones). - [x] **G6 Arena Extensions**: make it the home of the color epic (item 3b). *(2026-09-29: the project was **retired** instead, as Canceled. LAB-84 (flat arena, wanted, Backlog) and the red + IR design doc moved to G6 HW & FW. LAB-140 (cylindrical color arena) was **Canceled**, because the 12/18 arena has higher resolution. The color epic now goes in **Web-based V1.0**, and the V1.0 "done when" list gained a "Multi-color panels" line. The HW & FW boundary text was updated.)* **Status update draft — Arena Software Control (onTrack):** @@ -123,7 +131,7 @@ tick the box. Nothing below has been written to Linear yet. > - Dates and milestones below are from June and need a re-plan. - [x] **Status updates posted (2026-09-29):** Web-based V1.0 (On track) and the **first-ever** G6 HW & FW update (On track). The HW & FW target date moved **2026-06-05 → 2026-12-19**. Milestones are still to set (round C). -- [x] **Spelling convention (2026-09-29):** American English, "color" not "colour". Every "colour" in Linear was fixed (titles, descriptions, comments, attachment titles, the status update). A "Conventions" line was added to the V1.0, HW & FW and Panel Storage project descriptions, and to `~/.claude/CLAUDE.md` and the `g6-orientation` skill. +- [x] **Spelling convention (2026-09-29):** American English, "color" not "colour". Every "colour" in Linear was fixed (titles, descriptions, comments, attachment titles, the status update; LAB-228/229, created later that evening, too). The Pattern Designer color work renamed its layout key `four-colour` → `four-color` and its doc to `pattern-designer-color-panels.md` before shipping ([#240](https://github.com/reiserlab/webDisplayTools/pull/240)). A "Conventions" line was added to the V1.0, HW & FW and Panel Storage project descriptions, and to `~/.claude/CLAUDE.md` and the `g6-orientation` skill. - [x] **Linear-sync rule (2026-09-29):** added to the user-level `~/.claude/CLAUDE.md`, plus a user-level PreToolUse hook (`~/.claude/hooks/linear_sync_reminder.py`) that fires on `gh pr create|merge` and `pixi run candidate|release`. The Linear GitHub integration for `reiserlab` is to be connected by Michael. ## 3. New tickets @@ -170,10 +178,10 @@ tick the box. Nothing below has been written to Linear yet. ## 4. GitHub ↔ Linear links (attachments) - [x] #228 → LAB-160 *(attached 2026-09-29 with the LAB-160 close)* -- [ ] #219 (controller-settings block) → LAB-156, LAB-212, LAB-150 +- [x] #219 (controller-settings block) → LAB-156, LAB-212, LAB-150 *(attached to LAB-156 and LAB-212; LAB-150 dropped, it's firmware-only. #219 also got its own ticket, LAB-230, in M1.)* - [x] #191 (analog-in calibration UI) → LAB-86, LAB-209 *(attached to LAB-86 with fw #46/#47, 2026-09-29; LAB-209 is linked via relations instead)* - [x] #226, #227, #229 → new ticket 3a *(attached on creation of LAB-222, plus #228)* -- [ ] fw #58 (Qwiic I2C) → LAB-213, LAB-214, LAB-146 +- [x] fw #58 (Qwiic I2C) → LAB-213, LAB-214, LAB-146 *(attached to LAB-213 and LAB-214; LAB-146 dropped, it's the 10-10 board rescope, not the I²C bridge)* ## 5. Going forward (so this doesn't drift again)