ace-assign 0.53.4 → 0.55.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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/.ace-defaults/assign/catalog/steps/split-subtree-root.step.yml +4 -2
  3. data/.ace-defaults/assign/config.yml +1 -0
  4. data/.ace-defaults/assign/presets/work-on-task.yml +3 -0
  5. data/CHANGELOG.md +15 -0
  6. data/docs/demo/fork-provider.cast +814 -937
  7. data/docs/demo/fork-provider.gif +0 -0
  8. data/docs/demo/fork-provider.recording.json +15 -17
  9. data/docs/demo/fork-provider.tape.yml +16 -4
  10. data/docs/usage.md +30 -7
  11. data/handbook/guides/fork-context.g.md +29 -5
  12. data/handbook/skills/as-assign-drive/SKILL.md +2 -2
  13. data/handbook/workflow-instructions/assign/drive.wf.md +109 -36
  14. data/handbook/workflow-instructions/assign/prepare.wf.md +5 -0
  15. data/lib/ace/assign/atoms/preset_expander.rb +4 -0
  16. data/lib/ace/assign/atoms/tree_formatter.rb +2 -2
  17. data/lib/ace/assign/cli/commands/add.rb +20 -11
  18. data/lib/ace/assign/cli/commands/assignment_target.rb +49 -18
  19. data/lib/ace/assign/cli/commands/create.rb +1 -1
  20. data/lib/ace/assign/cli/commands/fail.rb +1 -1
  21. data/lib/ace/assign/cli/commands/finish.rb +26 -5
  22. data/lib/ace/assign/cli/commands/fork_run.rb +56 -17
  23. data/lib/ace/assign/cli/commands/list.rb +4 -3
  24. data/lib/ace/assign/cli/commands/retry_cmd.rb +1 -1
  25. data/lib/ace/assign/cli/commands/status.rb +60 -34
  26. data/lib/ace/assign/cli/commands/step.rb +4 -4
  27. data/lib/ace/assign/cli.rb +1 -1
  28. data/lib/ace/assign/models/assignment_info.rb +33 -4
  29. data/lib/ace/assign/models/queue_state.rb +101 -39
  30. data/lib/ace/assign/models/step.rb +13 -3
  31. data/lib/ace/assign/molecules/fork_session_launcher.rb +76 -60
  32. data/lib/ace/assign/molecules/step_writer.rb +3 -3
  33. data/lib/ace/assign/molecules/tmux_control_surface_runner.rb +249 -0
  34. data/lib/ace/assign/organisms/assignment_executor.rb +132 -82
  35. data/lib/ace/assign/version.rb +1 -1
  36. data/lib/ace/assign.rb +1 -0
  37. metadata +17 -3
  38. data/lib/ace/assign/molecules/tmux_fork_runner.rb +0 -191
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ca5adfb378f5dde05614d1ddac3cd1b363f20fae8b86941377c8a2973d8e6f5
4
- data.tar.gz: 64116c0b867eb931ee1197b56944b7c05ce99dd3cc1baeed2188d849f15c41b1
3
+ metadata.gz: 1f0f554ace326dc469a945fc93f86f81d087b7c4e6197cb59a23b38bd913c821
4
+ data.tar.gz: faf2665d5a3e0e88bf626ec35951bfac2af109fb465de44215c32aed766e3d54
5
5
  SHA512:
6
- metadata.gz: fae0fa4fbf25776497f8182e6074a95a4a553a9dcb213c513d2ae09a7b7fe2a725cb5b2175ca12056a566ea7e034b6dd7fdacdbe447bc89bf06a2ec7e4e16b0f
7
- data.tar.gz: 115e8ad8b42d461daed625bed9a2c2b4704e94b00f6cb98044bc16022e4e3f9098c2f30ed9081acacdc557547ff176896baca0372bf0b241fbab102f428ee59c
6
+ metadata.gz: d41c5204d7060d3359e1adcfb91a3a77adfc6fd3c193a531f3128a6e1e08759d835180fae64be3203acf5f8d0bb94905f278d61a731536702769a1f2fade90a9
7
+ data.tar.gz: 04c7d468bc85e49fccbc9b4250957803fbc7a204878e5fc47a0b804615aae66bcdf057b6cd7ed682aedbb530a204ae6274de2a77a6210f2c506bb8ebe6d2c742
@@ -10,9 +10,11 @@ instructions:
10
10
  - "If subtree execution fails: use adaptive minimal-safe replay (do not replay whole subtree by default)."
11
11
  - "Inject only required recovery steps before retrying failed or affected steps."
12
12
  fork:
13
- - "Delegate this subtree into forked context:"
13
+ - "Unscoped driver action: delegate this subtree into forked context:"
14
14
  - "- ace-assign fork-run --assignment <assignment-id>@{{parent_number}}"
15
- - "Inside the forked agent, continue execution within this subtree scope only."
15
+ - "Scoped forked agent action: do not call fork-run again for {{parent_number}}."
16
+ - "If this scoped root is active and no child step is active yet: ace-assign start --assignment <assignment-id>@{{parent_number}}"
17
+ - "After a child step becomes active, continue execution within this subtree scope only."
16
18
  - "Note: fork-run may take 10-30 minutes. If your environment has bash timeout limits, run in background and poll scoped status with stepped backoff (5m -> 3m -> 1m -> every 60s)."
17
19
  - "After fork-run completes: read all subtree report files before continuing. The driver is the guard — review reports to verify quality before advancing."
18
20
  - "For failed subtrees: recovery typically includes context refresh (onboard + report review) and verify-test-suite before retry."
@@ -26,6 +26,7 @@ workflow_source_paths:
26
26
  execution:
27
27
  provider: "claude:opus@yolo"
28
28
  timeout: 1800
29
+ launch_mode: auto # auto | headless | tmux
29
30
 
30
31
  # Subtree execution behavior
31
32
  subtree:
@@ -163,6 +163,9 @@ expansion:
163
163
  batch-parent:
164
164
  name: batch-tasks
165
165
  number: "010"
166
+ batch_parent: true
167
+ parallel: false
168
+ fork_retry_limit: 1
166
169
  instructions: |
167
170
  Batch container for multiple task implementations.
168
171
  This step auto-completes when all child tasks are done.
data/CHANGELOG.md CHANGED
@@ -6,6 +6,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  ## [Unreleased]
9
+ ## [0.55.0] - 2026-04-23
10
+
11
+ ### Changed
12
+ - Migrated tmux-backed `fork-run` orchestration to consume the shared `ace-tmux` runtime/control surface instead of maintaining a private `ace-assign` tmux runner.
13
+ - Added step-level `fork.mode` plus config-level `execution.launch_mode` so `ace-assign fork-run` can default subtree launch behavior to `auto`, `headless`, or `tmux` while still letting `--launch-mode` override both.
14
+ - Added `ace-assign fork-run --callback` for tmux-backed parent/child agent flows so a fork can capture the origin pane, launch the child subtree, and let the child send one final status sentence back with `ace-tmux send` instead of keeping the parent on a polling loop.
15
+ - Updated the `/as-assign-drive` fork workflow contract to document callback-mode idle waiting, direct `ace-tmux send` callback delivery, and assignment-state recovery when a callback is missing on re-entry.
16
+
17
+ ### Fixed
18
+ - Updated the `ace-tmux` runtime dependency constraint to `~> 0.17` so assignment tmux delegation stays aligned with the new runtime inspection release line.
19
+
20
+ ### Technical
21
+ - Kept assignment queue state as the authoritative fork completion signal while limiting tmux pane capture to launch and failure diagnostics.
22
+ - Persisted fork callback pane metadata in tmux session files, exported it into tmux fork launch environments as `ACE_ASSIGN_CALLBACK_PANE`, and added command/launcher/runner contract coverage for the new non-blocking callback path.
23
+ - Added parser/model/launcher/command regression coverage for launch-mode precedence across CLI, step frontmatter, and assign config defaults.
9
24
 
10
25
  ## [0.53.4] - 2026-04-20
11
26