Skip to content

feat: TRD-2026-005 mid-pipeline rebase + TRD-2026-006 Sprint 1-2 foundation#106

Merged
ldangelo merged 220 commits intomainfrom
dev
Mar 29, 2026
Merged

feat: TRD-2026-005 mid-pipeline rebase + TRD-2026-006 Sprint 1-2 foundation#106
ldangelo merged 220 commits intomainfrom
dev

Conversation

@ldangelo
Copy link
Copy Markdown
Owner

Summary

  • TRD-2026-005: Mid-pipeline rebase machinery (RebaseHook, PipelineEventBus phase gate, agent-worker wiring for rebase conflict → troubleshooter → resume cycle)
  • TRD-2026-006 Sprint 1: ProjectRegistry, SQLite DDL migration for native task store, project CLI commands, unit/integration tests
  • TRD-2026-006 Sprint 2: NativeTaskStore implementation (partial — in progress)
  • Default workflow: rebaseAfterPhase: developer enabled — worktrees now rebase onto origin/dev before QA runs, making pipelines self-healing against dev divergence
  • Fix: Stabilize GitBackend abstraction overhead benchmark (relative 3× check instead of absolute 200ms ceiling)
  • Fix: Dashboard sentinel-fail events now show branch and commit hash
  • Fix: foreman status defaults to collapsed single-line agent view in TTY; -e/--expand for full detail

Test plan

  • All 3393+ tests pass on dev
  • Sentinel goes green on main after merge
  • foreman status shows collapsed view in terminal
  • foreman status -e shows full expanded cards

🤖 Generated with Claude Code

ldangelo and others added 30 commits March 26, 2026 06:45
22 requirements, 78 acceptance criteria for plugin-style VCS backend
supporting git (with git-town) and Jujutsu. Includes auto-detection,
config, pipeline integration, and 7-phase implementation plan.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Resolved OQ-1 through OQ-4 per stakeholder interview:
- Doctor validates jj binary + colocated mode
- AI conflict resolver adapted for jj syntax
- PR-based merge flow (jj git push + gh)
- Finalize + reviewer prompts are VCS-aware

Added REQ-023 (doctor jj validation, 3 ACs), config schema example,
v0.4-beta release gate for jj conflicts. 23 reqs, 81 ACs total.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
72 tasks (36 implementation + 36 test), 5 sprints, 180 hours.
100% traceability to PRD-2026-004's 23 requirements and 81 ACs.

Covers: VcsBackend interface, GitBackend extraction, JujutsuBackend,
auto-detection, config, prompt templating, conflict resolver adaptation,
doctor validation, and sprint-by-sprint release plan.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…Backend -- Repository Introspection (bd-zny3)
… Abstraction -- Git and Jujutsu Support (bd-28p7)
When running foreman on a feature branch, agent work was correctly
branched from the feature branch but auto-merge and finalize targeted
the default branch (dev) via detectDefaultBranch(). This caused merges
to land on dev instead of the feature branch.

Changes:
- Add target branch confirmation prompt in `foreman run` when current
  branch differs from default — user confirms before dispatch
- Thread targetBranch through dispatch → WorkerConfig → agent-worker
  → autoMerge so merges target the correct branch
- Pass targetBranch as baseBranch to finalize prompt so agents rebase
  onto the correct branch before pushing
- Agent worker detects default branch as fallback when targetBranch
  not provided (fixes pre-existing bug where finalize hardcoded "main")
- Force full re-export in bead writer queue (--force flag) to prevent
  br/bv JSONL desync from stale dirty flags

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- br update changed --labels to --set-labels (br create still uses
  --labels). Fix beads-rust client to use the correct flag.
- Increase timeout for forced br sync after bead writer drain from
  30s to 60s — full re-export of 500+ issues was hitting ETIMEDOUT.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Long branch names like feature/trd-2026-004-vcs-backend-abstraction
produce labels over 50 characters, which br rejects. Rather than
truncating (which would cause refinery to target a non-existent
branch), skip the label entirely. The explicit targetBranch threading
added in the previous commit handles merge targeting for these cases.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…Backend -- Commit and Sync Operations (bd-m19i)
…itBackend Commit and Sync Operations (bd-njzr)
…Backend -- Diff, Conflict, and Status (bd-mj19)
ldangelo and others added 29 commits March 29, 2026 17:24
Switch from Date.now()+10 iterations to performance.now()+100 iterations
with 5-call warmup. Raise threshold to 200ms total (batch) to match the
actual AC-022 criterion (< 1% pipeline overhead, not < 50ms per-call).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace absolute 200ms ceiling with 3× relative check (abstractionTime
< directTime * 3). The absolute ceiling was too sensitive to machine
load when multiple agents run concurrently.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds rebaseAfterPhase: developer to the default workflow, activating
the TRD-2026-005 RebaseHook machinery. Worktrees now rebase onto
origin/dev before QA runs, so agents automatically pick up any fixes
that land on dev between dispatch and QA — making refinery test
failures self-healing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
sentinel-fail events have branch/commitHash fields but not seedId/phase,
so the detail was blank. Now renders as: sentinel-fail — branch:main a60f767

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ldangelo ldangelo merged commit 00bfacc into main Mar 29, 2026
1 check passed
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.

1 participant