Skip to content

backlog(B-0534): file backlog-ready-notifier stale-local-checkout bug (P2)#3551

Merged
AceHack merged 1 commit into
mainfrom
feat/b0534-backlog-notifier-reads-origin-main-otto-cli-2026-05-15
May 15, 2026
Merged

backlog(B-0534): file backlog-ready-notifier stale-local-checkout bug (P2)#3551
AceHack merged 1 commit into
mainfrom
feat/b0534-backlog-notifier-reads-origin-main-otto-cli-2026-05-15

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 15, 2026

Summary

Files B-0534 — a P2 bug fix for the backlog-ready-notifier reading stale local working-tree files.

Empirical evidence (tick 1818Z this session): `bun tools/bg/backlog-ready-notifier.ts --once` from the primary worktree returned `B-0442` + `B-0503` as ready-to-grind candidates. Both were closed earlier the same session via PR #3518 (`627e797` on main).

Root cause: the notifier reads YAML frontmatter from local working-tree files. The primary worktree was on peer Otto-CLI's branch `feat/persona-vera-migrate-conversations-otto-cli-2026-05-15`, which doesn't have my closure commits. The local files therefore showed `status: open`. The notifier filtered correctly on `status === "open"` — the bug is the source of truth.

Impact: three already-merged rows were published as work-assignment envelopes (`292f1c57`, `20f991c8`, `aa5060ff`). Tagged P2 because: detectable + recoverable on receiver side, bus-envelope TTL is 2h, advisory only.

Spec includes `--source local|origin` flag (default `origin`), fetch-on-poll-start, and `PollResult.note` reports source used.

Test plan

  • markdownlint clean on the row + regenerated BACKLOG.md
  • ID allocation verified against `origin/main` (B-0533 max) + in-flight scan (B-0534/0535/0536 free)
  • Recovery from multi-Otto packed-refs contention documented in the commit + earlier ticks

🤖 Generated with Claude Code

… (P2)

Surfaced 2026-05-15T18:18Z. `bun tools/bg/backlog-ready-notifier.ts
--once` from the primary worktree returned B-0442 + B-0503 as ready
candidates — both closed earlier this session via PR #3518.

Root cause: the notifier reads YAML frontmatter from local
working-tree files. The primary worktree was on peer Otto-CLI's
branch `feat/persona-vera-migrate-conversations-otto-cli-2026-05-15`,
which doesn't have my B-0442/B-0503 closure commits. Local view
showed `status: open` despite origin/main correctly showing `closed`.

Three already-merged rows were published as work-assignments at the
observed tick (envelopes 292f1c57, 20f991c8, aa5060ff). Impact is
low (advisory; 2h TTL) but the design is wrong — should read from
origin/main.

Spec includes `--source local|origin` flag (default `origin`) and
note-field reporting of source used. BACKLOG.md regenerated.

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 15, 2026 18:40
@AceHack AceHack enabled auto-merge (squash) May 15, 2026 18:40
@AceHack AceHack merged commit f33019d into main May 15, 2026
26 checks passed
@AceHack AceHack deleted the feat/b0534-backlog-notifier-reads-origin-main-otto-cli-2026-05-15 branch May 15, 2026 18:42
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Files a new P2 backlog row for the backlog-ready-notifier stale-local-checkout bug and updates the generated backlog index.

Changes:

  • Adds B-0534 describing the stale working-tree source-of-truth failure and acceptance criteria.
  • Regenerates docs/BACKLOG.md to include B-0534 and the existing B-0533 entry.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
docs/backlog/P2/B-0534-backlog-ready-notifier-reads-stale-local-checkout-2026-05-15.md New backlog row documenting the notifier bug, impact, criteria, and related rows/rules.
docs/BACKLOG.md Generated index updated with B-0534 under P2 and B-0533 under P3.

AceHack added a commit that referenced this pull request May 15, 2026
…3554)

Post-merge Copilot finding on PR #3551: B-0441 link target
`backlog-ready-notifier-2026-05-13.md` doesn't exist. Actual filename:
`B-0441-backlog-row-ready-to-grind-notifier-background-service-2026-05-13.md`.

Verified via `git ls-tree origin/main` — target blob c5be170.

Co-authored-by: Claude <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 15, 2026
…3563)

Empirical anchor: 2026-05-15 had at least 2 cross-agent B-NNNN
collisions (B-0444 Otto-Desktop vs Otto-CLI, then B-0532+B-0533 Lior
vs Otto-CLI). Each cost ~15 min coordination effort.

The discipline-level rule (otto-channels-reference-card.md
ID-allocation section) relies on per-agent memory. This row mechanizes
the catch at PR-time so it doesn't depend on memory:

- Walk docs/backlog/**/B-NNNN-*.md
- Group by B-NNNN ID
- Hard error if any ID maps to more than 1 file
- Wire into gate.yml as sibling of lint-section-33-migration-xrefs

Natural extension of B-0532 (backlog-graph consistency lint, parent-
child status-mismatch) — same lint family, same gate.yml shape.

ID allocation discipline applied: B-0531-B-0534 taken (#3520, #3523,
#3540, #3551); B-0535 verified free via origin/main ls-tree +
gh pr list search.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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