ace-assign 0.71.0 → 0.73.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.ace-defaults/assign/catalog/steps/auto-merge.step.yml +8 -8
- data/.ace-defaults/assign/catalog/steps/create-pr.step.yml +1 -1
- data/.ace-defaults/assign/catalog/steps/mark-pr-ready.step.yml +1 -1
- data/.ace-defaults/assign/config.yml +0 -13
- data/.ace-defaults/assign/presets/fix-bug.yml +1 -1
- data/.ace-defaults/assign/presets/work-on-task-ace-development.yml +1 -1
- data/.ace-defaults/assign/presets/work-on-task-auto-merge.yml +1 -1
- data/.ace-defaults/assign/presets/work-on-task.yml +1 -1
- data/CHANGELOG.md +3 -2119
- data/README.md +58 -31
- data/docs/exit-codes.md +36 -44
- data/docs/getting-started.md +9 -4
- data/docs/usage.md +129 -522
- data/handbook/skills/as-assign-drive/SKILL.md +1 -4
- data/handbook/workflow-instructions/assign/drive.wf.md +47 -195
- data/handbook/workflow-instructions/assign/prepare.wf.md +1 -1
- data/handbook/workflow-instructions/assign/verify-test-suite.wf.md +8 -2
- data/lib/ace/assign/cli/commands/assignment_target.rb +2 -15
- data/lib/ace/assign/cli/commands/create.rb +1 -8
- data/lib/ace/assign/cli/commands/fail.rb +0 -6
- data/lib/ace/assign/cli/commands/finish.rb +2 -23
- data/lib/ace/assign/cli/commands/fork_session.rb +0 -1
- data/lib/ace/assign/cli/commands/select.rb +0 -1
- data/lib/ace/assign/cli/commands/start.rb +0 -2
- data/lib/ace/assign/cli/commands/status.rb +1 -31
- data/lib/ace/assign/cli/commands/step.rb +1 -3
- data/lib/ace/assign/cli.rb +1 -85
- data/lib/ace/assign/errors.rb +8 -80
- data/lib/ace/assign/models/assignment.rb +5 -28
- data/lib/ace/assign/molecules/assignment_manager.rb +0 -26
- data/lib/ace/assign/molecules/fork_session_launcher.rb +4 -12
- data/lib/ace/assign/molecules/lifecycle_exclusion.rb +15 -112
- data/lib/ace/assign/organisms/assignment_executor.rb +0 -6
- data/lib/ace/assign/organisms/task_assignment_creator.rb +3 -8
- data/lib/ace/assign/version.rb +1 -1
- data/lib/ace/assign.rb +0 -6
- metadata +4 -176
- data/.ace-defaults/assign/presets/close-delivery.yml +0 -57
- data/.ace-defaults/assign/presets/deliver-release.yml +0 -60
- data/.ace-defaults/assign/presets/integrate-batch.yml +0 -72
- data/.ace-defaults/assign/presets/supervise-delivery.yml +0 -69
- data/docs/protected-authority.md +0 -282
- data/exe/ace-scope-ready +0 -55
- data/lib/ace/assign/atoms/assignment_scope.rb +0 -58
- data/lib/ace/assign/atoms/attempt_state_machine.rb +0 -84
- data/lib/ace/assign/atoms/candidate_limits.rb +0 -20
- data/lib/ace/assign/atoms/delivery_parameters.rb +0 -19
- data/lib/ace/assign/atoms/evidence_digest.rb +0 -78
- data/lib/ace/assign/atoms/fixed_merge_schemas.rb +0 -398
- data/lib/ace/assign/atoms/git_blob_batch.rb +0 -59
- data/lib/ace/assign/authority/assignment_definition.rb +0 -35
- data/lib/ace/assign/authority/assignment_inventory.rb +0 -290
- data/lib/ace/assign/authority/campaign_consumer_policy.rb +0 -100
- data/lib/ace/assign/authority/campaign_execution.rb +0 -119
- data/lib/ace/assign/authority/campaign_round_transfer.rb +0 -82
- data/lib/ace/assign/authority/candidate_blob_batch.rb +0 -55
- data/lib/ace/assign/authority/candidate_head_comparison.rb +0 -139
- data/lib/ace/assign/authority/candidate_transfer.rb +0 -357
- data/lib/ace/assign/authority/cleanup_result_protection.rb +0 -53
- data/lib/ace/assign/authority/client.rb +0 -257
- data/lib/ace/assign/authority/command_execution.rb +0 -180
- data/lib/ace/assign/authority/deployment.rb +0 -627
- data/lib/ace/assign/authority/deployment_history.rb +0 -146
- data/lib/ace/assign/authority/endcap.rb +0 -457
- data/lib/ace/assign/authority/endcap_attempts.rb +0 -274
- data/lib/ace/assign/authority/endcap_campaign_results.rb +0 -232
- data/lib/ace/assign/authority/endcap_campaign_rounds.rb +0 -266
- data/lib/ace/assign/authority/endcap_contexts.rb +0 -23
- data/lib/ace/assign/authority/endcap_inboxes.rb +0 -37
- data/lib/ace/assign/authority/endcap_prepared_work.rb +0 -80
- data/lib/ace/assign/authority/endcap_publication.rb +0 -41
- data/lib/ace/assign/authority/endcap_results.rb +0 -398
- data/lib/ace/assign/authority/endcap_review_requests.rb +0 -183
- data/lib/ace/assign/authority/endcap_reviews.rb +0 -130
- data/lib/ace/assign/authority/endcap_service_context.rb +0 -38
- data/lib/ace/assign/authority/endcap_service_settlement.rb +0 -152
- data/lib/ace/assign/authority/evidence_transfer.rb +0 -67
- data/lib/ace/assign/authority/execution_scope_observation.rb +0 -903
- data/lib/ace/assign/authority/fixed_publication_lifecycle.rb +0 -176
- data/lib/ace/assign/authority/fixed_service_lifecycle.rb +0 -594
- data/lib/ace/assign/authority/inbox_context_original.rb +0 -113
- data/lib/ace/assign/authority/launch_attempt_consumers.rb +0 -51
- data/lib/ace/assign/authority/launch_campaign_registration.rb +0 -214
- data/lib/ace/assign/authority/launch_control_channel.rb +0 -313
- data/lib/ace/assign/authority/launch_control_exclusions.rb +0 -127
- data/lib/ace/assign/authority/launch_driver.rb +0 -393
- data/lib/ace/assign/authority/launch_input_inhibition.rb +0 -132
- data/lib/ace/assign/authority/launch_lifecycle.rb +0 -997
- data/lib/ace/assign/authority/launch_prepared_work.rb +0 -122
- data/lib/ace/assign/authority/launch_review.rb +0 -91
- data/lib/ace/assign/authority/launch_scope_abort.rb +0 -81
- data/lib/ace/assign/authority/launch_scope_admission.rb +0 -215
- data/lib/ace/assign/authority/launch_scope_close.rb +0 -146
- data/lib/ace/assign/authority/launch_scope_parent.rb +0 -44
- data/lib/ace/assign/authority/launch_scope_release.rb +0 -859
- data/lib/ace/assign/authority/launch_steering.rb +0 -353
- data/lib/ace/assign/authority/launch_stop.rb +0 -254
- data/lib/ace/assign/authority/maintenance_workspace_retirement.rb +0 -229
- data/lib/ace/assign/authority/ordinary_attempt_start.rb +0 -137
- data/lib/ace/assign/authority/ordinary_client.rb +0 -70
- data/lib/ace/assign/authority/ordinary_completion.rb +0 -104
- data/lib/ace/assign/authority/ordinary_effect_settlement.rb +0 -118
- data/lib/ace/assign/authority/ordinary_lifecycle.rb +0 -227
- data/lib/ace/assign/authority/ordinary_merge_evidence.rb +0 -81
- data/lib/ace/assign/authority/ordinary_peer.rb +0 -54
- data/lib/ace/assign/authority/ordinary_progress.rb +0 -162
- data/lib/ace/assign/authority/ordinary_queue.rb +0 -115
- data/lib/ace/assign/authority/ordinary_release_artifacts.rb +0 -143
- data/lib/ace/assign/authority/ordinary_results.rb +0 -206
- data/lib/ace/assign/authority/ordinary_review_evidence.rb +0 -180
- data/lib/ace/assign/authority/ordinary_reviews.rb +0 -214
- data/lib/ace/assign/authority/ordinary_server.rb +0 -75
- data/lib/ace/assign/authority/ordinary_supervisor.rb +0 -99
- data/lib/ace/assign/authority/original_inbox_selection.rb +0 -41
- data/lib/ace/assign/authority/posix_acl.rb +0 -59
- data/lib/ace/assign/authority/prepared_input.rb +0 -130
- data/lib/ace/assign/authority/prepared_queue.rb +0 -185
- data/lib/ace/assign/authority/prepared_task_context.rb +0 -116
- data/lib/ace/assign/authority/prepared_work.rb +0 -309
- data/lib/ace/assign/authority/prepared_worker.rb +0 -69
- data/lib/ace/assign/authority/private_directory.rb +0 -33
- data/lib/ace/assign/authority/protected_assignment_context.rb +0 -226
- data/lib/ace/assign/authority/readiness_hook.rb +0 -120
- data/lib/ace/assign/authority/receipt_transfer.rb +0 -48
- data/lib/ace/assign/authority/release_artifact_manifest.rb +0 -91
- data/lib/ace/assign/authority/retained_input.rb +0 -53
- data/lib/ace/assign/authority/router.rb +0 -81
- data/lib/ace/assign/authority/server.rb +0 -131
- data/lib/ace/assign/authority/service_cleanup_dispatch.rb +0 -88
- data/lib/ace/assign/authority/service_cleanup_evidence.rb +0 -180
- data/lib/ace/assign/authority/service_delivery_evidence.rb +0 -101
- data/lib/ace/assign/authority/service_evidence.rb +0 -286
- data/lib/ace/assign/authority/service_publication_evidence.rb +0 -110
- data/lib/ace/assign/authority/socket_server.rb +0 -255
- data/lib/ace/assign/authority/task_context_entry.rb +0 -32
- data/lib/ace/assign/authority/transfer_codec.rb +0 -189
- data/lib/ace/assign/cli/commands/attempt/base.rb +0 -84
- data/lib/ace/assign/cli/commands/attempt/evidence.rb +0 -28
- data/lib/ace/assign/cli/commands/attempt/finish.rb +0 -51
- data/lib/ace/assign/cli/commands/attempt/reconcile.rb +0 -49
- data/lib/ace/assign/cli/commands/attempt/start.rb +0 -45
- data/lib/ace/assign/cli/commands/attempt/status.rb +0 -54
- data/lib/ace/assign/cli/commands/authority/inbox_context_principal.rb +0 -25
- data/lib/ace/assign/cli/commands/authority/inbox_context_selection.rb +0 -28
- data/lib/ace/assign/cli/commands/authority/launch.rb +0 -97
- data/lib/ace/assign/cli/commands/authority/serve.rb +0 -31
- data/lib/ace/assign/cli/commands/authority/status.rb +0 -26
- data/lib/ace/assign/cli/commands/authority/task_context.rb +0 -31
- data/lib/ace/assign/cli/commands/authority/task_context_principal.rb +0 -25
- data/lib/ace/assign/cli/commands/authority/task_context_selection.rb +0 -30
- data/lib/ace/assign/cli/commands/authority/terminate.rb +0 -29
- data/lib/ace/assign/cli/commands/authority/worker.rb +0 -23
- data/lib/ace/assign/cli/commands/campaign_export_result.rb +0 -55
- data/lib/ace/assign/cli/commands/campaign_record_round.rb +0 -57
- data/lib/ace/assign/cli/commands/delivery.rb +0 -107
- data/lib/ace/assign/cli/commands/inbox_bind.rb +0 -34
- data/lib/ace/assign/cli/commands/protected_submission.rb +0 -61
- data/lib/ace/assign/cli/commands/resume.rb +0 -38
- data/lib/ace/assign/cli/commands/submit_candidate.rb +0 -34
- data/lib/ace/assign/cli/commands/submit_result.rb +0 -61
- data/lib/ace/assign/models/attempt.rb +0 -178
- data/lib/ace/assign/models/attempt_binding.rb +0 -116
- data/lib/ace/assign/models/evidence_event.rb +0 -86
- data/lib/ace/assign/models/execution_receipt.rb +0 -139
- data/lib/ace/assign/molecules/attempt_reconciler.rb +0 -127
- data/lib/ace/assign/molecules/attempt_store.rb +0 -201
- data/lib/ace/assign/molecules/canonical_attempt_state.rb +0 -151
- data/lib/ace/assign/molecules/canonical_evidence.rb +0 -170
- data/lib/ace/assign/molecules/canonical_read_commands.rb +0 -84
- data/lib/ace/assign/molecules/canonical_read_snapshot.rb +0 -313
- data/lib/ace/assign/molecules/evidence_calculator.rb +0 -237
- data/lib/ace/assign/molecules/evidence_journal.rb +0 -1899
- data/lib/ace/assign/molecules/execution_identity_resolver.rb +0 -137
- data/lib/ace/assign/molecules/execution_scope_lineage.rb +0 -345
- data/lib/ace/assign/molecules/fixed_effect_reference.rb +0 -31
- data/lib/ace/assign/molecules/installed_journal_read.rb +0 -143
- data/lib/ace/assign/molecules/journal_input_inhibition.rb +0 -78
- data/lib/ace/assign/molecules/journal_mutation.rb +0 -274
- data/lib/ace/assign/molecules/journal_prompt_mutation.rb +0 -241
- data/lib/ace/assign/molecules/ordinary_merge_cli.rb +0 -68
- data/lib/ace/assign/molecules/ordinary_merge_contract.rb +0 -410
- data/lib/ace/assign/molecules/original_launch_binding.rb +0 -37
- data/lib/ace/assign/molecules/proposal_journal.rb +0 -179
- data/lib/ace/assign/molecules/protected_control_exclusion.rb +0 -303
- data/lib/ace/assign/molecules/protected_workspace_exclusion.rb +0 -330
- data/lib/ace/assign/molecules/protected_workspace_provisioner.rb +0 -164
- data/lib/ace/assign/molecules/receipt_verifier.rb +0 -320
- data/lib/ace/assign/molecules/terminal_scope_receipt.rb +0 -88
- data/lib/ace/assign/organisms/attempt_coordinator.rb +0 -1374
- data/lib/ace/assign/organisms/delivery_coordinator.rb +0 -342
- data/lib/ace/assign/organisms/ordinary_driver.rb +0 -310
- data/lib/ace/assign/organisms/ordinary_merge_consumer.rb +0 -365
- data/lib/ace/assign/organisms/prepared_work_builder.rb +0 -194
- data/lib/ace/assign/organisms/protected_delivery_coordinator.rb +0 -100
data/CHANGELOG.md
CHANGED
|
@@ -7,2126 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
## [0.71.0] - 2026-10-16
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
- Compare two independently retained candidate bundles through bounded bare Git object reads, including nonancestor rebases, full context inventories, binary patches and historical symlink bytes without executing or materializing candidate code.
|
|
15
|
-
- Ground candidate and assignment-snapshot wire/expansion ceilings in closed 128MiB budgets backed by a shared fixed `cat-file --batch` codec, explicit 20,000-object bounds (per tree inventory and across the comparison's unique-blob union), and chunked batch reads instead of one Git process per blob; historical journal reads reuse the same codec.
|
|
16
|
-
- Bound candidate, prepared and head-comparison tree paths to finite total/component lengths (4096/255 bytes) before any inventory, delta or filesystem prefix work, so a hostile tree cannot push unbounded path bytes into inventories or directory creation.
|
|
17
|
-
- Retain built ordinary release gems as canonical binary evidence bound to the actual native producer, current accepted candidate, independent review and exact release decision. Recheck authorization on replay; preserve report limits and keep publication dispatch separate.
|
|
18
|
-
- Admit ordinary candidates and independently started native reviewers into the canonical journal. Revalidate original review artifacts and root-witnessed test executions before fixed merge admission and effects; preserve strict protected-review attribution.
|
|
19
|
-
- Drive ordinary work through the installed canonical owner with retained requests, accepted context snapshots and result adoption. Record coordinator replacement in the existing definition chain only after positive old-process termination; preserve worker attempts and reject stale supervisor completion.
|
|
20
|
-
|
|
21
|
-
### Fixed
|
|
22
|
-
|
|
23
|
-
- Preserve exact lost-response result replay while allowing canonical-generation CAS conflicts to recover without replacing original inputs.
|
|
24
|
-
|
|
25
|
-
### Changed
|
|
26
|
-
|
|
27
|
-
- Keep protected launch identity construction and comparison in its boundary owner while shared fixed service transitions reuse the same checks.
|
|
28
|
-
- Require ace-review 0.61 for the shared complete-head-context ceiling; raise the candidate transfer deadline from 30s to a measured 60s with byte/count bounds unchanged (two full admits plus the complete comparison of the real 82,809,675-byte candidate legitimately need 23–27s on a loaded host; 30s failed closed under recorded load).
|
|
29
|
-
|
|
30
|
-
## [0.70.0] - 2026-10-16
|
|
31
|
-
|
|
32
|
-
### Added
|
|
33
|
-
|
|
34
|
-
- Admit ordinary assignments, native starts, progress, submitted results and terminal settlement through the installed canonical owner. Retain original mutations and immutable snapshots across restart, isolate sibling scopes, and join current HITL, service and Inbox evidence.
|
|
35
|
-
- Preserve historical review checks at their recorded head and align delivery presets with accepted-head assessment and serial integration.
|
|
36
|
-
|
|
37
|
-
## [0.69.0] - 2026-10-16
|
|
38
|
-
|
|
39
|
-
### Changed
|
|
40
|
-
|
|
41
|
-
- Require ace-review 0.60.2 to keep the coordinated Forgejo 0.7 dependency graph compatible.
|
|
42
|
-
|
|
43
|
-
### Added
|
|
44
|
-
|
|
45
|
-
- Expose read-only `AttemptCoordinator#fixed_merge_records` so the ordinary merge receiver can reconcile its pending canonical records after restart without another journal or repeated effect.
|
|
46
|
-
|
|
47
|
-
## [0.68.0] - 2026-10-14
|
|
48
|
-
|
|
49
|
-
### Added
|
|
50
|
-
|
|
51
|
-
- Admit ordinary fixed merge requests through the maintained `ace-lab service request/status --mode ordinary-merge` producer via the closed-argv `OrdinaryMergeCli`, with opaque-reference recovery, exact terminal receipt acceptance, and the canonical request digest defined as lowercase SHA-256 over the full eight-field immutable binding per spec ruling r4 — re-derived from the recorded binding on every poll and validated against every acknowledgment, refusal, status, and receipt echo.
|
|
52
|
-
- Add fixed merge request schemas, opaque fixed-effect references, evidence-journal records, and coordinator primitives (admit/begin/settle/read-only status) so the canonical Assign attempt/evidence state remains the sole durable record: an identical resubmission replays the original acknowledgment, a reused, consumed, expired, or out-of-scope authorization raises the distinct `AuthorizationConflict`, and a restarted receiver can never begin the effect twice.
|
|
53
|
-
|
|
54
|
-
## [0.67.0] - 2026-10-12
|
|
55
|
-
|
|
56
|
-
### Added
|
|
57
|
-
|
|
58
|
-
- Add project-adaptable delivery supervision presets for dependency-aware queue decisions, renewed-evidence integration batches, immutable release cuts, and evidence-preserving closure.
|
|
59
|
-
|
|
60
|
-
## [0.66.1] - 2026-10-10
|
|
61
|
-
|
|
62
|
-
### Fixed
|
|
63
|
-
|
|
64
|
-
- Require the published producer and consumer patch versions containing the protected context and managed-attempt APIs; exclude incompatible prior dependency graphs.
|
|
65
|
-
|
|
66
|
-
## [0.66.0] - 2026-10-08
|
|
67
|
-
|
|
68
|
-
### Added
|
|
69
|
-
|
|
70
|
-
- Connect protected PR delivery and parent/child campaign results to the canonical assignment owner, with current candidate checks, independent review and original operation authorization.
|
|
71
|
-
- Launch authenticated prepared workers through the existing ace-llm provider CLI in the original terminal.
|
|
72
|
-
|
|
73
|
-
### Changed
|
|
74
|
-
|
|
75
|
-
- Remove message-read proofs, observation/signing APIs and Inbox settlement requirements from finish, recovery and stop. Retain actual service/result/review evidence and whole-scope writer checks.
|
|
76
|
-
- Reuse verified immutable journal inventories only within a single operation while retaining fresh admission and compare-and-swap checks.
|
|
77
|
-
- Preserve original workspace leases when provider ownership or shutdown is uncertain.
|
|
78
|
-
|
|
79
|
-
## [0.65.0] - 2026-10-06
|
|
80
|
-
|
|
81
|
-
### Added
|
|
82
|
-
|
|
83
|
-
- Source-only protected original/candidate deployment inventory and shared execution-slot exclusions with immutable journal snapshots; full maintenance eligibility and retirement remain unavailable until historical authentication and current inventory verification are connected.
|
|
84
|
-
|
|
85
|
-
## [0.64.0] - 2026-10-05
|
|
86
|
-
|
|
87
|
-
### Added
|
|
88
|
-
|
|
89
|
-
- Connect fixed execution-slot parent activation to canonical sealing, exact never-native-admitted closure, guarded abort, durable reservation release and restart-safe reuse. Native service admission refuses unavailable readiness evidence; admitted and post-native positive closure and complete installer maintenance remain unfinished.
|
|
90
|
-
|
|
91
|
-
- Register canonical execution-scope binding, seal and empty-observation events with an immutable exact-lineage reader. Missing, changed or corrupt generation/proof identities refuse; live scope verification and terminal handlers remain separate owners.
|
|
92
|
-
|
|
93
|
-
- Submit immutable private canonical worker results and fetch one purpose-authorized artifact through the existing authority Client, with retained services status discovery and exact download descriptor validation. Full-service startup remains guarded.
|
|
94
|
-
|
|
95
|
-
- Validate fixed service receiver principals and private placement before authority startup, refusing ambiguous roles, overlapping ownership and inaccessible endpoints.
|
|
96
|
-
|
|
97
|
-
- Add the public protected assignment authority and gated launch driver with canonical reservation, exact binding, one durable release, replay refusal and conservative crash recovery.
|
|
98
|
-
|
|
99
|
-
- Resolve immutable second-commander proposals through confirmed-delivery sixteen-hour policy and canonical Assign authorization.
|
|
100
|
-
- Atomic execution-ref mutation/import primitives with exact reply replay and canonical artifact binding/provenance verification. Intent-only attempts remain reserved until a real process-start fact.
|
|
101
|
-
- Resume from accepted attempt history without relaunch/replay; consume signed inbox observations in the existing journal and preserve unknown owner/effect state.
|
|
102
|
-
|
|
103
|
-
- Attempt-bound, provider-neutral delivery records draft creation, update and readiness in the existing evidence journal; lost responses reconcile exact remote identity without repeating writes. Readiness consumes accepted current test and independent review evidence, and merge consumes the existing authorized service receipt.
|
|
104
|
-
- Explicit forge selection and canonical/fork provenance for remote assignment creation; local assignments reject unused delivery inputs.
|
|
105
|
-
|
|
106
|
-
### Changed
|
|
107
|
-
|
|
108
|
-
- Declare the required direct dependencies and minimum producer versions for this coordinated release: `ace-git ~> 0.29`, `ace-herdr ~> 0.4`, `ace-llm-providers-cli ~> 0.36.1`, `ace-review ~> 0.59`, `ace-runtime ~> 0.2`, `ace-support-fs ~> 0.3`.
|
|
109
|
-
|
|
110
|
-
- Align prepare/drive discovery and draft creation instructions with the canonical neutral PR skills and attempt-bound delivery command.
|
|
111
|
-
|
|
112
|
-
- Expose read-only runtime_binding for an active accepted attempt using the existing native/process authority, refusing missing, dead, changed or unrelated owner evidence.
|
|
113
|
-
|
|
114
|
-
### Fixed
|
|
115
|
-
|
|
116
|
-
- Reject duplicate keys and comments in guarded scope-abort evidence using the required strict JSON parser, and preserve canonical slot ownership after child-only failure until whole-scope cleanup is proven.
|
|
117
|
-
|
|
118
|
-
- Attribute local attempts to the kernel process account instead of terminal login/environment; refuse unresolved accounts, privilege transitions and changing credentials.
|
|
119
|
-
- Commit proposal supersession and the new revision atomically with canonical operation replay and unresolved-effect claim exclusion.
|
|
120
|
-
|
|
121
|
-
- Enforce global proposal identity ownership and immutable prepared lifecycle projection in the sole canonical proposal journal.
|
|
122
|
-
- Refuse finish receipts for unbound reservations before terminal acceptance, and preserve exact canonical import bytes across Git filters and CRLF conversion.
|
|
123
|
-
|
|
124
|
-
- Clean failed evidence transactions at every shared journal writer boundary; preserve unbound launch reservations and report explicit recovery evidence requirements.
|
|
125
|
-
|
|
126
|
-
- Retain delivery context across scoped attempts and distinguish a recovered prior effect from a new request with different content or evidence before reporting completion.
|
|
127
|
-
|
|
128
|
-
## [0.63.1] - 2026-10-04
|
|
129
|
-
|
|
130
|
-
### Changed
|
|
131
|
-
|
|
132
|
-
- Install both Herdr and tmux runtime adapters for standalone runtime switching, through an acyclic dependency graph.
|
|
133
|
-
|
|
134
|
-
### Fixed
|
|
135
|
-
|
|
136
|
-
- Run terminal fork invocations as children of the prepared shell, retaining the same writable pane after a command exits.
|
|
137
|
-
|
|
138
|
-
- Managed assignment status JSON tests run against test-owned repositories and evidence journals instead of the invoking checkout's journal, evidence ref, or worktree registrations (task 8ws.t.ibk). A sentinel-based invariance test asserts the ambient repository's refs, registrations, and files stay untouched, and fixture journals cover absent, seed-only, and stale-checkout states.
|
|
139
|
-
|
|
140
|
-
## [0.63.0] - 2026-10-04
|
|
141
|
-
|
|
142
|
-
### Added
|
|
143
|
-
- Runtime-neutral fork launches: `launch_mode` gains `herdr` and `auto` detects the live terminal runtime (tmux first, then herdr; headless only outside any runtime). `TmuxControlSurfaceRunner` is replaced by the contract-backed `RuntimeControlSurfaceRunner`; fork windows/panes, sends, captures, and session metadata are runtime-neutral (`runtime`/`session`/`window`/`window_id`/`pane` replace the `tmux_*` metadata keys), and `--callback` works under herdr. Fork children now receive `ACE_RUNTIME` instead of `ACE_TMUX_SESSION` propagation, and the drive workflow callback rule prescribes `ace-runtime send`.
|
|
144
|
-
- New dependency: `ace-runtime` (~> 0.1); `ace-tmux` is kept to install the tmux adapter.
|
|
145
|
-
|
|
146
|
-
## [0.62.0] - 2026-10-04
|
|
147
|
-
|
|
148
|
-
### Added
|
|
149
|
-
- **Lock-scoped external attempt authority (spec 8wq.t.34i)**: `AttemptCoordinator#with_verified_attempt` verifies that a managed attempt is live (reserved/running — uncertainty never grants external authority), bound to the exact assignment/project, and owned by the requesting actor, holding the assignment `LifecycleExclusion` shared side across the caller's whole locked transition. `finish` and `reconcile` hold the exclusive side across their terminal commits, so a liveness check can never observe an attempt as active after the terminal event landed (and vice versa). This is the authority behind ace-hitl's managed HITL request binding.
|
|
150
|
-
|
|
151
|
-
## [0.61.1] - 2026-10-02
|
|
152
|
-
|
|
153
|
-
### Fixed
|
|
154
|
-
- Historical evidence reads (`--historical-head`) validate acceptance from the append-only journal without re-hashing receipt artifacts, so campaigns that resolve findings mid-campaign (archiving and annotating the referenced files) can still finish; current-head reads keep full artifact re-verification.
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
## [0.61.0] - 2026-10-02
|
|
158
|
-
|
|
159
|
-
### Added
|
|
160
|
-
|
|
161
|
-
- Journal-backed service request claims, terminal receipts, and uncertainty
|
|
162
|
-
tracking. Assignment evidence now exposes unresolved service effects and
|
|
163
|
-
the latest evidence ref commit without changing the candidate head.
|
|
164
|
-
|
|
165
|
-
### Fixed
|
|
166
|
-
|
|
167
|
-
- Validate terminal service receipts against the exact claimed request and
|
|
168
|
-
executor evidence before accepting them in the assignment journal.
|
|
169
|
-
|
|
170
|
-
### Technical
|
|
171
|
-
|
|
172
|
-
- Updated the ace-tmux dependency to the 0.18 adapter release line.
|
|
173
|
-
|
|
174
|
-
## [0.60.0] - 2026-10-01
|
|
175
|
-
|
|
176
|
-
### Fixed
|
|
177
|
-
- Preserve task/project attachment when the public assignment creation path archives its source configuration, so managed attempts retain immutable journal authority.
|
|
178
|
-
- Cache-free evidence lookup handles a seed-only journal ref without creating a checkout or treating an absent attempt as a corrupt journal.
|
|
179
|
-
|
|
180
|
-
### Added
|
|
181
|
-
- `attempt evidence --kind review-approval` validates accepted independent approval separately from collection; retained collection/approval receipts support explicit historical-head validation without granting current check authority.
|
|
182
|
-
- Bind campaign check names to accepted executed operations and review collection to accepted `review-collect` artifacts, through `attempt evidence` purpose checks.
|
|
183
|
-
|
|
184
|
-
- `ace-assign attempt evidence` exposes read-only coordinator-accepted current-head check proof. Journal reads use immutable Git objects without writing cache/audit checkout state.
|
|
185
|
-
- Review receipts may consume a durable ace-review campaign result. The existing coordinator still validates authority, live head, independent reviewer, executed checks and artifact digests; stale or conflicting campaign snapshots are rejected.
|
|
186
|
-
|
|
187
|
-
## [0.59.0] - 2026-09-29
|
|
188
|
-
|
|
189
|
-
### Added
|
|
190
|
-
- Durable lifecycle exclusion (`Ace::Assign::Molecules::LifecycleExclusion`): prune holds the exclusive side from final evidence reads through removal while every supported start path -- attempt registration, fork/driver session launch, and worktree provisioning -- holds the shared side. Locks live outside every deletion target (sandbox-aware cache base or the shared Git common dir) so they survive removal of the target, and a `removed` marker makes post-prune starts fail closed instead of recreating a deleted identity.
|
|
191
|
-
|
|
192
|
-
### Changed
|
|
193
|
-
- `AttemptCoordinator#start` and `ForkSessionLauncher#launch` now participate in the prune exclusion: a concurrent prune blocks new writers for the identity, and a start targeting a pruned assignment raises a conflict instead of writing into a recreated path.
|
|
194
|
-
|
|
195
|
-
## [0.58.0] - 2026-09-28
|
|
196
|
-
|
|
197
|
-
### Added
|
|
198
|
-
- Durable assignment attempts: `ace-assign attempt start|status|finish|reconcile` bind an immutable attempt ID to an assignment step/subtree, project, boundary-derived actor identity, and `base_head`, with a `reserved -> running -> succeeded/failed/stopped/uncertain` lifecycle and conservative reconciliation of interruptions (no automatic replay of merge/publish/deploy).
|
|
199
|
-
- Managed attempts journal accepted execution evidence to the configured evidence Git ref (default `refs/ace/execution`) through an isolated audit checkout with flock serialization and expected-old-value `git update-ref` compare-and-swap; `refs/ace/execution` never advances the deliverable candidate branch.
|
|
200
|
-
- Structured execution receipts: verifiable artifact digests, executed checks, executed independent reviewer verdicts for the exact current head, and rejection of credentials/terminal output in accepted evidence.
|
|
201
|
-
- `ace-assign status` (JSON) now includes the active attempt, `base_head`, `candidate_head`, `evidence_git_ref`, `journal_commit`, and unresolved effects.
|
|
202
|
-
|
|
203
|
-
### Changed
|
|
204
|
-
- BREAKING: delivery evidence is derived exclusively from accepted, current-head journal receipts. The previous interpretation that a current `.ace-local/review`/`.ace-local/release` report plus hardcoded `terminal` feedback authorizes merge is removed; `merge_decision` is now `authorized` or `approval-required` (never `report-only`). Existing `EvidenceCalculator` consumers must read evidence from attempts.
|
|
205
|
-
- BREAKING: taskless assignments persist attempts locally (`recovery_mode: local_only`), never claim Git-backed recovery, and cannot record external effects until attached to a source task.
|
|
206
|
-
- New `attempt` error family exits with code 5 (conflict, rejected receipt, unauthorized identity, unavailable evidence, illegal attempt state).
|
|
207
|
-
|
|
208
|
-
## [0.57.1] - 2026-09-27
|
|
209
|
-
|
|
210
|
-
### Technical
|
|
211
|
-
- Stop depending on the removed review-fit preset step in tests.
|
|
212
|
-
|
|
213
|
-
## [0.57.0] - 2026-09-24
|
|
214
|
-
|
|
215
|
-
### Changed
|
|
216
|
-
|
|
217
|
-
- Delegate PR review rounds to the shared review workflow instead of duplicating fixed cycles in assignments.
|
|
218
|
-
- Create PRs as drafts and update their descriptions before marking them ready after review; no separate coverage receipt or SHA gate.
|
|
219
|
-
|
|
220
|
-
## [0.56.1] - 2026-09-02
|
|
221
|
-
|
|
222
|
-
### Technical
|
|
223
|
-
- Included in the coordinated all-package patch release preparation for ACE monorepo review.
|
|
224
|
-
## [0.56.0] - 2026-08-13
|
|
225
|
-
### Added
|
|
226
|
-
- Calculate exact-head evidence for status
|
|
227
|
-
- Add outcome-based task presets
|
|
228
|
-
### Fixed
|
|
229
|
-
- Resolve PR 316 findings and finalize cleanup proofs
|
|
230
|
-
|
|
231
|
-
## [0.55.2] - 2026-08-12
|
|
232
|
-
|
|
233
|
-
### Technical
|
|
234
|
-
- Raised the `ace-support-core` dependency floor to `~> 0.31` after the principles-first bootstrap guidance release.
|
|
235
|
-
## [0.55.1] - 2026-08-12
|
|
236
|
-
|
|
237
|
-
### Technical
|
|
238
|
-
- Aligned gemspec dependency floors with current ACE package minor release lines and safe external minor dependency bumps (no major version jumps).
|
|
239
|
-
|
|
240
|
-
## [0.55.0] - 2026-04-23
|
|
241
|
-
|
|
242
|
-
### Changed
|
|
243
|
-
- Migrated tmux-backed `fork-run` orchestration to consume the shared `ace-tmux` runtime/control surface instead of maintaining a private `ace-assign` tmux runner.
|
|
244
|
-
- Added step-level `fork.mode` plus config-level `execution.launch_mode` so `ace-assign fork-run` can default subtree launch behavior to `auto`, `headless`, or `tmux` while still letting `--launch-mode` override both.
|
|
245
|
-
- Added `ace-assign fork-run --callback` for tmux-backed parent/child agent flows so a fork can capture the origin pane, launch the child subtree, and let the child send one final status sentence back with `ace-tmux send` instead of keeping the parent on a polling loop.
|
|
246
|
-
- Updated the `/as-assign-drive` fork workflow contract to document callback-mode idle waiting, direct `ace-tmux send` callback delivery, and assignment-state recovery when a callback is missing on re-entry.
|
|
247
|
-
|
|
248
|
-
### Fixed
|
|
249
|
-
- Updated the `ace-tmux` runtime dependency constraint to `~> 0.17` so assignment tmux delegation stays aligned with the new runtime inspection release line.
|
|
250
|
-
|
|
251
|
-
### Technical
|
|
252
|
-
- Kept assignment queue state as the authoritative fork completion signal while limiting tmux pane capture to launch and failure diagnostics.
|
|
253
|
-
- Persisted fork callback pane metadata in tmux session files, exported it into tmux fork launch environments as `ACE_ASSIGN_CALLBACK_PANE`, and added command/launcher/runner contract coverage for the new non-blocking callback path.
|
|
254
|
-
- Added parser/model/launcher/command regression coverage for launch-mode precedence across CLI, step frontmatter, and assign config defaults.
|
|
255
|
-
|
|
256
|
-
## [0.53.4] - 2026-04-20
|
|
257
|
-
|
|
258
|
-
### Technical
|
|
259
|
-
- Tightened `TS-ASSIGN-002` hierarchy E2E contracts so auto-completion uses derived assignment IDs, valid cross-assignment `finish --assignment` syntax, and explicit scoped status artifacts for subtree verification.
|
|
260
|
-
- Clarified `ace-assign finish` usage docs so positional step targeting is reserved for the active assignment while cross-assignment/scoped completion uses `--assignment <id[@step]>`.
|
|
261
|
-
|
|
262
|
-
## [0.53.3] - 2026-04-18
|
|
263
|
-
|
|
264
|
-
### Technical
|
|
265
|
-
- Corrected `TS-ASSIGN-001` lifecycle fixture-path guidance so Goal 1 resolves the real sandbox fixture files and no longer records a false create failure before the lifecycle flow completes.
|
|
266
|
-
|
|
267
|
-
## [0.53.2] - 2026-04-16
|
|
268
|
-
|
|
269
|
-
### Technical
|
|
270
|
-
- Reworked retained fork-context E2E capture around explicit regular, fork, return, and final checkpoints so lifecycle transitions are proven from stable artifacts instead of generic completion text.
|
|
271
|
-
|
|
272
|
-
## [0.53.1] - 2026-04-16
|
|
273
|
-
|
|
274
|
-
### Fixed
|
|
275
|
-
- Hid failed retry history from compact `ace-assign status` pending previews after assignment completion so terminal state no longer mixes `Status: completed` with a misleading `Pending steps:` block.
|
|
276
|
-
|
|
277
|
-
### Technical
|
|
278
|
-
- Added a status-command regression covering completed assignments with failed retry ancestry and validated the retained lifecycle E2E path against the corrected compact status output.
|
|
279
|
-
|
|
280
|
-
## [0.53.0] - 2026-04-15
|
|
281
|
-
|
|
282
|
-
### Changed
|
|
283
|
-
- Rewrote retained assignment E2E runner/verifier contracts to emphasize public command journeys and impact-first state oracles over rigid capture choreography.
|
|
284
|
-
- Added `TS-ASSIGN-003` operations coverage for multi-assignment operator flow and scoped `fork-run` delegation behavior.
|
|
285
|
-
|
|
286
|
-
### Technical
|
|
287
|
-
- Refreshed hierarchy/lifecycle/fork scenario guidance so debug artifacts remain fallback evidence and CLI-visible status transitions are primary evidence.
|
|
288
|
-
|
|
289
|
-
## [0.52.0] - 2026-04-15
|
|
290
|
-
|
|
291
|
-
### Changed
|
|
292
|
-
- Tightened the committed tmux fork demo contract so the recording is aimed at the visible `work -> work-fs -> agent starts working` transition instead of a synthetic transcript.
|
|
293
|
-
|
|
294
|
-
### Technical
|
|
295
|
-
- Made tmux fork wrappers print the translated skill handoff before launching the interactive agent, keeping the fork pane bootstrap visible and testable.
|
|
296
|
-
|
|
297
|
-
## [0.51.0] - 2026-04-15
|
|
298
|
-
|
|
299
|
-
### Changed
|
|
300
|
-
- Reworked tmux fork execution to start a real interactive agent session via `ace-llm --interactive` in the `<current-window>-fs` pane and auto-send the scoped `/as-assign-drive <assignment>@<root>` handoff instead of running the old headless fork-session wrapper in tmux.
|
|
301
|
-
|
|
302
|
-
### Technical
|
|
303
|
-
- Switched tmux fork completion tracking from pane-process exit to subtree-state polling so interactive agents can stay open while forked assignment progress is still tracked to completion.
|
|
304
|
-
|
|
305
|
-
## [0.50.3] - 2026-04-15
|
|
306
|
-
|
|
307
|
-
### Fixed
|
|
308
|
-
- Fixed tmux fork-window lookup by correcting `TmuxForkRunner` result normalization, so explicit-session launches resolve the current window instead of failing under detached-session demo/recording runs.
|
|
309
|
-
|
|
310
|
-
### Changed
|
|
311
|
-
- Refined the committed `fork-provider` asciinema tape/setup and refreshed the demo artifacts (`.gif`, `.cast`, and recording manifest) after rerunning the verified tmux fork demo against PR-ready behavior.
|
|
312
|
-
|
|
313
|
-
## [0.50.2] - 2026-04-15
|
|
314
|
-
|
|
315
|
-
### Fixed
|
|
316
|
-
- Resolved tmux-backed fork window detection when `ACE_TMUX_SESSION` is set without a live `TMUX` variable, so visible fork demos and detached-session launches still resolve the current window correctly.
|
|
317
|
-
|
|
318
|
-
### Changed
|
|
319
|
-
- Replaced the stale `fork-provider` demo tape with an asciinema/YAML recording that verifies the real `work -> work-fs` tmux fork transition.
|
|
320
|
-
|
|
321
|
-
## [0.50.1] - 2026-04-15
|
|
322
|
-
|
|
323
|
-
### Changed
|
|
324
|
-
- Refreshed the tmux-backed fork demo asset so the recorded flow starts in the operator work window and visibly opens the fork staging window during `fork-run`.
|
|
325
|
-
|
|
326
|
-
## [0.50.0] - 2026-04-15
|
|
327
|
-
|
|
328
|
-
### Changed
|
|
329
|
-
- Added `ace-assign fork-run --launch-mode auto|headless|tmux`, keeping the existing headless subprocess path while allowing tmux-backed fork execution in the current tmux session.
|
|
330
|
-
- Tmux-backed fork runs now create or reuse a `<current-window>-fs` window, launch forked provider sessions in panes there, and persist tmux session/window/pane metadata alongside existing fork session files.
|
|
331
|
-
|
|
332
|
-
### Technical
|
|
333
|
-
- Added an internal `ace-assign fork-session` entrypoint plus launcher/test coverage to reuse the existing provider-backed fork session path from tmux panes.
|
|
334
|
-
- Added a recorded tmux fork demo GIF under `docs/demo/` and updated usage docs for the new launch-mode contract.
|
|
335
|
-
|
|
336
|
-
## [0.49.2] - 2026-04-13
|
|
337
|
-
|
|
338
|
-
### Fixed
|
|
339
|
-
- Rewrote `TS-ASSIGN-002` around sandbox end-state and runner observations so hierarchy renumbering, auto-completion, and audit coverage no longer depend on synthetic helper artifacts under `results/`.
|
|
340
|
-
|
|
341
|
-
## [0.49.1] - 2026-04-13
|
|
342
|
-
|
|
343
|
-
### Fixed
|
|
344
|
-
- Tightened `TS-ASSIGN-002` hierarchy scenario evidence so cascade renumbering is proven from concrete step-file artifacts and display-audit checks read the copied sandbox fixture path instead of a repo-relative path.
|
|
345
|
-
|
|
346
|
-
## [0.49.0] - 2026-04-13
|
|
347
|
-
|
|
348
|
-
### Changed
|
|
349
|
-
- Split assignment status from instruction loading: `ace-assign status` now defaults to compact status-only output with `compact`, `progress`, and `full` text modes, while the new `ace-assign step` command prints current/next/exact step instructions.
|
|
350
|
-
- Made `ace-assign start` and `ace-assign finish` concise by pointing operators to `ace-assign step` instead of printing raw instruction blocks inline.
|
|
351
|
-
|
|
352
|
-
### Technical
|
|
353
|
-
- Updated drive/fork guidance, deterministic command coverage, and fork-context E2E specs to treat `status` as state-only and `step` as the instruction-loading surface.
|
|
354
|
-
|
|
355
|
-
## [0.48.0] - 2026-04-13
|
|
356
|
-
|
|
357
|
-
### Changed
|
|
358
|
-
- Removed the shipped `verify-e2e` assignment step from the public catalog, presets, and composition defaults so standard `ace-assign` workflows no longer schedule package E2E verification.
|
|
359
|
-
- Narrowed assignment-level `verify-test-suite` to deterministic verification only: modified packages run `ace-test <package> all --profile 6`, then the monorepo gate runs `ace-test-suite --target all`.
|
|
360
|
-
|
|
361
|
-
### Technical
|
|
362
|
-
- Added an `ace-assign`-local `wfi://assign/verify-test-suite` workflow and preserved local step runtime bindings during canonical catalog metadata merges so assignment-specific verification contracts are not overwritten by shared skill defaults.
|
|
363
|
-
|
|
364
|
-
## [0.47.3] - 2026-04-13
|
|
365
|
-
|
|
366
|
-
### Changed
|
|
367
|
-
- Completed the batch i05 migration follow-through for this package and aligned it with the restarted `fast` / `feat` / `e2e` verification model.
|
|
368
|
-
|
|
369
|
-
### Technical
|
|
370
|
-
- Included in the coordinated assignment-driven patch release for batch i05 package updates.
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
## [0.47.2] - 2026-04-12
|
|
374
|
-
|
|
375
|
-
### Fixed
|
|
376
|
-
- Hardened `wfi://assign/drive` so forked subtree completion is driven by scoped `ace-assign status`, with explicit 6-minute polling, detached resume guidance, and immediate parent-queue re-entry after terminal child status.
|
|
377
|
-
|
|
378
|
-
### Technical
|
|
379
|
-
- Updated the canonical and projected `as-assign-drive` skill contracts plus workflow contract coverage to lock in status-driven fork completion pickup after terminal or session interruption.
|
|
380
|
-
|
|
381
|
-
## [0.47.1] - 2026-04-12
|
|
382
|
-
|
|
383
|
-
### Fixed
|
|
384
|
-
- Simplified `TS-ASSIGN-001` to keep only lifecycle and fork-context E2E coverage, moving help, prepare, and no-skip policy assertions down to deterministic fast and feat contracts.
|
|
385
|
-
- Tightened `TS-ASSIGN-002` into a 4-goal hierarchy scenario by moving hierarchy error-path checks to command tests and requiring explicit multi-level auto-completion and audit-trail evidence.
|
|
386
|
-
|
|
387
|
-
### Technical
|
|
388
|
-
- Added regression coverage for invalid `add --after` references, pending-parent `finish` rejection after child injection, the canonical `work-on-task` preset contract, and the `assign/drive` no-skip workflow contract.
|
|
389
|
-
|
|
390
|
-
## [0.47.0] - 2026-04-11
|
|
391
|
-
|
|
392
|
-
### Changed
|
|
393
|
-
- Taught `wfi://assign/drive` to prefer an E2E-specific `fix-e2e` recovery step after `ace-test-e2e` failures so assignment retries route into `/as-e2e-fix` instead of generic test-fix instructions.
|
|
394
|
-
- Updated the shipped work-on-task verification fixture to require `/as-e2e-fix` to bootstrap `wfi://e2e/analyze-failures` automatically when scenario-failure analysis is missing or incomplete.
|
|
395
|
-
|
|
396
|
-
## [0.46.0] - 2026-04-11
|
|
397
|
-
|
|
398
|
-
### Changed
|
|
399
|
-
- Migrated package test layout to the `fast` / `feat` / `e2e` model by moving deterministic ATOM and command tests under `test/fast/`, adding deterministic feature-level coverage under `test/feat/`, and keeping scenario assets under `test/e2e/`.
|
|
400
|
-
- Updated package documentation and E2E scenario metadata to reference the new testing contract (`ace-test ace-assign`, `ace-test ace-assign feat`, `ace-test ace-assign all`, `ace-test-e2e ace-assign`) and `test/fast/*` deterministic coverage paths.
|
|
401
|
-
- Tightened E2E goal runner/verifier contracts to reduce brittle artifact-name coupling and keep policy/lifecycle evidence checks aligned with current command outputs.
|
|
402
|
-
|
|
403
|
-
## [0.45.0] - 2026-04-11
|
|
404
|
-
|
|
405
|
-
### Changed
|
|
406
|
-
- Updated assignment verification presets, step templates, and runtime child-step instructions so modified packages run `ace-test <package> all --profile 6`, batch suite checks stay on plain `ace-test-suite`, and E2E verification stays package-targeted via `ace-test-e2e <package>`.
|
|
407
|
-
|
|
408
|
-
### Technical
|
|
409
|
-
- Synced the shipped work-on-task prepare fixture and executor rendering coverage to the new verification contract.
|
|
410
|
-
|
|
411
|
-
## [0.44.5] - 2026-04-10
|
|
412
|
-
|
|
413
|
-
### Fixed
|
|
414
|
-
- Updated verify-E2E guidance to support both `test-e2e/scenarios/` and legacy `test/e2e/` paths during migration in assignment presets and runtime executor output.
|
|
415
|
-
- Synced the work-on-task E2E fixture contract with the dual-path migration guidance.
|
|
416
|
-
|
|
417
|
-
## [0.44.3] - 2026-04-07
|
|
418
|
-
|
|
419
|
-
### Fixed
|
|
420
|
-
- Added missing `Bash(ace-bundle:*)` permissions to internal helper skills that execute `ace-bundle` workflows (`as-create-retro-internal`, `as-mark-task-done-internal`, `as-reflect-and-refactor-internal`).
|
|
421
|
-
- Restored required canonical skill metadata headers (`# bundle`, `# agent`) for internal helper skills `as-create-retro-internal` and `as-reflect-and-refactor-internal`.
|
|
422
|
-
- Added source-based canonical step-definition fallback in assignment step materialization so custom-named steps with explicit `source` preserve canonical metadata.
|
|
423
|
-
|
|
424
|
-
### Technical
|
|
425
|
-
- Added regression coverage for custom-named explicit-source step materialization preserving canonical fork metadata.
|
|
426
|
-
|
|
427
|
-
## [0.44.2] - 2026-04-07
|
|
428
|
-
|
|
429
|
-
### Fixed
|
|
430
|
-
- Preserved project-level `.ace/assign/catalog/steps/*.step.yml` overrides when canonical skill metadata is present by applying project definitions after canonical merge in assignment step catalog resolution.
|
|
431
|
-
- Restored canonical step metadata in `CatalogLoader.load_all` results for migrated public steps so direct catalog consumers retain description/prerequisite/artifact semantics, while keeping raw-YAML opt-out support via `canonical_steps: false`.
|
|
432
|
-
|
|
433
|
-
## [0.44.1] - 2026-04-07
|
|
434
|
-
|
|
435
|
-
### Fixed
|
|
436
|
-
- Preserved canonical step-level `assign.steps` presentation fields (`name` and `description`) when resolving skill-backed step rendering.
|
|
437
|
-
|
|
438
|
-
### Technical
|
|
439
|
-
- Added required canonical metadata headers (`# bundle`, `# agent`) to internal helper skills `as-task-load-internal` and `as-mark-task-done-internal`.
|
|
440
|
-
- Added regression coverage for step-level description preservation in `SkillAssignSourceResolver`.
|
|
441
|
-
|
|
442
|
-
## [0.44.0] - 2026-04-07
|
|
443
|
-
|
|
444
|
-
### Changed
|
|
445
|
-
- Migrated helper-step ownership for `task-load`, `mark-task-done`, `reflect-and-refactor`, and `create-retro` from permanent `skill: null` templates to internal canonical helper skills.
|
|
446
|
-
- Migrated public step metadata ownership for `onboard`, `plan-task`, `work-on-task`, `review-pr`, `create-pr`, and `verify-test-suite` into canonical skill `assign.steps`, with public workflow binding resolved from `skill.execution.workflow` (legacy `assign.source` fallback retained).
|
|
447
|
-
- Normalized runtime execution and materialization paths around canonical step `source` (`skill://...` and explicit `wfi://...`) while preserving legacy `skill`/`workflow` compatibility as migration fallback.
|
|
448
|
-
- Updated shipped assign compose/create/prepare workflow docs to use source-first step contract examples.
|
|
449
|
-
|
|
450
|
-
### Fixed
|
|
451
|
-
- Restricted public assign-step discovery to canonical skills with `user-invocable: true`, preventing internal helper skills from appearing in public assignment composition inventory.
|
|
452
|
-
|
|
453
|
-
### Technical
|
|
454
|
-
- Added internal helper workflows and skills under `ace-assign/handbook` to preserve helper execution contracts while keeping them non-discoverable.
|
|
455
|
-
- Marked `pre-commit-review` and `verify-test` helper templates as explicit transitional exceptions with migration metadata.
|
|
456
|
-
|
|
457
|
-
## [0.42.4] - 2026-04-05
|
|
458
|
-
|
|
459
|
-
### Fixed
|
|
460
|
-
- Scoped canonical `skill://` and `wfi://` source discovery to in-project defaults and explicitly registered external sources so ambient installed gems no longer leak into assign resolution.
|
|
461
|
-
- Preserved child `skill` metadata only for hand-authored explicit split sub-steps while keeping inferred and preset-expanded canonical sub-steps fully materialized.
|
|
462
|
-
|
|
463
|
-
## [0.42.3] - 2026-04-02
|
|
464
|
-
|
|
465
|
-
### Changed
|
|
466
|
-
- Updated HITL guidance wording in `ace-assign status` and assignment workflow/docs to use canonical "event" terminology (`Review event`, `HITL event`).
|
|
467
|
-
|
|
468
|
-
### Technical
|
|
469
|
-
- Refreshed status command test expectations for the updated HITL wording contract.
|
|
470
|
-
|
|
471
|
-
## [0.42.2] - 2026-04-02
|
|
472
|
-
|
|
473
|
-
### Technical
|
|
474
|
-
- Updated HITL stall-path fixture expectations in status command coverage from `.ace-hitl/...` to `.ace-local/hitl/...` to match the new default HITL root.
|
|
475
|
-
|
|
476
|
-
## [0.42.1] - 2026-04-02
|
|
477
|
-
|
|
478
|
-
### Changed
|
|
479
|
-
- Updated `wfi://assign/drive` HITL guidance to use per-item polling (`ace-hitl wait <id>`) as the default requester path and `ace-hitl update --resume` as fallback dispatch.
|
|
480
|
-
|
|
481
|
-
### Fixed
|
|
482
|
-
- Updated `ace-assign status` HITL operator guidance output to display polling-first and fallback resume commands aligned with the current HITL contract.
|
|
483
|
-
|
|
484
|
-
### Technical
|
|
485
|
-
- Refreshed command-level status tests for the new HITL guidance text contract.
|
|
486
|
-
|
|
487
|
-
## [0.42.0] - 2026-04-01
|
|
488
|
-
|
|
489
|
-
### Changed
|
|
490
|
-
- Added a dedicated HITL stall protocol to `wfi://assign/drive`, documenting `ace-hitl` create/list/show/update usage, canonical `ace-assign fail --message "HITL: <id> <path>"` formatting, and resume/archive flow without reintroducing gate-state mechanics.
|
|
491
|
-
|
|
492
|
-
### Fixed
|
|
493
|
-
- `ace-assign status` now detects HITL-formatted stall reasons and prints direct operator guidance for `ace-hitl show <id>` plus stored-path hints.
|
|
494
|
-
|
|
495
|
-
### Technical
|
|
496
|
-
- Added command-level status coverage for HITL and non-HITL stall reason rendering to prevent regressions in current-step guidance output.
|
|
497
|
-
|
|
498
|
-
## [0.41.12] - 2026-04-01
|
|
499
|
-
|
|
500
|
-
### Fixed
|
|
501
|
-
- Restored parent-only fork boundaries for generated split subtrees by preventing child steps from inheriting fork context defaults when the parent step is the fork root.
|
|
502
|
-
- Removed default fork context declarations from canonical `plan-task`, `work-on-task`, and `review-pr` catalog steps so only explicitly fork-root parent steps run in forked context.
|
|
503
|
-
|
|
504
|
-
### Technical
|
|
505
|
-
- Added regression coverage for symbolized/string fork-context normalization in child-step materialization paths.
|
|
506
|
-
|
|
507
|
-
## [0.41.11] - 2026-04-01
|
|
508
|
-
|
|
509
|
-
### Fixed
|
|
510
|
-
- Restored parent-only fork semantics for split-subtree execution by preventing canonical child-step `context: fork` defaults from being materialized onto generated subtree children (notably `plan-task` and `work-on-task`).
|
|
511
|
-
- Updated workflow-backed child-step rendering to strip inherited fork context/provider metadata when the child did not explicitly declare fork settings.
|
|
512
|
-
|
|
513
|
-
### Technical
|
|
514
|
-
- Added regression coverage for split-subtree child materialization and scoped status output to ensure child `plan-task` does not emit fork-execution guidance.
|
|
515
|
-
|
|
516
|
-
## [0.41.10] - 2026-03-31
|
|
517
|
-
|
|
518
|
-
### Changed
|
|
519
|
-
- Role-based assignment execution defaults.
|
|
520
|
-
|
|
521
|
-
## [0.41.9] - 2026-03-31
|
|
522
|
-
|
|
523
|
-
### Changed
|
|
524
|
-
- Updated task archival commands to persist task-state transitions during workflow execution using `--gc`/`--git-commit` modes in terminal task completion steps.
|
|
525
|
-
|
|
526
|
-
## [0.41.8] - 2026-03-30
|
|
527
|
-
|
|
528
|
-
### Fixed
|
|
529
|
-
- Clarified the shipped `wfi://release/publish` workflow release contract so root changelog updates consistently include package versions and RubyGems propagation proof guidance.
|
|
530
|
-
|
|
531
|
-
## [0.41.7] - 2026-03-30
|
|
532
|
-
|
|
533
|
-
### Fixed
|
|
534
|
-
- Made the shipped `wfi://release/publish` workflow verify modified packages with package-scoped `ace-test` execution derived from the resolved release set.
|
|
535
|
-
|
|
536
|
-
## [0.41.6] - 2026-03-29
|
|
537
|
-
|
|
538
|
-
### Added
|
|
539
|
-
- Added a shipped generic `wfi://release/publish` workflow under `ace-assign` so `work-on-task` release steps have a default resolvable path in plain projects.
|
|
540
|
-
|
|
541
|
-
### Fixed
|
|
542
|
-
- Aligned `assign.source` `wfi://` resolution with registered/default nav workflow sources by removing implicit workspace workflow-directory fallback behavior.
|
|
543
|
-
- Added resolver coverage for project-level `wfi://` workflow overrides and for unregistered-workflow failure behavior.
|
|
544
|
-
|
|
545
|
-
## [0.41.5] - 2026-03-29
|
|
546
|
-
|
|
547
|
-
### Technical
|
|
548
|
-
- Normalized published gem metadata so RubyGems and Ruby Toolbox use current release information instead of the 1980 fallback date.
|
|
549
|
-
|
|
550
|
-
## [0.41.4] - 2026-03-29
|
|
551
|
-
|
|
552
|
-
### Technical
|
|
553
|
-
- Added `when_to_skip` entry for unreleased-mode branches to the `squash-changelog` catalog step.
|
|
554
|
-
|
|
555
|
-
## [0.41.3] - 2026-03-29
|
|
556
|
-
|
|
557
|
-
### Changed
|
|
558
|
-
- Reused one resolved provider value in `ace-assign fork-run` for both runtime display and launcher execution flow.
|
|
559
|
-
|
|
560
|
-
### Technical
|
|
561
|
-
- Clarified inline documentation of intentional fork-context merge semantics in `AssignmentExecutor` (`=` overwrite for generated children, `||=` default-preserve for materialized explicit steps).
|
|
562
|
-
|
|
563
|
-
## [0.41.2] - 2026-03-29
|
|
564
|
-
|
|
565
|
-
### Fixed
|
|
566
|
-
- Updated scoped `ace-assign status` output (text and JSON `current_step`) to show the effective fork provider inherited from the scoped fork root when the active child has no local provider.
|
|
567
|
-
- Removed unreachable symbol-key provider fallback in `Step#fork_provider` now that fork options are normalized to string keys.
|
|
568
|
-
|
|
569
|
-
### Technical
|
|
570
|
-
- Added scoped status regression tests covering fork-provider display/serialization for fork-root scope (`@010`) with active child steps.
|
|
571
|
-
- Documented intentional fork-context propagation semantics in `AssignmentExecutor` (generated child-step overwrite vs explicit-step default-preserve behavior).
|
|
572
|
-
|
|
573
|
-
## [0.41.1] - 2026-03-29
|
|
574
|
-
|
|
575
|
-
### Fixed
|
|
576
|
-
- Preserved catalog `context.fork` provider overrides for explicit `skill`-backed step materialization so step-level fork provider precedence is applied correctly.
|
|
577
|
-
- Kept fork child-step behavior stable by avoiding implicit fork-context propagation from canonical metadata when children do not explicitly declare fork context.
|
|
578
|
-
|
|
579
|
-
### Technical
|
|
580
|
-
- Added regression coverage for explicit `skill` and explicit `workflow` materialization paths to ensure catalog fork overrides are retained.
|
|
581
|
-
|
|
582
|
-
## [0.41.0] - 2026-03-28
|
|
583
|
-
|
|
584
|
-
### Added
|
|
585
|
-
- Added per-step fork provider overrides via step frontmatter `fork.provider`.
|
|
586
|
-
- Added `fork_provider` exposure in `ace-assign status` current-step output and `--format json` payloads.
|
|
587
|
-
|
|
588
|
-
### Changed
|
|
589
|
-
- Updated `ace-assign fork-run` provider precedence to: CLI `--provider` > step `fork.provider` > config `execution.provider` > default.
|
|
590
|
-
- Extended skill/catalog step materialization to carry `context.fork` options into generated step metadata.
|
|
591
|
-
|
|
592
|
-
### Technical
|
|
593
|
-
- Added coverage for step model/parser/scanner fork-option round-trip, fork-run provider precedence, status serialization/display, and executor composition behavior.
|
|
594
|
-
- Updated usage and fork-context docs with `fork.provider` examples and precedence rules.
|
|
595
|
-
|
|
596
|
-
## [0.40.4] - 2026-03-29
|
|
597
|
-
|
|
598
|
-
### Fixed
|
|
599
|
-
- Bumped dependency constraints to currently available `~>` ranges on RubyGems and updated release metadata after dependency synchronization.
|
|
600
|
-
|
|
601
|
-
## [0.40.3] - 2026-03-27
|
|
602
|
-
|
|
603
|
-
### Fixed
|
|
604
|
-
- Corrected `ace-assign add` documentation examples to match the mutually exclusive add-mode contract (`--yaml`, `--step`, or `--task`).
|
|
605
|
-
- Replaced invalid preset-step examples in docs with preset-backed step names that resolve under the current `--step` behavior.
|
|
606
|
-
|
|
607
|
-
## [0.40.2] - 2026-03-27
|
|
608
|
-
|
|
609
|
-
### Fixed
|
|
610
|
-
- Validated preset names before file resolution to block invalid path-like preset inputs.
|
|
611
|
-
- Added `ace-assign add --task` task-reference existence validation before mutating assignment queues.
|
|
612
|
-
- Corrected `ace-assign add --task` insertion semantics to honor `--child`; explicit `--after` without `--child` now inserts as a sibling.
|
|
613
|
-
- Added explicit preset-step resolver errors when presets define no usable `steps` array.
|
|
614
|
-
|
|
615
|
-
### Technical
|
|
616
|
-
- Added regression coverage for preset-name validation and empty-preset-step diagnostics.
|
|
617
|
-
- Added `add --task` coverage for task-ref validation and sibling insertion with `--after` when `--child` is not set.
|
|
618
|
-
- Added end-to-end CLI coverage for `ace-assign create --task` assignment and step-file materialization.
|
|
619
|
-
|
|
620
|
-
## [0.40.1] - 2026-03-27
|
|
621
|
-
|
|
622
|
-
### Fixed
|
|
623
|
-
- Updated task-driven preset guard checks to evaluate active resolved refs after terminal filtering, preventing false single-task preset rejections on mixed terminal/non-terminal inputs.
|
|
624
|
-
- Preserved parent refs during taskref expansion when all subtasks are terminal, preventing empty expansion results from valid parent-task inputs.
|
|
625
|
-
- Normalized `detect_batch_parent` fallback return behavior to preserve nil semantics when no batch parent is found.
|
|
626
|
-
|
|
627
|
-
### Technical
|
|
628
|
-
- Made hidden task-driven job specs use unique filenames to preserve assignment source-config provenance across repeated create flows.
|
|
629
|
-
- Updated command coverage for randomized hidden job filename generation.
|
|
630
|
-
|
|
631
|
-
## [0.40.0] - 2026-03-27
|
|
632
|
-
|
|
633
|
-
### Added
|
|
634
|
-
- Added flags-only `ace-assign create --task ...` support for preset-based assignment creation from task refs, including multi-task input.
|
|
635
|
-
- Added a shared `TaskAssignmentCreator` path so direct `create --task` and `ace-overseer` launch use the same preset expansion and hidden job generation behavior.
|
|
636
|
-
|
|
637
|
-
### Changed
|
|
638
|
-
- Replaced positional `ace-assign create CONFIG` with explicit `--yaml` and `--task` modes.
|
|
639
|
-
- Updated `work-on-task` task-child expansion so generated `work-on-{{item}}` roots include the full `task/work` sub-step sequence, including `pre-commit-review`, `release-minor`, and `create-retro`.
|
|
640
|
-
- Refreshed docs and workflow wording to use the explicit `ace-assign create --yaml ...` contract.
|
|
641
|
-
|
|
642
|
-
### Technical
|
|
643
|
-
- Added command coverage for create-mode validation and task-driven creation edge cases.
|
|
644
|
-
- Added `ace-task` as a runtime dependency for task-ref-based creation.
|
|
645
|
-
|
|
646
|
-
## [0.39.1] - 2026-03-27
|
|
647
|
-
|
|
648
|
-
### Fixed
|
|
649
|
-
- Updated the `as-assign-add-task` workflow and related docs to use the current `ace-assign add --yaml` contract instead of removed `--from` usage.
|
|
650
|
-
- Refreshed preset step insertion name resolution to re-read queue names between insertions, preventing stale iteration-name collisions when canonical expansion adds additional steps.
|
|
651
|
-
- Added debug-time warnings for unexpanded `{{token}}` placeholders in `--task` preset templates.
|
|
652
|
-
|
|
653
|
-
### Technical
|
|
654
|
-
- Added regression coverage for preset insertion name-refresh behavior across canonical subtree expansion.
|
|
655
|
-
- Added regression coverage for unexpanded template-token warnings in debug `--task` mode.
|
|
656
|
-
- Normalized `detect_batch_parent` return semantics to always return a string value.
|
|
657
|
-
|
|
658
|
-
## [0.39.0] - 2026-03-27
|
|
659
|
-
|
|
660
|
-
### Added
|
|
661
|
-
- Added preset-aware `ace-assign add --step <name[,name...]>` mode with exact-first and base-name fallback resolution.
|
|
662
|
-
- Added preset-aware `ace-assign add --task <ref>` mode using preset `expansion.child-template` with automatic batch-parent detection.
|
|
663
|
-
- Added new preset insertion support modules: `PresetLoader`, `PresetStepResolver`, and `PresetInferrer`.
|
|
664
|
-
|
|
665
|
-
### Changed
|
|
666
|
-
- Replaced legacy `ace-assign add` insertion contract with exactly one required mode: `--yaml`, `--step`, or `--task`.
|
|
667
|
-
- Renamed YAML file insertion flag from `--from` to canonical `--yaml`.
|
|
668
|
-
- Removed positional `name` insertion mode in favor of explicit `--step`.
|
|
669
|
-
|
|
670
|
-
### Technical
|
|
671
|
-
- Expanded command and atom/molecule test coverage for mode validation, preset loading, step resolution, auto-iteration naming, and preset inference fallback behavior.
|
|
672
|
-
|
|
673
|
-
## [0.38.3] - 2026-03-27
|
|
674
|
-
|
|
675
|
-
### Added
|
|
676
|
-
- Added `ace-assign add --from <file>` to insert multiple steps from YAML, including nested `sub_steps` expansion.
|
|
677
|
-
- Added the `as-assign-add-task` skill and `wfi://assign/add-task` workflow for guided subtree insertion.
|
|
678
|
-
|
|
679
|
-
### Fixed
|
|
680
|
-
- Prevalidated full `add_batch` trees before mutating assignment queues, preventing partial insertion when later batch entries are invalid.
|
|
681
|
-
- Normalized nested batch child-depth overflow handling by converting `StepNumbering` depth `ArgumentError` into `Ace::Assign::Error`.
|
|
682
|
-
- Routed workflow/skill/sub-step batch insertions through canonical subtree expansion and materialization.
|
|
683
|
-
- Reworded executor-level child insertion validation to domain language so non-CLI callers are not coupled to CLI flag syntax.
|
|
684
|
-
- Removed stale add-task child-step hardcoding drift by relying on workflow `assign.sub-steps` resolution at insertion time.
|
|
685
|
-
|
|
686
|
-
### Changed
|
|
687
|
-
- Extended assignment insertion execution with batch insertion support and frontmatter passthrough for inserted steps.
|
|
688
|
-
- Unified dynamic step default instructions under a single `AssignmentExecutor::DEFAULT_DYNAMIC_STEP_INSTRUCTIONS` source.
|
|
689
|
-
- Limited canonical batch expansion to explicit `workflow`, `skill`, or declared `sub_steps` inputs, preserving prior numbering behavior for plain flat batch inserts.
|
|
690
|
-
- Updated usage, getting-started, and handbook docs to cover the new `add --from` workflow.
|
|
691
|
-
- Updated `record-demo` step instructions to require diagnosis before skipping on failure -- agents must check config, available fonts, and spike findings before reporting a non-blocking skip.
|
|
692
|
-
- Added `decision_notes.non_blocking_policy` to `record-demo` step catalog entry clarifying that "non-blocking" means "diagnose and retry before skipping," not "skip on first failure."
|
|
693
|
-
|
|
694
|
-
### Technical
|
|
695
|
-
- Expanded command and executor coverage for `--from` validation, child rebalance behavior, and metadata preservation.
|
|
696
|
-
- Added regression tests for batch insertion validation, depth overflow, and workflow-backed inserts.
|
|
697
|
-
- Renamed add-command local boolean flags to predicate-style names (`name_given`, `from_given`) for readability.
|
|
698
|
-
|
|
699
|
-
## [0.38.2] - 2026-03-26
|
|
700
|
-
|
|
701
|
-
### Changed
|
|
702
|
-
- Updated `work-on-task` prepare/create filtering guidance to treat terminal task statuses (`done`, `skipped`, `cancelled`) as filtered refs and abort all-terminal requests before assignment creation.
|
|
703
|
-
- Updated no-op messaging and edge-case language across prepare/create workflow instructions and usage docs to match the terminal-status contract.
|
|
704
|
-
|
|
705
|
-
### Technical
|
|
706
|
-
- Replaced fragile done-filter workflow contract assertions with stronger section-scoped terminal-contract checks.
|
|
707
|
-
- Moved the contract test into the standard `test/organisms/` bucket and removed the nonstandard `test/workflows/` location.
|
|
708
|
-
|
|
709
|
-
## [0.38.1] - 2026-03-26
|
|
710
|
-
|
|
711
|
-
### Technical
|
|
712
|
-
- Added regression coverage for `work-on-task` done-task filtering contracts, including mixed done/non-done handling, all-done no-op behavior, and create-flow no hidden-spec/`ace-assign create` guard assertions.
|
|
713
|
-
|
|
714
|
-
## [0.38.0] - 2026-03-26
|
|
715
|
-
|
|
716
|
-
### Added
|
|
717
|
-
- Added explicit done-task filtering rules to `assign/prepare` so `work-on-task` requests resolve refs first, skip `status: done` refs, continue mixed sets, and abort all-done sets before queue generation.
|
|
718
|
-
- Added `record-demo` step to the assignment step catalog for recording and attaching terminal demos to PRs.
|
|
719
|
-
- Added composition rules positioning `record-demo` between `push-to-remote` and `update-pr-desc`.
|
|
720
|
-
- Added `record-demo` to the `implement-with-pr` recipe as an optional step.
|
|
721
|
-
|
|
722
|
-
### Changed
|
|
723
|
-
- Updated `assign/create` workflow guidance so Path B respects filtered taskrefs from prepare and skips hidden-spec render/`ace-assign create` when all requested refs are already done.
|
|
724
|
-
- Updated usage docs with `work-on-task` prepare/create filtering behavior and no-assignment outcomes for all-done inputs.
|
|
725
|
-
- Updated `work-on-task` preset with step 145 (`record-demo`) that reads demo scenarios from task specs, validates with dry-run, and records with proper fixture/sandbox patterns.
|
|
726
|
-
|
|
727
|
-
## [0.37.0] - 2026-03-23
|
|
728
|
-
|
|
729
|
-
### Changed
|
|
730
|
-
- Rewrote README with step/substep terminology, real `ace-assign status` output example, ace-overseer onboarding path, and links to step catalog, presets, and composition rules.
|
|
731
|
-
- Replaced residual "phases" terminology with "steps" in docs/handbook.md, docs/getting-started.md, and e2e fixture directories.
|
|
732
|
-
- Fixed broken "See Also" links in docs/exit-codes.md pointing to non-existent README anchors.
|
|
733
|
-
|
|
734
|
-
### Technical
|
|
735
|
-
- Normalized code formatting across 40+ lib and test files via StandardRB autofix (style-only, no behavior changes).
|
|
736
|
-
|
|
737
|
-
## [0.36.13] - 2026-03-23
|
|
738
|
-
|
|
739
|
-
### Changed
|
|
740
|
-
- Refreshed `README.md` to the current package layout pattern with logo/badges header, compatibility line, quick links, and use-case-oriented overview content.
|
|
741
|
-
- Updated README skill inventory to include `as-assign-recover-fork` and aligned the footer to the canonical ACE package format.
|
|
742
|
-
|
|
743
|
-
## [0.36.12] - 2026-03-22
|
|
744
|
-
|
|
745
|
-
### Fixed
|
|
746
|
-
- Unified assignment preset naming to `work-on-task` by removing `work-on-tasks` from defaults and fixtures.
|
|
747
|
-
- Restored single-task shorthand support by normalizing `--taskref` inputs to `taskrefs` during preset validation/expansion.
|
|
748
|
-
|
|
749
|
-
### Changed
|
|
750
|
-
- Updated assign prepare workflow/skill docs and E2E fixture expectations to treat `work-on-task` as the single canonical preset for single-task and batch flows.
|
|
751
|
-
|
|
752
|
-
## [0.36.11] - 2026-03-22
|
|
753
|
-
|
|
754
|
-
### Fixed
|
|
755
|
-
- Restored the `ace-assign` default fork timeout to `1800` in `ace-assign/.ace-defaults/assign/config.yml`.
|
|
756
|
-
|
|
757
|
-
### Changed
|
|
758
|
-
- Realigned assignment default provider/timeout guidance in `.ace/assign/config.yml` with package defaults for this release cycle.
|
|
759
|
-
|
|
760
|
-
## [0.36.10] - 2026-03-22
|
|
761
|
-
|
|
762
|
-
### Changed
|
|
763
|
-
- Documented assignment config provider/timeout default tuning in release notes for `.ace/assign/config.yml` and `ace-assign/.ace-defaults/assign/config.yml`.
|
|
764
|
-
- Restored missing trailing newline in `handbook/workflow-instructions/assign/run-in-batches.wf.md`.
|
|
765
|
-
|
|
766
|
-
## [0.36.9] - 2026-03-22
|
|
767
|
-
|
|
768
|
-
### Changed
|
|
769
|
-
- Remove `mise exec --` wrapper from test fixture strings to match updated command invocation style.
|
|
770
|
-
- Clarified release notes for this version to include shipped assignment default config tuning in `.ace/assign/config.yml` and `ace-assign/.ace-defaults/assign/config.yml` (provider/timeout defaults).
|
|
771
|
-
|
|
772
|
-
## [0.36.8] - 2026-03-22
|
|
773
|
-
|
|
774
|
-
### Fixed
|
|
775
|
-
- Mark task completion flows to archive tasks as well in both single-task and batch presets.
|
|
776
|
-
- Load task-done updates through the canonical `wfi://task/update` workflow and ensure parent-task closure updates are archived.
|
|
777
|
-
|
|
778
|
-
## [0.36.7] - 2026-03-22
|
|
779
|
-
|
|
780
|
-
### Fixed
|
|
781
|
-
- `mark-task-done` step now checks and closes parent tasks when all children are done, preventing status drift in task hierarchies.
|
|
782
|
-
|
|
783
|
-
## [0.36.6] - 2026-03-22
|
|
784
|
-
|
|
785
|
-
### Changed
|
|
786
|
-
- Add `create-retro` as the final child step in review-cycle fork subtrees, ensuring each review cycle captures its own retrospective.
|
|
787
|
-
- Add ordering rules (`retro-after-release`, `retro-after-apply-feedback`) to composition rules.
|
|
788
|
-
- Declare `review-sessions` as consumed input for the `create-retro` step.
|
|
789
|
-
|
|
790
|
-
## [0.36.5] - 2026-03-22
|
|
791
|
-
|
|
792
|
-
### Technical
|
|
793
|
-
- Clarified release notes to document the intentional `codex:gpt@yolo` assignment default required for current Codex CLI compatibility.
|
|
794
|
-
|
|
795
|
-
## [0.36.4] - 2026-03-22
|
|
796
|
-
|
|
797
|
-
### Fixed
|
|
798
|
-
- Clarified that assignment execution remains on `codex:gpt@yolo` because the current Codex CLI cannot combine `--full-auto` with `--dangerously-bypass-approvals-and-sandbox`.
|
|
799
|
-
|
|
800
|
-
## [0.36.3] - 2026-03-22
|
|
801
|
-
|
|
802
|
-
### Fixed
|
|
803
|
-
- Clarified the documented assignment execution default after docs drift described it as `codex:codex@yolo` instead of the intentional `codex:gpt@yolo`.
|
|
804
|
-
|
|
805
|
-
## [0.36.2] - 2026-03-22
|
|
806
|
-
|
|
807
|
-
### Fixed
|
|
808
|
-
- Remove trailing empty lines in code blocks across documentation files.
|
|
809
|
-
|
|
810
|
-
## [0.36.1] - 2026-03-22
|
|
811
|
-
|
|
812
|
-
### Fixed
|
|
813
|
-
- Include `docs/**/*` in gemspec so documentation ships with the gem.
|
|
814
|
-
- Remove piped command example from usage guide to align with command-integrity contract.
|
|
815
|
-
|
|
816
|
-
## [0.36.0] - 2026-03-22
|
|
817
|
-
|
|
818
|
-
### Added
|
|
819
|
-
- Added tutorial-style `docs/getting-started.md` and `docs/handbook.md` for clearer onboarding and package workflow discovery
|
|
820
|
-
- Added `docs/demo/ace-assign-getting-started.tape` and `docs/demo/ace-assign-getting-started.gif` demo artifacts
|
|
821
|
-
|
|
822
|
-
### Changed
|
|
823
|
-
- Rewrote `README.md` as a concise landing page with value-first messaging and documentation links
|
|
824
|
-
- Refreshed `docs/usage.md` to align with current CLI commands, scoped assignment examples, and command-integrity guidance
|
|
825
|
-
- Updated gemspec summary/description text to match the new README tagline and positioning
|
|
826
|
-
|
|
827
|
-
## [0.35.1] - 2026-03-21
|
|
828
|
-
|
|
829
|
-
### Added
|
|
830
|
-
- `mark-tasks-done` step (number 155) in `work-on-tasks` preset to mark parent/umbrella tasks as done after all subtask forks complete
|
|
831
|
-
|
|
832
|
-
## [0.35.0] - 2026-03-21
|
|
833
|
-
|
|
834
|
-
### Added
|
|
835
|
-
- `create-retro` step in `work-on-task` and `work-on-tasks` presets to capture process learnings after each assignment
|
|
836
|
-
|
|
837
|
-
### Changed
|
|
838
|
-
- `verify-e2e` step now runs E2E tests with fix loops (up to 3 cycles) instead of only reviewing coverage; runs in forked context
|
|
839
|
-
- `update-pr-desc` step now runs in forked context to prevent context-pressure truncation of grouped-stats output
|
|
840
|
-
|
|
841
|
-
## [0.34.1] - 2026-03-18
|
|
842
|
-
|
|
843
|
-
### Changed
|
|
844
|
-
- Added `unit-coverage-reviewed` decision evidence to `TS-ASSIGN-001` and `TS-ASSIGN-002` E2E scenarios to map coverage against related unit tests.
|
|
845
|
-
|
|
846
|
-
## [0.34.0] - 2026-03-18
|
|
847
|
-
|
|
848
|
-
### Changed
|
|
849
|
-
- Renamed "phases" to "steps" throughout the assignment system: models, atoms, molecules, organisms, CLI commands, config, catalog, and all user-facing strings
|
|
850
|
-
- Renamed file extension from `.ph.md` to `.st.md` for step files
|
|
851
|
-
- Renamed catalog directory from `catalog/phases/` to `catalog/steps/` and files from `*.phase.yml` to `*.step.yml`
|
|
852
|
-
- Renamed YAML keys: `sub-phases` → `sub-steps`, `sub_phases` → `sub_steps`
|
|
853
|
-
|
|
854
|
-
### Fixed
|
|
855
|
-
- `AssignmentExecutor.start` now reads `config["steps"]` matching what `AssignmentLauncher.write_job_file` writes (was reading `config["phases"]`, causing "No phases defined in config" error)
|
|
856
|
-
|
|
857
|
-
## [0.33.1] - 2026-03-18
|
|
858
|
-
|
|
859
|
-
### Changed
|
|
860
|
-
- Migrated CLI namespace from `Ace::Core::CLI::*` to `Ace::Support::Cli::*` (ace-support-cli is now the canonical home for CLI infrastructure).
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
## [0.33.0] - 2026-03-18
|
|
864
|
-
|
|
865
|
-
### Changed
|
|
866
|
-
- Removed legacy backward-compatibility behavior as part of the 0.10 cleanup release.
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
## [0.32.4] - 2026-03-15
|
|
870
|
-
|
|
871
|
-
### Technical
|
|
872
|
-
- Optimized test suite I/O: reuse one tmpdir per test class instead of creating/destroying per test method (~176 → ~16 tmpdir cycles)
|
|
873
|
-
- Removed 2 unnecessary `sleep(0.1)` calls in assignment manager tests (200ms saved)
|
|
874
|
-
- Converted bare `Dir.mktmpdir` calls to shared class-level tmpdir in fork session launcher tests
|
|
875
|
-
|
|
876
|
-
## [0.32.3] - 2026-03-15
|
|
877
|
-
|
|
878
|
-
### Fixed
|
|
879
|
-
- Release step catalog entry now references `wfi://release/publish` workflow
|
|
880
|
-
- Review cycle release instructions in work-on-task and work-on-tasks presets now point to `ace-bundle wfi://release/publish`
|
|
881
|
-
|
|
882
|
-
### Changed
|
|
883
|
-
- Drive workflow batch continuation rule prevents driver from pausing between child fork-runs
|
|
884
|
-
- Drive workflow adds transient network failure retry guidance (wait 30s, re-fork once)
|
|
885
|
-
|
|
886
|
-
## [0.32.2] - 2026-03-15
|
|
887
|
-
|
|
888
|
-
### Changed
|
|
889
|
-
- Migrated CLI framework from dry-cli to ace-support-cli
|
|
890
|
-
|
|
891
|
-
## [0.32.1] - 2026-03-13
|
|
892
|
-
|
|
893
|
-
### Fixed
|
|
894
|
-
- Rendered `verify-test-suite` and `verify-e2e` assignment steps now use assignment-safe step templates instead of persisting the full broad audit workflow bodies.
|
|
895
|
-
- Cleaned assignment overlay serialization so generated child steps no longer leak nested `Assignment-specific context` / `Task context` headers or malformed double bullets.
|
|
896
|
-
|
|
897
|
-
### Technical
|
|
898
|
-
- Preserved local assignment render metadata when canonical step catalog entries merge with workflow-backed skill metadata.
|
|
899
|
-
- Added regression coverage for step-template rendering and structural assignment-overlay cleanup.
|
|
900
|
-
|
|
901
|
-
## [0.32.0] - 2026-03-13
|
|
902
|
-
|
|
903
|
-
### Changed
|
|
904
|
-
- Switched generated assignment artifacts for public steps to use workflow-backed execution references instead of generated `skill:` step contracts.
|
|
905
|
-
- Restored assignment-specific orchestration overlays for `work-on-task` and `work-on-tasks` while keeping canonical workflow bodies as the reusable execution source.
|
|
906
|
-
|
|
907
|
-
### Technical
|
|
908
|
-
- Promoted `workflow` to a first-class parsed/runtime step field across assignment status, queue scanning, and step persistence.
|
|
909
|
-
- Updated assign resolver, executor, presets, and regression fixtures to materialize public steps from canonical workflow bodies with provenance metadata.
|
|
910
|
-
|
|
911
|
-
## [0.31.5] - 2026-03-13
|
|
912
|
-
|
|
913
|
-
### Technical
|
|
914
|
-
- Completed canonical assign skill catalog composition and workflow-backed step metadata wiring for public assignments.
|
|
915
|
-
|
|
916
|
-
## [0.31.4] - 2026-03-13
|
|
917
|
-
|
|
918
|
-
### Changed
|
|
919
|
-
- Updated canonical assign skills to explicitly run bundled workflows in the current project and execute them end-to-end.
|
|
920
|
-
|
|
921
|
-
## [0.31.3] - 2026-03-13
|
|
922
|
-
|
|
923
|
-
### Added
|
|
924
|
-
- Added pre-flight prerequisite validation to `TC-005-no-skip-policy` fixture setup so scenario runs verify required workflow and skill files exist before policy checks execute.
|
|
925
|
-
|
|
926
|
-
### Technical
|
|
927
|
-
- Hardened `TS-ASSIGN-001` fixture setup and verification flow by capturing pre-flight exit status and output artifacts.
|
|
928
|
-
|
|
929
|
-
## [0.31.2] - 2026-03-12
|
|
930
|
-
|
|
931
|
-
### Changed
|
|
932
|
-
- Updated the prepare-workflow E2E fixtures to use the current top-level `steps:` schema for single-task and batch workflows.
|
|
933
|
-
- Refreshed hierarchy E2E guidance to capture copied auto-completion reports and to use the current fixture layout under `fixtures/*/jobs/`.
|
|
934
|
-
|
|
935
|
-
## [0.31.1] - 2026-03-10
|
|
936
|
-
|
|
937
|
-
### Fixed
|
|
938
|
-
- Restored canonical skill resolution to honor nav source priority while preserving package-default fallback discovery for local monorepo workflows and tests.
|
|
939
|
-
|
|
940
|
-
### Changed
|
|
941
|
-
- Added a runtime dependency on `ace-support-nav` so assignment skill discovery shares the same source registry semantics as `skill://` navigation.
|
|
942
|
-
|
|
943
|
-
### Technical
|
|
944
|
-
- Replaced invalid shell-tool allowances in canonical assignment skills with repo-approved tooling metadata and expanded resolver regression coverage for override precedence.
|
|
945
|
-
|
|
946
|
-
## [0.31.0] - 2026-03-09
|
|
947
|
-
|
|
948
|
-
### Changed
|
|
949
|
-
- Switched `SkillAssignSourceResolver` defaults to canonical `skill-sources` discovery and removed hardcoded provider-tree fallback paths as the primary model.
|
|
950
|
-
- Updated assign defaults and compose workflow guidance to describe compatibility catalog entries as non-authoritative inputs.
|
|
951
|
-
|
|
952
|
-
### Technical
|
|
953
|
-
- Updated resolver and assignment executor regression fixtures to register canonical skill sources (`handbook/skills`) instead of relying on `.claude/skills` defaults.
|
|
954
|
-
- Clarified vision documentation that canonical skills live in package `handbook/skills` and provider trees are generated projections.
|
|
955
|
-
|
|
956
|
-
## [0.30.0] - 2026-03-09
|
|
957
|
-
|
|
958
|
-
### Added
|
|
959
|
-
- Added canonical workflow skills for assignment operations: `as-assign-compose`, `as-assign-create`, `as-assign-drive`, `as-assign-prepare`, and `as-assign-run-in-batches` under `handbook/skills/`.
|
|
960
|
-
|
|
961
|
-
### Changed
|
|
962
|
-
- Expanded `skill://` canonical discovery coverage for `ace-assign` beyond the initial single-skill seed.
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
## [0.29.0] - 2026-03-09
|
|
966
|
-
|
|
967
|
-
### Added
|
|
968
|
-
- Canonical skill resolution in `SkillAssignSourceResolver` with assign-capable filtering by `skill.kind` and `assign.source`
|
|
969
|
-
- Step catalog reordering in `AssignmentExecutor` to prioritize canonical assign-capable skills over compatibility bridge entries
|
|
970
|
-
|
|
971
|
-
## [0.28.0] - 2026-03-09
|
|
972
|
-
|
|
973
|
-
### Added
|
|
974
|
-
- Added `skill-sources` gem defaults registration at `.ace-defaults/nav/protocols/skill-sources/ace-assign.yml` so `skill://` can discover canonical `handbook/skills` entries from `ace-assign`.
|
|
975
|
-
|
|
976
|
-
## [0.27.0] - 2026-03-09
|
|
977
|
-
|
|
978
|
-
### Added
|
|
979
|
-
- Added canonical orchestration skill example at `handbook/skills/as-assign-start/SKILL.md` for typed skill taxonomy tracing.
|
|
980
|
-
- Restored `assign/start` as a legacy compatibility workflow binding for canonical orchestration skill discovery.
|
|
981
|
-
|
|
982
|
-
### Changed
|
|
983
|
-
- Added projected provider-facing `.agent/skills/as-assign-start/SKILL.md` entry for representative orchestration skill parity.
|
|
984
|
-
|
|
985
|
-
## [0.26.2] - 2026-03-08
|
|
986
|
-
|
|
987
|
-
### Changed
|
|
988
|
-
- Clarified batch-parallel scheduling in `assign/drive` and `assign/run-in-batches`: `max_parallel` is a rolling in-flight concurrency cap (slot refill), not a fixed wave size.
|
|
989
|
-
- Added explicit rolling scheduler-loop guidance for parallel batch execution in `assign/drive`.
|
|
990
|
-
- Added user-document tracking frontmatter to `ace-assign` user docs (`README.md`, `docs/usage.md`).
|
|
991
|
-
|
|
992
|
-
### Technical
|
|
993
|
-
- Added missing guide frontmatter to `handbook/guides/fork-context.g.md` so package docs are consistently tracked by `ace-docs`.
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
## [0.26.1] - 2026-03-08
|
|
997
|
-
|
|
998
|
-
### Fixed
|
|
999
|
-
- `fork-run` now marks scoped leaf fork roots as `in_progress` before launching, preventing pending-state drift that could trigger repeated self-delegation loops in batch child execution.
|
|
1000
|
-
- Scoped `status` output no longer shows fork execution guidance for already-completed fork steps.
|
|
1001
|
-
|
|
1002
|
-
### Changed
|
|
1003
|
-
- Updated `assign/drive` workflow delegation rules to explicitly prevent calling `fork-run` again when already operating inside the same scoped fork boundary.
|
|
1004
|
-
|
|
1005
|
-
### Technical
|
|
1006
|
-
- Added regressions for leaf-root fork activation and scoped done-step status guidance behavior.
|
|
1007
|
-
|
|
1008
|
-
## [0.26.0] - 2026-03-08
|
|
1009
|
-
|
|
1010
|
-
### Added
|
|
1011
|
-
- Added batch scheduling metadata (`batch_parent`, `parallel`, `max_parallel`, `fork_retry_limit`) to step parsing/model/status JSON so assignment drivers can orchestrate controlled fork fan-out.
|
|
1012
|
-
- Added `--max-parallel` guidance to run-in-batches workflow/skill contracts with default parallel cap semantics.
|
|
1013
|
-
|
|
1014
|
-
### Fixed
|
|
1015
|
-
- Corrected status `FORK` column semantics to reflect `context: fork` instead of child presence, preventing non-fork batch parents from being misinterpreted as fork targets.
|
|
1016
|
-
|
|
1017
|
-
### Changed
|
|
1018
|
-
- Updated run-in-batches guidance so `--sequential` now preserves per-item fork execution while switching scheduler mode to sequential metadata.
|
|
1019
|
-
- Updated drive workflow delegation guidance to use fork-context signals and document retry-then-stop behavior for parallel child failures.
|
|
1020
|
-
|
|
1021
|
-
## [0.25.1] - 2026-03-08
|
|
1022
|
-
|
|
1023
|
-
### Changed
|
|
1024
|
-
- Removed the legacy `as-assign-start` compatibility skill entrypoint.
|
|
1025
|
-
|
|
1026
|
-
### Technical
|
|
1027
|
-
- Removed the `assign/start` legacy compatibility workflow file and retained `assign/create` as the public creation flow.
|
|
1028
|
-
|
|
1029
|
-
## [0.25.0] - 2026-03-08
|
|
1030
|
-
|
|
1031
|
-
### Added
|
|
1032
|
-
- Added phrase-intent metadata (`intent.phrases`) for core compose targets: `work-on-task`, `verify-test-suite`, `reorganize-commits`, `push-to-remote`, `create-pr`, and `update-pr-desc`.
|
|
1033
|
-
- Added new compose-target steps `squash-changelog` and `rebase-with-main` with skill mappings to `as-docs-squash-changelog` and `as-git-rebase`.
|
|
1034
|
-
|
|
1035
|
-
### Changed
|
|
1036
|
-
- Reworked `assign/create` workflow to support preset input, explicit step-list intent, freeform high-level intent, and job-file passthrough while preserving deterministic `ace-assign create FILE` runtime boundary.
|
|
1037
|
-
- Reworked `assign/compose` workflow with deterministic phrase matching, explicit-intent precedence, and named hard-rule reorder explanations.
|
|
1038
|
-
- Extended composition hard-ordering guidance with `squash-before-rebase`, `rebase-before-push`, and `rebase-before-update-pr`.
|
|
1039
|
-
|
|
1040
|
-
### Technical
|
|
1041
|
-
- Added workflow-level guidance clarifying that skill-backed step expansion stays runtime-owned via `assign.source` during `ace-assign create`.
|
|
1042
|
-
|
|
1043
|
-
## [0.24.0] - 2026-03-08
|
|
1044
|
-
|
|
1045
|
-
### Added
|
|
1046
|
-
- Added `codex` to the default `subtree.native_review_clients` allow-list so subtree pre-commit review can use native `/review` in Codex runtimes.
|
|
1047
|
-
|
|
1048
|
-
### Technical
|
|
1049
|
-
- Updated assignment-executor skill-source regression fixtures to the current `wfi://task/work` resolution path and `ace-task` workflow layout.
|
|
1050
|
-
|
|
1051
|
-
## [0.23.1] - 2026-03-08
|
|
1052
|
-
|
|
1053
|
-
### Fixed
|
|
1054
|
-
- Updated assignment release guidance so `release*` child steps consistently route through `/as-release`, including suffixed review-cycle release steps.
|
|
1055
|
-
|
|
1056
|
-
### Changed
|
|
1057
|
-
- Updated release step, preset, and fixture instructions to describe coordinated multi-package releases and both package and root changelog updates.
|
|
1058
|
-
|
|
1059
|
-
## [0.23.0] - 2026-03-08
|
|
1060
|
-
|
|
1061
|
-
### Changed
|
|
1062
|
-
- Remove hardcoded `providers.cli_args` config; use ace-llm `@preset` suffixes for provider permission flags
|
|
1063
|
-
- Reframed the public assignment UX around `as-assign-create` + `as-assign-drive`, including explicit `--run` create-to-drive handoff guidance in the create workflow.
|
|
1064
|
-
- Reclassified `as-assign-start` and `as-assign-prepare` as legacy/internal compatibility skills (`user-invocable: false`) so they are no longer presented as primary public entrypoints.
|
|
1065
|
-
|
|
1066
|
-
### Technical
|
|
1067
|
-
- Updated `assign/start` workflow positioning and fixture usage comments to stop teaching prepare/start as the recommended public flow.
|
|
1068
|
-
- Expanded task usage documentation for this slice with explicit create-only, create-then-drive, and advanced `ace-assign create FILE` scenarios plus `--run` edge handling notes.
|
|
1069
|
-
|
|
1070
|
-
## [0.22.7] - 2026-03-08
|
|
1071
|
-
|
|
1072
|
-
### Technical
|
|
1073
|
-
- Stabilized create-command path-relativity test setup by pinning `PROJECT_ROOT_PATH` to the temp workspace and clearing `ProjectRootFinder` cache around the test.
|
|
1074
|
-
|
|
1075
|
-
## [0.22.6] - 2026-03-08
|
|
1076
|
-
|
|
1077
|
-
### Fixed
|
|
1078
|
-
- Rebalanced active step selection after `add --child` when injecting under the currently active step so execution moves into the newly created child subtree.
|
|
1079
|
-
|
|
1080
|
-
### Technical
|
|
1081
|
-
- Added `StepWriter#mark_pending` to clear runtime-only step state when demoting blocked active parents.
|
|
1082
|
-
- Added regression coverage for active-step rebalance behavior in parent/child/grandchild injection flows and for the new pending-state writer helper.
|
|
1083
|
-
- Hardened TS-ASSIGN-002 Goal 5 artifacts to require JSON status oracles for scoped and unscoped assertions, reducing false positives from report synthesis drift.
|
|
1084
|
-
|
|
1085
|
-
## [0.22.5] - 2026-03-07
|
|
1086
|
-
|
|
1087
|
-
### Technical
|
|
1088
|
-
- Updated create-command path-relativity test setup to run from the temporary cache directory so `Created:` output remains relative when expected.
|
|
1089
|
-
|
|
1090
|
-
## [0.22.4] - 2026-03-07
|
|
1091
|
-
|
|
1092
|
-
### Technical
|
|
1093
|
-
- **ace-assign v0.22.4**: Removed no-op release entries from package changelog history (`0.22.3`, `0.22.1`) and refactored a create-command path-relativity test to use the shared temporary cache helper.
|
|
1094
|
-
|
|
1095
|
-
## [0.22.2] - 2026-03-07
|
|
1096
|
-
|
|
1097
|
-
### Fixed
|
|
1098
|
-
- Normalized `ace-assign create` output path formatting so `Created:` and `Created from hidden spec:` use the same display-path strategy.
|
|
1099
|
-
|
|
1100
|
-
### Technical
|
|
1101
|
-
- Added regression coverage for relative create output formatting and legacy `steps/` source-config path preservation.
|
|
1102
|
-
|
|
1103
|
-
## [0.22.0] - 2026-03-07
|
|
1104
|
-
|
|
1105
|
-
### Added
|
|
1106
|
-
- `ace-assign create` now reports hidden-spec provenance with `Created from hidden spec: ...` when source config is under `.ace-local/assign/jobs/`.
|
|
1107
|
-
- Added create-command and assignment-executor coverage for hidden-spec path retention and provenance output.
|
|
1108
|
-
|
|
1109
|
-
### Changed
|
|
1110
|
-
- Assignment source-config archiving now preserves existing `jobs/` paths (including hidden specs in `.ace-local/assign/jobs/`) and archives non-job source configs into `<task>/jobs/<assignment-id>-job.yml` instead of `steps/`.
|
|
1111
|
-
- `assign/create` workflow and `as-assign-create` skill contract now document the tracer path `work-on-task --taskref <id>` with hidden-spec rendering and deterministic `ace-assign create FILE` handoff.
|
|
1112
|
-
|
|
1113
|
-
## [0.21.3] - 2026-03-07
|
|
1114
|
-
|
|
1115
|
-
### Technical
|
|
1116
|
-
- Completed shine-cycle assignment release step for PR #241: review execution remained blocked by upstream provider broken-pipe errors, and apply-feedback confirmed no pending items to apply.
|
|
1117
|
-
|
|
1118
|
-
## [0.21.2] - 2026-03-07
|
|
1119
|
-
|
|
1120
|
-
### Technical
|
|
1121
|
-
- Completed fit-cycle assignment release step for PR #241: review execution failed upstream with provider broken-pipe errors, and apply-feedback confirmed no pending items in session context.
|
|
1122
|
-
|
|
1123
|
-
## [0.21.1] - 2026-03-07
|
|
1124
|
-
|
|
1125
|
-
### Technical
|
|
1126
|
-
- Completed valid-cycle feedback application pass for PR #241 and confirmed there were no pending medium+ review feedback items to apply before release.
|
|
1127
|
-
|
|
1128
|
-
## [0.21.0] - 2026-03-07
|
|
1129
|
-
|
|
1130
|
-
### Added
|
|
1131
|
-
- New `pre-commit-review` step catalog entry for subtree task workflows, enabling native client review gate behavior before verification/release.
|
|
1132
|
-
- New subtree review defaults in assign config: `pre_commit_review`, `pre_commit_review_provider`, `pre_commit_review_block`, and `native_review_clients`.
|
|
1133
|
-
|
|
1134
|
-
### Changed
|
|
1135
|
-
- `task/work` workflow sub-step sequence now includes `pre-commit-review` between `work-on-task` and `verify-test`.
|
|
1136
|
-
- Child step instruction generation now renders config-aware native review run/skip/block guidance for `pre-commit-review`.
|
|
1137
|
-
|
|
1138
|
-
## [0.20.1] - 2026-03-05
|
|
1139
|
-
|
|
1140
|
-
### Fixed
|
|
1141
|
-
- `fork-run` stall detection now targets the in-progress step within the subtree (`in_progress_in_subtree`) instead of the global current step, preventing `stall_reason` from being written to the wrong step during parallel fork execution.
|
|
1142
|
-
- Stall-reason clearing on successful rerun now skips steps that never had a `stall_reason`, avoiding unnecessary file I/O on every subtree step.
|
|
1143
|
-
|
|
1144
|
-
## [0.20.0] - 2026-03-05
|
|
1145
|
-
|
|
1146
|
-
### Added
|
|
1147
|
-
- Provider-specific session detection fallback in `ForkSessionLauncher` -- when a provider doesn't return a native `session_id`, scans local session storage via `SessionFinder` to detect the forked session by prompt matching.
|
|
1148
|
-
- Session metadata file (`<root>-session.yml`) written for every fork run, capturing `session_id`, `provider`, `model`, and `completed_at` for traceability.
|
|
1149
|
-
- Stall error messages now include `Session: <id>` when session metadata is available, enabling direct trace to agent session.
|
|
1150
|
-
|
|
1151
|
-
## [0.19.3] - 2026-03-05
|
|
1152
|
-
|
|
1153
|
-
### Technical
|
|
1154
|
-
- Extracted `STALL_REASON_MAX = 2000` constant in `ForkRun` to replace magic number and serve as shared source of truth for production code and tests.
|
|
1155
|
-
- Tightened truncation test assertion to pin exact expected output length rather than a loose upper bound.
|
|
1156
|
-
|
|
1157
|
-
## [0.19.2] - 2026-03-05
|
|
1158
|
-
|
|
1159
|
-
### Fixed
|
|
1160
|
-
- Simplified Layer 1 last-message write in `ForkSessionLauncher` from check-then-write to a single read-based guard, reducing double file access and improving robustness.
|
|
1161
|
-
- Multiline `stall_reason` values in `ace-assign status` output now display with indented continuation lines for readable terminal formatting.
|
|
1162
|
-
|
|
1163
|
-
### Technical
|
|
1164
|
-
- Added `test_stall_reason_cleared_after_successful_rerun` regression test verifying `stall_reason` is cleared across all subtree steps after a successful rerun.
|
|
1165
|
-
|
|
1166
|
-
## [0.19.1] - 2026-03-05
|
|
1167
|
-
|
|
1168
|
-
### Fixed
|
|
1169
|
-
- `read_last_message` now rescues `SystemCallError` to prevent I/O errors from masking the stall error message.
|
|
1170
|
-
- Clear stale `stall_reason` from all subtree step files on successful fork-run completion, preventing misleading status after recovery.
|
|
1171
|
-
|
|
1172
|
-
### Technical
|
|
1173
|
-
- Added comment in `ForkSessionLauncher` documenting the blocking assumption that makes the Layer 1 check-then-write pattern safe from concurrent writes.
|
|
1174
|
-
|
|
1175
|
-
## [0.19.0] - 2026-03-05
|
|
1176
|
-
|
|
1177
|
-
### Added
|
|
1178
|
-
- Surface forked agent last message on stall: `fork-run` now reads the agent's last message from `<cache_dir>/sessions/<fork_root>-last-message.md` and includes it in the stall error output.
|
|
1179
|
-
- `stall_reason` field added to Step model and frontmatter: persisted when a fork stall is detected, visible via `ace-assign status`.
|
|
1180
|
-
- Two-layer last-message capture: `ForkSessionLauncher` writes `result[:text]` after session ends (Layer 1 for all providers); Codex gets timeout-resilient capture via `--output-last-message` (Layer 2).
|
|
1181
|
-
|
|
1182
|
-
## [0.18.2] - 2026-03-04
|
|
1183
|
-
|
|
1184
|
-
### Fixed
|
|
1185
|
-
- Enforced single-active subtree invariants in fork execution paths: `fork-run` and scoped `advance` now reject multiple in-progress steps in the same subtree and reuse existing active subtree work instead of activating sibling steps.
|
|
1186
|
-
|
|
1187
|
-
### Changed
|
|
1188
|
-
- QueueState now exposes `in_progress_steps` and `in_progress_in_subtree` helpers used by fork/scoped execution guards.
|
|
1189
|
-
|
|
1190
|
-
## [0.18.1] - 2026-03-04
|
|
1191
|
-
|
|
1192
|
-
### Changed
|
|
1193
|
-
- Default assignment cache directory now uses `.ace-local/assign`.
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
## [0.18.0] - 2026-03-04
|
|
1197
|
-
|
|
1198
|
-
### Changed
|
|
1199
|
-
- Normalize `providers.cli_args` values to arrays and support mixed string/array CLI argument merging in fork launcher.
|
|
1200
|
-
|
|
1201
|
-
## [0.17.3] - 2026-03-04
|
|
1202
|
-
|
|
1203
|
-
### Changed
|
|
1204
|
-
- Convert review cycles in assignment presets and prepare fixtures to forked cycle-parent steps with `sub_steps: [review-pr, apply-feedback, release]` for valid/fit/shine cycles
|
|
1205
|
-
- Align compose recipes to the forked review-cycle model and set default `review_cycles` to 3
|
|
1206
|
-
- Update assign compose/prepare workflow instructions and examples to document forked review-cycle expansion semantics
|
|
1207
|
-
|
|
1208
|
-
## [0.17.2] - 2026-03-04
|
|
1209
|
-
|
|
1210
|
-
### Fixed
|
|
1211
|
-
- Workflow instructions (create, drive, start) corrected to use `.ace-local/assign/` path (not `.ace-local/ace-assign/`)
|
|
1212
|
-
|
|
1213
|
-
## [0.17.1] - 2026-03-04
|
|
1214
|
-
|
|
1215
|
-
### Fixed
|
|
1216
|
-
- README assignment storage path corrected to short-name convention (`.ace-local/assign/` not `.ace-local/ace-assign/`)
|
|
1217
|
-
|
|
1218
|
-
## [0.17.0] - 2026-03-04
|
|
1219
|
-
|
|
1220
|
-
### Changed
|
|
1221
|
-
- Default cache directory migrated from `.cache/ace-assign` to `.ace-local/assign`
|
|
1222
|
-
|
|
1223
|
-
## [0.16.2] - 2026-03-04
|
|
1224
|
-
|
|
1225
|
-
### Changed
|
|
1226
|
-
- Rename PR skill references in assignment defaults from `ace-git-create-pr` / `ace-git-update-pr-desc` to `ace-github-pr-create` / `ace-github-pr-update`
|
|
1227
|
-
- Update PR skill references in assign workflows and E2E fixture presets to the new `ace-github-pr-*` naming convention
|
|
1228
|
-
|
|
1229
|
-
## [0.16.1] - 2026-03-04
|
|
1230
|
-
|
|
1231
|
-
### Fixed
|
|
1232
|
-
- Correct `.agents/skills` typo to `.agent/skills` in default config and `SkillAssignSourceResolver` -- skill discovery now uses the canonical provider-neutral path
|
|
1233
|
-
|
|
1234
|
-
## [0.16.0] - 2026-03-04
|
|
1235
|
-
|
|
1236
|
-
### Added
|
|
1237
|
-
- New `onboard-base` catalog step -- loads base project context via `ace-bundle project-base`
|
|
1238
|
-
- New `task-load` catalog step -- loads task behavioral spec via `ace-bundle task://<taskref>`
|
|
1239
|
-
- Taskref placeholder substitution in catalog step descriptions -- `<taskref>` in step descriptions is replaced with actual task reference during child instruction building
|
|
1240
|
-
|
|
1241
|
-
### Changed
|
|
1242
|
-
- Default assignment presets updated to use ace-task
|
|
1243
|
-
|
|
1244
|
-
### Fixed
|
|
1245
|
-
- Apply session 8q2 learnings to workflow and presets
|
|
1246
|
-
|
|
1247
|
-
### Technical
|
|
1248
|
-
- Increase timeout for hierarchy E2E scenario
|
|
1249
|
-
|
|
1250
|
-
## [0.15.1] - 2026-03-01
|
|
1251
|
-
|
|
1252
|
-
### Added
|
|
1253
|
-
- Fork-run crash recovery protocol in drive workflow -- detection, commit partial work, progress report, inject recovery steps, re-fork pattern for partial completion scenarios
|
|
1254
|
-
|
|
1255
|
-
## [0.15.0] - 2026-02-28
|
|
1256
|
-
|
|
1257
|
-
### Added
|
|
1258
|
-
- Add `verify-test-suite` step to `work-on-task` preset between `mark-task-done` and `verify-e2e` with profiling and performance budget enforcement
|
|
1259
|
-
- Add `verify-test-suite` step (number 012) to `work-on-tasks` preset between batch-parent and `verify-e2e`
|
|
1260
|
-
- Enrich `verify-test-suite` step catalog with structured steps: `run-package-tests`, `check-performance-budgets`, `fix-violations`, `run-suite`
|
|
1261
|
-
- Add performance budget thresholds to step definition: atoms <50ms, molecules <100ms, integration <1s, full package <30s
|
|
1262
|
-
- Move `verify-test-suite` from Optional to Core in compose workflow for "Implement + PR" and "Batch tasks" intents
|
|
1263
|
-
- Add `verify-test-suite` inclusion guidance note to compose workflow Step Selection Guidelines
|
|
1264
|
-
|
|
1265
|
-
### Changed
|
|
1266
|
-
- Strengthen `verify-test-suite` composition rule from `recommended` to `required` when assignment includes `work-on-task` or `fix-bug`
|
|
1267
|
-
|
|
1268
|
-
## [0.14.0] - 2026-02-28
|
|
1269
|
-
|
|
1270
|
-
### Added
|
|
1271
|
-
- Add `verify-e2e` step to catalog: E2E coverage review and targeted scenario execution for modified packages
|
|
1272
|
-
- Add `update-docs` step to catalog: public-facing documentation updates when CLI contracts or public APIs change
|
|
1273
|
-
- Add `verify-e2e` and `update-docs` steps to `work-on-task` preset (between `mark-task-done` and `release-minor`, and between `release-minor` and `create-pr`)
|
|
1274
|
-
- Add batch-level `verify-e2e` (step 015) and `update-docs` (step 025) to `work-on-tasks` preset
|
|
1275
|
-
- Add ordering rules to `composition-rules.yml`: `e2e-before-release`, `update-docs-after-release`, `update-docs-before-pr`, `e2e-after-verify`
|
|
1276
|
-
- Add conditional rule to suggest `verify-e2e` and `update-docs` when assignment touches CLI commands or public API
|
|
1277
|
-
- Add `e2e-review-run-pair` and `docs-update-validate-pair` to composition pairs
|
|
1278
|
-
- Update `compose.wf.md` Step Selection Guidelines table to include `verify-e2e` and `update-docs` in all relevant workflow intents with skip guidance
|
|
1279
|
-
|
|
1280
|
-
## [0.13.4] - 2026-02-26
|
|
1281
|
-
|
|
1282
|
-
### Fixed
|
|
1283
|
-
- Restore scoped status filter compatibility by honoring legacy `filter` formats (`010.01` and `(assignment@)010.01`) while preserving explicit `--assignment` targeting precedence
|
|
1284
|
-
- Restore scoped fork PID telemetry lines in `status` output (`Scoped Fork PID`, PID tree, and PID file path) when fork metadata exists
|
|
1285
|
-
|
|
1286
|
-
### Added
|
|
1287
|
-
- Re-add explicit `--filter` option to `status` command for CLI-level backward compatibility
|
|
1288
|
-
- Add regression coverage ensuring `assignment` target overrides `filter` when both are provided
|
|
1289
|
-
|
|
1290
|
-
## [0.13.3] - 2026-02-26
|
|
1291
|
-
|
|
1292
|
-
### Added
|
|
1293
|
-
- Document `advance()` legacy bridge behavior with explanatory comment
|
|
1294
|
-
- Add `start` and piped stdin examples to CLI `--help` output
|
|
1295
|
-
- Add "Starting Work" section to `docs/usage.md` documenting sequential auto-advance, explicit `start`, and piped stdin
|
|
1296
|
-
|
|
1297
|
-
### Changed
|
|
1298
|
-
- Use standard Keep a Changelog section headers (replace non-standard `Technical` with `Changed`)
|
|
1299
|
-
|
|
1300
|
-
## [0.13.2] - 2026-02-26
|
|
1301
|
-
|
|
1302
|
-
### Fixed
|
|
1303
|
-
- Short-circuit stdin read in `finish` when `--report` file content is already present, preventing unnecessary I/O or blocking
|
|
1304
|
-
- Narrow `rescue` in `read_stdin_if_piped` to `IOError, Errno::EBADF` instead of broad `StandardError`
|
|
1305
|
-
- Validate `fork_root` existence in `find_target_step_for_start` consistently regardless of `step_number` presence
|
|
1306
|
-
|
|
1307
|
-
### Added
|
|
1308
|
-
- Integration test for `finish` auto-advance and `start` conflict detection across sequential steps
|
|
1309
|
-
- Test for `--report` file precedence over piped stdin when both are present
|
|
1310
|
-
|
|
1311
|
-
## [0.13.1] - 2026-02-26
|
|
1312
|
-
|
|
1313
|
-
### Fixed
|
|
1314
|
-
- Raise `StepNotFoundError` in `start_step` and `finish_step` when `--assignment <id@root>` specifies a non-existent subtree root, preventing silent fallback to the global queue
|
|
1315
|
-
- Use `ConfigNotFoundError` (exit 3) in `advance()` for missing report files, consistent with `finish` command behavior
|
|
1316
|
-
|
|
1317
|
-
### Added
|
|
1318
|
-
- Add positive test cases for `start` and `finish` commands with explicit `step` argument targeting
|
|
1319
|
-
|
|
1320
|
-
## [0.13.0] - 2026-02-26
|
|
1321
|
-
|
|
1322
|
-
### Added
|
|
1323
|
-
- Add `start` command for explicit step lifecycle control: `ace-assign start [STEP]`
|
|
1324
|
-
- Add `finish` command replacing `report`: `ace-assign finish [STEP] --report <file>` or via piped stdin
|
|
1325
|
-
- Support piped stdin as report source in `finish`, eliminating mandatory temp-file creation
|
|
1326
|
-
- Enforce strict `start` conflict detection: fails when another step is already `in_progress`
|
|
1327
|
-
- Add `start_step` and `finish_step` APIs to assignment executor for programmatic lifecycle control
|
|
1328
|
-
|
|
1329
|
-
### Changed
|
|
1330
|
-
- Replace `ace-assign report` with `ace-assign finish --report <file>` across all docs and workflows
|
|
1331
|
-
- Update `assign/create.wf.md` and `assign/drive.wf.md` to use `finish` command pattern
|
|
1332
|
-
- Update `README.md`, `docs/usage.md`, and `docs/exit-codes.md` to reflect new command surface
|
|
1333
|
-
- Deterministic report input precedence: `--report` file wins over stdin when both are present
|
|
1334
|
-
|
|
1335
|
-
### Removed
|
|
1336
|
-
- Remove `report` command from CLI surface (replaced by `finish`)
|
|
1337
|
-
|
|
1338
|
-
### Changed
|
|
1339
|
-
- Replace `report_command_test.rb` with `finish_command_test.rb` and `start_command_test.rb`
|
|
1340
|
-
- Update e2e test runner docs in `ace-assign` and `ace-overseer` to use `finish` pattern
|
|
1341
|
-
|
|
1342
|
-
## [0.12.23] - 2026-02-26
|
|
1343
|
-
|
|
1344
|
-
### Fixed
|
|
1345
|
-
- Anchor FORK column detection regex to CHILDREN pattern in `assign/drive` workflow, preventing false matches on step names containing 'yes'
|
|
1346
|
-
|
|
1347
|
-
## [0.12.22] - 2026-02-26
|
|
1348
|
-
|
|
1349
|
-
### Added
|
|
1350
|
-
- Add explicit FORK column to status output showing "yes" for steps with children, making delegation signal unmissable
|
|
1351
|
-
- Introduce adaptive recovery for failed subtrees with retry/fail-children strategies
|
|
1352
|
-
- Introduce fork PID telemetry and scoped status filtering for subprocess tracking
|
|
1353
|
-
|
|
1354
|
-
### Changed
|
|
1355
|
-
- Decouple assignment targeting from environment variables; rely on explicit `--assignment <id>` flags
|
|
1356
|
-
- Enhance plan-task instructions for behavioral spec adherence
|
|
1357
|
-
- Update `assign/drive` workflow to reference FORK column instead of subtle "Fork subtree detected" message
|
|
1358
|
-
|
|
1359
|
-
### Technical
|
|
1360
|
-
- Add validation order to E2E test expectations
|
|
1361
|
-
- Update E2E test runner and verifier configurations
|
|
1362
|
-
- Add test for FORK column in status output
|
|
1363
|
-
|
|
1364
|
-
## [0.12.21] - 2026-02-25
|
|
1365
|
-
|
|
1366
|
-
### Changed
|
|
1367
|
-
- Remove runtime assignment context coupling to `ACE_ASSIGN_ID` and `ACE_ASSIGN_FORK_ROOT`; assignment targeting now relies on explicit `--assignment <id>` and scoped `--assignment <id>@<step>` usage.
|
|
1368
|
-
- Update `assign/drive` workflow and fork-context guide to use explicit assignment flags for subprocess delegation.
|
|
1369
|
-
|
|
1370
|
-
### Fixed
|
|
1371
|
-
- Eliminate scoped report/status behavior that depended on mutable process environment, reducing cross-process/test leakage risk.
|
|
1372
|
-
|
|
1373
|
-
## [0.12.20] - 2026-02-25
|
|
1374
|
-
|
|
1375
|
-
### Changed
|
|
1376
|
-
- Update generated `plan-task` step action instructions to require planning against behavioral spec sections, cover relevant operating modes, and report missing spec details in a `Behavioral Gaps` section
|
|
1377
|
-
|
|
1378
|
-
## [0.12.19] - 2026-02-24
|
|
1379
|
-
|
|
1380
|
-
### Fixed
|
|
1381
|
-
- Apply assignment scope (`<id>@<step>`) during report execution by setting `ACE_ASSIGN_FORK_ROOT` for the report command, so child-step completions resolve in the correct subtree.
|
|
1382
|
-
|
|
1383
|
-
### Technical
|
|
1384
|
-
- Harden TS-ASSIGN-002 hierarchy E2E runner/verifier instructions for scoped completion commands and scoped subtree status assertions.
|
|
1385
|
-
|
|
1386
|
-
## [0.12.18] - 2026-02-23
|
|
1387
|
-
|
|
1388
|
-
### Technical
|
|
1389
|
-
- Updated internal dependency version constraints to current releases
|
|
1390
|
-
|
|
1391
|
-
## [0.12.17] - 2026-02-22
|
|
1392
|
-
|
|
1393
|
-
### Changed
|
|
1394
|
-
- Migrate CLI to standard help pattern: register HelpCommand for `--help`/`-h`, simplify `start()` by removing DWIM default routing
|
|
1395
|
-
|
|
1396
|
-
## [0.12.16] - 2026-02-22
|
|
1397
|
-
|
|
1398
|
-
### Fixed
|
|
1399
|
-
- Prevent fork subtree recursion by auto-scoping `status` command to `ACE_ASSIGN_FORK_ROOT` when set
|
|
1400
|
-
- Mark first workable child step as `in_progress` before launching forked session in `fork-run`
|
|
1401
|
-
|
|
1402
|
-
## [0.12.15] - 2026-02-22
|
|
1403
|
-
|
|
1404
|
-
### Technical
|
|
1405
|
-
- Update `ace-bundle project` → `ace-bundle load project` in README, fork-context guide, and test fixture
|
|
1406
|
-
|
|
1407
|
-
## [0.12.14] - 2026-02-22
|
|
1408
|
-
|
|
1409
|
-
### Added
|
|
1410
|
-
- Subtree guard step in drive workflow -- driver reviews all fork report files before continuing to next step
|
|
1411
|
-
- Report review instruction in split-subtree-root step template for fork context
|
|
1412
|
-
|
|
1413
|
-
## [0.12.13] - 2026-02-22
|
|
1414
|
-
|
|
1415
|
-
### Added
|
|
1416
|
-
- Background execution guidance for fork-run in drive workflow (10-30 min timeout handling)
|
|
1417
|
-
- Timeout note in split-subtree-root step template for environments with bash limits
|
|
1418
|
-
|
|
1419
|
-
## [0.12.11] - 2026-02-22
|
|
1420
|
-
|
|
1421
|
-
### Changed
|
|
1422
|
-
- Migrate skill naming and invocation references to hyphenated `ace-*` format (no underscores).
|
|
1423
|
-
|
|
1424
|
-
## [0.12.10] - 2026-02-21
|
|
1425
|
-
|
|
1426
|
-
### Technical
|
|
1427
|
-
- Stabilize `TS-ASSIGN-004` by replacing live `fork-run` invocation with deterministic scoped `status --assignment <id>@<step>` assertions
|
|
1428
|
-
- Rewrite `TS-ASSIGN-006` to deterministic preset-expansion verification using `Ace::Assign::Atoms::PresetExpander` (no chat-skill invocation dependency)
|
|
1429
|
-
- Add prepare-workflow fixture presets (`work-on-task.yml`, `work-on-tasks.yml`) for reproducible E2E generation checks
|
|
1430
|
-
|
|
1431
|
-
## [0.12.9] - 2026-02-21
|
|
1432
|
-
|
|
1433
|
-
### Changed
|
|
1434
|
-
- Migrate skill name references to colon-free convention (`ace_domain_action` format) for non-Claude Code agent compatibility
|
|
1435
|
-
- Update catalog steps and presets with new skill name format
|
|
1436
|
-
- Update workflow instructions with new skill invocation patterns
|
|
1437
|
-
|
|
1438
|
-
## [0.12.8] - 2026-02-21
|
|
1439
|
-
|
|
1440
|
-
### Added
|
|
1441
|
-
- Verification instructions in `mark-task-done` step requiring status confirmation after `ace-taskflow task done`
|
|
1442
|
-
- Subtree completion section in drive workflow requiring task status verification before reporting complete
|
|
1443
|
-
|
|
1444
|
-
## [0.12.7] - 2026-02-21
|
|
1445
|
-
|
|
1446
|
-
### Fixed
|
|
1447
|
-
- Add `CACHE_BASE` env var support to `cache_dir` so E2E sandboxes resolve the correct cache path
|
|
1448
|
-
- Graceful return in `advance()` when fork subtree is exhausted (prevents "No step currently in progress" error)
|
|
1449
|
-
- Nil guard in `report` command when `advance()` returns `completed: nil` after subtree exhaustion
|
|
1450
|
-
|
|
1451
|
-
## [0.12.6] - 2026-02-21
|
|
1452
|
-
|
|
1453
|
-
### Technical
|
|
1454
|
-
- Add E2E tests for prepare workflow (from preset and from informal instructions)
|
|
1455
|
-
- Fix `ASSIGNMENT_DIR` lookup in injection/renumbering E2E tests to use dynamic directory discovery
|
|
1456
|
-
- Reorganize TS-ASSIGN-003b fixtures: replace flat `job.yaml` with structured `steps/` directory
|
|
1457
|
-
|
|
1458
|
-
## [0.12.5] - 2026-02-20
|
|
1459
|
-
|
|
1460
|
-
### Technical
|
|
1461
|
-
- Update slash command refs to use git namespace (ace:git-create-pr, ace:git-update-pr-desc)
|
|
1462
|
-
|
|
1463
|
-
## [0.12.4] - 2026-02-19
|
|
1464
|
-
|
|
1465
|
-
### Technical
|
|
1466
|
-
- Namespace workflow instructions into domain-specific subdirectories with updated wfi:// protocol URIs
|
|
1467
|
-
- Update skill name references to use namespaced ace:namespace-action format
|
|
1468
|
-
|
|
1469
|
-
## [0.12.3] - 2026-02-19
|
|
1470
|
-
|
|
1471
|
-
### Changed
|
|
1472
|
-
- Added clarifying comments for `skill: null` and `context.default: null` in reflect-and-refactor step
|
|
1473
|
-
|
|
1474
|
-
## [0.12.2] - 2026-02-19
|
|
1475
|
-
|
|
1476
|
-
### Changed
|
|
1477
|
-
- Clarified `reflect-after-verify` ordering note to distinguish baseline verify from post-refactor re-verify
|
|
1478
|
-
- Consolidated duplicate conditional suggestions for `work-on-task` into single entry with per-step strength overrides
|
|
1479
|
-
|
|
1480
|
-
## [0.12.1] - 2026-02-19
|
|
1481
|
-
|
|
1482
|
-
### Fixed
|
|
1483
|
-
- `reflect-verify-cycle` pair changed from `sequential` to `conditional` -- prevents overriding optional strength of reflect-and-refactor
|
|
1484
|
-
- Renamed `max_recursion` to `max_reruns` in replan config for clarity
|
|
1485
|
-
|
|
1486
|
-
## [0.12.0] - 2026-02-19
|
|
1487
|
-
|
|
1488
|
-
### Added
|
|
1489
|
-
- New `reflect-and-refactor` step in catalog -- analyzes implementation against ATOM principles and executes targeted refactoring before PR creation
|
|
1490
|
-
- Composition rules for reflect-and-refactor: ordering (after verify, before mark-done/release/retro), pairs (verify cycle, fix cycle, replan cycle), and conditional suggestion
|
|
1491
|
-
- `create-retro` step now consumes `findings-report` from reflect-and-refactor as recommended prerequisite
|
|
1492
|
-
- `implement-with-pr` recipe updated to include optional reflect-and-refactor step after work-on-task
|
|
1493
|
-
|
|
1494
|
-
## [0.11.18] - 2026-02-19
|
|
1495
|
-
|
|
1496
|
-
### Changed
|
|
1497
|
-
- Remove dead `print_fork_scope_guidance` method and duplicate `fork_scope_root` definition from status command
|
|
1498
|
-
|
|
1499
|
-
## [0.11.17] - 2026-02-17
|
|
1500
|
-
|
|
1501
|
-
### Fixed
|
|
1502
|
-
|
|
1503
|
-
- `assignment_state` now checks `completed` before `failed` -- assignments where all steps are done/failed correctly report `:completed` instead of `:failed`
|
|
1504
|
-
|
|
1505
|
-
### Added
|
|
1506
|
-
|
|
1507
|
-
- `recently_active?` method on `QueueState` to detect stale in-progress steps (threshold: 1 hour)
|
|
1508
|
-
- New `:stalled` assignment state for in-progress steps with no recent activity
|
|
1509
|
-
|
|
1510
|
-
## [0.11.16] - 2026-02-17
|
|
1511
|
-
|
|
1512
|
-
### Added
|
|
1513
|
-
|
|
1514
|
-
- `current_in_subtree` method on `QueueState` to find in-progress step within a subtree
|
|
1515
|
-
|
|
1516
|
-
### Fixed
|
|
1517
|
-
|
|
1518
|
-
- Fork root executor now checks for existing in-progress step in subtree before advancing to next workable step
|
|
1519
|
-
|
|
1520
|
-
## [0.11.15] - 2026-02-17
|
|
1521
|
-
|
|
1522
|
-
### Added
|
|
1523
|
-
- New catalog step definition `split-subtree-root` for split parent/fork-root orchestration instructions (default template in `.ace-defaults/assign/catalog/steps/`)
|
|
1524
|
-
|
|
1525
|
-
### Changed
|
|
1526
|
-
- Split parent steps with `sub_steps` now materialize as orchestration-only subtree roots:
|
|
1527
|
-
- parent `skill` is removed to avoid duplicate execution semantics
|
|
1528
|
-
- parent keeps `source_skill` metadata for traceability
|
|
1529
|
-
- parent instructions are rendered from catalog template (project-overridable)
|
|
1530
|
-
- Step catalog resolution now merges project overrides with default catalog by step name, so projects can override a single step definition without replacing the entire catalog
|
|
1531
|
-
|
|
1532
|
-
### Fixed
|
|
1533
|
-
- Fork root parent steps no longer instruct direct `work-on-task` execution and now clearly drive subtree delegation/execution (`fork-run` + `assign-drive`) through child steps
|
|
1534
|
-
|
|
1535
|
-
## [0.11.14] - 2026-02-17
|
|
1536
|
-
|
|
1537
|
-
### Fixed
|
|
1538
|
-
- Scoped status rendering for nested roots (for example `--assignment <id>@010.01`) now prints the subtree hierarchy correctly instead of collapsing to an empty queue section
|
|
1539
|
-
- Runtime-expanded child steps now use explicit `taskref` metadata (when present) for deterministic task context, and preserve it in child step frontmatter
|
|
1540
|
-
- Fork session launcher now loads `ace/llm` so `fork-run` handles provider errors without crashing on uninitialized LLM error constants
|
|
1541
|
-
|
|
1542
|
-
### Changed
|
|
1543
|
-
- Preset expansion now substitutes placeholders across all step fields (including nested metadata), not only `name` and `instructions`
|
|
1544
|
-
|
|
1545
|
-
## [0.11.13] - 2026-02-17
|
|
1546
|
-
|
|
1547
|
-
### Fixed
|
|
1548
|
-
- Scoped status (`--assignment <id>@<step>`) now selects the actionable step within the subtree instead of always reporting the scope root as current
|
|
1549
|
-
- Runtime sub-step expansion now generates step-specific action instructions per child step and keeps parent goals as a verification checklist (instead of copy-pasting orchestration text into every child)
|
|
1550
|
-
|
|
1551
|
-
## [0.11.12] - 2026-02-17
|
|
1552
|
-
|
|
1553
|
-
### Added
|
|
1554
|
-
- E2E regression scenario `TS-ASSIGN-005-no-skip-policy` to enforce hard no-skip drive policy and keep `ace:assign-drive` skill thin
|
|
1555
|
-
|
|
1556
|
-
### Changed
|
|
1557
|
-
- `drive-assignment` workflow now enforces hard no-skip execution for planned steps and removes skip-assessment behavior
|
|
1558
|
-
- Added required attempt-first failure evidence (command + exact error) and post-report/fail status transition verification in drive workflow
|
|
1559
|
-
|
|
1560
|
-
## [0.11.11] - 2026-02-17
|
|
1561
|
-
|
|
1562
|
-
### Changed
|
|
1563
|
-
- `drive-assignment` workflow now auto-delegates detected fork-enabled subtrees via `ace-assign fork-run --assignment <id>@<root>` before inline step execution
|
|
1564
|
-
- Fork context guide now documents the runtime delegation path where parent drive sessions detect subtree roots and delegate scoped execution with `fork-run`
|
|
1565
|
-
|
|
1566
|
-
## [0.11.10] - 2026-02-17
|
|
1567
|
-
|
|
1568
|
-
### Changed
|
|
1569
|
-
- Use `Atoms::NumberGenerator.subtask` for sub-step numbering in runtime expansion to keep numbering logic centralized
|
|
1570
|
-
- Tree formatter state labels now explicitly include `pending` and `in_progress`
|
|
1571
|
-
|
|
1572
|
-
### Fixed
|
|
1573
|
-
- Added coverage for fork-scoped advancement when global current step is outside scoped subtree
|
|
1574
|
-
- Added stable tests for CLI provider env propagation and query-interface sandbox propagation
|
|
1575
|
-
|
|
1576
|
-
## [0.11.9] - 2026-02-17
|
|
1577
|
-
|
|
1578
|
-
### Added
|
|
1579
|
-
- Regression coverage for fork-scoped advancement when global current step is outside the scoped subtree
|
|
1580
|
-
|
|
1581
|
-
### Changed
|
|
1582
|
-
- `ace-assign status` now prints explicit `Current Status: <status>` for easier machine parsing and E2E assertions
|
|
1583
|
-
|
|
1584
|
-
### Fixed
|
|
1585
|
-
- Fork-scoped report advancement now selects and completes the next in-subtree step instead of completing an out-of-scope global current step
|
|
1586
|
-
- E2E assertions for `parent` frontmatter now accept both single-quoted and double-quoted YAML scalars to avoid formatting-only false negatives
|
|
1587
|
-
|
|
1588
|
-
## [0.11.8] - 2026-02-17
|
|
1589
|
-
|
|
1590
|
-
### Added
|
|
1591
|
-
- Shared assignment target parser for CLI commands with scoped syntax support: `--assignment <id>@<step>`
|
|
1592
|
-
- New command tests covering assignment target parsing and scoped subtree execution behavior
|
|
1593
|
-
- New E2E scenario scaffold for fork subtree scope isolation verification (`TS-ASSIGN-004`)
|
|
1594
|
-
|
|
1595
|
-
### Changed
|
|
1596
|
-
- Assignment-targeting commands (`status`, `report`, `fail`, `add`, `retry`, `fork-run`) now use a shared target resolver
|
|
1597
|
-
- `ace-assign fork-run` accepts subtree root from scoped assignment target (`<id>@<step>`) and validates conflicts with `--root`
|
|
1598
|
-
- Scoped status output (`--assignment <id>@<step>`) now renders only the selected node subtree and uses the scope root as displayed current step
|
|
1599
|
-
|
|
1600
|
-
### Fixed
|
|
1601
|
-
- Removed global current-step coupling in `fork-run` so subtree execution can start from any explicitly scoped root node
|
|
1602
|
-
|
|
1603
|
-
## [0.11.7] - 2026-02-17
|
|
1604
|
-
|
|
1605
|
-
### Added
|
|
1606
|
-
- `ForkSessionLauncher` molecule to execute forked subtree sessions synchronously via `ace-llm` (`/ace:assign-drive`)
|
|
1607
|
-
- Fork execution config defaults under assign namespace:
|
|
1608
|
-
- `execution.provider`, `execution.timeout`
|
|
1609
|
-
- `providers.cli`, `providers.cli_args`
|
|
1610
|
-
|
|
1611
|
-
### Changed
|
|
1612
|
-
- `ace-assign fork-run` now launches provider sessions directly (blocking) instead of printing shell instructions
|
|
1613
|
-
- `fork-run` supports `--provider`, `--cli-args`, and `--timeout` overrides
|
|
1614
|
-
- Post-launch validation enforces subtree outcome: complete (success), failed/incomplete (error)
|
|
1615
|
-
|
|
1616
|
-
### Technical
|
|
1617
|
-
- Add `ace-llm` runtime dependency for provider-driven fork execution
|
|
1618
|
-
- Add command and molecule tests for launcher integration and fork-run completion/error paths
|
|
1619
|
-
|
|
1620
|
-
## [0.11.6] - 2026-02-17
|
|
1621
|
-
|
|
1622
|
-
### Added
|
|
1623
|
-
- `ace-assign fork-run` command to initialize subtree-scoped fork execution using `ACE_ASSIGN_ID` and `ACE_ASSIGN_FORK_ROOT`
|
|
1624
|
-
- Subtree scope helpers in queue state (`in_subtree?`, `subtree_steps`, `subtree_complete?`, `next_workable_in_subtree`, `nearest_fork_ancestor`)
|
|
1625
|
-
|
|
1626
|
-
### Changed
|
|
1627
|
-
- Status output now detects forked ancestor scope and guides operators to run `fork-run` for whole-subtree delegation
|
|
1628
|
-
- Report output now distinguishes subtree completion from full assignment completion when fork scope is active
|
|
1629
|
-
- Fork context guide and workflow docs updated for explicit parent-only fork semantics and subtree execution model
|
|
1630
|
-
|
|
1631
|
-
### Fixed
|
|
1632
|
-
- Split-substep expansion no longer writes `context: fork` on child steps (`onboard`, `plan-task`, `work-on-task`) when parent is forked
|
|
1633
|
-
- Queue advancement in fork scope now stays inside `ACE_ASSIGN_FORK_ROOT` subtree and does not leak into sibling steps
|
|
1634
|
-
|
|
1635
|
-
## [0.11.5] - 2026-02-17
|
|
1636
|
-
|
|
1637
|
-
### Fixed
|
|
1638
|
-
- Ensure runtime-expanded sub-steps are concrete and executable by materializing catalog metadata (skill, step focus) instead of generic placeholder instructions
|
|
1639
|
-
- Preserve task context during sub-step expansion so child steps receive parent task instructions for deterministic parameter extraction
|
|
1640
|
-
- Start assignments on the first workable leaf step (not parent container steps), preventing blocked progression in parent-child trees
|
|
1641
|
-
- Use a single fork entrypoint for forked sub-step subtrees (first child), avoiding nested fork-per-child behavior
|
|
1642
|
-
|
|
1643
|
-
## [0.11.4] - 2026-02-17
|
|
1644
|
-
|
|
1645
|
-
### Changed
|
|
1646
|
-
- Clarify assignment responsibility boundaries in workflow docs:
|
|
1647
|
-
- `compose-assignment` is catalog-only and no longer models source/frontmatter ingestion
|
|
1648
|
-
- `start-assignment` explicitly distinguishes catalog composition vs deterministic prepare/runtime expansion
|
|
1649
|
-
- `prepare-assignment` explicitly documents runtime metadata expansion as the canonical path
|
|
1650
|
-
- Update assignment skills metadata to reflect compose/prepare boundary semantics
|
|
1651
|
-
|
|
1652
|
-
## [0.11.3] - 2026-02-17
|
|
1653
|
-
|
|
1654
|
-
### Added
|
|
1655
|
-
- `SkillAssignSourceResolver` molecule to resolve skill frontmatter `assign.source` URIs (currently `wfi://...`) into workflow assignment metadata
|
|
1656
|
-
- Default config paths for skill/workflow discovery:
|
|
1657
|
-
- `skill_source_paths`: `.agents/skills`, `.claude/skills`
|
|
1658
|
-
- `workflow_source_paths`: `ace-taskflow/handbook/workflow-instructions`, `ace-assign/handbook/workflow-instructions`
|
|
1659
|
-
|
|
1660
|
-
### Changed
|
|
1661
|
-
- `AssignmentExecutor.start` now enriches steps with skill-declared workflow `assign.sub-steps` before expansion, enabling deterministic runtime sub-step materialization without compose-specific wiring
|
|
1662
|
-
- `compose-assignment` workflow is now catalog-only and no longer documents source/frontmatter-driven step composition
|
|
1663
|
-
|
|
1664
|
-
## [0.11.2] - 2026-02-16
|
|
1665
|
-
|
|
1666
|
-
### Technical
|
|
1667
|
-
- Add test cases for new composition ordering rules (`onboard-before-plan`, `plan-before-implementation`) and conditional `plan-task` suggestion
|
|
1668
|
-
|
|
1669
|
-
## [0.11.1] - 2026-02-16
|
|
1670
|
-
|
|
1671
|
-
### Fixed
|
|
1672
|
-
- Consolidate duplicate conditional trigger for work-on-task in composition-rules
|
|
1673
|
-
|
|
1674
|
-
## [0.11.0] - 2026-02-16
|
|
1675
|
-
|
|
1676
|
-
### Added
|
|
1677
|
-
- JIT plan-task step in implement-with-pr and implement-simple recipes (optional, between onboard and work-on-task)
|
|
1678
|
-
- Composition rules: `onboard-before-plan` and `plan-before-implementation` ordering
|
|
1679
|
-
- Conditional suggestion: recommend plan-task when work-on-task is included
|
|
1680
|
-
|
|
1681
|
-
### Changed
|
|
1682
|
-
- plan-task step catalog entry: produces `[implementation-plan]` only (removed `task-spec`), consumes `[project-context, task-spec]`
|
|
1683
|
-
|
|
1684
|
-
## [0.10.2] - 2026-02-16
|
|
1685
|
-
|
|
1686
|
-
### Changed
|
|
1687
|
-
- Rename review cycle steps by type: `review-cycle-1` → `review-valid-1`, `review-cycle-2` → `review-fit-1` (with matching apply/release steps)
|
|
1688
|
-
- Add shine review cycle (`review-shine-1`, `apply-shine-1`, `release-shine-1`) to `work-on-task` and `work-on-tasks` presets
|
|
1689
|
-
- Update `default_count` from 2 to 3 in composition rules to reflect three review types (valid, fit, shine)
|
|
1690
|
-
- Renumber post-review steps: reorganize-commits → 130, push-to-remote → 140, update-pr-desc → 150
|
|
1691
|
-
|
|
1692
|
-
## [0.10.1] - 2026-02-16
|
|
1693
|
-
|
|
1694
|
-
### Added
|
|
1695
|
-
- **Preset progression**: `preset_progression` mapping in composition rules (cycle 1→`code-valid`, 2→`code-fit`, 3→`code-shine`)
|
|
1696
|
-
|
|
1697
|
-
### Changed
|
|
1698
|
-
- Review cycle presets in `work-on-task.yml` and `work-on-tasks.yml` now use step-specific presets instead of `code-deep`
|
|
1699
|
-
- Updated `implement-with-pr.recipe.yml` to reference `preset_progression` from composition rules
|
|
1700
|
-
- Updated `compose-assignment.wf.md` with preset progression documentation and examples
|
|
1701
|
-
|
|
1702
|
-
## [0.9.3] - 2026-02-15
|
|
1703
|
-
|
|
1704
|
-
### Fixed
|
|
1705
|
-
- **AssignFrontmatterParser**: Validate that hint `include`/`skip` values are strings (rejects non-string types with descriptive error)
|
|
1706
|
-
|
|
1707
|
-
## [0.9.2] - 2026-02-14
|
|
1708
|
-
|
|
1709
|
-
### Fixed
|
|
1710
|
-
|
|
1711
|
-
- Frontmatter parser now rejects hints with both `include` and `skip` (mutual exclusivity validation)
|
|
1712
|
-
|
|
1713
|
-
## [0.9.1] - 2026-02-14
|
|
1714
|
-
|
|
1715
|
-
### Fixed
|
|
1716
|
-
|
|
1717
|
-
- Tree formatter now correctly handles child-before-parent input ordering (two-pass index build)
|
|
1718
|
-
- Added regression test for unordered tree formatter input
|
|
1719
|
-
|
|
1720
|
-
## [0.9.0] - 2026-02-15
|
|
1721
|
-
|
|
1722
|
-
### Added
|
|
1723
|
-
|
|
1724
|
-
- Declarative assignment frontmatter: `assign:` block in `.s.md` and `.wf.md` files declares assignment intent (goal, variables, hints, sub-steps, context, parent)
|
|
1725
|
-
- `AssignFrontmatterParser` atom for extracting and validating `assign:` frontmatter blocks
|
|
1726
|
-
- `TreeFormatter` atom for rendering assignment hierarchy as indented tree with Unicode connectors
|
|
1727
|
-
- Parent-child assignment linking via `parent` field in Assignment model
|
|
1728
|
-
- `ace-assign list --tree` option for hierarchical assignment view
|
|
1729
|
-
- Sub-step fork enforcement in executor: steps with sub-steps create batch parent in fork context
|
|
1730
|
-
- Compose workflow integration: step 0 reads `assign:` frontmatter as structured input
|
|
1731
|
-
- `documentation.recipe.yml` for documentation workflows with research step
|
|
1732
|
-
- `release-only.recipe.yml` for version bump workflows without code changes
|
|
1733
|
-
- `work-on-docs.yml` preset exposing documentation workflow
|
|
1734
|
-
- `release-only.yml` preset exposing release-only workflow
|
|
1735
|
-
- `quick-implement.yml` preset for simple task implementation
|
|
1736
|
-
- `fix-bug.yml` preset for bug fix with review workflow
|
|
1737
|
-
|
|
1738
|
-
### Changed
|
|
1739
|
-
|
|
1740
|
-
- Update timestamp dependency from `ace-support-timestamp` to `ace-b36ts`
|
|
1741
|
-
|
|
1742
|
-
## [0.8.3] - 2026-02-14
|
|
1743
|
-
|
|
1744
|
-
### Added
|
|
1745
|
-
|
|
1746
|
-
- New `mark-task-done` step for marking tasks as done in ace-taskflow after implementation
|
|
1747
|
-
- Composition rule to order `mark-task-done` after `work-on-task`
|
|
1748
|
-
- Conditional rule suggesting `mark-task-done` when assignment includes `work-on-task`
|
|
1749
|
-
- `mark-task-done` step in `work-on-task` preset (runs `ace-taskflow task done`)
|
|
1750
|
-
- Mark-done instruction in `work-on-tasks` child template for per-task completion
|
|
1751
|
-
- `mark-task-done` step in `implement-with-pr`, `implement-simple`, and `fix-and-review` recipes
|
|
1752
|
-
|
|
1753
|
-
## [0.8.2] - 2026-02-13
|
|
1754
|
-
|
|
1755
|
-
### Fixed
|
|
1756
|
-
|
|
1757
|
-
- `list` command now shows filtered count context (e.g., `1/2 assignment(s) shown`) when completed assignments are hidden
|
|
1758
|
-
|
|
1759
|
-
## [0.8.1] - 2026-02-13
|
|
1760
|
-
|
|
1761
|
-
### Added
|
|
1762
|
-
|
|
1763
|
-
- Tests for `--assignment` flag targeting on `add`, `fail`, `report`, and `retry` commands
|
|
1764
|
-
- Performance documentation note on `AssignmentDiscoverer#find_all`
|
|
1765
|
-
|
|
1766
|
-
### Fixed
|
|
1767
|
-
|
|
1768
|
-
- Null safety for `info.name` in `list` command table output
|
|
1769
|
-
|
|
1770
|
-
## [0.8.0] - 2026-02-13
|
|
1771
|
-
|
|
1772
|
-
### Added
|
|
1773
|
-
|
|
1774
|
-
- Multi-assignment support with `.current` symlink for explicit assignment selection
|
|
1775
|
-
- `ace-assign list` command with table/JSON output, `--task` filter, and `--all` flag
|
|
1776
|
-
- `ace-assign select <id>` command for switching active assignment
|
|
1777
|
-
- `AssignmentInfo` model wrapping assignment with computed state and progress
|
|
1778
|
-
- `AssignmentDiscoverer` molecule for finding and filtering assignments
|
|
1779
|
-
- `--assignment` flag on `status`, `report`, `fail`, `add`, and `retry` commands
|
|
1780
|
-
- `ACE_ASSIGN_ID` environment variable for workflow context propagation
|
|
1781
|
-
- Assignment state computation: running, paused, completed, failed
|
|
1782
|
-
- Other assignments section in `status` output
|
|
1783
|
-
- Context propagation and multi-assignment management documentation in drive-assignment workflow
|
|
1784
|
-
|
|
1785
|
-
## [0.7.5] - 2026-02-13
|
|
1786
|
-
|
|
1787
|
-
### Fixed
|
|
1788
|
-
|
|
1789
|
-
- Misplaced doc block: `check_pair_completeness` documentation was above `check_conditional_rule`
|
|
1790
|
-
- Duplicate examples in `prepare-assignment.wf.md` now accurately reflect renamed `work-on-task` preset
|
|
1791
|
-
- `CatalogLoader.parse_step_file` now warns on stderr when a step YAML file fails to parse (was silently returning nil)
|
|
1792
|
-
- `compose-assignment.wf.md` uses Read/Glob tool references instead of `cat`/`ls` per project conventions
|
|
1793
|
-
|
|
1794
|
-
### Changed
|
|
1795
|
-
|
|
1796
|
-
- Added inline documentation for prefix matching constraints in `find_step_index`
|
|
1797
|
-
- Added comment clarifying that mixed "and"/"or" conjunctions are not supported in conditional rules
|
|
1798
|
-
|
|
1799
|
-
## [0.7.4] - 2026-02-13
|
|
1800
|
-
|
|
1801
|
-
### Added
|
|
1802
|
-
|
|
1803
|
-
- New step catalog entries: `push-to-remote`, `release`, `reorganize-commits`
|
|
1804
|
-
|
|
1805
|
-
### Fixed
|
|
1806
|
-
|
|
1807
|
-
- Missing `skill: ace:apply-feedback` in work-on-tasks preset apply-feedback steps
|
|
1808
|
-
- Ordering rules now match suffixed step names via prefix matching (e.g., `release` matches `release-minor`, `release-patch-1`)
|
|
1809
|
-
- Conditional composition rules with "and" conjunction now correctly require all conditions (was using `any?` instead of `all?`)
|
|
1810
|
-
|
|
1811
|
-
### Changed
|
|
1812
|
-
|
|
1813
|
-
- Renamed `work-on-task-with-pr` preset to `work-on-task` (now the default/primary workflow)
|
|
1814
|
-
- Updated workflow documentation to reflect preset rename
|
|
1815
|
-
|
|
1816
|
-
## [0.7.3] - 2026-02-13
|
|
1817
|
-
|
|
1818
|
-
### Added
|
|
1819
|
-
|
|
1820
|
-
- **Step catalog system**: Registry of available step types with prerequisites, produces/consumes, context defaults, and skip conditions (14 step definitions)
|
|
1821
|
-
- **Composition rules**: Declarative ordering constraints, step pairs, and conditional suggestions for intelligent assignment composition
|
|
1822
|
-
- **Recipe system**: Flexible example patterns replacing rigid presets (4 recipes: implement-with-pr, implement-simple, batch-tasks, fix-and-review)
|
|
1823
|
-
- **Compose-assignment workflow**: LLM-driven assignment composition from step catalog and user intent
|
|
1824
|
-
- `CatalogLoader` atom for loading and querying step catalog YAML files
|
|
1825
|
-
- `CompositionRules` atom for loading, validating ordering, and suggesting step additions
|
|
1826
|
-
- Conditional composition rule logic in `suggest_additions` for context-dependent step suggestions
|
|
1827
|
-
|
|
1828
|
-
### Changed
|
|
1829
|
-
|
|
1830
|
-
- Drive-assignment workflow now includes step decision points for skip assessment and adaptation
|
|
1831
|
-
- Start-assignment workflow updated to offer compose as alternative path
|
|
1832
|
-
|
|
1833
|
-
### Fixed
|
|
1834
|
-
|
|
1835
|
-
- `apply-feedback.step.yml` now correctly references `ace:apply-feedback` skill (was null)
|
|
1836
|
-
|
|
1837
|
-
## [0.7.2] - 2026-02-12
|
|
1838
|
-
|
|
1839
|
-
### Changed
|
|
1840
|
-
|
|
1841
|
-
- E2E tests renamed from COWORKER to ASSIGN terminology
|
|
1842
|
-
- All test references updated: coworker → assign, session → assignment, step → step, jobs → steps
|
|
1843
|
-
|
|
1844
|
-
## [0.7.1] - 2026-02-11
|
|
1845
|
-
|
|
1846
|
-
### Fixed
|
|
1847
|
-
|
|
1848
|
-
- E2E test scenario.yml files now use correct `test-id` field (was `test-suite-id`)
|
|
1849
|
-
- E2E test case .tc.md files now use correct `tc-id` field (was `test-id`)
|
|
1850
|
-
|
|
1851
|
-
## [0.7.0] - 2026-02-11
|
|
1852
|
-
|
|
1853
|
-
### Fixed
|
|
1854
|
-
|
|
1855
|
-
- Array instruction substitution in foreach expansion now properly handles {{item}} placeholders
|
|
1856
|
-
- Removed deprecated work-on-task preset (use `/ace:work-on-task` skill directly)
|
|
1857
|
-
|
|
1858
|
-
### Changed
|
|
1859
|
-
|
|
1860
|
-
- work-on-tasks preset simplified with onboard step and direct skill delegation
|
|
1861
|
-
|
|
1862
|
-
## [0.6.0] - 2026-02-11
|
|
1863
|
-
|
|
1864
|
-
### Changed
|
|
1865
|
-
|
|
1866
|
-
- Package renamed from ace-coworker to ace-assign
|
|
1867
|
-
- Internal "session" concept renamed to "assignment"
|
|
1868
|
-
- Internal "step" concept renamed to "step"
|
|
1869
|
-
- Step file extension changed from .j.md to .st.md
|
|
1870
|
-
- Cache directory changed from .cache/ace-coworker/ to .cache/ace-assign/
|
|
1871
|
-
- Skills renamed from /ace:coworker-* to /ace:assign-*
|
|
1872
|
-
- New combined /ace:assign-start skill added (prepare + create in one step)
|
|
1873
|
-
|
|
1874
|
-
## [0.5.3] - 2026-02-01
|
|
1875
|
-
|
|
1876
|
-
### Changed
|
|
1877
|
-
|
|
1878
|
-
- Removed `prepare` CLI command - use `/ace:assign-prepare` workflow instead (handles informal instructions and customizations)
|
|
1879
|
-
|
|
1880
|
-
## [0.5.2] - 2026-01-31
|
|
1881
|
-
|
|
1882
|
-
### Fixed
|
|
1883
|
-
|
|
1884
|
-
- `prepare` CLI now uses Base36 timestamps (e.g., `8ouxjt`) instead of datetime format
|
|
1885
|
-
- `prepare` CLI now outputs step files to task's `steps/` folder (e.g., `.ace-taskflow/v.0.9.0/tasks/253-xxx/steps/`) when task refs provided
|
|
1886
|
-
- Correctly extracts parent task ID from subtask refs (e.g., `253.01` -> task folder `253-xxx`)
|
|
1887
|
-
|
|
1888
|
-
## [0.5.1] - 2026-01-31
|
|
1889
|
-
|
|
1890
|
-
### Fixed
|
|
1891
|
-
|
|
1892
|
-
- `prepare` CLI command now actually works - implements preset loading, parameter parsing, and job.yaml generation (was just a stub in 0.5.0)
|
|
1893
|
-
|
|
1894
|
-
## [0.5.0] - 2026-01-31
|
|
1895
|
-
|
|
1896
|
-
### Added
|
|
1897
|
-
|
|
1898
|
-
- **Multi-task step preparation**: New `work-on-tasks` preset enables batch processing of multiple tasks in a single job
|
|
1899
|
-
- `PresetExpander` atom for expanding preset templates with `expansion:` directives
|
|
1900
|
-
- Support for `batch-parent` and `foreach` expansion directives in presets
|
|
1901
|
-
- Array parameter parsing supporting comma-separated (`148,149,150`), range (`148-152`), and pattern (`240.*`) syntax
|
|
1902
|
-
- Pre-assigned step numbers in job.yaml are now preserved by AssignmentExecutor
|
|
1903
|
-
- Updated prepare-assignment workflow documentation with multi-task examples
|
|
1904
|
-
|
|
1905
|
-
### Fixed
|
|
1906
|
-
|
|
1907
|
-
- CLI help commands now return exit code 0 correctly
|
|
1908
|
-
|
|
1909
|
-
## [0.4.3] - 2026-01-30
|
|
1910
|
-
|
|
1911
|
-
### Changed
|
|
1912
|
-
|
|
1913
|
-
- Rewrote MT-ASSIGN-003 E2E test to match implemented behavior (dynamic hierarchy via `add --after --child` instead of static config)
|
|
1914
|
-
|
|
1915
|
-
### Technical
|
|
1916
|
-
|
|
1917
|
-
- MT-ASSIGN-003 test verified and stamped
|
|
1918
|
-
|
|
1919
|
-
## [0.4.2] - 2026-01-30
|
|
1920
|
-
|
|
1921
|
-
### Fixed
|
|
1922
|
-
|
|
1923
|
-
- MAX_DEPTH constant corrected to 2 (allowing 3 levels max: 010.01.01) to match documented behavior
|
|
1924
|
-
- CLI `add --child` command now validates depth upfront with clear error message before calling executor
|
|
1925
|
-
|
|
1926
|
-
### Changed
|
|
1927
|
-
|
|
1928
|
-
- `auto_complete_parents` now emits warning when safety iteration limit is reached
|
|
1929
|
-
- `rollback_renames` now captures and reports rollback failures instead of silently swallowing them
|
|
1930
|
-
|
|
1931
|
-
## [0.4.1] - 2026-01-30
|
|
1932
|
-
|
|
1933
|
-
### Changed
|
|
1934
|
-
|
|
1935
|
-
- `Ace::Assign.cache_dir` now returns an absolute path resolved from project root
|
|
1936
|
-
- Cache directory respects `PROJECT_ROOT_PATH` environment variable for sandboxed/isolated testing
|
|
1937
|
-
|
|
1938
|
-
## [0.4.0] - 2026-01-30
|
|
1939
|
-
|
|
1940
|
-
### Added
|
|
1941
|
-
|
|
1942
|
-
- **Hierarchical step structure**: Steps can now have nested sub-steps (010.01, 010.02) with parent-child relationships
|
|
1943
|
-
- New `StepNumbering` atom for parsing and generating hierarchical step numbers
|
|
1944
|
-
- `--after` option for `add` command: inject steps after specific step numbers (`ace-assign add verify --after 010`)
|
|
1945
|
-
- `--child` option for `add` command: create nested child steps (`ace-assign add verify --after 010 --child`)
|
|
1946
|
-
- `--flat` option for `status` command: show flat list without hierarchy indentation
|
|
1947
|
-
- Automatic step renumbering when inserting steps at occupied positions
|
|
1948
|
-
- `children_of`, `descendants_of`, `has_incomplete_children?` methods on QueueState for hierarchy traversal
|
|
1949
|
-
- `hierarchical` method on QueueState for tree-structured display
|
|
1950
|
-
- Parent number extraction from filenames in `StepFileParser.parse_filename`
|
|
1951
|
-
- Audit trail metadata: `added_by`, `parent`, `renumbered_from`, `renumbered_at` fields for tracking step history
|
|
1952
|
-
- O(1) child lookups via parent index in QueueState for improved performance
|
|
1953
|
-
|
|
1954
|
-
### Changed
|
|
1955
|
-
|
|
1956
|
-
- Auto-complete parents now handles multi-level hierarchies in a single pass (grandparents complete when parents complete)
|
|
1957
|
-
- Auto-complete now includes in_progress parents (not just pending) when all children finish
|
|
1958
|
-
- Status command now shows hierarchical structure when nested steps exist
|
|
1959
|
-
- Advance operation respects hierarchy: parent steps wait for all children to complete
|
|
1960
|
-
|
|
1961
|
-
### Fixed
|
|
1962
|
-
|
|
1963
|
-
- Cascade renumbering to descendants: when a step is shifted, all its children are also renamed to prevent orphaning
|
|
1964
|
-
- Enforce hierarchy in `advance`: prevent marking parent as done while children are incomplete
|
|
1965
|
-
- Validate `--after` step existence before injection (raises StepNotFoundError if not found)
|
|
1966
|
-
- Replace fragile `instance_variable_set` mutation with local tracking Set in auto_complete_parents
|
|
1967
|
-
- Add safety guard to prevent infinite loops in auto-completion (max iterations = step count)
|
|
1968
|
-
- Re-scan state after auto_complete_parents to ensure find_next_step uses fresh data
|
|
1969
|
-
- Use `next_workable` instead of `next_pending` in find_next_step to respect hierarchy
|
|
1970
|
-
- QueueState now supports `top_level`, `all_numbers`, and `next_workable` methods
|
|
1971
|
-
|
|
1972
|
-
## [0.3.1] - 2026-01-30
|
|
1973
|
-
|
|
1974
|
-
### Fixed
|
|
1975
|
-
|
|
1976
|
-
- Step files already in a `steps/` directory are kept in place instead of being moved to a nested path when creating assignments
|
|
1977
|
-
|
|
1978
|
-
## [0.3.0] - 2026-01-30
|
|
1979
|
-
|
|
1980
|
-
### Added
|
|
1981
|
-
|
|
1982
|
-
- **Fork context support for steps**: Enable step files to declare `context: fork` in frontmatter to run steps in isolated agent contexts via Claude Code's Task tool
|
|
1983
|
-
- New `context` field in Step model with `fork?` predicate method
|
|
1984
|
-
- Context validation rejecting invalid values with helpful error messages (valid values: `fork`)
|
|
1985
|
-
- `handbook/guides/fork-context.g.md` documentation for the fork context feature
|
|
1986
|
-
- Status command outputs Task tool instructions for fork-context steps
|
|
1987
|
-
- Shell escaping for step names in Task tool description field
|
|
1988
|
-
- E2E test (TC-005) for fork context feature validation
|
|
1989
|
-
|
|
1990
|
-
### Changed
|
|
1991
|
-
|
|
1992
|
-
- Centralized `VALID_CONTEXTS` constant in Step model, referenced by parser
|
|
1993
|
-
- QueueScanner surfaces ArgumentError for invalid step files instead of silent nil return
|
|
1994
|
-
- Status output uses plain text separators instead of markdown backticks for better terminal compatibility
|
|
1995
|
-
- Use deterministic project root from cache_dir instead of Dir.pwd
|
|
1996
|
-
- Updated `work-on-task` preset to demonstrate fork pattern
|
|
1997
|
-
|
|
1998
|
-
## [0.2.1] - 2026-01-29
|
|
1999
|
-
|
|
2000
|
-
### Fixed
|
|
2001
|
-
|
|
2002
|
-
- Cache directory initialization bug where `.cache/ace-assign/` was never created before `generate_assignment_id` called `Dir.mkdir()`, causing `Errno::ENOENT` crash on first use
|
|
2003
|
-
|
|
2004
|
-
### Added
|
|
2005
|
-
|
|
2006
|
-
- CLI exit codes documentation (`docs/exit-codes.md`) documenting exit codes 0-3 with meanings and examples
|
|
2007
|
-
|
|
2008
|
-
### Changed
|
|
2009
|
-
|
|
2010
|
-
- Updated E2E test TC-004 to reflect actual `start` command behavior (migration alias to `create` with deprecation warning, exit 0)
|
|
2011
|
-
- Added TC-004b test case to verify cache directory auto-creation on first use
|
|
2012
|
-
- Added cache directory setup to E2E test environment setup to prevent ENOENT errors on first-time runs
|
|
2013
|
-
|
|
2014
|
-
## [0.1.7] - 2026-01-28
|
|
2015
|
-
|
|
2016
|
-
### Fixed
|
|
2017
|
-
|
|
2018
|
-
- CLI exit code wrapper propagation via `@captured_exit_code` and `wrap_command` method
|
|
2019
|
-
- Race condition in `append_report` file locking: rewrite content in-place on locked file descriptor instead of temp file + rename (preserves POSIX locks)
|
|
2020
|
-
- Assignment ID generation max retry limit (100 attempts) to prevent infinite loop
|
|
2021
|
-
- E2E test comment: "creates separate .r.md report file" (was "appends report inline")
|
|
2022
|
-
|
|
2023
|
-
### Added
|
|
2024
|
-
|
|
2025
|
-
- Prepare command stub with helpful message directing users to create job.yaml manually or use the prepare-assignment workflow
|
|
2026
|
-
|
|
2027
|
-
### Changed
|
|
2028
|
-
|
|
2029
|
-
- Improve error messages with actionable suggestions (e.g., "Try 'ace-assign add' or 'ace-assign retry'")
|
|
2030
|
-
- Migration UX for deprecated commands (start → create) with warning message
|
|
2031
|
-
|
|
2032
|
-
## [0.1.6] - 2026-01-28
|
|
2033
|
-
|
|
2034
|
-
### Changed
|
|
2035
|
-
|
|
2036
|
-
- Split `assignment.wf.md` into focused workflows: `create-assignment.wf.md` (assignment creation) and `drive-assignment.wf.md` (execution loop)
|
|
2037
|
-
- Renamed `prepare-assignment-job.wf.md` → `prepare-assignment.wf.md` for verb-first naming convention
|
|
2038
|
-
- Renamed skill `ace_assign-start` → `ace_assign-drive` for clarity
|
|
2039
|
-
- All assign skills now use thin wrapper pattern pointing to workflows via `ace-bundle`
|
|
2040
|
-
|
|
2041
|
-
### Technical
|
|
2042
|
-
|
|
2043
|
-
- Fixed file extension documentation: `*.md` → `*.st.md` for step files in create-assignment workflow
|
|
2044
|
-
- Clarified "source of truth" is `ace-assign status` command in workflow documentation
|
|
2045
|
-
- Added note about archived job.yaml being for provenance only, not status queries
|
|
2046
|
-
- Changed "Job files" → "Step files" terminology in README for clarity
|
|
2047
|
-
|
|
2048
|
-
## [0.1.5] - 2026-01-28
|
|
2049
|
-
|
|
2050
|
-
### Added
|
|
2051
|
-
|
|
2052
|
-
- Separate step and report files with `.st.md` and `.r.md` extensions
|
|
2053
|
-
- New `reports/` directory structure for storing completion reports separately from step files
|
|
2054
|
-
- Report files include YAML frontmatter with `step`, `name`, and `completed_at` fields for traceability
|
|
2055
|
-
|
|
2056
|
-
### Changed
|
|
2057
|
-
|
|
2058
|
-
- Step files now use `.st.md` extension (was `.md`)
|
|
2059
|
-
- Reports are written to separate `.r.md` files instead of being embedded in step bodies
|
|
2060
|
-
- `StepFileParser.extract_fields()` now returns `nil` for report (loaded separately)
|
|
2061
|
-
- `StepFileParser.parse_filename()` handles both `.st.md` and `.r.md` extensions
|
|
2062
|
-
- `StepFileParser.generate_filename()` produces `.st.md` filenames
|
|
2063
|
-
- `StepFileParser.generate_report_filename()` produces `.r.md` filenames
|
|
2064
|
-
- `StepSorter.sort_key()` strips `.st.md` extension
|
|
2065
|
-
- `QueueScanner.scan()` and `step_numbers()` glob for `*.st.md` files
|
|
2066
|
-
- `QueueScanner.load_report()` loads report content from corresponding `.r.md` file
|
|
2067
|
-
- `AssignmentManager.create()` creates both `steps/` and `reports/` directories
|
|
2068
|
-
- `Assignment.reports_dir` returns path to reports directory
|
|
2069
|
-
- `StepWriter.mark_done()` accepts `reports_dir:` parameter and writes report separately
|
|
2070
|
-
- `StepWriter.append_report()` accepts `reports_dir:` parameter and updates report files
|
|
2071
|
-
- `StepWriter.write_report()` private helper for atomic report file writes
|
|
2072
|
-
- `AssignmentExecutor.advance()` passes `reports_dir` to `mark_done()`
|
|
2073
|
-
- CLI status command fallback filename uses `.st.md` extension
|
|
2074
|
-
- `Step.to_display_row()` fallback filename uses `.st.md` extension
|
|
2075
|
-
|
|
2076
|
-
## [0.1.4] - 2026-01-28
|
|
2077
|
-
|
|
2078
|
-
### Added
|
|
2079
|
-
|
|
2080
|
-
- Archive job.yaml to task's `steps/` directory after assignment creation (`{assignment_id}-job.yml`)
|
|
2081
|
-
|
|
2082
|
-
## [0.1.3] - 2026-01-28
|
|
2083
|
-
|
|
2084
|
-
### Technical
|
|
2085
|
-
|
|
2086
|
-
- Standardize instructions format to arrays in prepare-assignment workflow doc
|
|
2087
|
-
- Update e2e tests for workflow lifecycle with error paths and state verification
|
|
2088
|
-
- Update CHANGELOGs with complete fix descriptions
|
|
2089
|
-
|
|
2090
|
-
## [0.1.2] - 2026-01-28
|
|
2091
|
-
|
|
2092
|
-
### Fixed
|
|
2093
|
-
|
|
2094
|
-
- CLI `start` command crashes with positional argument (`ace-assign start job.yaml`) because `option :config` requires `--config` flag -- renamed command to `create` with `argument :config`
|
|
2095
|
-
- `ace-bundle wfi://prepare-assignment` fails due to missing project-level wfi:// protocol registration
|
|
2096
|
-
|
|
2097
|
-
### Added
|
|
2098
|
-
|
|
2099
|
-
- Support array format for step instructions in presets (joined with newlines via `normalize_instructions`)
|
|
11
|
+
## [0.73.0] - 2026-10-20
|
|
2100
12
|
|
|
2101
13
|
### Changed
|
|
14
|
+
- Drive workflow now requires re-reading active assignment state immediately before every `finish`/`fail` report, so reports cannot land on auto-advanced child steps in long-running forked subtrees.
|
|
15
|
+
- Verify-test-suite workflow documents the hermetic environment rule for forked drive sessions: verification must go through `ace-test`/`ace-test-suite`, whose environment policy drops ambient `ACE_*`/`LAB_*` fork-runtime configuration; manual env scrubbing and raw rake/bundle invocation inside forked subtrees are prohibited.
|
|
2102
16
|
|
|
2103
|
-
- Rename CLI `start` command to `create` (CLI creates assignment; "start" is the skill that begins agent work)
|
|
2104
|
-
- Preset files (`work-on-task.yml`, `work-on-task-with-pr.yml`) now use array instructions format
|
|
2105
|
-
- Updated workflow instructions and README to reflect `create` command and array instructions format
|
|
2106
|
-
|
|
2107
|
-
## [0.1.1] - 2026-01-28
|
|
2108
|
-
|
|
2109
|
-
### Fixed
|
|
2110
|
-
|
|
2111
|
-
- Persist skill field from job.yaml steps through full pipeline (StepWriter, StepFileParser, QueueScanner, Step model)
|
|
2112
|
-
- Display skill in status command output for current step
|
|
2113
|
-
- Pass through extra step fields (beyond name/instructions) from job.yaml via AssignmentExecutor
|
|
2114
|
-
- Update default job.yaml output path in prepare-assignment workflow to task folder
|
|
2115
|
-
|
|
2116
|
-
## [0.1.0] - 2026-01-28
|
|
2117
|
-
|
|
2118
|
-
### Added
|
|
2119
|
-
|
|
2120
|
-
- Initial release with work queue-based assignment management
|
|
2121
|
-
- CLI commands: start, status, report, fail, add, retry
|
|
2122
|
-
- File-based queue storage with markdown step files
|
|
2123
|
-
- Assignment persistence via assignment.yaml
|
|
2124
|
-
- History preservation (failed steps remain visible)
|
|
2125
|
-
- Dynamic step addition with automatic numbering
|
|
2126
|
-
- Retry mechanism that creates new steps linked to original
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
## [0.12.12] - 2026-02-22
|
|
2130
|
-
|
|
2131
|
-
### Fixed
|
|
2132
|
-
- Standardized quiet, verbose, debug option descriptions to canonical strings
|