Skip to content

backlog(B-0558): worktree-pool primitive — re-land of #3817 (BACKLOG.md conflict bypassed)#3894

Merged
AceHack merged 3 commits into
mainfrom
otto-cli-b0558-reland-2026-05-16-1422z
May 16, 2026
Merged

backlog(B-0558): worktree-pool primitive — re-land of #3817 (BACKLOG.md conflict bypassed)#3894
AceHack merged 3 commits into
mainfrom
otto-cli-b0558-reland-2026-05-16-1422z

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 16, 2026

Re-lands the substantive content from PR #3817 (DIRTY/CONFLICTING on `docs/BACKLOG.md` since 07:57Z; armed-but-unmergeable for hours). Server-side `gh pr update-branch --rebase` failed repeatedly; this PR cherry-picks the substrate onto a fresh branch off current main and re-applies the BACKLOG.md insertion manually.

Substrate

`docs/backlog/P3/B-0558-worktree-pool-primitive-per-otto-identity-2026-05-16.md` (new, 102 lines)

Worktree-pool primitive — addresses sub-case 4 (pruned-sidetick race) of `.claude/rules/claim-acquire-before-worktree-work.md`'s borrow-on-existing pattern. Composes with B-0506, B-0519, B-0530.

Empirical anchors (from row body):

`docs/BACKLOG.md` (+1 line)

Adds the B-0558 entry after B-0557 (which is now `[x]` on main — that's the change that drifted from #3817's tree).

Why not just rebase #3817?

Tried at 13:31Z (`gh pr update-branch --rebase 3817` → `X Cannot update PR branch due to conflicts`) and again at 14:21Z (same result). Local rebase + force-push would work but is risky under multi-Otto contention (3-4 Lior procs + parallel Otto-CLI sessions doing `git switch` on the shared worktree). Re-land on fresh branch is the lower-risk path; content is identical.

Cleanup

#3817 will be closed with a cross-link to this PR once this lands.

…eticks per Otto identity (re-land)

Re-lands the substantive content from PR #3817 (DIRTY/CONFLICTING
on docs/BACKLOG.md) onto a fresh branch off current main. The
file content is unchanged; the BACKLOG.md insertion is manually
re-applied to match current main's index state (B-0557 now `[x]`).

Substrate addresses sub-case 4 (pruned-sidetick race) of the
borrow-on-existing pattern in claim-acquire-before-worktree-work.md.
4 failure sub-cases empirically validated in 0715Z tick arc;
sub-cases 3 + 4 need substrate engineering (B-0530 + this row).

Original PR #3817 will be closed with cross-link to this PR.

Co-Authored-By: Claude <noreply@anthropic.com>
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

Re-lands backlog item B-0558 documenting a proposed “worktree-pool” primitive (pre-allocated sideticks per Otto identity) and adds it to the generated backlog index, to address the pruned-sidetick race (sub-case 4) described in prior operational substrate.

Changes:

  • Added new backlog row file B-0558 under docs/backlog/P3/ describing the problem, proposed design, and acceptance criteria.
  • Updated docs/BACKLOG.md to include the new B-0558 index entry.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 6 comments.

File Description
docs/backlog/P3/B-0558-worktree-pool-primitive-per-otto-identity-2026-05-16.md New P3 backlog row specifying the worktree-pool primitive design + acceptance criteria.
docs/BACKLOG.md Adds the B-0558 row to the backlog index list.

Comment thread docs/backlog/P3/B-0558-worktree-pool-primitive-per-otto-identity-2026-05-16.md Outdated
Comment thread docs/backlog/P3/B-0558-worktree-pool-primitive-per-otto-identity-2026-05-16.md Outdated
Comment thread docs/backlog/P3/B-0558-worktree-pool-primitive-per-otto-identity-2026-05-16.md Outdated
Comment thread docs/backlog/P3/B-0558-worktree-pool-primitive-per-otto-identity-2026-05-16.md Outdated
Comment thread docs/backlog/P3/B-0558-worktree-pool-primitive-per-otto-identity-2026-05-16.md Outdated
Comment thread docs/BACKLOG.md
AceHack and others added 2 commits May 16, 2026 10:36
Two MD032 failures inherited from #3817's original authoring.
Added blank lines before the two affected lists in Empirical
anchors and Effort estimate sections.

Co-Authored-By: Claude <noreply@anthropic.com>
…, type, 0715Z ref, git syntax, B-0506 link, BACKLOG.md regen)

All 6 findings verified real. Row file: 4 edits (frontmatter
last_updated added; type: feat → feature; 0715Z reference
rephrased to acknowledge PR #3808 closed-without-merge; git
one-liner split into two commands; B-0506 linked to its file).
BACKLOG.md regenerated via bun tools/backlog/generate-index.ts
— output byte-identical to prior manual edit (no diff).

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 16, 2026 15:12
@AceHack AceHack merged commit 1dc175e into main May 16, 2026
28 checks passed
@AceHack AceHack deleted the otto-cli-b0558-reland-2026-05-16-1422z branch May 16, 2026 15:14
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

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

Comment on lines +20 to +32
Tick 06:43Z-07:18Z (2026-05-16): a fresh-cold-boot Otto-CLI session firing during peer Otto's active cascade took **4 commit attempts** to ship a tick shard. The 4 attempts empirically validated all 4 distinct failure sub-cases of [`.claude/rules/claim-acquire-before-worktree-work.md`](../../../.claude/rules/claim-acquire-before-worktree-work.md)'s borrow-on-existing pattern under sustained multi-Otto saturation:

| # | Sub-case | Mitigation status |
|---|---|---|
| 1 | Existing-branch-name reuse → peer-WIP commit inheritance | ✓ uniquified name + git rev-parse pre-check |
| 2 | Concurrent-WIP-blocked switch | ✓ wait for working-tree-clean window (capacity-limited) |
| 3 | Pack-dir B-0530 race on `git worktree add` | ✗ NO MITIGATION — needs [B-0530](B-0530-cron-sentinel-mutex-prevent-otto-cli-self-contention-2026-05-15.md) mutex |
| 4 | Pruned-sidetick race | ✗ NO MITIGATION — needs THIS ROW |

Empirical anchors:

- Shard PR [#3808](https://github.com/Lucent-Financial-Group/Zeta/pull/3808) — the 4-tick-arc evidence (PR closed-without-merge; the `0715Z.md` shard never landed on `origin/main`, only in the PR's branch history per [`lost-files-surface.md`](../../../.claude/rules/lost-files-surface.md))
- Rule PR [#3812](https://github.com/Lucent-Financial-Group/Zeta/pull/3812) — operationalizes sub-cases 1+2 mitigations into rule body, flags 3+4 as needing substrate-engineer work
AceHack added a commit that referenced this pull request May 16, 2026
…-model rule (#3896)

Empirical anchor 2026-05-16T15:14Z: PR #3894 merged at 15:11Z
was invisible to `git log origin/main --since="20 min ago"`
because squash-merge preserves the original commit-date
(author-date), not merge-date. `--since` filters on author-
date and drops PRs squashed from older branches.

Mitigation: prefer `git log origin/main | head -N` over
`--since="X min ago"` for recent-merge queries.

Co-authored-by: Claude <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 16, 2026
Same FP class as #3894's lint fix. Adds blank line after the
'Either:' lead-in.

Co-Authored-By: Claude <noreply@anthropic.com>
AceHack added a commit that referenced this pull request May 16, 2026
…#3823 closed + #3817 deferred (#3883)

* shard(tick): 2026-05-16T13:31Z — stale-armed-PR triage: #3871 merged + #3823 closed + #3817 deferred

Continuing investigation-then-act discipline from 13:10Z tick:
- #3871 (12:07Z+12:11Z bundle) self-resolved + merged
- #3823 closed as redundant (0758Z.md already on main)
- #3817 deferred (BACKLOG.md conflict needs manual rebase)

No multi-Otto contamination this tick. Audit cycle 38/38 holds.

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: MD032 blank-line before list in 1331Z.md line 25

Same FP class as #3894's lint fix. Adds blank line after the
'Either:' lead-in.

Co-Authored-By: Claude <noreply@anthropic.com>

---------

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

Today's session produced 3 distinct instances where forced
escalation at brief-ack #6 (or pre-emptive at #5) surfaced
substantive work the brief-ack-only ticks had missed:

- 14:56Z #6 → PR #3894 hid 6 Copilot findings (22 min stale)
- 15:29Z pre-emptive #5 → PR #3883 (own) stale-armed 108 min
- 15:45Z #6 → PR #3545 forward-signal comment (19+ hr stale)

Pattern observation worth carving into the rule's empirical-
anchor section so future-Otto inherits the validated discipline:
the counter forces invocation of investigation discipline on
regular cadence, which IS where the hidden work is.

Co-authored-by: Claude <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