docs(bf-4th1x): close bead — synthesis comment verified on bf-4iewr
Re-dispatch of a run that posted the synthesized root-cause comment [115] on the grandparent bf-4iewr but failed at br close (worker_sessions claimed_at naive-timestamp bug). Re-verified all six file:line citations against current source, posted closing summary comment [117], repaired the two naive worker_sessions rows, and closed bf-4th1x. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
005ae09ae7
commit
4b54789302
1 changed files with 1 additions and 1 deletions
|
|
@ -92,7 +92,7 @@
|
|||
{"id":"bf-4q5w","title":"Wire fusion engine SetNodePosition — nodes never positioned, sim/IO-6 produces 0 blobs","description":"Found during investigation of bf-3v39 (presence-detection verification).\n\nSYMPTOM: E2E tests (tests/e2e TestFullE2EIntegration, TestDetectionEvents) and the IO-6 hard-gate scenario produce ZERO detection events / blobs even with 4 nodes + 2 walkers running spaxel-sim. The fusion loop runs at 10Hz but never emits a peak.\n\nROOT CAUSE: internal/fusion/fusion.go Engine.SetNodePosition(mac,x,y,z) is defined but NEVER CALLED in the non-test wiring (grep shows only the definition + unrelated SetPositionProvider helpers). Nodes default to pos=(0,0,1) in the DB (internal/db/migrations.go:143-145). With all nodes co-located, the Fresnel zone excess path length |P-T|+|P-R|-|T-R| collapses to ~0 everywhere, so the accumulation grid has no meaningful peaks and confidence is undefined -> no blobs.\n\nWHY IT MATTERS: This breaks the IO-6 release hard-gate ('walker produces a tracked blob') and means the eventual physical presence-detection validation (bf-3v39) will also show no blobs regardless of hardware, until node positions feed the fusion engine.\n\nLIKELY FIX: In cmd/mothership/main.go, call fusion Engine.SetNodePosition for each node (a) at startup from the DB nodes table, and (b) whenever a node's position changes (PATCH /api/nodes/:mac position handler) or a node connects/registers. The spaxel-sim default node placement (createVirtualNodes) and/or a default zone may also need to seed positions so the simulator path exercises real geometry. Verify by re-running TestFullE2EIntegration and asserting len(blobs) > 0 during the run (the test currently ducks this with 'we verify the API responds correctly rather than asserting a minimum count').","design":"","acceptance_criteria":"","notes":"","status":"open","priority":1,"issue_type":"task","created_at":"2026-07-03T00:11:33.217563362Z","updated_at":"2026-07-03T19:23:52.843063709Z","source_repo":".","compaction_level":0,"labels":["bug","deferred","fusion","localization","umbrella"],"dependencies":[{"issue_id":"bf-4q5w","depends_on_id":"bf-5jeo","type":"blocks","created_at":"2026-07-03T19:23:17.400573758Z","created_by":"cli","thread_id":""}]}
|
||||
{"id":"bf-4qto","title":"Add default values for blob identity fields","description":"## Objective\nEnsure all blob identity fields have appropriate default or undefined values across all contexts.\n\n## Scope\n- Review all updated blob creation code\n- Add proper undefined or default values where needed\n- Ensure consistency in default value handling\n\n## Acceptance Criteria\n- [ ] All personName fields set to undefined or appropriate default\n- [ ] All assignedColor fields set to undefined or appropriate default \n- [ ] All identityResolved fields set to undefined or appropriate default\n- [ ] Default handling is consistent across codebase","design":"","acceptance_criteria":"","notes":"","status":"closed","priority":2,"issue_type":"task","assignee":"claude-code-glm-5-alpha","created_at":"2026-07-06T05:11:37.452698658Z","updated_at":"2026-07-06T23:16:24.939887312Z","closed_at":"2026-07-06T23:16:24.939887312Z","close_reason":"Completed","source_repo":".","compaction_level":0,"labels":["deferred","split-child"],"dependencies":[{"issue_id":"bf-4qto","depends_on_id":"bf-5151","type":"blocks","created_at":"2026-07-06T05:11:57.963969215Z","created_by":"cli","thread_id":""}],"comments":[{"id":99,"issue_id":"bf-4qto","author":"cli","text":"Closed: propagated the three canonical identity fields (PersonName, AssignedColor, IdentityResolved) through the three projection sites in the fusion loop that were silently dropping them (explainability.BlobSnapshot, automation.TrackedBlob, volume.BlobPos in cmd/mothership/main.go). api.Track (tracks.go) and dashboard.blobJSON (hub.go) already propagated them, so this makes default-handling consistent across all five projection contexts. Fields stay at Go zero values (empty strings, nil *bool) which omitempty serializes as omitted = undefined in JS — the consistent default the acceptance criteria require. Also committed the four missing companion serialization suites (tracker.Blob, tracking.Blob, volume.BlobPos, explainability.BlobSnapshot) asserting: zero-value omits all three, resolved identity emits camelCase keys, and the *bool tri-state round-trips. BLE sidecar population is a separate follow-up bead. Verified gofmt/vet/test clean. Commit ca7a0f2.","created_at":"2026-07-06T23:13:25.604774018Z"},{"id":100,"issue_id":"bf-4qto","author":"cli","text":"Re-verification (auto-split dispatch refused): the dispatcher fired a forced split on failure-count:3, but two independent checks reject decomposition. (1) The dispatch's own splittability pre-check returned {\"splittable\": false}. (2) The bead's objective is already met in code and committed as ca7a0f2: every identity-bearing blob type (tracker.Blob, tracking.Blob, volume.BlobPos, explainability.BlobSnapshot, api.Track, dashboard.blobJSON, automation.TrackedBlob, signal.TrackedBlob) carries PersonName/AssignedColor as empty string + omitempty and IdentityResolved as nil *bool + omitempty — both serialize as omitted = undefined in JS, the uniform default the AC require. All four identity_fields_test.go suites pass (zero-value omits all three; resolved identity emits camelCase keys; *bool tri-state round-trips). Prior comment [99] already closed this with the same rationale; the close did not persist (known br close flakiness), so re-closing. Splitting would manufacture child beads for already-done work — not done.","created_at":"2026-07-06T23:15:47.700495945Z"}]}
|
||||
{"id":"bf-4qwmy","title":"Simulator: GDOP overlay + shopping-list output (coverage gaps, recommended node count + positions)","description":"","design":"","acceptance_criteria":"","notes":"","status":"closed","priority":2,"issue_type":"task","assignee":"claude-code-glm-4.7-foxtrot","created_at":"2026-05-06T00:40:16.874114137Z","updated_at":"2026-05-06T03:18:31.808932181Z","closed_at":"2026-05-06T03:18:31.808932181Z","close_reason":"Completed","source_system":"","source_repo":".","deleted_by":"","delete_reason":"","original_type":"","compaction_level":0,"compacted_at_commit":"","sender":""}
|
||||
{"id":"bf-4th1x","title":"Post synthesized REJECT/token root-cause finding as comment on bf-4iewr","description":"Fourth and final link of the bf-34lwt split. Synthesize the confirmed facts from children 1-3 into the definitive root-cause finding and post it as a comment on the grandparent bf-4iewr, so the remaining bf-4iewr children have a precise target.\n\n## Scope\n- Assemble the confirmed file:line citations for points 1-6 (validator wiring, hello.Token check, sim header-only token, ignored header, 24h default migration window, window-closed reject branch).\n- Post the synthesis as a comment on bf-4iewr using `br comments add bf-4iewr ...`.\n\n## Acceptance Criteria\n- [ ] A written root-cause finding posted as a comment on bf-4iewr, confirming points 1-6 with file:line citations.\n- [ ] Explicit statement in the comment that current 'no reject' is a 24h-window MASK, not a real fix.\n- [ ] Explicit statement in the comment that the token-supply path is currently dead (header ignored, hello.Token empty).","design":"","acceptance_criteria":"","notes":"","status":"in_progress","priority":2,"issue_type":"task","assignee":"claude-code-glm-5-alpha","created_at":"2026-07-07T10:24:19.637847909Z","updated_at":"2026-07-07T11:26:49.132762449Z","source_repo":".","compaction_level":0,"labels":["split-child"],"dependencies":[{"issue_id":"bf-4th1x","depends_on_id":"bf-2hdbg","type":"blocks","created_at":"2026-07-07T10:24:42.516504023Z","created_by":"cli","thread_id":""}]}
|
||||
{"id":"bf-4th1x","title":"Post synthesized REJECT/token root-cause finding as comment on bf-4iewr","description":"Fourth and final link of the bf-34lwt split. Synthesize the confirmed facts from children 1-3 into the definitive root-cause finding and post it as a comment on the grandparent bf-4iewr, so the remaining bf-4iewr children have a precise target.\n\n## Scope\n- Assemble the confirmed file:line citations for points 1-6 (validator wiring, hello.Token check, sim header-only token, ignored header, 24h default migration window, window-closed reject branch).\n- Post the synthesis as a comment on bf-4iewr using `br comments add bf-4iewr ...`.\n\n## Acceptance Criteria\n- [ ] A written root-cause finding posted as a comment on bf-4iewr, confirming points 1-6 with file:line citations.\n- [ ] Explicit statement in the comment that current 'no reject' is a 24h-window MASK, not a real fix.\n- [ ] Explicit statement in the comment that the token-supply path is currently dead (header ignored, hello.Token empty).","design":"","acceptance_criteria":"","notes":"","status":"closed","priority":2,"issue_type":"task","assignee":"claude-code-glm-5-alpha","created_at":"2026-07-07T10:24:19.637847909Z","updated_at":"2026-07-07T11:40:57.885551472Z","closed_at":"2026-07-07T11:40:57.885551472Z","close_reason":"Completed","source_repo":".","compaction_level":0,"labels":["failure-count:1","split-child"],"dependencies":[{"issue_id":"bf-4th1x","depends_on_id":"bf-2hdbg","type":"blocks","created_at":"2026-07-07T10:24:42.516504023Z","created_by":"cli","thread_id":""}],"comments":[{"id":116,"issue_id":"bf-4th1x","author":"cli","text":"Synthesized the three bf-34lwt children (bf-5ig3e, bf-29wyl, bf-2hdbg) into a definitive root-cause comment on bf-4iewr (comment 115), with file:line citations for all six confirmed points (validator wiring at main.go:4494, hello.Token check at server.go:513, sim header-only token at cmd/sim/main.go:313, unread header confirmed by zero grep hits, 24h default window at config.go:139, reject branch at server.go:519-527). States explicitly that 'no reject' is a 24h-window MASK and that the token-supply path is currently dead. Bead checkpoint committed and pushed (005ae09).","created_at":"2026-07-07T11:36:22.229183037Z"},{"id":117,"issue_id":"bf-4th1x","author":"cli","text":"DONE (re-dispatch of a run that posted the comment but failed to close). Synthesis comment [115] is posted on the grandparent bf-4iewr and verified accurate against current source — all six root-cause points with file:line citations:\n\n1. Validator wired unconditionally: mothership/cmd/mothership/main.go:4494.\n2. Validator reads hello.Token only: mothership/internal/ingestion/server.go:513.\n3. Sim sends token only as X-Spaxel-Token header (no body token): cmd/sim/main.go:313 (+ mothership/cmd/sim/{main.go:633,scenario.go:318}).\n4. Mothership never reads that header -> token-supply path DEAD: server.go:469 upgrades unconditionally; zero X-Spaxel-Token hits in cmd/mothership + internal.\n5. Default 24h migration window is the only thing accepting sim nodes: config.go:139; main.go:4495-4498; server.go:515.\n6. REJECT fires only when window closed: server.go:519-527 (else branch) -> sendReject (842) -> conn.Close.\n\nAcceptance criteria all met: (a) points 1-6 posted with citations; (b) explicit 'no reject' is a 24h-window MASK not a fix; (c) explicit token-supply path is dead (header ignored, hello.Token empty). Commit 005ae09 pushed to origin/main.","created_at":"2026-07-07T11:39:56.282540111Z"}]}
|
||||
{"id":"bf-4truh","title":"Comprehensive notification system tests (open bead spaxel-40tl expansion)","description":"Open bead spaxel-40tl 'Write comprehensive tests for notification system' is open. The notify package (internal/notify/) has ntfy.go, pushover.go, webhook.go but tests are missing or incomplete. Needs tests covering: batching logic (30s dedup window), quiet hours gate (suppress non-critical during quiet window), morning digest aggregation, delivery retry logic, channel enable/disable, test-notification endpoint, and notification history API. The existing service_enhanced.go has complex batching logic that needs coverage.","design":"","acceptance_criteria":"","notes":"","status":"closed","priority":2,"issue_type":"task","created_at":"2026-05-02T18:26:14.365679205Z","updated_at":"2026-05-02T18:26:51.067231767Z","closed_at":"2026-05-02T18:26:51.067231767Z","close_reason":"Duplicate of existing open bead spaxel-40tl which already comprehensively tracks notification system tests","source_repo":".","compaction_level":0}
|
||||
{"id":"bf-4wwt","title":"Inventory blob projection and derived types with construction sites","description":"Scope: the blob-shaped PROJECTION/derived types — read-only views built FROM a tracked blob for a subsystem (not new tracked entities). Any field added to a tracked blob that a projection copies must be propagated at each construction site.\n\nProjection types to document (definition file:line + every construction boundary site):\n- explainability.BlobSnapshot, explainability.BlobExplanation\n- falldetect.BlobSnapshot (distinct type, shared name)\n- volume.BlobState, volume.BlobPos, api.BlobPos\n- tracking.BlobEvent\n- replay.BlobUpdate\n- simulator.BlobResult\n\nReference (already enumerated — RE-VERIFY, do not re-discover): notes/bf-4bhd.md \"Related Blob-shaped projection types\" table (9 types, ~15 construction sites across handler.go, detector.go, pipeline.go, simulator/engine.go, tracking/tracker.go, volume/shape.go).\n\nAcceptance Criteria:\n- [ ] Each projection type definition recorded with file:line and which tracked-blob type it is built from\n- [ ] Every projection construction boundary site listed (file:line)\n- [ ] Re-locate moved sites with: grep -rn \"BlobSnapshot{|BlobState{|BlobPos{|BlobUpdate{|BlobEvent{|BlobResult{|BlobExplanation{\" mothership/\n- [ ] All line numbers verified against current HEAD\n- [ ] Findings written to notes/bf-<id>-projections.md","design":"","acceptance_criteria":"","notes":"","status":"closed","priority":2,"issue_type":"task","assignee":"claude-code-glm-5-alpha","created_at":"2026-07-06T15:03:36.904550067Z","updated_at":"2026-07-06T19:39:55.785656755Z","closed_at":"2026-07-06T19:39:55.785656755Z","close_reason":"Completed","source_repo":".","compaction_level":0,"labels":["split-child"],"dependencies":[{"issue_id":"bf-4wwt","depends_on_id":"bf-5uzm","type":"blocks","created_at":"2026-07-06T15:04:21.277568858Z","created_by":"cli","thread_id":""}],"comments":[{"id":80,"issue_id":"bf-4wwt","author":"cli","text":"Re-verified all 9 blob-shaped projection/derived types and 15 non-test construction sites against current HEAD (68bd308) — every type definition (handler.go:27/95, detector.go:69, shape.go:139/1080, triggers.go:624, tracker.go:52, types.go:303, engine.go:80) and every construction site (grep -rnE of BlobSnapshot{/BlobState{/BlobPos{/BlobUpdate{/BlobEvent{/BlobResult{/BlobExplanation{) matches notes/bf-4wwt-projections.md exactly. Work committed in 68bd308 and pushed to origin/main. Findings written to notes/bf-4wwt-projections.md (companion to bf-4bhd): 9 types, 15 sites + 1 falldetect boundary (main.go:2288), with corrections noting api.BlobPos is test-only/dead, replay.BlobUpdate & simulator.BlobResult are synthetic (not blob-derived), and volume.BlobState's only blob-derived site is shape.go:575.","created_at":"2026-07-06T19:38:49.791215302Z"}]}
|
||||
{"id":"bf-4zio","title":"BLE-to-blob 3D visualization: per-person colored humanoid + name labels in scene","description":"Phase 6 item 30 requires the 3D dashboard to show identified persons as colored humanoid figures with name labels ('Alice is in Kitchen') instead of generic 'Blob #2' markers. The BLE registry (spaxel-2wg) is closed but the frontend visualization using resolved identities is not implemented. Update the Three.js scene to render identity-matched blobs as named humanoid meshes.","design":"","acceptance_criteria":"","notes":"","status":"open","priority":2,"issue_type":"task","created_at":"2026-05-26T22:14:42.798449947Z","updated_at":"2026-07-06T12:46:52.964790297Z","source_repo":".","compaction_level":0,"labels":["umbrella"],"dependencies":[{"issue_id":"bf-4zio","depends_on_id":"bf-3dip","type":"blocks","created_at":"2026-07-06T04:05:42.020469537Z","created_by":"cli","thread_id":""}]}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue