Skip to content

#382 Add merge-pr skill family and rename merge config section - #495

Merged
williamthorsen merged 2 commits into
mainfrom
382
May 2, 2026
Merged

#382 Add merge-pr skill family and rename merge config section#495
williamthorsen merged 2 commits into
mainfrom
382

Conversation

@williamthorsen

Copy link
Copy Markdown
Owner

What

Adds a /merge-pr skill that composes a merge-commit message and executes a GitHub PR merge through gh, removing the need to hand-type gh pr merge flags. The skill resolves scope and type from PR labels (or commit majority when labels aren't conclusive), composes the merge-commit body from the live PR description's ## What section, and runs an always-on approval gate before invoking the API. The new family mirrors the create-pr orchestrator-and-delegate pattern: merge-pr (user-invocable) owns all decisions; merge-gh-pr owns GitHub execution and pre-merge state validation; merge-bb-pr is a documented stub.

Also renames the merge_commit: preferences section to merge: and the corresponding describe-change.sh JSON output key from merge_commit_title to merge_title, reserving the merge: namespace for future action-of-merging settings (strategy, delete_branch) without churning preferences twice.

Why

Merging a PR by hand means typing gh pr merge flags and assembling the merge-commit message piecemeal. The result is inconsistent merge-log voice and missed opportunities to reuse the project's title-rendering machinery (describe-change.sh) and label-based scope/type inference (.meta/label-map.json). The skill captures the pattern once, runs it the same way every time, and produces merge artifacts the rest of the workflow can consume.

The merge_commit: rename is preparatory: with the section about to grow beyond title_format (eventually adding strategy, delete_branch, etc.), the original name is misleading — the rebase strategy produces no merge commit at all. Doing the rename now reserves the namespace cleanly and avoids a future double-churn of every project's preferences.yaml.

Details

Features

  • New merge-pr orchestrator: --pr {n}, --scope, --type, --strategy, --delete-branch overrides; defaults strategy=squash, delete_branch=yes. Resolver functions (resolveStrategy, resolveDeleteBranch, scope/type pipeline) are written so adding preference-file lookup later is a one-line additive change.
  • New merge-gh-pr delegate: single gh pr view --json call validates state, isDraft, mergeable, mergeStateStatus, reviewDecision, with a fail-closed policy for missing fields. Branch-sync check skips when the local branch isn't the PR's head ref or when the PR is from a fork (isCrossRepository). Strategy-flag mapping passes --subject only for squash and --body-file only for squash/merge. Saves a merge artifact recording PR URL, commit SHA, strategy, title, body, and branch-deletion outcome.
  • New merge-bb-pr stub: prints resolved values and exits without invoking the Bitbucket API, parallel to how create-ticket handles Jira.
  • Reserved-keys notice in merge-pr documents that merge.strategy and merge.delete_branch preference keys are reserved-but-unhonored in this iteration.

Fixes

  • Pre-merge body composition: documents that the commit-majority parser strips a leading {ticket_ref} token before matching the conventional [scope|type: ] prefix, so projects whose commit.title_format includes the ticket reference are handled correctly.
  • Pre-merge body composition: clarifies that the 30-character "thinness" threshold for ## What extraction is a default that an agent may override for short, intentional bodies (e.g., "Cosmetic only.").

Refactoring

  • Renames merge_commit: to merge: in .agents/preferences.yaml, the agents README.md, _data/commit-format.md, describe-change.sh, and the shellspec test fixtures. JSON output key in describe-change.sh is renamed from merge_commit_title to merge_title. The user's ~/.agents/preferences.yaml is out-of-repo and requires a manual update to keep global merge-title rendering working.

Test plan

  • On a draft PR: /merge-pr refuses with "PR is in draft state; mark it ready first."
  • On a PR with merge conflicts: /merge-pr refuses with "PR has merge conflicts; resolve and retry."
  • On a ready PR with the local branch checked out: /merge-pr shows the approval gate with rendered title, body, strategy, and delete-branch decision; refuses cleanly when declined.
  • On a ready PR for a different branch (/merge-pr --pr {n}): no spurious "branch out of sync" refusal — the delegate detects the cross-branch case and skips the sync check.
  • Override flags work: /merge-pr --strategy=merge and /merge-pr --delete-branch=no produce a merge with the expected non-default behavior.
  • Update your global ~/.agents/preferences.yaml: rename merge_commit:merge: and confirm merge-title rendering still works.

Closes #382

Adds a `merge-pr` skill family that composes a merge-commit message and executes a PR merge through GitHub's API, replacing the per-invocation typing of `gh pr merge` flags. The new skills mirror the `create-pr` orchestrator-and-delegate pattern: `merge-pr` is a user-invocable orchestrator that owns PR resolution, scope/type/strategy resolution, body composition, and an always-on approval gate; `merge-gh-pr` and `merge-bb-pr` are internal delegates that own platform execution.

The orchestrator infers scope and type from PR labels first (reverse-lookup of `.meta/label-map.json`), falling back to commit-message majority and finally to a runtime prompt at the approval gate. Merge-commit body content is extracted from the live PR description's `## What` section, with a release-notes-voice composition fallback when missing or thin. Pre-merge state validation lives in the GitHub delegate and refuses with specific reasons on draft state, conflicts, blocked status, or missing required reviews; missing fields fail closed.

Renames the `merge_commit:` preferences section to `merge:` and the corresponding `describe-change.sh` JSON output key from `merge_commit_title` to `merge_title`. The previous name was misleading once action-of-merging concerns came into scope — the `rebase` strategy produces no merge commit at all. The renamed `merge:` namespace is now reserved for the action-of-merging keys (`strategy`, `delete_branch`); orchestrator defaults are hard-coded for now (`squash`, `delete_branch=true`), with resolver functions shaped to accept future preference-file lookup as a one-line additive change.

The Bitbucket delegate is a documented stub for this iteration, parallel to how `create-ticket` handles Jira; it prints resolved values and exits without invoking the API.
Closes a hole in the unreleased `merge-pr` skill family where invoking `merge-pr --pr {n}` for a PR whose head branch is not currently checked out would produce a spurious "branch out of sync" refusal. The `merge-gh-pr` delegate now detects the case via `git rev-parse --abbrev-ref HEAD` and skips the sync check when the local branch differs from the PR's `headRefName`. The same skip path also covers fork PRs, detected via `gh pr view --json isCrossRepository` (replacing the prior, less precise `headRepositoryOwner` field).

Defensively omits `--body-file` from `gh pr merge --rebase` invocations, since rebased commits keep their original messages and passing a body to `--rebase` may surface a CLI-version-dependent error.

Also clarifies two body-extraction edge cases in `merge-pr`: the commit-majority parser strips a leading `{ticket_ref} ` token before matching the conventional `[scope|type: ]` prefix (some projects include the ticket reference in their `commit.title_format`), and the 30-character "thinness" threshold for `## What` extraction is documented as a default that an agent may override for short, intentional bodies like "Cosmetic only.".
@williamthorsen williamthorsen added feature Added or improved external functionality scope:agents labels May 2, 2026
@github-actions

github-actions Bot commented May 2, 2026

Copy link
Copy Markdown

Dependency audit

Production dependency audit passed.

@williamthorsen williamthorsen self-assigned this May 2, 2026
@williamthorsen
williamthorsen marked this pull request as ready for review May 2, 2026 09:49
@williamthorsen williamthorsen added the refactoring Improvement to code without change in functionality label May 2, 2026
@williamthorsen
williamthorsen merged commit e962fb8 into main May 2, 2026
3 checks passed
@williamthorsen
williamthorsen deleted the 382 branch May 2, 2026 09:50
williamthorsen added a commit that referenced this pull request May 4, 2026
agents-v0.2.0
- #525 fix: Extract Jira-style ticket IDs from author-prefixed branches (#528)
- #452 feat: Have reviewers write findings incrementally for interruption resilience (#523)
- feat: Prevent agents from using interactive prompts
- #506 feat: Pre-load reviewer context for unfamiliar third-party APIs (#517)
- #511 internal: Migrate work-types to a JSON SSOT with schema validation (#516)
- #430 feat: Add preferences.yaml schema and normalize default_remote (#509)
- #497 feat: Show pros and cons in a list instead of inline (#503)
- #501 fix: Default merge-pr to remote-only branch deletion via tristate flag (#504)
- #494 feat: Resolve merge-pr scope and type via a tested script (#502)
- #491 feat: Canonicalize finding icons; switch Suggestion to ☝️ (#500)
- #496 feat: Mark skips and successes in install/uninstall output (#499)
- #462 feat: Add advisability dimension to /assess-ticket (#498)
- #382 feat: Add merge-pr skill family and rename merge config section (#495)
- #490 feat: Codify design priorities: correctness over convenience (#493)
- #489 feat: Reframe `## What` guidance around outside-reader audience (#492)
- #486 feat: Surface recommendation-gradient format at point of use (#488)
- #484 feat: Adopt plural tickets_created and drop counts (#487)
- #473 feat: Adopt cost-aware three-lane disposition for findings and follow-ups (#485)
- #476 feat: Add recommendation gradient to clarifying questions (#483)
- #478 feat: Persist deferred findings from /wrap-up sessions (#482)
- #474 refactor: Rename parse/resolve_prefix to title_format names (#481)
- #464 feat: Render ticket reference consistently in artifact headings (#479)
- #466 feat: Render commit, ticket, PR, and merge titles from declarative templates (#475)
- #471 fix: Make subagent guidance refs apply on Rovo Dev (#472)
- tooling: Exclude Playwright MCP files from linting
- #467 feat: Add update-jira-ticket skill to prevent INVALID_INPUT failures (#470)
- #461 feat: Append `Closes` line to PRs and expose `ticket_ref` (#465)
- #460 feat: Have /design-and-plan evaluate tickets on their merits (#463)
- #456 feat: Have Rovo Dev present choices as numbered text (#457)
- feat: Refine agent collaboration
- #446 feat: Require outcome-first framing in commit titles (#454)
- #448 fix: Have orchestrated-coder write change-summary incrementally (#453)
- #443 tooling: Automate replacement of dashed separator comments with headings or region folds (#451)
- #441 feat: Add provenance markers to generated files (#447)
- #442 fix: Prevent backtick over-escape in agent-authored GitHub bodies (#445)
- #437 fix: Eliminate relative Markdown links in installed guidance (#439)
- #426 feat: Make devlogs ticket-scoped and add linking frontmatter (#434)
- feat: If changes made, offer to run /create-pr after wrap-up
- feat: Improve question style in collaborative mode
- #416 feat: Add `generate label-map` CLI command with JSON Schema and readyup check (#420)
- docs: Record mistake writing long-running test
- #414 feat: Adopt release-notes voice in commit/change-summary skills (#417)
- feat: Instruct agents to follow best practices and prefer CLI tools
- #409 feat: Rationalize PR creation skills with platform-specific delegates (#411)
- #381 feat: Add GitHub label application to create-ticket skill (#410)
- #407 feat: Add project guidelines reading to 9 subagent definitions (#408)
- #384 feat: Improve outcome-first guidance across change-summary & commit skills (#406)
- #404 fix: Add documentation coverage convention to plan-producing skills (#405)
- feat: Improve guidance on writing What section of change summary
- fix: Prevent agents from categorizing trivial flaws as warnings
- #400 fix: Replace hardcoded artifact paths with placeholder in examples (#401)
- feat: Instruct agents to prefer git -C
- #388 fix: Filter stale entries from manifest on partial uninstall (#399)
- #386 tests: Add tests for describe-change.sh and installScripts (#398)
- #392 fix: List at-risk files in symlink safety error message (#397)
- #390 fix: Escalate test gaps for pipeline-authored code to F-level (#396)
- #391 fix: Resolve script paths at install time via template variable (#395)
- #393 fix: Add bin wrappers to eliminate pnpm install warnings (#394)
- #377 feat: Add guidance file install, uninstall, and status support (#389)
- docs: Add README
- #383 feat: Allow commit prefixes to be configured for user and for repo (#387)
- #379 feat: Require tests with code changes across orchestration pipeline (#380)
- #376 tooling: Migrate to nmr script runner (#378)
- #374 feat: Prompt for next steps after non-baseline assessment verdicts (#375)
- #372 feat: Skip complexity assessment when progress is complete (#373)
- fix: Ticket assessment checkboxes are not displayed in terminal
- #370 feat: Add complexity classification to assess-ticket and as standalone skill (#371)
- #135 feat: Add severity to legacy findings (#369)
- #363 fix: Rewrite relative Markdown paths to absolute during skill install (#368)
- #366 feat: Add PROJECT.md staleness check and agent launchers (#367)
- #364 feat: Add people-report skill (#365)
- #306 feat: Add shared complexity rubric and quick-fix pass to wrap-up (#362)
- fix: Gate next-steps presentation on reading reference file
- #360 fix: Replace plugin code-simplifier with standalone reviewer (#361)
- #357 feat: Add assess-ticket skill and extract shared ticket resolution (#359)
- #345 feat: Add staleness and relevancy check to design-and-plan skill (#356)
- #330 feat: Add numbered options and context-clearing to next-steps prompts (#355)
- #351 fix: Fix next-steps-after-plan over-recommending refinement (#354)
- #350 fix: Fix broken _data/ relative paths in skill files (#352)
- #348 feat: Add update-project-guidance skill (#349)
- #346 fix: Replace symlinks before writing generated files
- #346 fix: Install _data support files and filter dotfiles (#347)
- fix: Agents misunderstand session-context fallbacks
- #328 feat: Add ticket compliance checking to review-change skill (#331)
- #320 feat: Add next-steps resumption prompt to plan-producing skills (#329)
- #321 refactor: Remove stale get-session-context references from reviewers (#327)
- #319 refactor: Rename get-branch-context to get-session-context, centralize artifact resolution (#322)
- #315 feat: Add plan provenance to save-plan and refinedBy field (#317)
- #313 fix: Replace 24-hour active-run heuristic (#314)
- refactor: Clarify logic for finding agent preferences
- #290 feat: Show waiting-for-input state in factory visualization (#292)
- #282 fix: Clean up PR and review output conventions (#285)
- #281 feat: Add variable naming conventions (#284)
- refactor: Use short form of SHA in plan provenance metadata
- #280 fix: Remove ticket ID from condense-branch commit format
- #280 fix: Improve adherence to commit conventions (#283)
- #264 fix: Guard against zero parsed steps in high-trust plan conversion (#278)
- #266 feat: Add bb-pr-inline-comment skill (#276)
- feat: Add recommended next-step guidance to design-and-plan skill
- #267 docs: Document optional fields in artifact-conventions
- #267 feat: Wire up usage metrics for savings analysis (#275)
- #263 feat: Use plan provenance and trust level when calibrating orchestration effort (#265)
- fix: Prevent coder subagent from ignoring commit conventions
- tooling: Fix lint in package.json files
- fix: Coder ignores git-commit instructions on title content
- fix: Incorrect path to _data directory in skill definitions
- fix: PR body extracted from branch summary includes frontmatter
- #231 feat: Add design-and-plan skill for interactive design + planning (#234)
- #217 feat: Create find-orchestration-savings skill to identify token waste (#232)
- #105 feat: Add artifact-write safeguards to subagent prompts (#229)
- #223 feat: Create sprite-loading infrastructure for catwalk (#228)
- refactor: Discourage reliance on indirect sources
- #199 feat: Replace orchestration mode system with effort system (#206)
- #197 feat: Make review fan-out mode-aware and remove lite mode (#203)
- #169 feat: Replace timestamp prefixes with sequential counters on run artifacts (#170)
- #163 fix: Resolve artifact base directory from preferences instead of hardcoding project path (#168)
- #157 feat: Add /refine-plan skill for plan review and refinement (#159)
- #155 fix: Fix silent logging failure when MCP is unavailable to orchestrate engine (#158)
- #152 fix: Fix inconsistent artifact logging (#154)
- feat: Emit run_failed event when complete_run receives failed status (#150)
- #141 fix: Fix wrap-up skill action menu and summary narrative (#146)
- #121 fix: Restore platform-specific skill handling and prompts.yml generation (#144)
- #139 feat: Add --mode=lite to orchestrate-dev skill (#143)
- CODY-113 refactor: Deduplicate finding scheme from reviewer agents into shared skill (#134)
- CODY-87 feat: Migrate orchestrator to MCP and v3 events (#133)
- fix: Fix review-cycle doc gaps in Phase 4a entry and Phase 4b flow control
- fix: Address review findings for mode system and two-threshold model
- feat: Add mode system and two-threshold model to orchestrate-dev
- CODY-71 feat: Refine wrap-up: numbered findings, action menu
- CODY-71 feat: Add post-session wrap-up skill (#95)
- CODY-73 feat: Add rich summary sections to orchestrated run output (#88)
- CODY-65 feat: Update run-index.json incrementally during parallel review (#69)

factory-v0.2.0
- deps: Upgrade all deps to latest minor version
- #443 tooling: Automate replacement of dashed separator comments with headings or region folds (#451)
- #427 feat: Add `pick-demo-runs` script to rank archived runs (#436)
- #402 tooling: Add readyup and default kit (#403)
- deps: Upgrade all deps to latest minor version
- #376 tooling: Migrate to nmr script runner (#378)
- deps: Upgrade all deps to latest minor version & patch vuln
- deps: Upgrade all deps to latest minor version
- deps: Upgrade to Vite 8
- #76 feat: Enable playback of completed orchestrated runs (#344)
- #335 feat: Use slot-based positioning for orchestrator (#340)
- #311 feat: Animate office transitions (#336)
- #310 feat: Replace geometric placeholders with tileset rendering (#332)
- #318 tests: Require explicit method selection in silencedConsole (#326)
- #303 internal: Create 3-zone adapter for office visualization (#309)
- #299 feat: Shared logical scene state for visualizations (#304)
- #297 feat: Add ?format=html param to artifact content endpoint (#300)
- #293 spike: Design facility visualization with office prototype (#296)
- #290 feat: Show waiting-for-input state in factory visualization (#292)
- deps: Upgrade all deps to latest minor version
- #287 feat: Add three-zone factory-floor visualization (#291)
- #274 feat: Redesign orchestrator sprite (#286)
- #270 tests: Add edge-case tests for input deferral, playback, rebuild (#273)
- #259 feat: Add progressive artifact reveal to catwalk demo replay (#272)
- #260 feat: Expand block-robot sprites and improve palette contrast (#268)
- #239 fix: Fix catwalk layout geometry, actor rendering, and artifact positioning (#262)
- deps: Require Node 24+
- deps: Upgrade shared linting configs to latest version
- #247 feat: Generate HTML preview page for sprite sheets (#254)
- #236 fix: Subagent sprites are not centered on station x position (#250)
- #235 feat: Generate block-robot pixel art sprites (#249)
- #187 refactor: Move FlowDiagram to visualizations/flow/ (#244)
- tooling: Fix lint in package.json files
- #237 fix: Fix canvas not scaling up on viewport resize (#243)
- #238 fix: Guard against negative orchestrator station index (#242)
- #184 feat: Add chute animations, carried artifacts, and code badge (#241)
- #233 feat: Pulse scale instead of opacity; extract opacity constants (#240)
- refactor: Use preferences cascade for project base path
- #223 feat: Create sprite-loading infrastructure for catwalk (#228)
- #183 feat: Add animated state transitions to catwalk actors (#225)
- #213 feat: Add run directory scanning and refactor ProjectScanner (#221)
- #210 test: Add catwalk differ boundary tests for agent (#212)
- #182 feat: Implement catwalk config differ (#211)
- #207 fix: Skip interactive run directories in project scanner (#208)
- #199 feat: Replace orchestration mode system with effort system (#206)
- #181 feat: Integrate CatwalkScene with config-driven actor management (#201)
- #180 util: Implement static catwalk actors (#195)
- #179 util: Define CatwalkSceneConfig types and implement run-to-catwalk mapper (#192)
- #178 util: Implement catwalk layout engine (#191)
- #177 util: Add shared artifact color constants and catwalk dimension/timing constants (#190)
- #176 feat: Scaffold catwalk visualization with empty scene (#189)
- #171 feat: Gracefully handle invalid log files in orchestrated-run directories (#174)
- #148 feat: Propagate failure reason from run_failed event to CanonicalRunStatus (#167)
- tests: Add shared visualization mocks and status prop forwarding tests (#149)
- #10 tests: Silence console noise in test output (#147)
- #137 feat: Persist visualization mode in query string parameter (#142)
- #136 fix: Fix diagram view crash on undefined reviewers (#138)
- CODY-100 feat: Implement review-cycle visualization and iteration tracking (#129)
- CODY-116 fix: Fix canvas scaling to be width-driven with FitContainer (#125)
- CODY-99 feat: Add custom edge components with packet animation (#118)
- CODY-98 feat: Create custom node components for flow diagram (#112)
- CODY-97 feat: Add React Flow foundation and visualization switcher (#109)
- refactor: Migrate imports to @codeassembly/run-core (#104)
- CODY-94 fix: Handle newer parallelReview schema shapes in scene mapper (#102)
- CODY-79 feat: Show tooltip on hover over artifact boxes (#91)
- feat: Rebrand to "Code Assembly Factory"
- fix: Left-align labels, align upper reviewers, reposition artifacts
- fix: Fix orchestrator start position and approach distance
- CODY-63 feat: Add demo playback mode with event-sourced run replay (#81)
- CODY-60 feat: Render individual artifact boxes with configurable layout (#77)
- refactor: Fix lint surfaced by dependency upgrades
- CODY-67 feat: Move station labels to platform (#70)
- CODY-65 feat: Update run-index.json incrementally during parallel review (#69)
- CODY-59 feat: Improve representational quality of gates (#64)
- fix: Guard against stale setFacing from cancelled walk
- feat: Add directional sprite facing for approaching orchestrator
- CODY-42 feat: Position orchestrator to left of delegatee (#56)
- CODY-26 feat: Add resting animations for idle agents (#54)
- CODY-49 fix: Sync RunList selection with URL params and RunSelector dropdowns (#51)
- CODY-39 feat: Improve run listing readability in sidebar (#50)
- fix: Propagate null-safety to shared phase-inference module
- refactor: Simplify walk chain, deduplicate error handler, and clean up minor noise
- fix: Address review findings for artifact indicator
- feat: Add agent spawning, artifact indicator, and hand-off
- refactor: Simplify onDismissRun prop and clarify partial comment
- fix: Address review findings for settings persistence
- fix: Resolve lint errors in settings route test and hook
- feat: Update App and RunList for status-aware dismissal API
- feat: Rewrite useDismissedRuns hook with server persistence
- feat: Add fetchSettings and patchSettings client API functions
- feat: Register settings route and fix type compatibility
- feat: Add settings REST endpoints (GET/PATCH /api/settings)
- feat: Add SettingsStore service for persisting user settings
- feat: Add shared types and Zod schema for user settings
- fix: Position orchestrator at inferred current phase
- refactor: Consolidate phase-active checks to delegate to isPhasePresentInData
- feat: Show agents at stations before phase data is written
- CODY-41 fix: Correct structural element positioning in the factory scene (#44)
- MAC-35 feat: Add Zod schema validation for run-index.json (#43)
- CODY-34 fix: Accept null phases and criticality in status-adapter (#37)
- CODY-24 feat: Add orchestrator walk transitions along assembly line (#33)
- CODY-28 feat: Auto-refresh projects list with file watching (#32)
- refactor: Remove redundant ternary in camera bounds calculation
- feat: Add multi-level platforms and orchestrator positioning
- CODY-20 feat: Add RunList component with clickable run list in sidebar (#29)
- feat: Show project, ticket, run, status, duration in status  bar
- feat: Persist selected project, ticket, and run in URL
- CODY-7 feat: Add agent movement and status-driven animation transitions (#14)
- CODY-3 fix: Accept no-reason phase decisions in run-index validator (#13)
- fix: Load ImageSource data before engine start
- feat: Add sprite infrastructure and basic animations
- CODY-5 feat: Implement role-type architecture and all-phase agent mapping (#8)
- CODY-3 feat: Support run-index.json (v2) in status adapter (#4)
- fix: Skip missing status.json gracefully and extract shared isEnoent helper
- deps: Use exact version numbers in package.json
- refactor: Extract shared test fixtures and simplify buildGates
- tests: Add test coverage for game actors, FactoryScene, GameCanvas, and mappers
- fix: Fix StationActor graphics, GameCanvas race condition, and poll cleanup
- fix: Add onInitialize lifecycle hook to FactoryScene
- fix: Prevent isLoading flicker during poll cycles
- refactor: Add comment explaining type-narrowing aliases in useRunStatus
- tests: Strengthen error recovery assertions in useRunStatus test
- fix: Fix intervalRef leak on run switch, add missing test coverage
- tests: Add polling behavior tests for useRunStatus hook
- refactor: Remove dead typeof guards, redundant test assertions
- fix: Add route tests, fix ENOENT handling, and harden routes
- refactor: Simplify scanProject with early returns
- fix: Remove dead guard, improve project-scanner coverage
- fix: Fix duplicate tickets & stat check in project scanner
- fix: Reject null phase entries in status-adapter validation
- refactor: Simplify status-adapter validation helpers
- fix: Harden status-adapter type guard and validation

mcp-v0.2.0
- deps: Upgrade all deps to latest minor version
- #443 tooling: Automate replacement of dashed separator comments with headings or region folds (#451)
- deps: Upgrade all deps to latest version
- #376 tooling: Migrate to nmr script runner (#378)
- deps: Upgrade all deps to latest minor version
- tooling: Fix lint in package.json files
- fix: Exclude __tests__/ from staleness check to match compile scope
- refactor: Use preferences cascade for project base path
- #210 test: Add catwalk differ boundary tests for agent (#212)
- #199 feat: Replace orchestration mode system with effort system (#206)
- #163 fix: Resolve artifact base directory from preferences instead of hardcoding project path (#168)
- #160 feat: Warn when compiled output is stale if using development MCP code (#166)
- #152 fix: Fix inconsistent artifact logging (#154)
- #131: Verify end-to-end MCP integration (#151)
- feat: Emit run_failed event when complete_run receives failed status (#150)
- CODY-87 feat: Migrate orchestrator to MCP and v3 events (#133)

run-core-v0.2.0
- deps: Upgrade all deps to latest minor version
- #443 tooling: Automate replacement of dashed separator comments with headings or region folds (#451)
- #427 feat: Add `pick-demo-runs` script to rank archived runs (#436)
- #393 fix: Add bin wrappers to eliminate pnpm install warnings (#394)
- #376 tooling: Migrate to nmr script runner (#378)
- #76 feat: Enable playback of completed orchestrated runs (#344)
- #290 feat: Show waiting-for-input state in factory visualization (#292)
- tooling: Fix lint in package.json files
- fix: Add prepare script to fix bin linking in worktrees
- refactor: Use preferences cascade for project base path
- #217 feat: Create find-orchestration-savings skill to identify token waste (#232)
- #213 feat: Add run directory scanning and refactor ProjectScanner (#221)
- #199 feat: Replace orchestration mode system with effort system (#206)
- #171 feat: Gracefully handle invalid log files in orchestrated-run directories (#174)
- #148 feat: Propagate failure reason from run_failed event to CanonicalRunStatus (#167)
- #136 fix: Fix diagram view crash on undefined reviewers (#138)
- CODY-97 feat: Add React Flow foundation and visualization switcher (#109)
- refactor: Migrate imports to @codeassembly/run-core (#104)
- CODY-85 feat: Create @codeassembly/mcp server with run-data tools (#96)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Added or improved external functionality refactoring Improvement to code without change in functionality scope:agents

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create a merge-pr skill

1 participant