Repository navigation
Merge idea-074-workspace into main - #1532
Conversation
Co-Authored-By: Codex <codex@agent>
Co-Authored-By: Codex <codex@agent>
Co-Authored-By: Codex <codex@agent>
Co-Authored-By: Codex <codex@agent>
Co-Authored-By: Codex <codex@agent>
Co-Authored-By: Codex <codex@agent>
Co-Authored-By: Codex <codex@agent>
# Conflicts: # packages/infra/src/index.ts
Co-Authored-By: Codex <codex@agent>
# Conflicts: # CHANGELOG.md # packages/cli/src/commands/backlog-mgmt.ts # packages/cli/src/commands/index.ts # packages/cli/src/commands/loop-reconcile.ts # packages/cli/src/commands/loop-run-once.ts # packages/cli/src/runner/agent-spawn.ts # packages/cli/src/runner/capture-facts-handler.ts # packages/cli/src/runner/capture-peer-helpers.ts # packages/cli/src/runner/in-repo-backlog.ts # packages/cli/src/runner/main-checkout-guard.ts # packages/cli/src/runner/node-ports.ts # packages/cli/src/runner/setup-handlers.ts # packages/cli/src/runner/spawn-agent-handler.ts # packages/cli/src/runner/spawn-observers.ts # packages/cli/src/runner/spawn-role-handler.ts # packages/cli/src/runner/terminal-handlers.ts # packages/cli/test/backlog-mgmt.test.ts # skills
…workspace' into idea-074-workspace # Conflicts: # CHANGELOG.md # package.json # packages/cli/src/commands/index.ts # packages/cli/src/commands/loop-run-once.ts # packages/cli/src/commands/story-new.ts # packages/cli/src/lib/archive.ts # packages/cli/src/runner/agent-spawn.ts # packages/cli/src/runner/capture-facts-handler.ts # packages/cli/src/runner/capture-peer-helpers.ts # packages/cli/src/runner/execution-profile.ts # packages/cli/src/runner/in-repo-backlog.ts # packages/cli/src/runner/main-checkout-guard.ts # packages/cli/src/runner/node-ports.ts # packages/cli/src/runner/setup-handlers.ts # packages/cli/src/runner/spawn-agent-handler.ts # packages/cli/src/runner/spawn-role-handler.ts # packages/cli/src/runner/story-lease-path.ts # packages/cli/src/runner/terminal-handlers.ts # packages/cli/test/fix-1475-shared-main-isolation.test.ts # packages/cli/test/main-checkout-guard.test.ts # packages/cli/test/multi-repo-worktree.test.ts # packages/cli/test/runner-executor.test.ts # packages/cli/test/runner-repository-context.test.ts # packages/cli/test/scoped-route.test.ts # packages/cli/test/workspace-backlog.difftest.test.ts # packages/cli/test/workspace-scheduler.test.ts # skills
Co-Authored-By: Codex <codex@agent>
Co-Authored-By: Codex <codex@agent>
Co-Authored-By: Codex <codex@agent>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f6014ddd94
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const projection = deriveIssueCompletion({ | ||
| workspaceId, | ||
| storyId, | ||
| repositories: manifest.repositories.map((repository) => ({ | ||
| repoId: repository.repoId, |
There was a problem hiding this comment.
Fold campaign delivery against its declared branch
When an Issue carries manifest.deliveryTarget, this still feeds its branch-agnostic repository facts into the ordinary completion fold and never passes the exact campaign branch or mainMerge: forbidden. Consequently, provider evidence for a merge to main plus passing acceptance can produce delivered, after which reconciliation marks the backlog Done, even though this campaign explicitly forbids that terminal. Require evidence tied to the declared campaign branch and reject ordinary main-merge evidence for this case.
AGENTS.md reference: AGENTS.md:L37-L37
Useful? React with 👍 / 👎.
| if (provider !== undefined && provider.prState !== "UNKNOWN") { | ||
| if (provider.prState === "MERGED" && provider.mergeCommit !== undefined) { | ||
| return { completion: { repoId, status: "merged", authority: "provider", mergeCommit: provider.mergeCommit }, conflicts }; |
There was a problem hiding this comment.
Block merged repositories when required CI is red
For a provider fact with prState: "MERGED", a valid merge SHA, and ci: "red" (or still pending/unknown), this early return classifies the repository as merged before the CI check below can run. Once integration acceptance passes, the Issue can therefore become delivered and be projected Done despite failing required CI; require an acceptable CI state before returning merged, and return blocked for red.
Useful? React with 👍 / 👎.
| try { | ||
| writeStoryCardFiles(cardDir, card); |
There was a problem hiding this comment.
Reserve the card before writing shared files
When two roll idea invocations allocate the same ID, both write spec.md and index.html before the optimistic backlog CAS runs. The losing invocation can overwrite the winner's card with different content and then return a conflict, or any backlog write failure can leave an orphan card that forces the next retry to skip the ID. Make the card and backlog update one guarded transaction, or remove only files created by the losing attempt after a failed CAS.
AGENTS.md reference: AGENTS.md:L57-L57
Useful? React with 👍 / 👎.
Summary
Merge the Roll Workspace integration branch into main, including FIX-1486/FIX-1487/FIX-1488:
Verification
pnpm -r build8aee1ae(already merged into roll-skills main)