Skip to content

Modular pass 2/5: repository orchestration and managed workers #251

Closed

Description

@tannerpolley

Part of #24; follow the owner direction of 2026-10-28 there. This feature cost 148 conflict blocks over 12 syncs.

Done means

  • Repository orchestration and managed-worker hunks move out of upstream-owned files into fork-owned modules behind small hooks. Upstream-owned files include Orchestrator.ts, OrchestratorMcpService.ts, ProjectionStore.ts and the sidebar and issues UI.
  • Behavior is unchanged, and the review checks the moved code is equivalent.
  • Existing tests pass.
  • Before and after git merge-tree conflict counts against the latest nightly tag are in the PR body.

This may ship as more than one PR if one feature per PR stays reviewable. Out of scope: behavior changes.

Activity

  1. tannerpolley commented on Oct 29, 2026

    @tannerpolley
    OwnerAuthor

    T3 Code status: Unavailable

    Issue: #251 Modular pass 2/5: repository orchestration and managed workers

    Thread: thread:delegated-task:command%3Amcp%3Ad3506335-01b7-4a2c-9b60-c53578fcdb05%3Adelegate-task%3Aissue24-pass2-251-implement-20261029

    Model: gpt-6.1-sol

    Branch: issue-251-modular-pass-2-5-repository

    Updated: 2026-11-13T05:09:01.608Z

  2. tannerpolley commented on Oct 29, 2026

    @tannerpolley
    OwnerAuthor

    T3 Code closeout: done

    Issue: #251 Modular pass 2/5: repository orchestration and managed workers
    Thread: thread:delegated-task:command%3Amcp%3Ad3506335-01b7-4a2c-9b60-c53578fcdb05%3Adelegate-task%3Aissue24-pass2-251-implement-20261029
    Model: gpt-6.1-sol
    Branch: issue-251-modular-pass-2-5-repository
    Completed: 2026-10-29T22:51:31.805Z

    Implemented #251 and committed locally. Working tree is clean.

    • Starting SHA: 34c2d957772cf71cbdb57062e2191bb1e8e5611f
    • Final commit: 987ed4c0ea14eba6301b413f4337808e09ab77f8
    • Branch: issue-251-modular-pass-2-5-repository
    • No push, PR, merge, issue mutation, subagents, dev servers, or live userdata access.

    The extraction uses existing fork modules plus three new fork-owned modules:

    Upstream-owned file Extracted responsibility Net lines removed
    Orchestrator.ts Creation validation, restore/handoff lock-key discovery, admission continuation, cross-worker queue promotion 85
    OrchestratorMcpService.ts Repository methods and guards, managed admission/start, read-only issue linking 209
    ProjectionStore.ts Issue event writes, ownership/handoff persistence, comment-state and receipt queries 249

    Sidebar and Issues UI inventory found existing fork-owned implementations behind small hooks; those required no edits. Contracts, exports, callers, fixtures, and existing tests were inventoried. Contract fields, defaults, wire shapes, and package exports remain unchanged.

    Seven extracted blocks matched the baseline after normalizing whitespace, optional trailing commas, and explicit constructor/callback substitutions. I also checked lock ordering, the three receipt/commit continuation points, error mapping, linking after commit, and the projection’s original return versus break behavior. Details are in the impact map and equivalence evidence.

    Verification completed:

    • vp run typecheck inside apps/server: exit 0
    • Focused tests: 8 suites, 180 tests passed
    • Final MCP extraction rerun: 2 suites, 52 tests passed
    • vp lint on all 10 changed files: exit 0
    • Formatting and git diff --check: exit 0

    Commands used the required PATH/niceness prefix; heavy checks used agent-heavy. An accidental root typecheck attempt failed during task planning; no root checks ran. Full command evidence and intermediate failures are recorded in checks.md.

    The normal commit hook passed format/lint, then failed with Unused exports (74), matching the supplied baseline count. I committed with VP_GIT_HOOKS=0; no configuration was changed. The hook log is retained.

    Both merge measurements used nightly tag v0.1.6-nightly.20261029.3892, SHA 08a463e29976617134de01e9341f898bc881d0eb, with git merge-tree --write-tree --name-only --no-messages. Marker counts came from the conflicted blobs in each resulting tree.

    Before → after: 10 → 10 conflicted files; 13 → 13 <<<<<<< blocks. No conflict reduction is demonstrated against this nightly.

    Conflicted path Blocks before → after
    apps/server/src/orchestration-v2/ProjectionStore.ts 1 → 1
    apps/server/src/provider/Drivers/ClaudeSkills.ts 1 → 1
    apps/server/src/provider/agentContextBudget.json 1 → 1
    apps/server/src/storageCleanup.ts 2 → 2
    apps/server/src/vcs/GitVcsDriverCore.ts 2 → 2
    apps/server/src/ws.ts 1 → 1
    apps/web/src/components/chat/ThreadLineageWorkflowRow.tsx 1 → 1
    apps/web/src/components/chat/ThreadRelationshipsControl.tsx 1 → 1
    apps/web/src/components/threadActionMenu.logic.ts 2 → 2
    apps/web/src/hooks/useThreadActionMenu.ts 1 → 1

    The remaining projection conflict concerns selectShellRunRows, outside the extracted blocks. No modify/delete paths were omitted. Raw merge output, conflicted blobs, counts, and per-feature measurements are retained under /tmp/issue-251-evidence.

    Remaining gates: parent-owned independent equivalence review and delivery. UI launches were intentionally excluded by the brief; the preexisting knip failure remains.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions