Repository navigation
fix: behaviour fixes after the structure rewrite #135
Description
The behaviour fixes deferred during the structure rewrite (#101, merged in #129). The final answer for each item was decided on 2026-10-16; the decisions and their reasons are in #101.
How it runs
- Chunks. The items are grouped into 5 chunks, each tested together on the device in one session. The order is data safety first, then what the next chunk builds on.
- Changelog. Chunk PRs are squash-merged, so each chunk PR's body ends with a
BEGIN_COMMIT_OVERRIDE … END_COMMIT_OVERRIDEblock listing every fix PR's conventional title. release-please reads it from the merged PR, so the changelog keeps one entry per fix and the right version bump. - Branches and PRs. Each chunk has its own branch (
fix/<chunk>) cut frommain. Its item PRs merge there after review and green CI. When the chunk is done, it's tested on the device and the chunk branch merges tomain. - Tests. Tests that pinned the old behaviour (contract PART 1D) change in the chunk that changes that behaviour. Every other test keeps its assertions.
- Where the code goes. Each fix goes to its single owner (see
ARCHITECTURE.md); unifying a pair that was co-located in the rewrite means deleting the losing variant.
Chunks
- fix: chunk 1 — files and import safety #136 Chunk 1: files and import safety
- fix: chunk 2 — cockpit membership, file v4 and power zones #131 Chunk 2: cockpit membership, file v4 and power zones
- fix: chunk 3 — link and roster lifecycle, HID #132 Chunk 3: link and roster lifecycle, HID
- fix: chunk 4 — new boards, event log and cockpit actions #133 Chunk 4: new boards, event log and cockpit actions
- fix: chunk 5 — relay, telemetry and the settings form #134 Chunk 5: relay, telemetry and the settings form
Parked for discussion — prioritized 2026-10-18
Kept and filed: #159 (Start with no Gateway starts and waits), #160 ("No nodes reported" with an unadded board on the bus), #161 (Log stream drops rows while paused), #162 ("error-active" label).
Dropped as not critical: Calibration dialog accessible name; stale optional fields on Calibration reopen; Reset… rename offer for a board later added to NODE_IDS.md; "busy" note without a Settings link; Adopt header "0 boards" from a stray's cog; choosing the recording location after Stop; "this file doesn't include…" import preview line; per-board die-temp offset (firmware side).
Activity
feat(config): safe settings files and imports — durable saves with ba…
fix(cockpit): a board outside your cockpit opens Adopt, never a board…
fix(nodes): dependable cockpit membership — mapping file v4, offline-…
fix(nodes): steady link and roster — no false offline or not-respondi…
fix(nodes): new boards counted everywhere, one fault order and a log …
fix(dcs): one relay endpoint label, record only while relaying, telem…
mottihoresh commentedon Oct 18, 2026
All five chunks merged to main (#140, #147, #152, #155, #158). Parked items prioritized: #159–#162 filed, the rest dropped (see body).
fix: start waits for the gateway, connected nodes points to new board…