ace-overseer 0.23.0 → 0.25.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/overseer/config.yml +9 -0
- data/CHANGELOG.md +24 -804
- data/README.md +60 -42
- data/docs/getting-started.md +9 -4
- data/docs/handbook.md +1 -18
- data/docs/usage.md +297 -209
- data/handbook/workflow-instructions/overseer/queue.wf.md +210 -0
- data/handbook/workflow-instructions/overseer.wf.md +17 -32
- data/lib/ace/overseer/atoms/dependency_readiness.rb +48 -0
- data/lib/ace/overseer/atoms/handoff_readiness.rb +75 -0
- data/lib/ace/overseer/atoms/report_interpretation.rb +236 -0
- data/lib/ace/overseer/atoms/status_formatter.rb +0 -1
- data/lib/ace/overseer/cli/commands/handoff.rb +69 -0
- data/lib/ace/overseer/cli/commands/process_reports.rb +50 -0
- data/lib/ace/overseer/cli/commands/prune.rb +3 -50
- data/lib/ace/overseer/cli/commands/status.rb +8 -55
- data/lib/ace/overseer/cli/commands/work_on.rb +6 -50
- data/lib/ace/overseer/cli.rb +10 -14
- data/lib/ace/overseer/models/assignment_prune_candidate.rb +5 -5
- data/lib/ace/overseer/models/prune_candidate.rb +5 -5
- data/lib/ace/overseer/molecules/assignment_prune_safety_checker.rb +22 -84
- data/lib/ace/overseer/molecules/git_preservation_checker.rb +33 -21
- data/lib/ace/overseer/molecules/handoff_probe.rb +101 -0
- data/lib/ace/overseer/molecules/hitl_inbox.rb +43 -0
- data/lib/ace/overseer/molecules/prune_safety_checker.rb +43 -88
- data/lib/ace/overseer/molecules/worktree_context_collector.rb +4 -18
- data/lib/ace/overseer/organisms/handoff_orchestrator.rb +122 -0
- data/lib/ace/overseer/organisms/prune_orchestrator.rb +2 -2
- data/lib/ace/overseer/organisms/report_processor.rb +241 -0
- data/lib/ace/overseer/organisms/status_attention.rb +306 -0
- data/lib/ace/overseer/organisms/status_collector.rb +267 -3
- data/lib/ace/overseer/organisms/status_sources.rb +276 -0
- data/lib/ace/overseer/organisms/work_on_orchestrator.rb +49 -9
- data/lib/ace/overseer/version.rb +1 -1
- data/lib/ace/overseer.rb +12 -1
- metadata +46 -27
- data/handbook/skills/as-overseer-configure-project/SKILL.md +0 -32
- data/handbook/workflow-instructions/overseer/configure-project.wf.md +0 -238
- data/handbook/workflow-instructions/overseer/maintain-continuation.wf.md +0 -115
- data/handbook/workflow-instructions/roles/lab-coordinator.wf.md +0 -106
- data/handbook/workflow-instructions/roles/project-overseer.wf.md +0 -182
- data/handbook/workflow-instructions/roles/second-commander.wf.md +0 -95
- data/lib/ace/overseer/cli/commands/ordinary.rb +0 -37
- data/lib/ace/overseer/cli/commands/prompt.rb +0 -63
- data/lib/ace/overseer/cli/commands/review.rb +0 -44
- data/lib/ace/overseer/cli/commands/stop.rb +0 -33
- data/lib/ace/overseer/molecules/launch_request.rb +0 -216
- data/lib/ace/overseer/molecules/original_launch_child.rb +0 -165
- data/lib/ace/overseer/molecules/proposal_tick.rb +0 -56
- data/lib/ace/overseer/molecules/protected_selection.rb +0 -46
- data/lib/ace/overseer/organisms/launch_recovery.rb +0 -65
- data/lib/ace/overseer/organisms/ordinary_work_on.rb +0 -186
- data/lib/ace/overseer/organisms/protected_prune.rb +0 -116
- data/lib/ace/overseer/organisms/protected_review.rb +0 -167
- data/lib/ace/overseer/organisms/protected_status.rb +0 -157
- data/lib/ace/overseer/organisms/protected_steering.rb +0 -78
- data/lib/ace/overseer/organisms/protected_work_on.rb +0 -102
data/CHANGELOG.md
CHANGED
|
@@ -7,823 +7,43 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
## [0.23.0] - 2026-10-16
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
- Add explicit ordinary preparation/launch/resume using existing worktree, native pane and provider mechanisms. Preserve original identities and dispatch intent on response loss; use native filesystem watches only as canonical-inspection hints.
|
|
15
|
-
|
|
16
|
-
### Changed
|
|
17
|
-
|
|
18
|
-
- Follow ace-review 0.61 campaign head-assessment contracts (dependency floor).
|
|
19
|
-
|
|
20
|
-
## [0.22.0] - 2026-10-16
|
|
21
|
-
|
|
22
|
-
### Added
|
|
23
|
-
|
|
24
|
-
- Package native continuation duties with ten-minute progress and hourly cleanup audits, exact session restoration, independent project progress and explicit unknown outcomes. Align role workflows with canonical Assign ownership and accepted-head review.
|
|
25
|
-
|
|
26
|
-
## [0.21.1] - 2026-10-14
|
|
27
|
-
|
|
28
|
-
### Changed
|
|
29
|
-
|
|
30
|
-
- Package the coordination-contract role-guide updates in the project-overseer and configure-project workflows: serial preparation and serial integration per delivery candidate, queue-item closure as reconciled merge receipt, release-batch lifecycle with separate publication authority, and overseer-owned close-on-accept for delegated panes and worktabs.
|
|
31
|
-
- Follow the ace-lab 0.6 producer line in the dependency manifest; no code or behavior change (constraint-only correction so the coordinated h8x graph resolves).
|
|
32
|
-
|
|
33
|
-
## [0.21.0] - 2026-10-12
|
|
34
|
-
|
|
35
|
-
### Added
|
|
36
|
-
|
|
37
|
-
- Add the `as-overseer-configure-project` skill and packaged `wfi://overseer/configure-project` workflow for idempotent, customization-preserving delivery supervision adaptation.
|
|
38
|
-
|
|
39
|
-
## [0.20.2] - 2026-10-10
|
|
40
|
-
|
|
41
|
-
### Fixed
|
|
42
|
-
|
|
43
|
-
- Require the published producer and consumer patch versions containing the protected context and managed-attempt APIs; exclude incompatible prior dependency graphs.
|
|
44
|
-
|
|
45
|
-
## [0.20.1] - 2026-10-08
|
|
46
|
-
|
|
47
|
-
### Changed
|
|
48
|
-
|
|
49
|
-
- Require the coordinated Assign, Herdr, Lab and Review producer versions for ordinary CLI worker launch and current protected delivery contracts.
|
|
50
|
-
|
|
51
|
-
- Repair protected work-on composition fixtures to retain the originally provisioned workspace lifecycle resource, exercise the real worker reader, and return the simulated fork before post-readiness steering without changing product admission.
|
|
52
|
-
|
|
53
|
-
- Route protected delivery through original worker merge request, canonical status and exact result consumption while preserving ordinary delivery and unresolved protected PR policy.
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
### Added
|
|
57
|
-
|
|
58
|
-
- Consume protected prune preview through the fixed service receiver, persist its complete result for explicitly authorized apply, and query canonical service status without repeating cleanup.
|
|
59
|
-
|
|
60
|
-
- Package canonical project-overseer, Lab coordinator and second-commander role workflows with scoped authority, responsive delegation and the existing confirmed-delivery decision policy.
|
|
61
|
-
|
|
62
|
-
- Execute protected candidate review through original launcher delegation, immutable Git snapshot, the maintained review engine and canonical receipt acceptance; expose explicit status/cancel modes without labd forwarding or automatic replay.
|
|
63
|
-
|
|
64
|
-
- Discover protected project assignments through the actual authority inventory and public topology, preserving pinned pages, restart metadata and partial visibility without a local-journal fallback or proposal effects during status reads.
|
|
65
|
-
|
|
66
|
-
## [0.20.0] - 2026-10-05
|
|
67
|
-
|
|
68
|
-
### Added
|
|
69
|
-
|
|
70
|
-
- Resolve immutable second-commander proposals through confirmed-delivery sixteen-hour policy and canonical Assign authorization.
|
|
71
|
-
- Expose assignment recovery liveness/reasons and show unreadable evidence as unknown rather than omitting it.
|
|
72
|
-
|
|
73
|
-
### Fixed
|
|
74
|
-
|
|
75
|
-
- Expose deferred proposal ticks in Lab status diagnostics and object JSON while preserving status availability and array output.
|
|
76
|
-
|
|
77
|
-
- Keep watch/status alive on proposal tick failure and queue project-scoped HITL reconciliation under the proposer identity.
|
|
78
|
-
|
|
79
|
-
### Changed
|
|
80
|
-
|
|
81
|
-
- Declare the required direct dependencies and minimum producer versions for this coordinated release: `ace-assign ~> 0.64`, `ace-git ~> 0.29`, `ace-git-worktree ~> 0.26`, `ace-herdr ~> 0.4`.
|
|
82
|
-
|
|
83
|
-
## [0.19.1] - 2026-10-04
|
|
84
|
-
|
|
85
|
-
### Changed
|
|
86
|
-
|
|
87
|
-
- Install both Herdr and tmux runtime adapters for standalone runtime switching, through an acyclic dependency graph.
|
|
88
|
-
|
|
89
|
-
## [0.19.0] - 2026-10-04
|
|
90
|
-
|
|
91
|
-
### Added
|
|
92
|
-
- Work-on and prune manage worktree windows through the `ace-runtime` contract (`TmuxWindowOpener` replaced by `WindowOpener`); the terminal runtime comes from the new `runtime:` config key (`tmux` | `herdr` | `auto`; `ACE_RUNTIME` env wins, detection as fallback, explicit fail when nothing is live).
|
|
93
|
-
- Config key `tmux_window_presets` renamed to `window_presets` (no legacy alias, ADR-024); "tmux window" progress text is runtime-neutral.
|
|
94
|
-
- New dependency: `ace-runtime` (~> 0.1); `ace-tmux` is kept to install the tmux adapter.
|
|
95
|
-
|
|
96
|
-
## [0.18.2] - 2026-10-02
|
|
97
|
-
|
|
98
|
-
### Technical
|
|
99
|
-
- Follow the ace-assign 0.61 release line for journal-backed service effects.
|
|
100
|
-
- Updated the ace-tmux dependency to the 0.18 adapter release line.
|
|
101
|
-
|
|
102
|
-
## [0.18.1] - 2026-10-01
|
|
103
|
-
|
|
104
|
-
### Technical
|
|
105
|
-
- Follow the ace-assign 0.60 release line for durable review campaign evidence.
|
|
106
|
-
|
|
107
|
-
## [0.18.0] - 2026-09-29
|
|
108
|
-
|
|
109
|
-
### Added
|
|
110
|
-
- Preservation manifest for prune: `ace-overseer prune --preservation FILE` accepts a strict `version: 1` YAML manifest declaring cross-repository destinations (source repo/base/head, destination repo/base/head/branch); entries are resolved to exact commits, and duplicate, self-destination, or unmatched entries fail before any apply action.
|
|
111
|
-
- Git preservation proofs on the actual prune path: accepted-ancestor containment against the surviving base branch, or verified-destination proof by full-tree equality or exact path-by-path transition (paths, modes, symlinks, binary content) across separate bases. Patch-range proofs require the independently recorded attempt baseline (`base_head`), and the baseline itself must survive on an accepted ref; empty or truncated ranges are never proof.
|
|
112
|
-
- Fail-closed Lab prune classification: `ace-overseer prune WORK --runtime lab` requires an authoritative terminal Work state plus preservation data (`repo`/`head`/`branch`) provable in the hosted repository; apply re-reads state immediately before `lab work destroy` and blocked Works are never destroyed.
|
|
113
|
-
|
|
114
|
-
### Changed
|
|
115
|
-
- BREAKING: `--force` no longer removes unsafe worktrees; it only skips the confirmation for already-safe candidates. Missing, failed or ambiguous preservation evidence, dirty tracked or untracked files, active or uncertain attempts, unreadable lifecycle state, and failed rechecks now always block deletion -- including under `--yes` and `--quiet`.
|
|
116
|
-
- Prune preview is read-only (no stale-metadata mutation); apply holds a durable lifecycle exclusion shared with assignment/driver/work-on start paths from final evidence reads through removal, deletes the worktree without force or untracked suppression, and deletes the branch only after re-verifying its tip identity. Removal is recorded so later starts fail closed instead of recreating a deleted identity.
|
|
117
|
-
- Assignment cache prune requires the durable evidence ref (`refs/ace/execution`, never deleted) to confirm every attempt terminal for managed assignments; only the assignment cache directory is removed.
|
|
118
|
-
- Unmatched explicit prune targets are errors, apply exits nonzero when any candidate is blocked or removal fails (independent safe candidates still complete), quiet mode suppresses progress but never failure signaling, and dry-run performs the same proof classification with no cleanup side effects.
|
|
119
|
-
|
|
120
|
-
## [0.17.0] - 2026-09-29
|
|
121
|
-
|
|
122
|
-
### Added
|
|
123
|
-
- Added an explicit Lab runtime adapter for listing projects and agents, preparing and dispatching Works, forwarding prompts over stdin, starting exact-head reviews, and stopping workers.
|
|
124
|
-
- Added installed-consumer probe coverage: the suite builds the current gem artifacts, installs them into an isolated consumer environment (fresh gem home, unrelated cwd, sanitized HOME), and proves `ace-nav resolve wfi://overseer` and `ace-bundle wfi://overseer` succeed from packaged content only, with a registration-removal fixture proving the probe detects masking.
|
|
125
|
-
|
|
126
|
-
### Changed
|
|
127
|
-
- Kept tmux as the default runtime while allowing `work-on`, `status`, and dry-run `prune` to delegate through the system-owned `/usr/local/bin/lab` boundary.
|
|
128
|
-
- Strengthened the overseer prune-safety contract: migrated-work preservation now requires a declared, verified destination plus tree/artifact or patch equivalence (the subject-only successor search is gone), plus a positive executed no-active-writer check from overseer/assignment/Lab status; ambiguity preserves.
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
## [0.16.0] - 2026-09-20
|
|
132
|
-
|
|
133
|
-
### Added
|
|
134
|
-
- Shipped the overseer lifecycle workflow so `wfi://overseer` resolves for gem consumers: the gem now registers `.ace-defaults/nav/protocols/wfi-sources/ace-overseer.yml` (ace-hitl pattern) and ships real workflow instructions for `work-on`, `status`, and `prune` in `handbook/workflow-instructions/overseer.wf.md`, with prune-safety and status-truth executed-check contracts as first-class non-negotiable steps.
|
|
135
|
-
- Added a packaging test proving the built gem ships both the workflow-instructions payload and the wfi source registration so a future gemspec glob change cannot silently drop them.
|
|
136
|
-
|
|
137
|
-
## [0.15.6] - 2026-09-02
|
|
138
|
-
|
|
139
|
-
### Technical
|
|
140
|
-
- Included in the coordinated all-package patch release preparation for ACE monorepo review.
|
|
141
|
-
## [0.15.5] - 2026-08-12
|
|
142
|
-
|
|
143
|
-
### Technical
|
|
144
|
-
- Raised the `ace-support-core` dependency floor to `~> 0.31` after the principles-first bootstrap guidance release.
|
|
145
|
-
## [0.15.4] - 2026-08-12
|
|
146
|
-
|
|
147
|
-
### Fixed
|
|
148
|
-
- Updated the `ace-tmux` runtime dependency constraint to `~> 0.17` so overseer stays compatible with the current tmux runtime control release line.
|
|
149
|
-
|
|
150
|
-
### Technical
|
|
151
|
-
- Aligned gemspec dependency floors with current ACE package minor release lines and safe external minor dependency bumps (no major version jumps).
|
|
152
|
-
|
|
153
|
-
## [0.15.3] - 2026-04-23
|
|
154
|
-
|
|
155
|
-
### Technical
|
|
156
|
-
- Tightened retained `status --watch` E2E coverage to use a controlled bounded-session shutdown with explicit command captures, keeping refresh verification aligned with the documented watch contract.
|
|
157
|
-
|
|
158
|
-
## [0.15.2] - 2026-04-23
|
|
159
|
-
|
|
160
|
-
### Technical
|
|
161
|
-
- Aligned retained `work-on` E2E verification with the current prepared-assignment contract so post-launch status accepts `paused` plus `next_step` until `/ace-assign-drive` actually starts work.
|
|
162
|
-
|
|
163
|
-
## [0.15.1] - 2026-04-23
|
|
164
|
-
|
|
165
|
-
### Technical
|
|
166
|
-
- Updated the `ace-git-worktree` runtime dependency constraint to `~> 0.21` so overseer stays aligned with the current worktree minor release line.
|
|
167
|
-
|
|
168
|
-
## [0.15.0] - 2026-04-23
|
|
169
|
-
|
|
170
|
-
### Changed
|
|
171
|
-
- Updated overseer status collection, formatting, and work-on orchestration to consume `ace-assign`'s `active_steps`/`next_step` lifecycle contract instead of the old singular `current_step`/`in_progress` model.
|
|
172
|
-
- Revised overseer test fixtures and resume behavior so existing assignments now prefer the focused active step and otherwise fall back to the next pending step in scope.
|
|
173
|
-
|
|
174
|
-
## [0.14.14] - 2026-04-23
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
### Changed
|
|
178
|
-
- Reworked tmux window-open behavior to align with shared session targeting and reduce ambiguity when launching and reusing worktree windows.
|
|
179
|
-
- Updated overseer tmux-window coverage to verify the current session/window lifecycle against the improved launcher behavior.
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
## [0.14.13] - 2026-04-22
|
|
183
|
-
|
|
184
|
-
### Fixed
|
|
185
|
-
- Matched existing tmux windows through the shared `ace-tmux` sanitized window-name policy so worktrees with punctuation are not reopened under duplicate names.
|
|
186
|
-
|
|
187
|
-
## [0.14.12] - 2026-04-19
|
|
188
|
-
|
|
189
|
-
### Technical
|
|
190
|
-
- Tightened retained overseer E2E runner and verifier contracts so `work-on` postcondition captures cannot run before the primary command has completed, and preset-override verification requires public `r8x` worktree evidence.
|
|
191
|
-
|
|
192
|
-
## [0.14.11] - 2026-04-18
|
|
193
|
-
|
|
194
|
-
### Technical
|
|
195
|
-
- Relaxed retained watch-mode E2E verification to tolerate bounded `Open3` stream-closure noise when the visible `status --watch` behavior and controlled shutdown codes are otherwise correct.
|
|
196
|
-
|
|
197
|
-
## [0.14.10] - 2026-04-16
|
|
198
|
-
|
|
199
|
-
### Fixed
|
|
200
|
-
- Normalized `status --watch` interrupt handling so watch-mode exits no longer dump a Ruby stack trace, and aligned retained E2E verification with the bounded termination codes the command now emits.
|
|
201
|
-
|
|
202
|
-
## [0.14.9] - 2026-04-16
|
|
203
|
-
|
|
204
|
-
### Fixed
|
|
205
|
-
- Reused the orchestrator task manager when launching default assignments so multi-task `work-on` flows no longer partially provision a task and then fail lookup against a different task-resolution path.
|
|
206
|
-
|
|
207
|
-
## [0.14.8] - 2026-04-16
|
|
208
|
-
|
|
209
|
-
### Fixed
|
|
210
|
-
- Relaxed `TS-OVERSEER-001` prune verification to judge the documented public prune flow from captured dry-run/prune artifacts and resulting state instead of requiring echoed command lines.
|
|
211
|
-
|
|
212
|
-
## [0.14.7] - 2026-04-16
|
|
213
|
-
|
|
214
|
-
### Fixed
|
|
215
|
-
- Taught tmux window opening to create the target session when it is missing so sandboxed overseer E2E runs can open task windows reliably on the intended socket.
|
|
216
|
-
|
|
217
|
-
## [0.14.6] - 2026-04-15
|
|
218
|
-
|
|
219
|
-
### Changed
|
|
220
|
-
- Reworked `TS-OVERSEER-001` into a public-surface goal contract by absorbing standalone help survey into Goal 2 preflight, simplifying prune flow to normal lifecycle commands, and tightening rerun/override checks to stable status/worktree oracles.
|
|
221
|
-
- Added `TS-OVERSEER-002` status-and-operations coverage with watch-refresh and multi-task bundle journeys.
|
|
222
|
-
- Updated `docs/usage.md` with explicit public verification paths for preset override, idempotent rerun, and minimal prune lifecycle checks.
|
|
223
|
-
|
|
224
|
-
### Fixed
|
|
225
|
-
- Updated the `ace-assign` runtime dependency constraint to `~> 0.53` so overseer remains aligned with the current assign minor release line.
|
|
226
|
-
|
|
227
|
-
## [0.14.4] - 2026-04-13
|
|
228
|
-
|
|
229
|
-
### Fixed
|
|
230
|
-
- Rewrote the retained `TS-OVERSEER-001` workflow-value cases around final sandbox state and runner observations so preset-override and prune verification no longer depend on brittle helper artifacts.
|
|
231
|
-
|
|
232
|
-
## [0.14.3] - 2026-04-13
|
|
233
|
-
|
|
234
|
-
### Fixed
|
|
235
|
-
- Tightened `TS-OVERSEER-001` preset-override and prune scenario contracts so path-check artifacts are explicit and optional pre-completion status captures no longer fail the workflow before semantic verification.
|
|
236
|
-
|
|
237
|
-
## [0.14.2] - 2026-04-13
|
|
238
|
-
|
|
239
|
-
### Fixed
|
|
240
|
-
- Updated the `ace-assign` runtime dependency constraint to `~> 0.49` so overseer remains compatible with the new assign minor release line.
|
|
241
|
-
|
|
242
|
-
## [0.14.1] - 2026-04-13
|
|
243
|
-
|
|
244
|
-
### Changed
|
|
245
|
-
- Completed the batch i05 migration follow-through for this package and aligned it with the restarted `fast` / `feat` / `e2e` verification model.
|
|
246
|
-
|
|
247
|
-
### Technical
|
|
248
|
-
- Included in the coordinated assignment-driven patch release for batch i05 package updates.
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
## [0.14.0] - 2026-04-12
|
|
252
|
-
|
|
253
|
-
### Changed
|
|
254
|
-
- Migrated package tests to the `fast` / `feat` / `e2e` model by moving deterministic coverage from `test/{atoms,commands,models,molecules,organisms}` into `test/fast/*`.
|
|
255
|
-
- Added E2E migration decision tracking for `TS-OVERSEER-001` via `test/e2e/TS-OVERSEER-001-overseer-workflow/e2e-decision-record.md`.
|
|
256
|
-
- Updated package README testing guidance to teach only `ace-test ace-overseer`, `ace-test ace-overseer feat`, `ace-test ace-overseer all`, and `ace-test-e2e ace-overseer`.
|
|
257
|
-
|
|
258
|
-
### Fixed
|
|
259
|
-
- Hardened `TS-OVERSEER-001` sandbox setup by loading `mise.toml` from `${ACE_E2E_SOURCE_ROOT:-$PROJECT_ROOT_PATH}`.
|
|
260
|
-
- Updated TC-002/TC-003 verifier expectations to use the JSON status oracle and task-window-scoped tmux duplicate checks, eliminating false negatives in rerun validation.
|
|
261
|
-
|
|
262
|
-
## [0.13.12] - 2026-04-12
|
|
263
|
-
|
|
264
|
-
### Fixed
|
|
265
|
-
- Updated the `ace-git-worktree` runtime dependency constraint to `~> 0.20` so overseer remains compatible with the new worktree minor release line.
|
|
266
|
-
|
|
267
|
-
## [0.13.11] - 2026-04-11
|
|
268
|
-
|
|
269
|
-
### Fixed
|
|
270
|
-
- Updated the `ace-assign` runtime dependency constraint to `~> 0.47` so overseer remains compatible with the latest assign minor release line.
|
|
271
|
-
|
|
272
|
-
## [0.13.10] - 2026-04-07
|
|
273
|
-
|
|
274
|
-
### Fixed
|
|
275
|
-
- Updated the `ace-assign` runtime dependency constraint to `~> 0.44` so overseer remains compatible with the new assign minor release line.
|
|
276
|
-
|
|
277
|
-
## [0.13.9] - 2026-04-01
|
|
278
|
-
|
|
279
|
-
### Fixed
|
|
280
|
-
- Updated the `ace-assign` runtime dependency constraint to `~> 0.42` so overseer remains compatible with the new assign minor release line.
|
|
281
|
-
|
|
282
|
-
## [0.13.8] - 2026-03-29
|
|
283
|
-
|
|
284
|
-
### Technical
|
|
285
|
-
- Normalized published gem metadata so RubyGems and Ruby Toolbox use current release information instead of the 1980 fallback date.
|
|
286
|
-
|
|
287
|
-
## [0.13.7] - 2026-03-29
|
|
288
|
-
|
|
289
|
-
### Fixed
|
|
290
|
-
- Bumped the `ace-git` runtime dependency constraint to `~> 0.19` so ace-overseer stays aligned with the current git workflow release.
|
|
291
|
-
|
|
292
|
-
## [0.13.6] - 2026-03-29
|
|
293
|
-
|
|
294
|
-
### Fixed
|
|
295
|
-
- Updated the `ace-assign` runtime dependency constraint to `~> 0.41` to stay aligned with the current released assign API.
|
|
296
|
-
|
|
297
|
-
## [0.13.5] - 2026-03-29
|
|
298
|
-
|
|
299
|
-
### Technical
|
|
300
|
-
- Register package-level `.ace-defaults` skill-sources for ace-overseer to enable canonical skill discovery in fresh installs.
|
|
301
|
-
|
|
302
|
-
## [0.13.4] - 2026-03-29
|
|
303
|
-
|
|
304
|
-
### Fixed
|
|
305
|
-
- Bumped dependency constraints to currently available `~>` ranges on RubyGems and updated release metadata after dependency synchronization.
|
|
306
|
-
|
|
307
|
-
## [0.13.3] - 2026-03-28
|
|
308
|
-
|
|
309
|
-
### Fixed
|
|
310
|
-
- Added an explicit git-repository guard for operational commands so `work-on`, `status`, and `prune` fail cleanly outside a repo or worktree instead of leaking raw `git` errors.
|
|
311
|
-
|
|
312
|
-
### Technical
|
|
313
|
-
- Added command coverage for non-repo failure paths and updated launcher fixtures to initialize real git repos in temporary worktree test directories.
|
|
314
|
-
|
|
315
|
-
## [0.13.2] - 2026-03-27
|
|
316
|
-
|
|
317
|
-
### Fixed
|
|
318
|
-
- Preserved taskref-only preset compatibility by collapsing launcher task refs to the primary task when a preset does not declare `taskrefs`.
|
|
319
|
-
|
|
320
|
-
## [0.13.1] - 2026-03-27
|
|
321
|
-
|
|
322
|
-
### Fixed
|
|
323
|
-
- Updated work-on preset guard checks to evaluate active resolved refs after terminal filtering, preventing false single-task preset rejections on mixed terminal/non-terminal inputs.
|
|
324
|
-
- Preserved parent refs during taskref expansion when all subtasks are terminal, preventing empty expansion results from valid parent-task inputs.
|
|
325
|
-
|
|
326
|
-
## [0.13.0] - 2026-03-27
|
|
327
|
-
|
|
328
|
-
### Changed
|
|
329
|
-
- Routed `ace-overseer work-on` assignment launch through the shared `ace-assign create --task ...` creation path while preserving the existing CLI and pre-side-effect validation behavior.
|
|
330
|
-
- Updated package docs to describe the shared task-driven assignment creation flow with `ace-assign`.
|
|
331
|
-
|
|
332
|
-
### Technical
|
|
333
|
-
- Added launcher and orchestrator coverage for the shared creator path and explicit task fixture resolution.
|
|
334
|
-
|
|
335
|
-
## [0.12.1] - 2026-03-26
|
|
336
|
-
|
|
337
|
-
### Fixed
|
|
338
|
-
- Tightened `ace-assign` gemspec constraint from `~> 0.16` to `~> 0.38` to match the runtime dependency introduced in v0.12.0.
|
|
339
|
-
|
|
340
|
-
## [0.12.0] - 2026-03-26
|
|
11
|
+
## [0.25.0] - 2026-10-20
|
|
341
12
|
|
|
342
13
|
### Added
|
|
343
|
-
- Terminal task filtering in `WorkOnOrchestrator`: tasks with `done`, `skipped`, or `cancelled` status are automatically excluded before assignment creation, with user-visible skip reporting via progress callbacks.
|
|
344
14
|
|
|
345
|
-
|
|
346
|
-
- `resolve_requested_refs` now returns skipped terminal refs alongside resolved refs, raising an error when all requested refs are terminal.
|
|
347
|
-
- `expand_task_refs_in_order` and `extract_subtask_refs` filter out terminal subtasks during parent-to-subtask expansion.
|
|
348
|
-
|
|
349
|
-
### Technical
|
|
350
|
-
- Added 4 tests covering single-terminal rejection, all-terminal rejection, mixed-set filtering, and subtask-level terminal filtering.
|
|
15
|
+
- Add the derived attention section to `ace-overseer status` (L7.4): blockers, failures and missing data in one view, clearly distinguished from healthy progress. The one-shot table (and `--format json`) now opens with `-- attention`, and the JSON payload gains `attention: {blockers:, failures:, missing_data:}` — computed live from the already-collected status sources plus the read-only `Molecules::HitlInbox`, no new fetchers and nothing persisted (new organism `Organisms::StatusAttention`). BLOCKER rows list startable tasks (`pending` in the project or `_overseer` tree) whose dependencies are unsatisfied, plus tasks explicitly `blocked`, each with the concrete per-dependency reason from `Atoms::DependencyReadiness` (predecessor status, missing/cyclic dependency) and a next action. FAILURE rows cover source errors (with origin), `failed`/`stalled` assignments, per-worktree executor probe errors, and escalations (pending ace-hitl questions awaiting an answer). MISSING DATA rows make gaps explicit — disabled sources, unknown `status_sources` keys, unreadable task trees (dependency readiness unverified), unrecognized task statuses, unknown executor states (the worktree is not free), an unreachable hitl inbox — because absence of data never confirms a free worktree or a finished task. When nothing needs attention the section states that explicitly.
|
|
351
16
|
|
|
352
|
-
|
|
17
|
+
- Add configurable status sources to `ace-overseer status` (L7.2): the command aggregates every source configured under `status_sources` (defaults: `worktrees`, `forge` (default OFF), `project_tasks`, `overseer_tree`, `herdr`, `coworkers`) into one live, read-only view — ongoing steps, finished work, dependencies, and available resources. Each source is a thin adapter over its owner's interface (ace-git-worktree WorktreeManager, ace-git forge Providers `recent_pull_requests`, ace-task TaskManager for `.ace-tasks/` and `.ace-tasks/_overseer/`, ace-herdr ControlSurface + StatusComposer read-only, ace-coworker WorktreeExecutorProbe + ActiveExecutorRule). A disabled source is marked `disabled`; a failing source is marked `error` with its origin, rendered NEXT TO the healthy results — missing data never reads as a free worktree or a finished task (an unknown or unparseable coworker commission reports `active: true` with state `unknown`/`unparseable`). `--format json` emits the per-source contract `{sources: {<name>: {status: ok|disabled|error, origin:, data:|error:}}}` for the next role/tool; nothing is persisted (new organism `Organisms::StatusSources`, `StatusCollector#collect_sources`).
|
|
353
18
|
|
|
354
|
-
|
|
355
|
-
-
|
|
356
|
-
-
|
|
357
|
-
|
|
358
|
-
## [0.10.3] - 2026-03-23
|
|
359
|
-
|
|
360
|
-
### Changed
|
|
361
|
-
- Refreshed package README layout, quick-link navigation, and section flow to align with the current package pattern.
|
|
362
|
-
|
|
363
|
-
## [0.10.2] - 2026-03-22
|
|
364
|
-
|
|
365
|
-
### Fixed
|
|
366
|
-
- Updated `work_on` orchestration messaging and preset expectations to use the canonical `work-on-task` preset name for taskref-driven batch flows.
|
|
367
|
-
|
|
368
|
-
### Changed
|
|
369
|
-
- Aligned default tmux window preset mapping and associated test coverage with singular `work-on-task` preset naming.
|
|
370
|
-
|
|
371
|
-
## [0.10.1] - 2026-03-22
|
|
372
|
-
|
|
373
|
-
### Changed
|
|
374
|
-
- Remove `mise exec --` wrapper from error message string in worktree provisioner.
|
|
375
|
-
|
|
376
|
-
## [0.10.0] - 2026-03-22
|
|
377
|
-
|
|
378
|
-
### Added
|
|
379
|
-
- Added configurable tmux window preset selection for `work-on` when using the `work-on-tasks` assignment preset.
|
|
380
|
-
- Added an overseer-specific `work-on-tasks` layout that launches `cc /as-assign-drive`, opens the active assignment report folder in `nvim`, and runs both `ace-task status` and `ace-assign status`.
|
|
381
|
-
|
|
382
|
-
## [0.9.0] - 2026-03-22
|
|
383
|
-
|
|
384
|
-
### Changed
|
|
385
|
-
- Updated task context collection to recognize short task worktree naming prefixes (`t.*`, `ace-t.*`) when resolving task IDs from worktree paths.
|
|
386
|
-
|
|
387
|
-
## [0.8.2] - 2026-03-22
|
|
388
|
-
|
|
389
|
-
### Fixed
|
|
390
|
-
- Align README messaging: changed "start an assignment" to "prepare an assignment for execution" to match actual `work-on` behavior.
|
|
391
|
-
|
|
392
|
-
## [0.8.1] - 2026-03-22
|
|
393
|
-
|
|
394
|
-
### Fixed
|
|
395
|
-
- Include `docs/**/*` in gemspec so documentation ships with the gem.
|
|
396
|
-
|
|
397
|
-
## [0.8.0] - 2026-03-22
|
|
398
|
-
|
|
399
|
-
### Added
|
|
400
|
-
- Reworked package documentation with a new landing-page README, tutorial getting-started guide, full usage reference, handbook catalog, demo assets, and aligned gem metadata messaging.
|
|
401
|
-
|
|
402
|
-
## [0.7.1] - 2026-03-19
|
|
403
|
-
|
|
404
|
-
### Changed
|
|
405
|
-
- Refined `TS-OVERSEER-001` E2E verifier structure with explicit impact-first validation and normalized check sections across all goals.
|
|
406
|
-
- Expanded Goal 2 E2E coverage to require both `ace-overseer status --format json` and `--format table` evidence artifacts.
|
|
407
|
-
|
|
408
|
-
## [0.7.0] - 2026-03-18
|
|
409
|
-
|
|
410
|
-
### Changed
|
|
411
|
-
- Updated assignment system references from "phase" to "step" terminology: `first_phase` → `first_step`, `current_phase` → `current_step`, `phase_summary` → `step_summary` across launcher, orchestrator, status formatter, and context collector
|
|
412
|
-
|
|
413
|
-
## [0.6.1] - 2026-03-18
|
|
414
|
-
|
|
415
|
-
### Changed
|
|
416
|
-
- Migrated CLI namespace from `Ace::Core::CLI::*` to `Ace::Support::Cli::*` (ace-support-cli is now the canonical home for CLI infrastructure).
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
## [0.6.0] - 2026-03-18
|
|
420
|
-
|
|
421
|
-
### Changed
|
|
422
|
-
- Removed legacy backward-compatibility behavior as part of the 0.10 cleanup release.
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
## [0.5.6] - 2026-03-15
|
|
426
|
-
|
|
427
|
-
### Fixed
|
|
428
|
-
- Restructured TC-005 prune workflow runner with explicit numbered steps to prevent LLM runner from executing prune before assignment completion
|
|
429
|
-
|
|
430
|
-
## [0.5.5] - 2026-03-15
|
|
431
|
-
|
|
432
|
-
### Fixed
|
|
433
|
-
- Removed dead `DryCli::ArgvCoalescer` call that caused NameError after ace-support-cli migration
|
|
434
|
-
|
|
435
|
-
## [0.5.4] - 2026-03-15
|
|
436
|
-
|
|
437
|
-
### Changed
|
|
438
|
-
- Migrated CLI framework from dry-cli to ace-support-cli
|
|
439
|
-
|
|
440
|
-
## [0.5.3] - 2026-03-13
|
|
441
|
-
|
|
442
|
-
### Fixed
|
|
443
|
-
- Reject tasks with `draft` status at assignment creation time with actionable review guidance, preventing unattended forks from stalling on interactive confirmation.
|
|
444
|
-
|
|
445
|
-
## [0.5.2] - 2026-03-13
|
|
446
|
-
|
|
447
|
-
### Changed
|
|
448
|
-
- Updated the canonical overseer skill to explicitly run its bundled workflow in the current project and execute it end-to-end.
|
|
449
|
-
|
|
450
|
-
## [0.5.1] - 2026-03-12
|
|
451
|
-
|
|
452
|
-
### Fixed
|
|
453
|
-
- Registered the package WFI source so `wfi://overseer` resolves for the canonical overseer skill.
|
|
454
|
-
|
|
455
|
-
## [0.5.0] - 2026-03-10
|
|
456
|
-
|
|
457
|
-
### Added
|
|
458
|
-
- Added the canonical handbook-owned overseer skill and a package workflow for task worktree orchestration.
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
## [0.4.21] - 2026-03-08
|
|
462
|
-
|
|
463
|
-
### Fixed
|
|
464
|
-
- `WorktreeProvisioner` now recovers from stale worktree metadata by pruning and retrying provisioning, and raises actionable errors when paths remain missing.
|
|
465
|
-
- `PruneOrchestrator` no longer crashes on missing/prunable worktree paths and marks those entries as unsafe candidates instead.
|
|
466
|
-
|
|
467
|
-
### Changed
|
|
468
|
-
- `prune` now runs a stale metadata prune pass before scanning and defaults to task-associated worktrees when no explicit targets are provided.
|
|
469
|
-
|
|
470
|
-
## [0.4.20] - 2026-03-05
|
|
471
|
-
|
|
472
|
-
### Changed
|
|
473
|
-
- Overseer task-workflow fixtures were migrated to non-legacy task IDs and `.ace-tasks` fixture layout.
|
|
474
|
-
|
|
475
|
-
## [0.4.19] - 2026-03-04
|
|
476
|
-
|
|
477
|
-
### Changed
|
|
478
|
-
- Assignment launcher temporary job files now use `.ace-local/overseer`.
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
## [0.4.18] - 2026-03-03
|
|
482
|
-
|
|
483
|
-
### Added
|
|
484
|
-
- `StatusCollector`: show non-task worktrees in status when they have active assignments
|
|
485
|
-
- `WorktreeContextCollector`: support B36TS task ID extraction from worktree paths and branch names
|
|
486
|
-
|
|
487
|
-
### Fixed
|
|
488
|
-
- `PruneOrchestrator`: allow pruning non-task worktrees when targeted by path (removes `task_associated` filter)
|
|
489
|
-
|
|
490
|
-
## [0.4.17] - 2026-03-02
|
|
491
|
-
|
|
492
|
-
### Changed
|
|
493
|
-
- Replace `ace-taskflow` dependency with `ace-task` -- migrate `WorkOnOrchestrator` and `PruneSafetyChecker` to use `Ace::Task::Organisms::TaskManager` API
|
|
494
|
-
- Remove bare `require "ace/taskflow"` import, add `require "ace/task"`
|
|
495
|
-
|
|
496
|
-
## [0.4.16] - 2026-02-26
|
|
497
|
-
|
|
498
|
-
### Fixed
|
|
499
|
-
- Fix repeated `--task` flags (`--task 288 --task 287`) being silently dropped by dry-cli; values are now coalesced before parsing
|
|
500
|
-
|
|
501
|
-
## [0.4.15] - 2026-02-26
|
|
502
|
-
|
|
503
|
-
### Fixed
|
|
504
|
-
- Raise descriptive error when no valid task references are provided to `WorkOnOrchestrator`, preventing `NoMethodError` on empty input.
|
|
505
|
-
|
|
506
|
-
## [0.4.14] - 2026-02-26
|
|
507
|
-
|
|
508
|
-
### Added
|
|
509
|
-
- Support ordered multi-task input for `ace-overseer work-on --task` using repeated flags, comma-separated values, or mixed forms.
|
|
510
|
-
- Add explicit `task_refs` launch parameter support in `AssignmentLauncher` for multi-task presets using `taskrefs`.
|
|
511
|
-
|
|
512
|
-
### Fixed
|
|
513
|
-
- Validate all provided task references before worktree/tmux/assignment side effects.
|
|
514
|
-
- Fail early with actionable guidance when multiple task refs are provided to a single-task (`taskref`) preset.
|
|
515
|
-
|
|
516
|
-
### Changed
|
|
517
|
-
- Preserve left-to-right task execution order while expanding orchestrator refs in-place to subtask sequences.
|
|
518
|
-
|
|
519
|
-
## [0.4.13] - 2026-02-24
|
|
520
|
-
|
|
521
|
-
### Fixed
|
|
522
|
-
- Isolate `TS-OVERSEER-001` E2E tmux execution per run by switching scenario setup to `tmux-session: { name-source: run-id }`, preventing cross-run/default-session collisions.
|
|
523
|
-
|
|
524
|
-
### Changed
|
|
525
|
-
- Clarify runner guidance for tmux evidence collection to always target `ACE_TMUX_SESSION` explicitly.
|
|
526
|
-
|
|
527
|
-
## [0.4.12] - 2026-02-24
|
|
528
|
-
|
|
529
|
-
### Changed
|
|
530
|
-
- Refine `TS-OVERSEER-001` TC-005 prune workflow runner instructions to explicitly resolve task.001 worktree path and execute `ace-assign` steps from that worktree while writing artifacts to the sandbox `results/` tree.
|
|
531
|
-
|
|
532
|
-
## [0.4.11] - 2026-02-24
|
|
533
|
-
|
|
534
|
-
### Changed
|
|
535
|
-
- Update `TS-OVERSEER-001` TC-005 prune workflow instructions to require explicit assignment-completion evidence and post-prune verification artifacts.
|
|
536
|
-
|
|
537
|
-
## [0.4.10] - 2026-02-23
|
|
538
|
-
|
|
539
|
-
### Technical
|
|
540
|
-
- Updated internal dependency version constraints to current releases
|
|
541
|
-
|
|
542
|
-
## [0.4.9] - 2026-02-22
|
|
543
|
-
|
|
544
|
-
### Changed
|
|
545
|
-
- Migrate CLI to standard dry-cli help pattern with HelpCommand registration
|
|
546
|
-
- Remove custom `start()` method and `KNOWN_COMMANDS` constant in favor of standard pattern
|
|
547
|
-
|
|
548
|
-
## [0.4.8] - 2026-02-22
|
|
549
|
-
|
|
550
|
-
### Fixed
|
|
551
|
-
- Standardized quiet, verbose, debug option descriptions to canonical strings
|
|
552
|
-
|
|
553
|
-
## [0.4.7] - 2026-02-22
|
|
554
|
-
|
|
555
|
-
### Changed
|
|
556
|
-
- Migrate skill naming and invocation references to hyphenated `ace-*` format (no underscores).
|
|
557
|
-
|
|
558
|
-
## [0.4.6] - 2026-02-21
|
|
559
|
-
|
|
560
|
-
### Fixed
|
|
561
|
-
- Fix TC-003 tmux window verification to use `tmux list-windows -a` (all sessions) to avoid env var propagation issues in E2E test agents
|
|
562
|
-
|
|
563
|
-
## [0.4.5] - 2026-02-21
|
|
564
|
-
|
|
565
|
-
### Fixed
|
|
566
|
-
- Fix `WorkOnOrchestrator` to pass `task_root_path` (resolved from `PROJECT_ROOT_PATH` env var or `Dir.pwd`) to `TaskLoader`, ensuring tasks are found correctly in worktree environments
|
|
567
|
-
- Fix E2E tests to use `ACE_TMUX_SESSION` variable instead of hardcoded `ace-e2e-test` session name for tmux window verification
|
|
568
|
-
|
|
569
|
-
## [0.4.4] - 2026-02-20
|
|
570
|
-
|
|
571
|
-
### Fixed
|
|
572
|
-
- E2E scenarios (TS-OVERSEER-001, TS-OVERSEER-002) now use `tmux-session` setup step for isolated tmux sessions instead of leaking windows into the developer's active session
|
|
573
|
-
- Remove hardcoded `tmux kill-session -t "ace-e2e-test"` from TS-OVERSEER-002 setup that was polluting the developer environment
|
|
574
|
-
|
|
575
|
-
## [0.4.3] - 2026-02-19
|
|
576
|
-
|
|
577
|
-
### Fixed
|
|
578
|
-
- Prune orchestrator now passes `delete_branch: true` to worktree manager's `remove` call, ensuring git branches are cleaned up when worktrees are pruned
|
|
579
|
-
|
|
580
|
-
## [0.4.2] - 2026-02-19
|
|
581
|
-
|
|
582
|
-
### Added
|
|
583
|
-
- Orchestrator subtask expansion for `work-on-tasks` preset -- when a task is an orchestrator with subtasks, `AssignmentLauncher` expands subtask refs into individual foreach steps (e.g., `work-on-272.01`, `work-on-272.02`) instead of a single `work-on-272` step
|
|
584
|
-
- `extract_subtask_refs` helper in `WorkOnOrchestrator` to extract subtask numbers from orchestrator task data
|
|
585
|
-
- `subtask_refs:` keyword argument on `AssignmentLauncher#launch` for passing expanded subtask references
|
|
586
|
-
|
|
587
|
-
## [0.4.1] - 2026-02-19
|
|
588
|
-
|
|
589
|
-
### Added
|
|
590
|
-
- `--watch` / `-w` option for `status` command -- auto-refreshing dashboard with ANSI screen clear
|
|
591
|
-
- Two-tier refresh: fast interval (15s default) refreshes assignment data only, slow interval (5min default) does full git/PR refresh
|
|
592
|
-
- `collect_assignments_only` method on `WorktreeContextCollector` for lightweight assignment-only collection with cached git data
|
|
593
|
-
- `collect_quick` method on `StatusCollector` to reuse previous snapshot's git data while refreshing assignments
|
|
594
|
-
- `format_watch_footer` on `StatusFormatter` showing dim timestamp and countdown to next full refresh
|
|
595
|
-
- Configurable watch intervals via `watch.refresh_interval` and `watch.git_refresh_interval` in overseer config
|
|
596
|
-
|
|
597
|
-
## [0.4.0] - 2026-02-19
|
|
598
|
-
|
|
599
|
-
### Added
|
|
600
|
-
- Progress bar visualization in assignment sub-rows -- filled/empty bar segments alongside numeric counts
|
|
601
|
-
- Current step name display for running assignments (e.g., `implement` shown dimmed after progress)
|
|
602
|
-
- Header row and separator line above hierarchical dashboard for column labeling
|
|
603
|
-
- Blank line separators between location groups for visual breathing room
|
|
604
|
-
- `current_step` field propagated from `QueueState` through `WorktreeContextCollector` to status display
|
|
605
|
-
|
|
606
|
-
### Changed
|
|
607
|
-
- Widen progress column to accommodate progress bar and current step text
|
|
608
|
-
|
|
609
|
-
## [0.3.1] - 2026-02-19
|
|
610
|
-
|
|
611
|
-
### Changed
|
|
612
|
-
- Hierarchical status display -- location header rows with assignment sub-rows replace flat single-row format
|
|
613
|
-
- `WorkContext` model uses `assignments` array instead of singular `assignment_status` + `assignment_count`
|
|
614
|
-
- `WorktreeContextCollector` loads all assignments via `AssignmentDiscoverer` instead of only active via `AssignmentExecutor`
|
|
615
|
-
- `StatusFormatter` emits two row types: location header (basename + PR + Git) and indented assignment sub-rows (ID + name + state + progress)
|
|
616
|
-
- IPC serialization in `StatusCollector` uses `assignments` array
|
|
617
|
-
- Main branch inclusion check uses `assignments.any?` instead of `assignment_status`
|
|
19
|
+
- Add `ace-overseer process-reports` (L6.5): interpret every incoming ace-hitl event against the private `_overseer` task tree, record the outcome through the existing `ace-task update` surface, and continue the queue by reusing the existing gates. Matching uses the assignment reference recorded on a step (or the managing task's `project_task` with exactly one non-terminal step); a success report records `processed_report`/`report_result` on the step and advances it to `done`, then continues with the next unblocked step — via `ace-overseer handoff` when the family records a worktree (next role in the SAME worktree) or the work-on gate otherwise. A repeated delivery of a processed report is detected from the recorded `processed_report` and re-runs nothing, and so is a success report under a NEW id whose only assignment match is a terminal step (no reopen path: it resolves to the recorded result instead of re-advancing the done step); ambiguous cross-manager matches stay unmatched instead of silently picking one; an error report or a question never advances a step (questions surface the `ace-hitl update <id> --answer` path); a report matching no open allocation stays for clarification. Continuation refusals (dependency gate, handoff gate) surface as blocked with reasons, never as success (new pure atom `Atoms::ReportInterpretation`, molecule `Molecules::HitlInbox`, organism `Organisms::ReportProcessor`; new runtime dependency `ace-hitl`).
|
|
20
|
+
- Add `ace-overseer handoff --task <ref>` (L6.4): hand the SAME task worktree to the next role in the prepared role sequence. The gate reads only real state — the worktree's role-sequence assignments (ace-assign files, composition order) with their current states, the per-leg start configs from `ace-coworker prepare`, and the worktree's executor truth via the coworker `ActiveExecutorRule` (new runtime dependency `ace-coworker`) — so two active executors are impossible: a failed, in-flight, stalled, or unknown-state predecessor refuses the handoff with reasons (unknown state is never a free resource), and a busy worktree never gets a second executor. On success it opens the next executor's window in the same worktree and prints `ace-coworker start --config .ace-local/coworker/prepare/<role>.yml`; nothing is re-prepared and no worktree is ever created (new pure atom `Atoms::HandoffReadiness`, molecule `Molecules::HandoffProbe`, organism `Organisms::HandoffOrchestrator`).
|
|
21
|
+
- Gate `work-on` starts on dependency readiness (L6.3): a step starts only when every recorded `dependencies` predecessor has status `done` (accepted and integrated result). A finished worker or open PR does not unlock a dependent step; cancelled, skipped, missing, or cyclic predecessors block the start with explicit reasons before any worktree/assignment side effect (new pure atom `Atoms::DependencyReadiness`, wired into `WorkOnOrchestrator`).
|
|
618
22
|
|
|
619
23
|
### Removed
|
|
620
|
-
- `assignment_executor_factory` dependency from `WorktreeContextCollector`
|
|
621
|
-
- Flat single-row dashboard format with header/separator lines
|
|
622
24
|
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
### Added
|
|
626
|
-
- Assignment-aware status display -- main branch appears in `status` when it has active assignments
|
|
627
|
-
- Assignment count shown in Assign column when location has multiple assignments (e.g., `abc12 (3)`)
|
|
628
|
-
- `--assignment` / `-a` option for `prune` command to remove a specific assignment's cache directory
|
|
629
|
-
- `AssignmentPruneCandidate` model for assignment-level prune safety checking
|
|
630
|
-
- `AssignmentPruneSafetyChecker` molecule to evaluate assignment prune safety
|
|
631
|
-
- `AssignmentManager#delete` method in ace-assign for removing assignment cache and cleaning up symlinks
|
|
632
|
-
- `assignment_count` and `location_type` fields on `WorkContext` model
|
|
25
|
+
- Remove the installed `ordinary` CLI command and `OrdinaryWorkOn` launcher: the `/as-assign-drive --ordinary` handoff is invalid after the local file-based rework.
|
|
26
|
+
- Remove installed journal/attempt dependencies from local prune and status: `WorktreeContextCollector` no longer reads attempt recovery state, and `PruneSafetyChecker`/`AssignmentPruneSafetyChecker` classify candidates from local assignment records (completed state, no active/pending steps), task state, worktree cleanliness, and executed Git preservation proofs only.
|
|
633
27
|
|
|
634
28
|
### Changed
|
|
635
|
-
- `StatusCollector` now collects main branch context alongside worktree contexts
|
|
636
|
-
- `StatusFormatter` sorts main branch row last, displays `main` in Task column with dim styling
|
|
637
|
-
- `WorktreeContextCollector` counts assignments per location via `AssignmentDiscoverer`
|
|
638
|
-
- `PruneOrchestrator` supports assignment-level pruning path with safety checks and force override
|
|
639
|
-
- Widened Assign column from 6 to 10 characters to accommodate count display
|
|
640
|
-
- IPC serialization includes `assignment_count` for parallel subprocess collection
|
|
641
|
-
|
|
642
|
-
## [0.2.17] - 2026-02-19
|
|
643
|
-
|
|
644
|
-
### Changed
|
|
645
|
-
|
|
646
|
-
- `TmuxWindowOpener` delegates entirely to `ace-tmux window` CLI -- no longer manages session names, window names, or presets
|
|
647
|
-
- Remove `tmux_session_name`, `window_name_format`, and `window_preset` config options
|
|
648
|
-
- Remove `WindowNameFormatter` atom -- window naming is ace-tmux's responsibility
|
|
649
|
-
- `PruneOrchestrator` uses worktree path basename for window cleanup instead of formatted names
|
|
650
|
-
|
|
651
|
-
## [0.2.16] - 2026-02-19
|
|
652
|
-
|
|
653
|
-
### Changed
|
|
654
|
-
|
|
655
|
-
- `TmuxWindowOpener` no longer manages tmux sessions -- delegates entirely to ace-tmux `WindowManager` for window creation, session detection, and dedup
|
|
656
29
|
|
|
657
|
-
|
|
30
|
+
- Prune-safety and status guidance no longer refer to attempt baselines or terminal attempts; use assignment status and unresolved-work evidence instead.
|
|
31
|
+
- Rename the prune candidate safety field from `attempts_terminal` to `work_terminal` (local assignment work, not attempts).
|
|
32
|
+
- Patch-range preservation proofs derive their creation baseline from Git: the declared source base must equal the fork point of the candidate head and the accepted base tip. A declared base newer than the fork point blocks because it could hide candidate work.
|
|
658
33
|
|
|
659
34
|
### Fixed
|
|
660
|
-
- Task ID extraction now recognizes `ace-task.NNN` worktree paths, fixing mismatch where overseer status showed branch-derived task ID instead of the path-derived one
|
|
661
|
-
|
|
662
|
-
## [0.2.14] - 2026-02-19
|
|
663
|
-
|
|
664
|
-
### Added
|
|
665
|
-
- `--force` (`-f`) flag for `prune` command to bypass safety checks and force-remove unsafe worktrees
|
|
666
|
-
- Positional target arguments for `prune` to filter by task ref or folder name (e.g., `ace-overseer prune 230 265`)
|
|
667
|
-
- Dry-run output shows `[FORCE]` tag on forced candidates
|
|
668
|
-
|
|
669
|
-
## [0.2.13] - 2026-02-19
|
|
670
|
-
|
|
671
|
-
### Added
|
|
672
|
-
- Progress callbacks (`on_progress:`) for `work-on` and `prune` orchestrators -- one-line status output per step
|
|
673
|
-
- Prune now displays safe/skipped candidates with reasons before the "Continue?" confirmation prompt
|
|
674
|
-
|
|
675
|
-
### Changed
|
|
676
|
-
- `work-on` command output replaced with real-time progress messages instead of post-hoc summary
|
|
677
|
-
|
|
678
|
-
## [0.2.12] - 2026-02-19
|
|
679
|
-
|
|
680
|
-
### Fixed
|
|
681
|
-
- Prune workflow now removes safe worktrees with `ignore_untracked: true`, allowing untracked-only trees to be pruned while still protecting tracked changes
|
|
682
|
-
- Tighten prune E2E assertions with task-specific grep patterns and aligned fixture/config expectations for TS-OVERSEER-002
|
|
683
|
-
|
|
684
|
-
## [0.2.11] - 2026-02-19
|
|
685
|
-
|
|
686
|
-
### Fixed
|
|
687
|
-
- Add `exit!(1)` safety net after `exec` in forked status worker to prevent child process leaking parent state if exec fails
|
|
688
|
-
- Filter nil contexts from failed parallel workers with `.compact` to prevent `NoMethodError` in dashboard formatting
|
|
689
|
-
|
|
690
|
-
## [0.2.10] - 2026-02-18
|
|
691
|
-
|
|
692
|
-
### Changed
|
|
693
|
-
- Right-size `ace-overseer` E2E coverage from 11 to 6 focused test cases by removing command error-path duplicates already covered in package tests.
|
|
694
|
-
- Consolidate prune workflow assertions so retained E2E cases validate dry-run no-side-effects and tmux cleanup in fewer scenarios.
|
|
695
|
-
|
|
696
|
-
### Fixed
|
|
697
|
-
- Reuse existing tmux windows in `work-on` to avoid duplicate task windows on idempotent reruns.
|
|
698
|
-
- Treat repositories with only untracked files as prune-safe when tracked changes are clean, preventing false `git not clean` outcomes.
|
|
699
|
-
- Return a user-friendly CLI error when `ace-overseer work-on` is invoked without `--task`.
|
|
700
|
-
|
|
701
|
-
### Added
|
|
702
|
-
- Add command tests for `work-on` missing `--task` and task-not-found error behavior.
|
|
703
|
-
|
|
704
|
-
## [0.2.9] - 2026-02-18
|
|
705
|
-
|
|
706
|
-
### Fixed
|
|
707
|
-
- Manage PROJECT_ROOT_PATH environment variable and clear ProjectRootFinder cache when switching worktree contexts to ensure ace-assign and other tools find correct configuration
|
|
708
|
-
|
|
709
|
-
### Technical
|
|
710
|
-
- Add comprehensive E2E test cases for overseer workflows
|
|
711
|
-
- Add E2E test configuration presets
|
|
712
35
|
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
-
|
|
718
|
-
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
### Added
|
|
727
|
-
|
|
728
|
-
- Assign column showing compact assignment ID for quick reference
|
|
729
|
-
- Git dirty file count display (e.g., `✗ 3`) instead of just `✗`
|
|
730
|
-
|
|
731
|
-
### Changed
|
|
732
|
-
|
|
733
|
-
- Reorder columns: Assign first, Progress last
|
|
734
|
-
- Fix column alignment by pre-padding colored fields before ANSI codes
|
|
735
|
-
- Remove redundant "ASSIGNMENTS" title (table header is self-explanatory)
|
|
736
|
-
|
|
737
|
-
## [0.2.6] - 2026-02-17
|
|
738
|
-
|
|
739
|
-
### Changed
|
|
740
|
-
|
|
741
|
-
- Replace text status labels with Unicode icons and ANSI colors for compact, scannable output
|
|
742
|
-
- Sort dashboard rows by PR number descending; rows without PR appear first (sorted by task desc)
|
|
743
|
-
- Remove Path column (redundant with Task ID) to save horizontal space
|
|
744
|
-
- Colorize PR state (OPN green, MRG blue, CLS dim, DFT yellow) and Git state (✓/✗ with colors)
|
|
745
|
-
|
|
746
|
-
### Added
|
|
747
|
-
|
|
748
|
-
- Support for new `:stalled` assignment state icon (◼ yellow)
|
|
749
|
-
|
|
750
|
-
## [0.2.5] - 2026-02-17
|
|
751
|
-
|
|
752
|
-
### Fixed
|
|
753
|
-
|
|
754
|
-
- Set `PROJECT_ROOT_PATH` per worktree in context collector so each worktree resolves its own assignment cache directory instead of all sharing the invoking worktree's data
|
|
755
|
-
- Restore `PROJECT_ROOT_PATH` and clear `ProjectRootFinder` cache after collection to prevent cross-worktree contamination
|
|
756
|
-
|
|
757
|
-
## [0.2.4] - 2026-02-17
|
|
758
|
-
|
|
759
|
-
### Changed
|
|
760
|
-
|
|
761
|
-
- Replace release-centric status view with assignment-focused dashboard showing path, state, progress, and PR columns.
|
|
762
|
-
- Remove release resolver dependency from status collector.
|
|
763
|
-
- Add step summary data (total/done/failed) to worktree context collection.
|
|
764
|
-
- Add PR metadata display with abbreviated state (OPN, MRG, CLS, DFT) in status output.
|
|
765
|
-
|
|
766
|
-
## [0.2.3] - 2026-02-17
|
|
767
|
-
|
|
768
|
-
### Changed
|
|
769
|
-
|
|
770
|
-
- Protect `gem_root` memoization with mutex synchronization.
|
|
771
|
-
- Use atomic tempfile writes for generated assignment job files.
|
|
772
|
-
- Improve task ID extraction robustness in worktree context collector.
|
|
773
|
-
|
|
774
|
-
## [0.2.2] - 2026-02-17
|
|
775
|
-
|
|
776
|
-
### Fixed
|
|
777
|
-
|
|
778
|
-
- Ensure `prune --quiet` still executes prune logic instead of returning early.
|
|
779
|
-
- Add missing runtime dependencies in gemspec for required ACE gems.
|
|
780
|
-
- Handle `SIGINT` in executable with exit code `130`.
|
|
781
|
-
|
|
782
|
-
### Changed
|
|
783
|
-
|
|
784
|
-
- Expand assignment preset lookup to include `.ace/assign/presets` before defaults.
|
|
785
|
-
- Use post-action wording in `work-on` command output for accurate UX timing.
|
|
786
|
-
- Improve prune task-done checks to account for repository common root context.
|
|
787
|
-
|
|
788
|
-
## [0.2.1] - 2026-02-17
|
|
789
|
-
|
|
790
|
-
### Changed
|
|
791
|
-
|
|
792
|
-
- Release patch after the valid review cycle with no additional code changes required.
|
|
793
|
-
|
|
794
|
-
## [0.2.0] - 2026-02-17
|
|
795
|
-
|
|
796
|
-
### Changed
|
|
797
|
-
|
|
798
|
-
- Promote the initial `ace-overseer` implementation set to a minor release.
|
|
799
|
-
- Align release metadata for assignment-driven delivery flow.
|
|
800
|
-
|
|
801
|
-
## [0.1.0] - 2026-02-17
|
|
802
|
-
|
|
803
|
-
### Added
|
|
36
|
+
- Recover the preparation readiness crash cut (PR393 final audit finding #4): after preparation became `done` with its readiness report recorded (`processed_report` persisted) but the continuation never dispatched (crash between persist and handoff), the re-delivered assignment-less readiness report fell out `unmatched` — worker dispatch never resumed. Matching now checks the already-recorded report identity BEFORE filtering new matches to non-terminal steps, so the exact re-delivered event resolves to the recorded duplicate and the existing duplicate-with-recorded-success path re-evaluates the continuation from current state; a distinct unknown event id still fits no open allocation (no task-only fallback restored).
|
|
37
|
+
- Root the status sources' descendant re-scan at the task manager's actual `root_dir` instead of a hardcoded CWD-relative `.ace-tasks` literal (review fix): `TreeRows.linked_descendants` built its `TaskScanner` from `".ace-tasks"`, disconnected from the manager that produced the tree — a tree rooted elsewhere (e.g. `--root`/configured `root_dir`) was scanned relative to the process CWD. The scanner root now travels from the manager (`TaskManager#root_dir`) through `TreeRows.flatten`, so descendants of any rooted tree resolve against their own root.
|
|
38
|
+
- Restrict report matching to its actual allocation (PR393 P1): an explicit assignment that matches no step is `unmatched` — the previous task-only fallback let any `success` report complete the sole non-terminal step even when it belonged to a different assignment (e.g. a stale planner readiness report completing pending integration). Assignment-less reports (planner readiness) now bind only to the preparation role: the sole non-terminal step whose own assignment is blank; absence of an assignment is never evidence that whichever role remains finished.
|
|
39
|
+
- Recover the queue continuation after a failed or interrupted dispatch (PR393 P2): the report result/ID is persisted BEFORE the continuation, so a handoff failure (or a process death between the write and the dispatch) previously left a recorded duplicate that suppressed the next role forever. A duplicate whose recorded result is success now re-checks the continuation from current task/assignment state through the same gates; duplicate starts stay impossible because the gates read real allocation state (work-on reuses an active assignment, handoff refuses a busy worktree).
|
|
40
|
+
- `process-reports` handoff outcomes no longer claim the worktree "was handed to the next role" when only the window was ensured: per `queue.wf.md` section 4 the overseer agent runs the printed command, so the outcome message now carries the actionable start command (`ace-coworker start --config .ace-local/coworker/prepare/<role>.yml`, exactly what the Handoff CLI prints) instead of asserting the handoff already happened.
|
|
41
|
+
- Flatten the full descendant task tree in the status sources (PR393 P2): `project_tasks` and `overseer_tree` serialized only the root rows of what `TaskManager.list` returns, hiding blocked lifecycle steps and dropping dependencies that name subtasks. Rows now cover every descendant (attached subtasks, plus deeper levels re-read through the owner's own TaskScanner/TaskLoader), and `overseer_tree` rows carry the step's recorded `processed_report`.
|
|
42
|
+
- Stop labeling processed reports as permanently unprocessed in attention (PR393 P2): `StatusAttention` flagged every inbox report `unprocessed_report` without checking that `ReportProcessor` had already recorded it on a step. Processed state is now derived from the existing owner (the `processed_report` metadata carried by the `overseer_tree` source) — no second registry.
|
|
43
|
+
- The `forge` status source now covers issues, not pull requests only (spec `.6.1` "PR/issues GitHub or Forgejo"): the source lists issues through the provider's own `recent_issues` API when it exposes one, and otherwise renders an explicit per-source `issues: UNAVAILABLE` marker (with the reason) instead of silently substituting PR-only data; `format_forge_rows` renders both sections distinctly.
|
|
44
|
+
- Preserve the `main` location label in the new sources-table worktrees section: `context_to_h`/`context_from_h` now round-trip `location_type` (and `tmux_window`), so a main checkout with assignments renders with its dimmed `main` row and sorts last again, like the legacy dashboard.
|
|
45
|
+
- Warn on unknown keys under `status_sources` instead of silently ignoring them: a typo'd source name (`herder:`) renders `-- herder: unknown source (ignored)` and a typo'd option (`enabeld: false`) renders `-- forge.enabeld: unknown option (ignored)`; both also appear as `unknown_keys` in the JSON payload next to `sources`.
|
|
46
|
+
- Forward an injected `config` to the default `StatusCollector` in the `status` CLI command, so source configuration no longer falls back to the global config when a config is injected.
|
|
47
|
+
- Validate the forge source `limit` config: `Integer()` parsing with a fallback to the default (typos, missing values), explicit `0` lists nothing, and negative values clamp to `0`.
|
|
48
|
+
- Restore `ace-overseer prune --preservation` patch-range proofs after the attempt/journal removal: squash/cherry-pick transfers into a destination that also carries unrelated content can be proven and cleaned up again without any attempt-recorded baseline.
|
|
804
49
|
|
|
805
|
-
- New `ace-overseer` gem scaffold, executable, and CLI registry.
|
|
806
|
-
- `work-on` command orchestration:
|
|
807
|
-
- provision/reuse task worktree
|
|
808
|
-
- open tmux window for task context
|
|
809
|
-
- create assignment from configured preset
|
|
810
|
-
- `status` command with table and JSON output for active task worktrees.
|
|
811
|
-
- `prune` command with safety checks, dry-run mode, and confirmation flow.
|
|
812
|
-
- Core models:
|
|
813
|
-
- `WorkContext`
|
|
814
|
-
- `PruneCandidate`
|
|
815
|
-
- Core atoms:
|
|
816
|
-
- `WindowNameFormatter`
|
|
817
|
-
- `PresetResolver`
|
|
818
|
-
- `StatusFormatter`
|
|
819
|
-
- Molecule layer:
|
|
820
|
-
- `WorktreeProvisioner`
|
|
821
|
-
- `TmuxWindowOpener`
|
|
822
|
-
- `AssignmentLauncher`
|
|
823
|
-
- `WorktreeContextCollector`
|
|
824
|
-
- `PruneSafetyChecker`
|
|
825
|
-
- Organism layer:
|
|
826
|
-
- `WorkOnOrchestrator`
|
|
827
|
-
- `StatusCollector`
|
|
828
|
-
- `PruneOrchestrator`
|
|
829
|
-
- Test coverage for atoms, models, molecules, organisms, and CLI command registration.
|