ace-overseer 0.11.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 +7 -0
- data/.ace-defaults/overseer/config.yml +6 -0
- data/CHANGELOG.md +487 -0
- data/LICENSE +21 -0
- data/README.md +50 -0
- data/Rakefile +12 -0
- data/docs/demo/ace-overseer-getting-started.gif +0 -0
- data/docs/demo/ace-overseer-getting-started.tape.yml +22 -0
- data/docs/demo/fixtures/README.md +3 -0
- data/docs/demo/fixtures/sample.txt +1 -0
- data/docs/getting-started.md +56 -0
- data/docs/handbook.md +31 -0
- data/docs/usage.md +72 -0
- data/exe/ace-overseer +14 -0
- data/handbook/skills/as-overseer/SKILL.md +28 -0
- data/handbook/workflow-instructions/overseer.wf.md +16 -0
- data/lib/ace/overseer/atoms/preset_resolver.rb +34 -0
- data/lib/ace/overseer/atoms/status_formatter.rb +249 -0
- data/lib/ace/overseer/cli/commands/prune.rb +124 -0
- data/lib/ace/overseer/cli/commands/status.rb +94 -0
- data/lib/ace/overseer/cli/commands/work_on.rb +58 -0
- data/lib/ace/overseer/cli.rb +50 -0
- data/lib/ace/overseer/models/assignment_prune_candidate.rb +34 -0
- data/lib/ace/overseer/models/prune_candidate.rb +36 -0
- data/lib/ace/overseer/models/work_context.rb +43 -0
- data/lib/ace/overseer/molecules/assignment_launcher.rb +138 -0
- data/lib/ace/overseer/molecules/assignment_prune_safety_checker.rb +42 -0
- data/lib/ace/overseer/molecules/prune_safety_checker.rb +97 -0
- data/lib/ace/overseer/molecules/tmux_window_opener.rb +40 -0
- data/lib/ace/overseer/molecules/worktree_context_collector.rb +104 -0
- data/lib/ace/overseer/molecules/worktree_provisioner.rb +65 -0
- data/lib/ace/overseer/organisms/prune_orchestrator.rb +199 -0
- data/lib/ace/overseer/organisms/status_collector.rb +172 -0
- data/lib/ace/overseer/organisms/work_on_orchestrator.rb +187 -0
- data/lib/ace/overseer/version.rb +7 -0
- data/lib/ace/overseer.rb +86 -0
- metadata +263 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 94a8d4155aa2c5385f768be8044cec7375bf45be9f3e4c710635600426482e4b
|
|
4
|
+
data.tar.gz: 55918116f099345f95b94156da6ca9be5afbd65d94b34116ccaa39dbaeddf9e7
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 10974ac46524c8555ce64a47867ba1a0bee986b6b63114ae7dde29202ef190bcadfb3c57310a1ada3631b4476e5b7329361b2660c09b0d4fcc1047bdbaaded55
|
|
7
|
+
data.tar.gz: 5f25ff7e081379033014d606eae9f28f611ae35e01b4be77dff516ecccfbb6c2916027453ee07e31a30234114ea0ef53454ee833c3308ce6f373913c2240c8c5
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,487 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.11.0] - 2026-03-23
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Clarified README intro and How It Works section to describe assignment expansion into `.ace-local/assign/` and agent-driven orchestration.
|
|
14
|
+
- Re-recorded getting-started demo GIF against live project context showing the full worktree dashboard with progress bars, PR status, and failure counts.
|
|
15
|
+
|
|
16
|
+
## [0.10.3] - 2026-03-23
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- Refreshed package README layout, quick-link navigation, and section flow to align with the current package pattern.
|
|
20
|
+
|
|
21
|
+
## [0.10.2] - 2026-03-22
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
- Updated `work_on` orchestration messaging and preset expectations to use the canonical `work-on-task` preset name for taskref-driven batch flows.
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
- Aligned default tmux window preset mapping and associated test coverage with singular `work-on-task` preset naming.
|
|
28
|
+
|
|
29
|
+
## [0.10.1] - 2026-03-22
|
|
30
|
+
|
|
31
|
+
### Changed
|
|
32
|
+
- Remove `mise exec --` wrapper from error message string in worktree provisioner.
|
|
33
|
+
|
|
34
|
+
## [0.10.0] - 2026-03-22
|
|
35
|
+
|
|
36
|
+
### Added
|
|
37
|
+
- Added configurable tmux window preset selection for `work-on` when using the `work-on-tasks` assignment preset.
|
|
38
|
+
- 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`.
|
|
39
|
+
|
|
40
|
+
## [0.9.0] - 2026-03-22
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
- Updated task context collection to recognize short task worktree naming prefixes (`t.*`, `ace-t.*`) when resolving task IDs from worktree paths.
|
|
44
|
+
|
|
45
|
+
## [0.8.2] - 2026-03-22
|
|
46
|
+
|
|
47
|
+
### Fixed
|
|
48
|
+
- Align README messaging: changed "start an assignment" to "prepare an assignment for execution" to match actual `work-on` behavior.
|
|
49
|
+
|
|
50
|
+
## [0.8.1] - 2026-03-22
|
|
51
|
+
|
|
52
|
+
### Fixed
|
|
53
|
+
- Include `docs/**/*` in gemspec so documentation ships with the gem.
|
|
54
|
+
|
|
55
|
+
## [0.8.0] - 2026-03-22
|
|
56
|
+
|
|
57
|
+
### Added
|
|
58
|
+
- 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.
|
|
59
|
+
|
|
60
|
+
## [0.7.1] - 2026-03-19
|
|
61
|
+
|
|
62
|
+
### Changed
|
|
63
|
+
- Refined `TS-OVERSEER-001` E2E verifier structure with explicit impact-first validation and normalized check sections across all goals.
|
|
64
|
+
- Expanded Goal 2 E2E coverage to require both `ace-overseer status --format json` and `--format table` evidence artifacts.
|
|
65
|
+
|
|
66
|
+
## [0.7.0] - 2026-03-18
|
|
67
|
+
|
|
68
|
+
### Changed
|
|
69
|
+
- 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
|
|
70
|
+
|
|
71
|
+
## [0.6.1] - 2026-03-18
|
|
72
|
+
|
|
73
|
+
### Changed
|
|
74
|
+
- Migrated CLI namespace from `Ace::Core::CLI::*` to `Ace::Support::Cli::*` (ace-support-cli is now the canonical home for CLI infrastructure).
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
## [0.6.0] - 2026-03-18
|
|
78
|
+
|
|
79
|
+
### Changed
|
|
80
|
+
- Removed legacy backward-compatibility behavior as part of the 0.10 cleanup release.
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
## [0.5.6] - 2026-03-15
|
|
84
|
+
|
|
85
|
+
### Fixed
|
|
86
|
+
- Restructured TC-005 prune workflow runner with explicit numbered steps to prevent LLM runner from executing prune before assignment completion
|
|
87
|
+
|
|
88
|
+
## [0.5.5] - 2026-03-15
|
|
89
|
+
|
|
90
|
+
### Fixed
|
|
91
|
+
- Removed dead `DryCli::ArgvCoalescer` call that caused NameError after ace-support-cli migration
|
|
92
|
+
|
|
93
|
+
## [0.5.4] - 2026-03-15
|
|
94
|
+
|
|
95
|
+
### Changed
|
|
96
|
+
- Migrated CLI framework from dry-cli to ace-support-cli
|
|
97
|
+
|
|
98
|
+
## [0.5.3] - 2026-03-13
|
|
99
|
+
|
|
100
|
+
### Fixed
|
|
101
|
+
- Reject tasks with `draft` status at assignment creation time with actionable review guidance, preventing unattended forks from stalling on interactive confirmation.
|
|
102
|
+
|
|
103
|
+
## [0.5.2] - 2026-03-13
|
|
104
|
+
|
|
105
|
+
### Changed
|
|
106
|
+
- Updated the canonical overseer skill to explicitly run its bundled workflow in the current project and execute it end-to-end.
|
|
107
|
+
|
|
108
|
+
## [0.5.1] - 2026-03-12
|
|
109
|
+
|
|
110
|
+
### Fixed
|
|
111
|
+
- Registered the package WFI source so `wfi://overseer` resolves for the canonical overseer skill.
|
|
112
|
+
|
|
113
|
+
## [0.5.0] - 2026-03-10
|
|
114
|
+
|
|
115
|
+
### Added
|
|
116
|
+
- Added the canonical handbook-owned overseer skill and a package workflow for task worktree orchestration.
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
## [0.4.21] - 2026-03-08
|
|
120
|
+
|
|
121
|
+
### Fixed
|
|
122
|
+
- `WorktreeProvisioner` now recovers from stale worktree metadata by pruning and retrying provisioning, and raises actionable errors when paths remain missing.
|
|
123
|
+
- `PruneOrchestrator` no longer crashes on missing/prunable worktree paths and marks those entries as unsafe candidates instead.
|
|
124
|
+
|
|
125
|
+
### Changed
|
|
126
|
+
- `prune` now runs a stale metadata prune pass before scanning and defaults to task-associated worktrees when no explicit targets are provided.
|
|
127
|
+
|
|
128
|
+
## [0.4.20] - 2026-03-05
|
|
129
|
+
|
|
130
|
+
### Changed
|
|
131
|
+
- Overseer task-workflow fixtures were migrated to non-legacy task IDs and `.ace-tasks` fixture layout.
|
|
132
|
+
|
|
133
|
+
## [0.4.19] - 2026-03-04
|
|
134
|
+
|
|
135
|
+
### Changed
|
|
136
|
+
- Assignment launcher temporary job files now use `.ace-local/overseer`.
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
## [0.4.18] - 2026-03-03
|
|
140
|
+
|
|
141
|
+
### Added
|
|
142
|
+
- `StatusCollector`: show non-task worktrees in status when they have active assignments
|
|
143
|
+
- `WorktreeContextCollector`: support B36TS task ID extraction from worktree paths and branch names
|
|
144
|
+
|
|
145
|
+
### Fixed
|
|
146
|
+
- `PruneOrchestrator`: allow pruning non-task worktrees when targeted by path (removes `task_associated` filter)
|
|
147
|
+
|
|
148
|
+
## [0.4.17] - 2026-03-02
|
|
149
|
+
|
|
150
|
+
### Changed
|
|
151
|
+
- Replace `ace-taskflow` dependency with `ace-task` — migrate `WorkOnOrchestrator` and `PruneSafetyChecker` to use `Ace::Task::Organisms::TaskManager` API
|
|
152
|
+
- Remove bare `require "ace/taskflow"` import, add `require "ace/task"`
|
|
153
|
+
|
|
154
|
+
## [0.4.16] - 2026-02-26
|
|
155
|
+
|
|
156
|
+
### Fixed
|
|
157
|
+
- Fix repeated `--task` flags (`--task 288 --task 287`) being silently dropped by dry-cli; values are now coalesced before parsing
|
|
158
|
+
|
|
159
|
+
## [0.4.15] - 2026-02-26
|
|
160
|
+
|
|
161
|
+
### Fixed
|
|
162
|
+
- Raise descriptive error when no valid task references are provided to `WorkOnOrchestrator`, preventing `NoMethodError` on empty input.
|
|
163
|
+
|
|
164
|
+
## [0.4.14] - 2026-02-26
|
|
165
|
+
|
|
166
|
+
### Added
|
|
167
|
+
- Support ordered multi-task input for `ace-overseer work-on --task` using repeated flags, comma-separated values, or mixed forms.
|
|
168
|
+
- Add explicit `task_refs` launch parameter support in `AssignmentLauncher` for multi-task presets using `taskrefs`.
|
|
169
|
+
|
|
170
|
+
### Fixed
|
|
171
|
+
- Validate all provided task references before worktree/tmux/assignment side effects.
|
|
172
|
+
- Fail early with actionable guidance when multiple task refs are provided to a single-task (`taskref`) preset.
|
|
173
|
+
|
|
174
|
+
### Changed
|
|
175
|
+
- Preserve left-to-right task execution order while expanding orchestrator refs in-place to subtask sequences.
|
|
176
|
+
|
|
177
|
+
## [0.4.13] - 2026-02-24
|
|
178
|
+
|
|
179
|
+
### Fixed
|
|
180
|
+
- 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.
|
|
181
|
+
|
|
182
|
+
### Changed
|
|
183
|
+
- Clarify runner guidance for tmux evidence collection to always target `ACE_TMUX_SESSION` explicitly.
|
|
184
|
+
|
|
185
|
+
## [0.4.12] - 2026-02-24
|
|
186
|
+
|
|
187
|
+
### Changed
|
|
188
|
+
- 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.
|
|
189
|
+
|
|
190
|
+
## [0.4.11] - 2026-02-24
|
|
191
|
+
|
|
192
|
+
### Changed
|
|
193
|
+
- Update `TS-OVERSEER-001` TC-005 prune workflow instructions to require explicit assignment-completion evidence and post-prune verification artifacts.
|
|
194
|
+
|
|
195
|
+
## [0.4.10] - 2026-02-23
|
|
196
|
+
|
|
197
|
+
### Technical
|
|
198
|
+
- Updated internal dependency version constraints to current releases
|
|
199
|
+
|
|
200
|
+
## [0.4.9] - 2026-02-22
|
|
201
|
+
|
|
202
|
+
### Changed
|
|
203
|
+
- Migrate CLI to standard dry-cli help pattern with HelpCommand registration
|
|
204
|
+
- Remove custom `start()` method and `KNOWN_COMMANDS` constant in favor of standard pattern
|
|
205
|
+
|
|
206
|
+
## [0.4.8] - 2026-02-22
|
|
207
|
+
|
|
208
|
+
### Fixed
|
|
209
|
+
- Standardized quiet, verbose, debug option descriptions to canonical strings
|
|
210
|
+
|
|
211
|
+
## [0.4.7] - 2026-02-22
|
|
212
|
+
|
|
213
|
+
### Changed
|
|
214
|
+
- Migrate skill naming and invocation references to hyphenated `ace-*` format (no underscores).
|
|
215
|
+
|
|
216
|
+
## [0.4.6] - 2026-02-21
|
|
217
|
+
|
|
218
|
+
### Fixed
|
|
219
|
+
- Fix TC-003 tmux window verification to use `tmux list-windows -a` (all sessions) to avoid env var propagation issues in E2E test agents
|
|
220
|
+
|
|
221
|
+
## [0.4.5] - 2026-02-21
|
|
222
|
+
|
|
223
|
+
### Fixed
|
|
224
|
+
- 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
|
|
225
|
+
- Fix E2E tests to use `ACE_TMUX_SESSION` variable instead of hardcoded `ace-e2e-test` session name for tmux window verification
|
|
226
|
+
|
|
227
|
+
## [0.4.4] - 2026-02-20
|
|
228
|
+
|
|
229
|
+
### Fixed
|
|
230
|
+
- 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
|
|
231
|
+
- Remove hardcoded `tmux kill-session -t "ace-e2e-test"` from TS-OVERSEER-002 setup that was polluting the developer environment
|
|
232
|
+
|
|
233
|
+
## [0.4.3] - 2026-02-19
|
|
234
|
+
|
|
235
|
+
### Fixed
|
|
236
|
+
- Prune orchestrator now passes `delete_branch: true` to worktree manager's `remove` call, ensuring git branches are cleaned up when worktrees are pruned
|
|
237
|
+
|
|
238
|
+
## [0.4.2] - 2026-02-19
|
|
239
|
+
|
|
240
|
+
### Added
|
|
241
|
+
- 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
|
|
242
|
+
- `extract_subtask_refs` helper in `WorkOnOrchestrator` to extract subtask numbers from orchestrator task data
|
|
243
|
+
- `subtask_refs:` keyword argument on `AssignmentLauncher#launch` for passing expanded subtask references
|
|
244
|
+
|
|
245
|
+
## [0.4.1] - 2026-02-19
|
|
246
|
+
|
|
247
|
+
### Added
|
|
248
|
+
- `--watch` / `-w` option for `status` command — auto-refreshing dashboard with ANSI screen clear
|
|
249
|
+
- Two-tier refresh: fast interval (15s default) refreshes assignment data only, slow interval (5min default) does full git/PR refresh
|
|
250
|
+
- `collect_assignments_only` method on `WorktreeContextCollector` for lightweight assignment-only collection with cached git data
|
|
251
|
+
- `collect_quick` method on `StatusCollector` to reuse previous snapshot's git data while refreshing assignments
|
|
252
|
+
- `format_watch_footer` on `StatusFormatter` showing dim timestamp and countdown to next full refresh
|
|
253
|
+
- Configurable watch intervals via `watch.refresh_interval` and `watch.git_refresh_interval` in overseer config
|
|
254
|
+
|
|
255
|
+
## [0.4.0] - 2026-02-19
|
|
256
|
+
|
|
257
|
+
### Added
|
|
258
|
+
- Progress bar visualization in assignment sub-rows — filled/empty bar segments alongside numeric counts
|
|
259
|
+
- Current step name display for running assignments (e.g., `implement` shown dimmed after progress)
|
|
260
|
+
- Header row and separator line above hierarchical dashboard for column labeling
|
|
261
|
+
- Blank line separators between location groups for visual breathing room
|
|
262
|
+
- `current_step` field propagated from `QueueState` through `WorktreeContextCollector` to status display
|
|
263
|
+
|
|
264
|
+
### Changed
|
|
265
|
+
- Widen progress column to accommodate progress bar and current step text
|
|
266
|
+
|
|
267
|
+
## [0.3.1] - 2026-02-19
|
|
268
|
+
|
|
269
|
+
### Changed
|
|
270
|
+
- Hierarchical status display — location header rows with assignment sub-rows replace flat single-row format
|
|
271
|
+
- `WorkContext` model uses `assignments` array instead of singular `assignment_status` + `assignment_count`
|
|
272
|
+
- `WorktreeContextCollector` loads all assignments via `AssignmentDiscoverer` instead of only active via `AssignmentExecutor`
|
|
273
|
+
- `StatusFormatter` emits two row types: location header (basename + PR + Git) and indented assignment sub-rows (ID + name + state + progress)
|
|
274
|
+
- IPC serialization in `StatusCollector` uses `assignments` array
|
|
275
|
+
- Main branch inclusion check uses `assignments.any?` instead of `assignment_status`
|
|
276
|
+
|
|
277
|
+
### Removed
|
|
278
|
+
- `assignment_executor_factory` dependency from `WorktreeContextCollector`
|
|
279
|
+
- Flat single-row dashboard format with header/separator lines
|
|
280
|
+
|
|
281
|
+
## [0.3.0] - 2026-02-19
|
|
282
|
+
|
|
283
|
+
### Added
|
|
284
|
+
- Assignment-aware status display — main branch appears in `status` when it has active assignments
|
|
285
|
+
- Assignment count shown in Assign column when location has multiple assignments (e.g., `abc12 (3)`)
|
|
286
|
+
- `--assignment` / `-a` option for `prune` command to remove a specific assignment's cache directory
|
|
287
|
+
- `AssignmentPruneCandidate` model for assignment-level prune safety checking
|
|
288
|
+
- `AssignmentPruneSafetyChecker` molecule to evaluate assignment prune safety
|
|
289
|
+
- `AssignmentManager#delete` method in ace-assign for removing assignment cache and cleaning up symlinks
|
|
290
|
+
- `assignment_count` and `location_type` fields on `WorkContext` model
|
|
291
|
+
|
|
292
|
+
### Changed
|
|
293
|
+
- `StatusCollector` now collects main branch context alongside worktree contexts
|
|
294
|
+
- `StatusFormatter` sorts main branch row last, displays `main` in Task column with dim styling
|
|
295
|
+
- `WorktreeContextCollector` counts assignments per location via `AssignmentDiscoverer`
|
|
296
|
+
- `PruneOrchestrator` supports assignment-level pruning path with safety checks and force override
|
|
297
|
+
- Widened Assign column from 6 to 10 characters to accommodate count display
|
|
298
|
+
- IPC serialization includes `assignment_count` for parallel subprocess collection
|
|
299
|
+
|
|
300
|
+
## [0.2.17] - 2026-02-19
|
|
301
|
+
|
|
302
|
+
### Changed
|
|
303
|
+
|
|
304
|
+
- `TmuxWindowOpener` delegates entirely to `ace-tmux window` CLI — no longer manages session names, window names, or presets
|
|
305
|
+
- Remove `tmux_session_name`, `window_name_format`, and `window_preset` config options
|
|
306
|
+
- Remove `WindowNameFormatter` atom — window naming is ace-tmux's responsibility
|
|
307
|
+
- `PruneOrchestrator` uses worktree path basename for window cleanup instead of formatted names
|
|
308
|
+
|
|
309
|
+
## [0.2.16] - 2026-02-19
|
|
310
|
+
|
|
311
|
+
### Changed
|
|
312
|
+
|
|
313
|
+
- `TmuxWindowOpener` no longer manages tmux sessions — delegates entirely to ace-tmux `WindowManager` for window creation, session detection, and dedup
|
|
314
|
+
|
|
315
|
+
## [0.2.15] - 2026-02-19
|
|
316
|
+
|
|
317
|
+
### Fixed
|
|
318
|
+
- 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
|
|
319
|
+
|
|
320
|
+
## [0.2.14] - 2026-02-19
|
|
321
|
+
|
|
322
|
+
### Added
|
|
323
|
+
- `--force` (`-f`) flag for `prune` command to bypass safety checks and force-remove unsafe worktrees
|
|
324
|
+
- Positional target arguments for `prune` to filter by task ref or folder name (e.g., `ace-overseer prune 230 265`)
|
|
325
|
+
- Dry-run output shows `[FORCE]` tag on forced candidates
|
|
326
|
+
|
|
327
|
+
## [0.2.13] - 2026-02-19
|
|
328
|
+
|
|
329
|
+
### Added
|
|
330
|
+
- Progress callbacks (`on_progress:`) for `work-on` and `prune` orchestrators — one-line status output per step
|
|
331
|
+
- Prune now displays safe/skipped candidates with reasons before the "Continue?" confirmation prompt
|
|
332
|
+
|
|
333
|
+
### Changed
|
|
334
|
+
- `work-on` command output replaced with real-time progress messages instead of post-hoc summary
|
|
335
|
+
|
|
336
|
+
## [0.2.12] - 2026-02-19
|
|
337
|
+
|
|
338
|
+
### Fixed
|
|
339
|
+
- Prune workflow now removes safe worktrees with `ignore_untracked: true`, allowing untracked-only trees to be pruned while still protecting tracked changes
|
|
340
|
+
- Tighten prune E2E assertions with task-specific grep patterns and aligned fixture/config expectations for TS-OVERSEER-002
|
|
341
|
+
|
|
342
|
+
## [0.2.11] - 2026-02-19
|
|
343
|
+
|
|
344
|
+
### Fixed
|
|
345
|
+
- Add `exit!(1)` safety net after `exec` in forked status worker to prevent child process leaking parent state if exec fails
|
|
346
|
+
- Filter nil contexts from failed parallel workers with `.compact` to prevent `NoMethodError` in dashboard formatting
|
|
347
|
+
|
|
348
|
+
## [0.2.10] - 2026-02-18
|
|
349
|
+
|
|
350
|
+
### Changed
|
|
351
|
+
- Right-size `ace-overseer` E2E coverage from 11 to 6 focused test cases by removing command error-path duplicates already covered in package tests.
|
|
352
|
+
- Consolidate prune workflow assertions so retained E2E cases validate dry-run no-side-effects and tmux cleanup in fewer scenarios.
|
|
353
|
+
|
|
354
|
+
### Fixed
|
|
355
|
+
- Reuse existing tmux windows in `work-on` to avoid duplicate task windows on idempotent reruns.
|
|
356
|
+
- Treat repositories with only untracked files as prune-safe when tracked changes are clean, preventing false `git not clean` outcomes.
|
|
357
|
+
- Return a user-friendly CLI error when `ace-overseer work-on` is invoked without `--task`.
|
|
358
|
+
|
|
359
|
+
### Added
|
|
360
|
+
- Add command tests for `work-on` missing `--task` and task-not-found error behavior.
|
|
361
|
+
|
|
362
|
+
## [0.2.9] - 2026-02-18
|
|
363
|
+
|
|
364
|
+
### Fixed
|
|
365
|
+
- Manage PROJECT_ROOT_PATH environment variable and clear ProjectRootFinder cache when switching worktree contexts to ensure ace-assign and other tools find correct configuration
|
|
366
|
+
|
|
367
|
+
### Technical
|
|
368
|
+
- Add comprehensive E2E test cases for overseer workflows
|
|
369
|
+
- Add E2E test configuration presets
|
|
370
|
+
|
|
371
|
+
## [0.2.8] - 2026-02-17
|
|
372
|
+
|
|
373
|
+
### Changed
|
|
374
|
+
|
|
375
|
+
- Parallelize worktree context collection using fork/exec for 3-4x speedup (5-7s → 1.5s for 6 worktrees)
|
|
376
|
+
- Use subprocess isolation to avoid Dir.chdir thread-safety issues
|
|
377
|
+
|
|
378
|
+
### Fixed
|
|
379
|
+
|
|
380
|
+
- Test expectation for status header ("ASSIGNMENTS" → "Assign")
|
|
381
|
+
|
|
382
|
+
## [0.2.7] - 2026-02-17
|
|
383
|
+
|
|
384
|
+
### Added
|
|
385
|
+
|
|
386
|
+
- Assign column showing compact assignment ID for quick reference
|
|
387
|
+
- Git dirty file count display (e.g., `✗ 3`) instead of just `✗`
|
|
388
|
+
|
|
389
|
+
### Changed
|
|
390
|
+
|
|
391
|
+
- Reorder columns: Assign first, Progress last
|
|
392
|
+
- Fix column alignment by pre-padding colored fields before ANSI codes
|
|
393
|
+
- Remove redundant "ASSIGNMENTS" title (table header is self-explanatory)
|
|
394
|
+
|
|
395
|
+
## [0.2.6] - 2026-02-17
|
|
396
|
+
|
|
397
|
+
### Changed
|
|
398
|
+
|
|
399
|
+
- Replace text status labels with Unicode icons and ANSI colors for compact, scannable output
|
|
400
|
+
- Sort dashboard rows by PR number descending; rows without PR appear first (sorted by task desc)
|
|
401
|
+
- Remove Path column (redundant with Task ID) to save horizontal space
|
|
402
|
+
- Colorize PR state (OPN green, MRG blue, CLS dim, DFT yellow) and Git state (✓/✗ with colors)
|
|
403
|
+
|
|
404
|
+
### Added
|
|
405
|
+
|
|
406
|
+
- Support for new `:stalled` assignment state icon (◼ yellow)
|
|
407
|
+
|
|
408
|
+
## [0.2.5] - 2026-02-17
|
|
409
|
+
|
|
410
|
+
### Fixed
|
|
411
|
+
|
|
412
|
+
- 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
|
|
413
|
+
- Restore `PROJECT_ROOT_PATH` and clear `ProjectRootFinder` cache after collection to prevent cross-worktree contamination
|
|
414
|
+
|
|
415
|
+
## [0.2.4] - 2026-02-17
|
|
416
|
+
|
|
417
|
+
### Changed
|
|
418
|
+
|
|
419
|
+
- Replace release-centric status view with assignment-focused dashboard showing path, state, progress, and PR columns.
|
|
420
|
+
- Remove release resolver dependency from status collector.
|
|
421
|
+
- Add step summary data (total/done/failed) to worktree context collection.
|
|
422
|
+
- Add PR metadata display with abbreviated state (OPN, MRG, CLS, DFT) in status output.
|
|
423
|
+
|
|
424
|
+
## [0.2.3] - 2026-02-17
|
|
425
|
+
|
|
426
|
+
### Changed
|
|
427
|
+
|
|
428
|
+
- Protect `gem_root` memoization with mutex synchronization.
|
|
429
|
+
- Use atomic tempfile writes for generated assignment job files.
|
|
430
|
+
- Improve task ID extraction robustness in worktree context collector.
|
|
431
|
+
|
|
432
|
+
## [0.2.2] - 2026-02-17
|
|
433
|
+
|
|
434
|
+
### Fixed
|
|
435
|
+
|
|
436
|
+
- Ensure `prune --quiet` still executes prune logic instead of returning early.
|
|
437
|
+
- Add missing runtime dependencies in gemspec for required ACE gems.
|
|
438
|
+
- Handle `SIGINT` in executable with exit code `130`.
|
|
439
|
+
|
|
440
|
+
### Changed
|
|
441
|
+
|
|
442
|
+
- Expand assignment preset lookup to include `.ace/assign/presets` before defaults.
|
|
443
|
+
- Use post-action wording in `work-on` command output for accurate UX timing.
|
|
444
|
+
- Improve prune task-done checks to account for repository common root context.
|
|
445
|
+
|
|
446
|
+
## [0.2.1] - 2026-02-17
|
|
447
|
+
|
|
448
|
+
### Changed
|
|
449
|
+
|
|
450
|
+
- Release patch after the valid review cycle with no additional code changes required.
|
|
451
|
+
|
|
452
|
+
## [0.2.0] - 2026-02-17
|
|
453
|
+
|
|
454
|
+
### Changed
|
|
455
|
+
|
|
456
|
+
- Promote the initial `ace-overseer` implementation set to a minor release.
|
|
457
|
+
- Align release metadata for assignment-driven delivery flow.
|
|
458
|
+
|
|
459
|
+
## [0.1.0] - 2026-02-17
|
|
460
|
+
|
|
461
|
+
### Added
|
|
462
|
+
|
|
463
|
+
- New `ace-overseer` gem scaffold, executable, and CLI registry.
|
|
464
|
+
- `work-on` command orchestration:
|
|
465
|
+
- provision/reuse task worktree
|
|
466
|
+
- open tmux window for task context
|
|
467
|
+
- create assignment from configured preset
|
|
468
|
+
- `status` command with table and JSON output for active task worktrees.
|
|
469
|
+
- `prune` command with safety checks, dry-run mode, and confirmation flow.
|
|
470
|
+
- Core models:
|
|
471
|
+
- `WorkContext`
|
|
472
|
+
- `PruneCandidate`
|
|
473
|
+
- Core atoms:
|
|
474
|
+
- `WindowNameFormatter`
|
|
475
|
+
- `PresetResolver`
|
|
476
|
+
- `StatusFormatter`
|
|
477
|
+
- Molecule layer:
|
|
478
|
+
- `WorktreeProvisioner`
|
|
479
|
+
- `TmuxWindowOpener`
|
|
480
|
+
- `AssignmentLauncher`
|
|
481
|
+
- `WorktreeContextCollector`
|
|
482
|
+
- `PruneSafetyChecker`
|
|
483
|
+
- Organism layer:
|
|
484
|
+
- `WorkOnOrchestrator`
|
|
485
|
+
- `StatusCollector`
|
|
486
|
+
- `PruneOrchestrator`
|
|
487
|
+
- Test coverage for atoms, models, molecules, organisms, and CLI command registration.
|
data/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Michal Czyz
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<h1> ACE - Overseer </h1>
|
|
3
|
+
|
|
4
|
+
One command to provision a worktree, open a tmux window, and start working on a task.
|
|
5
|
+
|
|
6
|
+
<img src="https://raw.githubusercontent.com/cs3b/ace/main/docs/brand/AgenticCodingEnvironment.Logo.XS.jpg" alt="ACE Logo" width="480">
|
|
7
|
+
<br><br>
|
|
8
|
+
|
|
9
|
+
<a href="https://rubygems.org/gems/ace-overseer"><img alt="Gem Version" src="https://img.shields.io/gem/v/ace-overseer.svg" /></a>
|
|
10
|
+
<a href="https://www.ruby-lang.org"><img alt="Ruby" src="https://img.shields.io/badge/Ruby-3.2+-CC342D?logo=ruby" /></a>
|
|
11
|
+
<a href="https://opensource.org/licenses/MIT"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-blue.svg" /></a>
|
|
12
|
+
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
> Works with: Claude Code, Codex CLI, OpenCode, Gemini CLI, pi-agent, and more.
|
|
16
|
+
|
|
17
|
+
[Getting Started](docs/getting-started.md) | [Usage Guide](docs/usage.md) | [Handbook - Skills, Agents, Templates](docs/handbook.md)
|
|
18
|
+
|
|
19
|
+

|
|
20
|
+
|
|
21
|
+
Starting task work means creating a worktree, opening a tmux window, and preparing an assignment - three manual steps before you even begin coding. ace-overseer collapses that into a single command, tracks what is running where, and cleans up finished worktrees so nothing lingers. You can jump straight to a focused worktree any time with a single invocation.
|
|
22
|
+
|
|
23
|
+
## How It Works
|
|
24
|
+
|
|
25
|
+
1. Resolve task refs and create a scoped worktree.
|
|
26
|
+
2. Expand the assignment preset into concrete steps under `.ace-local/assign/`, then open a dedicated tmux window mapped to that worktree.
|
|
27
|
+
3. Instruct the agent inside the tmux window to act as an orchestrator and drive the assignment step-by-step.
|
|
28
|
+
|
|
29
|
+
## Use Cases
|
|
30
|
+
|
|
31
|
+
**Kick off task work** - provisions an isolated worktree via [ace-git-worktree](../ace-git-worktree), opens a dedicated [ace-tmux](../ace-tmux) window, and prepares an [ace-assign](../ace-assign) assignment - all in one shot. Supports regular tasks and subtask trees. Draft tasks are blocked until reviewed. Use `/as-overseer` or from the CLI:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
ace-overseer work-on --task 8q4 --preset work-on-task
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Bundle related tasks** - pass multiple task refs or a task with subtasks and they all land in a single worktree. The refs are expanded and forwarded to the assignment preset, so every step for every task is prepared in one assignment. Drive through them with `/as-assign-drive`.
|
|
38
|
+
|
|
39
|
+
**Monitor active work** - [`ace-overseer status`](docs/usage.md#ace-overseer-status) shows a dashboard of all task worktrees with assignment progress, git state, and PR links. Add `--watch` for a live-refreshing view that updates assignments every 15 seconds and git status every 5 minutes.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
ace-overseer status --watch
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Clean up finished work** - [`ace-overseer prune`](docs/usage.md#ace-overseer-prune) removes completed worktrees safely. It checks three conditions before removing: assignment completed, task marked done, and git working tree clean. Use `--dry-run` to preview what would be pruned, `--force` for worktrees that fail safety checks, or `--assignment` to prune a single stale assignment.
|
|
46
|
+
|
|
47
|
+
**Customize the workflow** - the full pipeline is defined in two layers: the [assignment preset](../ace-assign/.ace-defaults/assign/presets/work-on-task.yml) controls which steps run and in what order (onboard, implement, test, release, review, PR), while each step references a [workflow instruction](../ace-task/handbook/workflow-instructions/task/work.wf.md) that defines how it executes. Browse [available presets](../ace-assign/.ace-defaults/assign/presets/) or create your own to tailor the pipeline to your project.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
[Getting Started](docs/getting-started.md) | [Usage Guide](docs/usage.md) | [Handbook - Skills, Agents, Templates](docs/handbook.md) | Part of [ACE](https://github.com/cs3b/ace)
|
data/Rakefile
ADDED
|
Binary file
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Showcase ace-overseer worktree dashboard with progress bars and PR status
|
|
3
|
+
tags:
|
|
4
|
+
- ace-overseer
|
|
5
|
+
- docs
|
|
6
|
+
- getting-started
|
|
7
|
+
settings:
|
|
8
|
+
font_size: 16
|
|
9
|
+
width: 960
|
|
10
|
+
height: 540
|
|
11
|
+
format: gif
|
|
12
|
+
env:
|
|
13
|
+
PROJECT_ROOT_PATH: /home/mc/ace-t.5nx
|
|
14
|
+
scenes:
|
|
15
|
+
- name: Show the worktree dashboard — progress bars, PR status, failure counts
|
|
16
|
+
commands:
|
|
17
|
+
- type: cd $PROJECT_ROOT_PATH
|
|
18
|
+
sleep: 1s
|
|
19
|
+
- type: ace-overseer status
|
|
20
|
+
sleep: 9s
|
|
21
|
+
teardown:
|
|
22
|
+
- cleanup
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
sample fixture content
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
doc-type: user
|
|
3
|
+
title: ace-overseer Getting Started
|
|
4
|
+
purpose: Tutorial for launching and managing task worktrees with ace-overseer.
|
|
5
|
+
ace-docs:
|
|
6
|
+
last-updated: 2026-03-22
|
|
7
|
+
last-checked: 2026-03-22
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Getting Started with ace-overseer
|
|
11
|
+
|
|
12
|
+
## Prerequisites
|
|
13
|
+
|
|
14
|
+
- `tmux` installed and available on your PATH
|
|
15
|
+
- ACE toolkit installed in your repository
|
|
16
|
+
- A task reference (for example `8q4.t.umu.1`) ready to execute
|
|
17
|
+
|
|
18
|
+
## Installation
|
|
19
|
+
|
|
20
|
+
Install as part of the ACE mono-repo toolchain: `ace-overseer --help`.
|
|
21
|
+
|
|
22
|
+
If the command resolves, your environment is ready.
|
|
23
|
+
|
|
24
|
+
## Start Work on a Task
|
|
25
|
+
|
|
26
|
+
Launch a focused task workspace: `ace-overseer work-on --task 8q4.t.umu.1`.
|
|
27
|
+
|
|
28
|
+
This flow provisions or reuses a task worktree, opens a tmux window, and prepares assignment context.
|
|
29
|
+
|
|
30
|
+
## Monitor Active Work
|
|
31
|
+
|
|
32
|
+
Inspect the task dashboard: `ace-overseer status`.
|
|
33
|
+
|
|
34
|
+
Need machine-readable output? Use `ace-overseer status --format json`.
|
|
35
|
+
|
|
36
|
+
## Prune Completed Worktrees
|
|
37
|
+
|
|
38
|
+
Preview prune candidates first: `ace-overseer prune --dry-run`.
|
|
39
|
+
|
|
40
|
+
When safe to remove, confirm cleanup: `ace-overseer prune --yes`.
|
|
41
|
+
|
|
42
|
+
## Common Commands
|
|
43
|
+
|
|
44
|
+
| Command | Purpose |
|
|
45
|
+
| --- | --- |
|
|
46
|
+
| `ace-overseer work-on --task <ref>` | Start or resume focused task workspace |
|
|
47
|
+
| `ace-overseer status` | Show active task worktree dashboard |
|
|
48
|
+
| `ace-overseer status --format json` | Export dashboard as JSON |
|
|
49
|
+
| `ace-overseer prune --dry-run` | Preview removable worktrees |
|
|
50
|
+
| `ace-overseer prune --yes` | Remove confirmed safe worktrees |
|
|
51
|
+
|
|
52
|
+
## Next steps
|
|
53
|
+
|
|
54
|
+
- Use assignment presets with `work-on --preset <name>` for repeatable workflows.
|
|
55
|
+
- Integrate JSON status output into scripts, dashboards, or CI checks.
|
|
56
|
+
- See [Usage Guide](usage.md) for full command and option reference.
|