chrono_forge 0.9.1 → 0.10.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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/README.md +305 -44
  4. data/docs/superpowers/plans/2026-06-25-chrono_forge-dashboard.md +1748 -0
  5. data/docs/superpowers/plans/2026-06-25-chrono_forge-dashboard.md.tasks.json +17 -0
  6. data/docs/superpowers/plans/2026-06-25-composite-retry-policies.md +930 -0
  7. data/docs/superpowers/plans/2026-06-25-composite-retry-policies.md.tasks.json +54 -0
  8. data/docs/superpowers/plans/2026-06-25-reserved-kwarg-guard.md +241 -0
  9. data/docs/superpowers/plans/2026-06-25-reserved-kwarg-guard.md.tasks.json +12 -0
  10. data/docs/superpowers/plans/2026-06-26-branches-spawn-merge.md +1378 -0
  11. data/docs/superpowers/plans/2026-06-26-branches-spawn-merge.md.tasks.json +67 -0
  12. data/docs/superpowers/plans/2026-06-26-deferral-continuation-race-and-catchup.md +709 -0
  13. data/docs/superpowers/plans/2026-06-26-deferral-continuation-race-and-catchup.md.tasks.json +19 -0
  14. data/docs/superpowers/specs/2026-06-03-unified-retry-policy-design.md +226 -0
  15. data/docs/superpowers/specs/2026-06-25-chrono_forge-dashboard-design.md +190 -0
  16. data/docs/superpowers/specs/2026-06-25-composite-retry-policies-design.md +228 -0
  17. data/docs/superpowers/specs/2026-06-25-reserved-kwarg-guard-design.md +169 -0
  18. data/docs/superpowers/specs/2026-06-25-spawn-merge-branches-design.md +468 -0
  19. data/docs/superpowers/specs/2026-06-26-dashboard-branch-view-design.md +142 -0
  20. data/docs/superpowers/specs/2026-06-26-deferral-continuation-race-and-catchup-design.md +265 -0
  21. data/lib/chrono_forge/branch_merge_job.rb +138 -0
  22. data/lib/chrono_forge/branch_probe.rb +26 -0
  23. data/lib/chrono_forge/cleanup.rb +6 -0
  24. data/lib/chrono_forge/execution_log.rb +6 -0
  25. data/lib/chrono_forge/executor/composite_retry_policy.rb +47 -0
  26. data/lib/chrono_forge/executor/methods/branch.rb +185 -0
  27. data/lib/chrono_forge/executor/methods/durably_execute.rb +21 -19
  28. data/lib/chrono_forge/executor/methods/durably_repeat.rb +118 -25
  29. data/lib/chrono_forge/executor/methods/merge_branches.rb +83 -0
  30. data/lib/chrono_forge/executor/methods/wait.rb +2 -4
  31. data/lib/chrono_forge/executor/methods/wait_until.rb +25 -25
  32. data/lib/chrono_forge/executor/methods/workflow_states.rb +16 -0
  33. data/lib/chrono_forge/executor/methods.rb +2 -0
  34. data/lib/chrono_forge/executor/retry_policy.rb +111 -0
  35. data/lib/chrono_forge/executor.rb +216 -28
  36. data/lib/chrono_forge/version.rb +1 -1
  37. data/lib/chrono_forge/workflow.rb +10 -1
  38. data/lib/generators/chrono_forge/migration_actions.rb +1 -0
  39. data/lib/generators/chrono_forge/templates/add_chrono_forge_parent_execution_log.rb +38 -0
  40. metadata +42 -5
  41. data/lib/chrono_forge/executor/retry_strategy.rb +0 -29
@@ -0,0 +1,17 @@
1
+ {
2
+ "planPath": "docs/superpowers/plans/2026-06-25-chrono_forge-dashboard.md",
3
+ "tasks": [
4
+ {"id": 8, "subject": "Task 1: Engine skeleton, gemspec, core exclusion, test harness", "status": "completed", "description": "Loadable mountable engine + Combustion dummy + smoke test; core gem excludes chrono_forge-dashboard/. Verify: cd chrono_forge-dashboard && bundle exec rake test"},
5
+ {"id": 9, "subject": "Task 2: Configuration + fail-closed auth", "status": "completed", "blockedBy": [8], "description": "Config object + BaseController authenticate! (hook → http_basic → :none → raise). Verify: bundle exec ruby -Itest test/auth_test.rb"},
6
+ {"id": 10, "subject": "Task 3: Step-name parser", "status": "completed", "blockedBy": [8], "description": "Pure parser: execute/wait/repeat-coordination/repeat-run; unknown preserved, never raises. Verify: test/step_name_parser_test.rb"},
7
+ {"id": 11, "subject": "Task 4: Query objects (WorkflowsQuery, StatsQuery)", "status": "completed", "blockedBy": [8], "description": "Filter/paginate list; zero-filled state counts. Verify: test/queries_test.rb"},
8
+ {"id": 12, "subject": "Task 5: Workflows#index — list, filters, stats, pagination", "status": "completed", "blockedBy": [8, 9, 11], "description": "List page with badges/filters/stats/pager + controller tests. Verify: test/workflows_index_test.rb"},
9
+ {"id": 13, "subject": "Task 6: Timeline + Context presenters", "status": "completed", "blockedBy": [8, 10], "description": "Replay timeline (repetition rollup, current position) + typed context nodes/size. Verify: test/presenters_test.rb"},
10
+ {"id": 15, "subject": "Task 8: Periodic health + wait-state presenters and wait-states index", "status": "completed", "blockedBy": [8, 10, 13], "description": "durably_repeat health, wait-state age model, wait-states list flagging long waiters. Verify: test/periodic_and_wait_test.rb"},
11
+ {"id": 14, "subject": "Task 7: Workflows#show — timeline, context tree, errors, wait callout", "status": "completed", "blockedBy": [12, 13, 15], "description": "Detail page wiring presenters + error logs + wait callout. Verify: test/workflows_show_test.rb"},
12
+ {"id": 16, "subject": "Task 9: Operational actions (retry, unlock, bulk retry)", "status": "completed", "blockedBy": [9, 12], "description": "POST retry/unlock/bulk_retry, guarded (non-retryable flashes), CSRF+auth. Verify: test/actions_test.rb"},
13
+ {"id": 17, "subject": "Task 10: Assets controller + CSS/JS (polling, tree, sparklines, confirms)", "status": "completed", "blockedBy": [8, 12, 14], "description": "Engine-served CSS/JS (no host pipeline) + vanilla JS behaviors. Verify: test/assets_test.rb"},
14
+ {"id": 18, "subject": "Task 11: README + install docs for the dashboard gem", "status": "completed", "blockedBy": [17], "description": "Dashboard README (install/mount/auth) + core README Dashboard section. Verify: grep -n 'Dashboard' README.md"}
15
+ ],
16
+ "lastUpdated": "2026-06-25"
17
+ }