ace-assign 0.57.1 → 0.60.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 (37) hide show
  1. checksums.yaml +4 -4
  2. data/.ace-defaults/assign/config.yml +13 -0
  3. data/CHANGELOG.md +46 -12
  4. data/docs/exit-codes.md +10 -0
  5. data/docs/usage.md +49 -0
  6. data/handbook/workflow-instructions/assign/drive.wf.md +64 -8
  7. data/lib/ace/assign/atoms/assignment_scope.rb +53 -0
  8. data/lib/ace/assign/atoms/attempt_state_machine.rb +76 -0
  9. data/lib/ace/assign/atoms/evidence_digest.rb +78 -0
  10. data/lib/ace/assign/cli/commands/attempt/base.rb +35 -0
  11. data/lib/ace/assign/cli/commands/attempt/evidence.rb +28 -0
  12. data/lib/ace/assign/cli/commands/attempt/finish.rb +35 -0
  13. data/lib/ace/assign/cli/commands/attempt/reconcile.rb +38 -0
  14. data/lib/ace/assign/cli/commands/attempt/start.rb +45 -0
  15. data/lib/ace/assign/cli/commands/attempt/status.rb +54 -0
  16. data/lib/ace/assign/cli/commands/status.rb +24 -1
  17. data/lib/ace/assign/cli.rb +34 -2
  18. data/lib/ace/assign/models/assignment.rb +21 -4
  19. data/lib/ace/assign/models/attempt.rb +178 -0
  20. data/lib/ace/assign/models/attempt_binding.rb +116 -0
  21. data/lib/ace/assign/models/evidence_event.rb +82 -0
  22. data/lib/ace/assign/models/execution_receipt.rb +139 -0
  23. data/lib/ace/assign/molecules/assignment_manager.rb +35 -3
  24. data/lib/ace/assign/molecules/attempt_reconciler.rb +88 -0
  25. data/lib/ace/assign/molecules/attempt_store.rb +201 -0
  26. data/lib/ace/assign/molecules/evidence_calculator.rb +144 -91
  27. data/lib/ace/assign/molecules/evidence_journal.rb +423 -0
  28. data/lib/ace/assign/molecules/execution_identity_resolver.rb +97 -0
  29. data/lib/ace/assign/molecules/fork_session_launcher.rb +38 -19
  30. data/lib/ace/assign/molecules/lifecycle_exclusion.rb +209 -0
  31. data/lib/ace/assign/molecules/receipt_verifier.rb +272 -0
  32. data/lib/ace/assign/organisms/assignment_executor.rb +12 -4
  33. data/lib/ace/assign/organisms/attempt_coordinator.rb +618 -0
  34. data/lib/ace/assign/organisms/task_assignment_creator.rb +1 -1
  35. data/lib/ace/assign/version.rb +1 -1
  36. data/lib/ace/assign.rb +56 -0
  37. metadata +36 -2
data/lib/ace/assign.rb CHANGED
@@ -60,6 +60,62 @@ module Ace
60
60
  class InvalidState < Error; end
61
61
  end
62
62
 
63
+ # Attempt/evidence-related errors (exit code 5)
64
+ module AttemptErrors
65
+ class InvalidTransition < Error
66
+ def initialize(message = "Illegal attempt state transition")
67
+ super(message, exit_code: 5)
68
+ end
69
+ end
70
+
71
+ class InvalidScope < Error
72
+ def initialize(message = "Invalid attempt scope")
73
+ super(message, exit_code: 5)
74
+ end
75
+ end
76
+
77
+ # Duplicate start with a conflicting binding for an owned subtree
78
+ class Conflict < Error
79
+ def initialize(message = "Conflicting active attempt for scope")
80
+ super(message, exit_code: 5)
81
+ end
82
+ end
83
+
84
+ class NotFound < Error
85
+ def initialize(message = "Attempt not found")
86
+ super(message, exit_code: 5)
87
+ end
88
+ end
89
+
90
+ # Untrusted or unknown execution identity; authority fails closed
91
+ class UnauthorizedIdentity < Error
92
+ def initialize(message = "Unknown or unauthorized execution identity")
93
+ super(message, exit_code: 5)
94
+ end
95
+ end
96
+
97
+ # Receipt failed verification (binding, head, digest, artifacts, review)
98
+ class ReceiptRejected < Error
99
+ def initialize(message = "Receipt rejected")
100
+ super(message, exit_code: 5)
101
+ end
102
+ end
103
+
104
+ # Attempt state forbids the requested effect (terminal, uncertain, blocked)
105
+ class InvalidState < Error
106
+ def initialize(message = "Attempt state forbids the requested operation")
107
+ super(message, exit_code: 5)
108
+ end
109
+ end
110
+
111
+ # Evidence storage is missing or unwritable; external effects are blocked
112
+ class EvidenceUnavailable < Error
113
+ def initialize(message = "Evidence storage unavailable")
114
+ super(message, exit_code: 5)
115
+ end
116
+ end
117
+ end
118
+
63
119
  # Define module namespaces
64
120
  module Commands; end
65
121
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ace-assign
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.57.1
4
+ version: 0.60.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michal Czyz
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2026-09-27 00:00:00.000000000 Z
10
+ date: 2026-10-01 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: ace-support-cli
@@ -107,6 +107,20 @@ dependencies:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0.39'
110
+ - !ruby/object:Gem::Dependency
111
+ name: ace-review
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '0.57'
117
+ type: :runtime
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '0.57'
110
124
  - !ruby/object:Gem::Dependency
111
125
  name: ace-task
112
126
  requirement: !ruby/object:Gem::Requirement
@@ -277,8 +291,11 @@ files:
277
291
  - handbook/workflow-instructions/assign/verify-test-suite.wf.md
278
292
  - lib/ace/assign.rb
279
293
  - lib/ace/assign/atoms/assign_frontmatter_parser.rb
294
+ - lib/ace/assign/atoms/assignment_scope.rb
295
+ - lib/ace/assign/atoms/attempt_state_machine.rb
280
296
  - lib/ace/assign/atoms/catalog_loader.rb
281
297
  - lib/ace/assign/atoms/composition_rules.rb
298
+ - lib/ace/assign/atoms/evidence_digest.rb
282
299
  - lib/ace/assign/atoms/number_generator.rb
283
300
  - lib/ace/assign/atoms/preset_expander.rb
284
301
  - lib/ace/assign/atoms/preset_loader.rb
@@ -290,6 +307,12 @@ files:
290
307
  - lib/ace/assign/cli.rb
291
308
  - lib/ace/assign/cli/commands/add.rb
292
309
  - lib/ace/assign/cli/commands/assignment_target.rb
310
+ - lib/ace/assign/cli/commands/attempt/base.rb
311
+ - lib/ace/assign/cli/commands/attempt/evidence.rb
312
+ - lib/ace/assign/cli/commands/attempt/finish.rb
313
+ - lib/ace/assign/cli/commands/attempt/reconcile.rb
314
+ - lib/ace/assign/cli/commands/attempt/start.rb
315
+ - lib/ace/assign/cli/commands/attempt/status.rb
293
316
  - lib/ace/assign/cli/commands/create.rb
294
317
  - lib/ace/assign/cli/commands/fail.rb
295
318
  - lib/ace/assign/cli/commands/finish.rb
@@ -303,19 +326,30 @@ files:
303
326
  - lib/ace/assign/cli/commands/step.rb
304
327
  - lib/ace/assign/models/assignment.rb
305
328
  - lib/ace/assign/models/assignment_info.rb
329
+ - lib/ace/assign/models/attempt.rb
330
+ - lib/ace/assign/models/attempt_binding.rb
331
+ - lib/ace/assign/models/evidence_event.rb
332
+ - lib/ace/assign/models/execution_receipt.rb
306
333
  - lib/ace/assign/models/queue_state.rb
307
334
  - lib/ace/assign/models/step.rb
308
335
  - lib/ace/assign/molecules/assignment_discoverer.rb
309
336
  - lib/ace/assign/molecules/assignment_manager.rb
337
+ - lib/ace/assign/molecules/attempt_reconciler.rb
338
+ - lib/ace/assign/molecules/attempt_store.rb
310
339
  - lib/ace/assign/molecules/evidence_calculator.rb
340
+ - lib/ace/assign/molecules/evidence_journal.rb
341
+ - lib/ace/assign/molecules/execution_identity_resolver.rb
311
342
  - lib/ace/assign/molecules/fork_session_launcher.rb
343
+ - lib/ace/assign/molecules/lifecycle_exclusion.rb
312
344
  - lib/ace/assign/molecules/preset_inferrer.rb
313
345
  - lib/ace/assign/molecules/queue_scanner.rb
346
+ - lib/ace/assign/molecules/receipt_verifier.rb
314
347
  - lib/ace/assign/molecules/skill_assign_source_resolver.rb
315
348
  - lib/ace/assign/molecules/step_renumberer.rb
316
349
  - lib/ace/assign/molecules/step_writer.rb
317
350
  - lib/ace/assign/molecules/tmux_control_surface_runner.rb
318
351
  - lib/ace/assign/organisms/assignment_executor.rb
352
+ - lib/ace/assign/organisms/attempt_coordinator.rb
319
353
  - lib/ace/assign/organisms/task_assignment_creator.rb
320
354
  - lib/ace/assign/version.rb
321
355
  homepage: https://github.com/cs3b/ace