Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
277 commits
Select commit Hold shift + click to select a range
fc56b76
feat: implement #164 - TUI v2 Issue 1.1: Add Ink + React dependencies…
tomdps Jan 27, 2026
27b5c6f
feat: TUI v2 Issue 1.1: Add Ink + React dependencies (no runtime beha…
tomdps Jan 27, 2026
2145822
Merge remote-tracking branch 'origin/dev' into zeroshot/infinite-mead…
tomdps Jan 27, 2026
b94f5dc
merge main into dev
tomdps Jan 27, 2026
bc5cf29
fix: avoid TOCTOU when tailing files (#170)
tomdps Jan 27, 2026
fd9bf19
feat(tui): replace blessed TUI with Ink + TypeScript (#172) (#174)
tomdps Jan 27, 2026
b9c2d60
fix: unblock git-pusher after validator approval (#177)
tomdps Jan 27, 2026
f48307d
fix: use settings.maxRetries default (3) instead of hardcoded 1 (#175)
EivMeyer Jan 27, 2026
45dc8f6
fix: ignore generated tui lint errors (#178)
tomdps Jan 27, 2026
eb6a16c
feat: TUI v2 1.3: Add zeroshot tui command + provider override (#180)
tomdps Jan 27, 2026
853ca08
feat: TUI v2 2.1: Implement view router + Esc back navigation (#182)
tomdps Jan 27, 2026
7a6d6a2
feat: TUI v2 2.2: Command box + slash-command parser (MVP) (#184)
tomdps Jan 27, 2026
1204853
feat: TUI v2 2.3: Command registry + /status & /list (#186)
tomdps Jan 27, 2026
d3f4276
feat: TUI v2 3.1: start-cluster helper (#188)
tomdps Jan 27, 2026
7635cf3
feat: TUI v2 3.2: launcher starts cluster (#190)
tomdps Jan 27, 2026
130ff64
feat: implement /issue command (#192)
tomdps Jan 27, 2026
765854b
chore: ignore generated tui output in eslint (#193)
tomdps Jan 27, 2026
5cbde92
TUI v2: live log streaming in Cluster view (#195)
tomdps Jan 27, 2026
c3e477a
TUI v2: monitor view cluster list (#197)
tomdps Jan 27, 2026
736fa5e
Add monitor metrics to TUI monitor view (#200)
tomdps Jan 28, 2026
aaaa3c8
Start zeroshot watch in Monitor view (#202)
tomdps Jan 28, 2026
cb492f1
Add topology model and view in Cluster view (#204)
tomdps Jan 28, 2026
f1052a4
Add workflow timeline to Cluster view (#206)
tomdps Jan 28, 2026
690d45d
Add agent selection and agent log view (#208)
tomdps Jan 28, 2026
0e49d9f
Add agent message queue UI (#210)
tomdps Jan 28, 2026
a1909e6
Add guidance topics and mailbox query (#212)
tomdps Jan 28, 2026
8ed994e
fix(output-extraction): reject CLI metadata in extractDirectJson (#214)
EivMeyer Jan 28, 2026
4c6b400
feat(output-extraction): extract CLI errors from all providers (#216)
EivMeyer Jan 28, 2026
976fe3f
feat: implement #213 - TUI v2 7.2 guidance live injection (#217)
tomdps Jan 28, 2026
67fb66b
feat: implement #219 guidance queue fallback (#220)
tomdps Jan 28, 2026
1b1197e
feat: implement #221 cluster guidance broadcast (#222)
tomdps Jan 28, 2026
a52a46c
feat: wire TUI guidance messaging (#224)
tomdps Jan 28, 2026
c02ba9b
feat: default to TUI when no args (#226)
tomdps Jan 28, 2026
6e1b9ab
Add provider TUI entrypoints (#228)
tomdps Jan 28, 2026
7008808
Clean up legacy dashboard references (#230)
tomdps Jan 28, 2026
95b9bc6
Add TUI reliability tests (#232)
tomdps Jan 28, 2026
08255df
feat: persist issue number in cluster state (#234)
EivMeyer Jan 29, 2026
44b4fc2
feat: repo-local settings + fix task not found (#235)
EivMeyer Jan 29, 2026
da305a3
feat: add CLI args for PR configuration + repo settings (#236)
EivMeyer Jan 29, 2026
ff6cb9d
docs(tui-v2): update plan and prd (#239)
tomdps Jan 30, 2026
59732fe
docs(tui-v2): add issue template (#243)
tomdps Jan 30, 2026
4ffb43c
docs(tui-v2): restore ratatui plan and issue template (#244)
tomdps Jan 30, 2026
090e5b8
feat: [FEATURE] TUI v2: Protocol spec + shared types (v0) (#245)
tomdps Jan 30, 2026
2beb29e
feat: tui v2 backend skeleton (#246)
tomdps Jan 31, 2026
66934d3
feat: tui v2 stdio json-rpc server (#247)
tomdps Jan 31, 2026
158c43c
docs(tui-v2): mark issue progress (#252)
tomdps Jan 31, 2026
a97e4c1
fix: use origin/${prBase} as worktree base ref when prBase is set (#254)
EivMeyer Jan 31, 2026
ba7db35
feat(tui-v2): add cluster listing and summary APIs (#256)
tomdps Jan 31, 2026
75ff252
feat: [FEATURE] TUI v2: Cluster listing + summary APIs (#255)
tomdps Jan 31, 2026
c836426
fix(cli): preserve pr-base in detached runs (#258)
tomdps Jan 31, 2026
f7bc321
feat: [FEATURE] TUI v2: Start cluster from text/issue (#259)
tomdps Jan 31, 2026
b53a9d2
fix: prevent detached PR base drift (#261)
tomdps Jan 31, 2026
9c3c552
test(tui-backend): rebuild when output is stale (#262)
tomdps Jan 31, 2026
578775c
chore: default worktree/PR base to dev (#263)
tomdps Jan 31, 2026
ae6c1fe
feat: [FEATURE] TUI v2: Log + timeline subscriptions (#264)
tomdps Jan 31, 2026
6804a53
feat: [FEATURE] TUI v2: Guidance delivery APIs (#268)
tomdps Jan 31, 2026
c76f0d2
feat: [FEATURE] TUI v2: Topology + metrics APIs (#269)
tomdps Jan 31, 2026
c87898e
feat: [FEATURE] TUI v2: Rust TUI crate skeleton + terminal safety (#270)
tomdps Jan 31, 2026
2d31ca9
feat: [FEATURE] TUI v2: Backend client (stdio) + handshake (#285)
tomdps Jan 31, 2026
675f253
feat: [FEATURE] TUI v2: Backend client (stdio) + handshake (#287)
tomdps Jan 31, 2026
093a551
feat: [FEATURE] TUI v2: Core app architecture (state/actions/effects)…
tomdps Jan 31, 2026
f44ec20
revert: undo pr 287 duplicate backend client changes (#291)
tomdps Jan 31, 2026
10981ae
fix: preserve cluster config during reload (#292)
tomdps Jan 31, 2026
cb07215
fix: signal detached daemon on stop (#293)
tomdps Jan 31, 2026
57364b4
feat: [FEATURE] TUI v2: Launcher screen (text + commands) (#294)
tomdps Jan 31, 2026
a5594cd
feat: [FEATURE] TUI v2: Monitor screen (cluster list) (#295)
tomdps Jan 31, 2026
a7b39a9
feat: [FEATURE] TUI v2: Cluster screen (logs + agents + timeline) (#296)
tomdps Jan 31, 2026
e20a792
feat: [FEATURE] TUI v2: Agent screen (logs + guidance input) (#297)
tomdps Feb 1, 2026
c628935
feat: [FEATURE] TUI v2: Slash command MVP (#298)
tomdps Feb 1, 2026
b31b916
feat: [FEATURE] TUI v2: Topology rendering (MVP) (#299)
tomdps Feb 1, 2026
019a16c
feat: [FEATURE] TUI v2: Metrics display (Monitor + Cluster) (#300)
tomdps Feb 1, 2026
5194201
feat: [FEATURE] TUI v2: CLI wiring + entry points (#301)
tomdps Feb 1, 2026
6619af0
feat: [FEATURE] TUI v2: Packaging + distribution (#302)
tomdps Feb 1, 2026
ad5deaf
feat: [FEATURE] TUI v2: Cutover + cleanup (remove Ink) (#303)
tomdps Feb 1, 2026
b9ade6d
feat: [FEATURE] TUI v2: Final design touch-up (polish) (#304)
tomdps Feb 1, 2026
734d857
feat(tui): upgrade ratatui 0.26→0.29, add Rust CI gate (#305)
tomdps Feb 1, 2026
3b9e6d2
docs(tui): update PRD and implementation plan for v2
tomdps Feb 1, 2026
031d95e
fix(config): allow CRITICAL validator_count=0 + load_config prevalida…
EivMeyer Feb 1, 2026
fcdafc0
fix(validation): republish trigger after load_config (#307)
EivMeyer Feb 1, 2026
6eae4ef
feat: [FEATURE] Disruptive TUI: UI variant flag + skeleton (canvas + …
tomdps Feb 1, 2026
7eb66b1
feat: [FEATURE] Disruptive TUI: SpineState + Spine widget (input + cu…
tomdps Feb 1, 2026
b31a21b
feat: [FEATURE] Disruptive TUI: Global keymap + spine mode switching …
tomdps Feb 1, 2026
270395b
fix: merge triggers when adding agent with duplicate ID (#315)
EivMeyer Feb 1, 2026
851badf
feat: [FEATURE] Disruptive TUI: Route core flows through the spine (i…
tomdps Feb 1, 2026
b6893db
fix: add ledger API to hook logic sandbox (#318)
EivMeyer Feb 1, 2026
2254bc2
feat: [FEATURE] Disruptive TUI: Predictive spine hints (parse result …
tomdps Feb 1, 2026
9710e2a
feat: [FEATURE] Disruptive TUI: Fleet Radar rendering (clusters as or…
tomdps Feb 1, 2026
88ad075
feat: [FEATURE] Disruptive TUI: Radar navigation + selection + Enter→…
tomdps Feb 1, 2026
d75ee74
feat: [DOC] Disruptive TUI: Resolve pre-M3 design decisions (focus/la…
tomdps Feb 1, 2026
9974f2d
feat: [FEATURE] Disruptive TUI: Cluster Canvas v1 scene (topology nod…
tomdps Feb 1, 2026
d54e92a
feat: [FEATURE] Disruptive TUI: Cluster Canvas focus/navigation + Ent…
tomdps Feb 2, 2026
e22d6ed
feat: [FEATURE] Disruptive TUI: Contextual overlays near focus (logs/…
tomdps Feb 2, 2026
586ae0f
fix: cluster canvas focus unwrap (#334)
tomdps Feb 2, 2026
74dd7e0
feat: [FEATURE] Disruptive TUI: TimeCursor + time-indexed buffers (lo…
tomdps Feb 2, 2026
db1a2b2
feat: [FEATURE] Disruptive TUI: Scrub bar widget + time controls (←/→…
tomdps Feb 2, 2026
f0e6070
feat: [FEATURE] Disruptive TUI: Scrub bar widget + time controls (←/→…
tomdps Feb 2, 2026
cda9fda
feat: [FEATURE] Disruptive TUI: Stream renderer supports Live vs Scru…
tomdps Feb 2, 2026
eb60a9d
feat: [FEATURE] Disruptive TUI: Agent Microscope (single stream + min…
tomdps Feb 2, 2026
dcb6c4d
feat: [FEATURE] Disruptive TUI: Agent Microscope (single stream + min…
tomdps Feb 2, 2026
61035f8
feat: [FEATURE] Disruptive TUI: Agent Microscope (single stream + min…
tomdps Feb 2, 2026
d9c27fc
fix: add verify_github_pr hook to detect git-pusher hallucinations (#…
EivMeyer Feb 2, 2026
91aea1b
chore(deps): target dev branch for dependabot PRs (#351)
EivMeyer Feb 2, 2026
7bcc83a
feat: [FEATURE] Disruptive TUI: Phase markers in Microscope margin (d…
tomdps Feb 2, 2026
9451cc6
feat: [FEATURE] Disruptive TUI: Add guidance verbs (/guide /nudge /in…
tomdps Feb 2, 2026
dbb6e14
feat: [FEATURE] Disruptive TUI: Inline completion + suggestions (Tab …
tomdps Feb 2, 2026
dda7356
feat: [FEATURE] Disruptive TUI: Motion + smoothing (camera + pulses) …
tomdps Feb 2, 2026
fba7db5
feat: [FEATURE] Disruptive TUI: Robust empty/error states + calm mess…
tomdps Feb 2, 2026
9f1443d
feat: [TEST] Disruptive TUI: Snapshot coverage for spine/radar/canvas…
tomdps Feb 2, 2026
9d146ab
fix(validator-tester): run targeted tests instead of full suite (#363)
EivMeyer Feb 2, 2026
06da8e4
Unify CI and TUI dev workflow (#364)
tomdps Feb 2, 2026
66e8320
fix(github-provider): always use -R flag + skippedTests support (#365)
EivMeyer Feb 3, 2026
535158e
fix: agent replace on duplicate ID + general-purpose templates (#367)
EivMeyer Feb 3, 2026
4c9e69e
fix(validators): enforce READ-ONLY mode to prevent rogue code changes…
EivMeyer Feb 3, 2026
adca807
fix(hook): add ledger/cluster APIs to transform sandbox (#375)
EivMeyer Feb 3, 2026
04cd3ea
fix(logs): parse Codex stream-json events (#376)
EivMeyer Feb 3, 2026
1bbea99
feat(planner): output actionable steps with embedded patterns (#377)
EivMeyer Feb 3, 2026
d0b5ff9
feat(validation): token-free template simulation gate (#379)
EivMeyer Feb 3, 2026
4b6fd47
chore(release): sync main into dev (#381)
EivMeyer Feb 3, 2026
59fd7ea
fix(orchestration): harden startup persistence and failure handling (…
EivMeyer Feb 3, 2026
2b66e45
fix(orchestration): buffer trigger messages while busy (#384)
EivMeyer Feb 3, 2026
d0551b4
fix(orchestration): verify_github_pr fallback via gh pr view (#385)
EivMeyer Feb 3, 2026
0d5c92d
feat: default to codex provider with gpt-5.3-codex (#386)
tomdps Feb 5, 2026
0ea0d1e
fix: keep claude default and map level3 to opus-4.6 (#388)
tomdps Feb 5, 2026
e06305c
fix(tui): prefer local debug binary for disruptive ui (#389)
tomdps Feb 5, 2026
6bef385
fix(tokens): track cached input tokens and show cache breakdown (#391)
EivMeyer Feb 8, 2026
0afc41d
feat(validators): add clean design check - reject backwards compat (#…
EivMeyer Feb 10, 2026
e9fe1c7
fix: poll for GitHub merge propagation in verify_github_pr hook (#397)
EivMeyer Feb 11, 2026
e66cca6
fix: tear down Docker Compose on worktree cleanup (#402)
EivMeyer Feb 16, 2026
9adaad6
chore: reconcile main release commit into dev for release flow (#409)
EivMeyer Feb 19, 2026
9d7b570
fix: fail fast on invalid provider model ids (#414)
EivMeyer Feb 22, 2026
4690768
feat: make PR verification provider-agnostic (#417)
EivMeyer Feb 23, 2026
9a3aa99
fix: worktree auto-cleanup + git-pusher merge reliability (#420)
EivMeyer Feb 26, 2026
b6b4ed3
fix: validate resolved conductor topology before token spend (#422)
EivMeyer Feb 26, 2026
e93d9ca
feat: add random schema-output topology preflight simulation (#423)
EivMeyer Feb 26, 2026
21ba1ed
fix: eliminate debug/full-workflow termination dead-ends (#424)
EivMeyer Feb 26, 2026
b2bfc6b
feat: scan transform.script for dynamic topics + detached startup lib…
EivMeyer Mar 1, 2026
52b48fe
fix: execute worktree.setup command from repo settings (#432)
EivMeyer Mar 4, 2026
158c013
feat: add worktree garbage collection (zeroshot gc) (#433)
EivMeyer Mar 4, 2026
22b070d
fix: increase worktree setup timeout from 30s to 5min (#434)
EivMeyer Mar 4, 2026
2a97b61
fix: prevent startup GC from deleting active cluster ledgers (#436)
EivMeyer Mar 5, 2026
ee64bbd
feat: add inspect command for live process activity (#440)
EivMeyer Mar 8, 2026
d55502f
fix(orchestrator): normalize pr completion handlers (#443)
EivMeyer Mar 11, 2026
e56c4d0
fix(orchestrator): validate trivial pr-mode topologies (#444)
EivMeyer Mar 11, 2026
d6435eb
fix(preflight): validate real pr completion topology (#445)
EivMeyer Mar 11, 2026
0d654e9
fix(orchestrator): await agent replacement shutdown (#451)
EivMeyer Mar 20, 2026
9aab28f
docs(workflow): clarify dev release promotion (#461)
EivMeyer Mar 27, 2026
d88e89d
chore: upgrade Codex default model from gpt-5.3 to gpt-5.4 (#462)
tomdps Mar 28, 2026
406aecc
fix(deps): override lodash and marked to resolve audit vulnerabilitie…
tomdps Apr 6, 2026
1ad0995
feat: forward worktree tool bins into spawned agents (#466)
tomdps Apr 6, 2026
e0a1d54
fix(subcluster): validate nested configs without circular load (#470)
EivMeyer Apr 9, 2026
78e6a73
feat!: sync public Zeroshot release (#487)
tomdps Jun 9, 2026
52ada46
chore(release): record main ancestry for dev promotion
tomdps Jun 9, 2026
41262da
fix(security): resolve release code scanning alerts (#489)
tomdps Jun 9, 2026
209c931
docs(release): remove stale TUI guidance (#490)
tomdps Jun 9, 2026
1b069fc
ci(release): use trusted publishing capable npm (#491)
tomdps Jun 14, 2026
9175923
ci: run install matrix for main merge queue (#494)
tomdps Jun 14, 2026
aea9020
chore: update GitHub org links (#497)
tomdps Jun 15, 2026
22f3aeb
fix(release): publish under the-open-engine npm scope
tomdps Jun 16, 2026
12ac3b3
fix(release): clear publish audit gate
tomdps Jun 16, 2026
8baffc5
fix(release): publish under the-open-engine npm scope (#498)
tomdps Jun 16, 2026
1a690cd
chore(release): sync main into dev
tomdps Jun 16, 2026
484bc2e
chore(release): sync main into dev (#501)
tomdps Jun 16, 2026
f9652f2
chore(release): merge main into dev (#502)
tomdps Jun 16, 2026
1de90ec
chore(release): merge main into dev
tomdps Jun 16, 2026
a67571b
Merge pull request #503 from the-open-engine/codex/sync-main-into-dev…
tomdps Jun 16, 2026
72efd0d
Merge remote-tracking branch 'origin/dev' into codex/npm-scope-the-op…
tomdps Jun 16, 2026
5cd0967
ci(release): require npm trusted publishing
tomdps Jun 16, 2026
905d387
ci(release): require npm trusted publishing (#504)
tomdps Jun 16, 2026
e5a7ba2
Merge remote-tracking branch 'origin/dev' into codex/npm-scope-the-op…
tomdps Jun 16, 2026
435cee0
Merge remote-tracking branch 'origin/main' into codex/npm-scope-the-o…
tomdps Jun 16, 2026
b9e2267
chore(release): record main ancestry for trusted publishing (#506)
tomdps Jun 16, 2026
45b1c3d
Merge remote-tracking branch 'origin/dev' into codex/npm-scope-the-op…
tomdps Jun 16, 2026
126fbf5
Merge pull request #507 from the-open-engine/codex/npm-scope-the-open…
tomdps Jun 16, 2026
ffc0c4e
ci: run install matrix for main merge queue (#508)
tomdps Jun 17, 2026
741d8d6
docs: Update company name in README.md (#510)
mkceichelbeck Jun 17, 2026
86eff2a
Update copyright year and owner in LICENSE file (#509)
mkceichelbeck Jun 17, 2026
bede936
fix(validation): model git-pusher repair hook outputs (#511)
tomdps Jun 19, 2026
67d2849
fix(update): bridge legacy covibes package migration (#513)
tomdps Jun 19, 2026
0d0ac49
fix(provider-detection): detect CLIs on Windows via `where` (fixes #5…
atharvwasthere Jun 22, 2026
58202fe
fix(logic-engine): isolate trigger sandbox globals (#521)
tomdps Jun 25, 2026
614a0c1
feat(cmdproof): add proof-backed command reuse (#522)
tomdps Jun 26, 2026
29f74d9
feat(cmdproof): serialize proof fallback by action key (#524)
tomdps Jun 26, 2026
70b4b3f
chore(release): sync main into dev (#526)
tomdps Jun 26, 2026
6d53559
docs(readme): unify Zeroshot README + brand with The Open Engine (#535)
tomdps Jul 1, 2026
fd810cc
docs(readme): add single-agent vs Zeroshot comparison grid (#536)
tomdps Jul 1, 2026
915766e
docs(readme): add polished homepage + social buttons (#537)
tomdps Jul 1, 2026
b83a2cf
docs: clarify npm test scope in contributing guide (#430)
haosenwang1018 Jul 8, 2026
5d2c30f
feat: feat(issue-providers): add Linear provider (#548)
EivMeyer Jul 8, 2026
550789c
fix: worktree/PR cleanup runs docker compose down --volumes against h…
EivMeyer Jul 8, 2026
5ec5a15
feat(export): emit print-ready HTML instead of PDF, drop puppeteer (#…
EivMeyer Jul 8, 2026
eacb774
feat: enhancement: first-run wizard should detect its bin dir isn't o…
EivMeyer Jul 8, 2026
02d67d5
feat: bug: macOS Keychain-only login not propagated to isolated agent…
EivMeyer Jul 8, 2026
7f555d2
feat: enhancement: run-mode vocabulary (worktree → pr → ship) is abse…
EivMeyer Jul 8, 2026
24ec01d
feat: enhancement: accept task body on stdin (`zeroshot run -`) to av…
EivMeyer Jul 8, 2026
0aac8a5
fix(providers): clamp model level to min/max guardrails instead of th…
EivMeyer Jul 8, 2026
10d2426
feat: bug: worktree compose teardown -p uses un-normalized basename (…
EivMeyer Jul 8, 2026
913cf7f
feat: bug: Linear provider — verify issue(id:) identifier lookup, gua…
EivMeyer Jul 8, 2026
f3f90ba
feat: Windows: spawned Node.js processes create visible console windo…
EivMeyer Jul 8, 2026
accc08e
feat: Make eslint-disable directives fail (unused disables are errors…
EivMeyer Jul 8, 2026
bacf990
feat: enhancement: pre-commit reprints full template-validation warni…
EivMeyer Jul 8, 2026
dd7e42a
feat: enhancement: show run mode (worktree/pr/ship) in `zeroshot list…
EivMeyer Jul 8, 2026
f9fdfc8
feat: bug: duplicate-run guard reported as a hard failure and leaves …
EivMeyer Jul 8, 2026
fd4b7ee
feat: bug: `zeroshot list --json` disagrees with `status` for running…
EivMeyer Jul 8, 2026
5316f55
feat: --pr flag auto-merges PR instead of stopping at creation (#568)
EivMeyer Jul 8, 2026
cabfd5f
feat: enhancement: make Linear frictionless — settings-based key (+pr…
EivMeyer Jul 8, 2026
7f5de92
feat: bug: zeroshot run <linear-url> treated as manual input — detect…
EivMeyer Jul 8, 2026
eb5a7de
fix: render printable log history (#578)
EivMeyer Jul 9, 2026
ba85a5f
feat: Harden --pr/--ship autoMerge wiring: single-source the decision…
EivMeyer Jul 9, 2026
4f6588d
fix: enforce review-mode PR safety and package hooks (#581)
EivMeyer Jul 9, 2026
893ec85
test: harden compose cleanup data-loss guard (#583)
EivMeyer Jul 9, 2026
4496c9d
chore(release): sync main into dev (#586)
tomdps Jul 9, 2026
f9be90f
chore(release): restore main ancestry into dev
tomdps Jul 9, 2026
b84d8c9
Merge pull request #587 from the-open-engine/chore/restore-main-ancestry
tomdps Jul 9, 2026
d57307c
refactor(run-mode): collapse boolean soup into one canonical RunPlan …
EivMeyer Jul 9, 2026
f4a3b07
feat: Add deterministic end-to-end tests for zeroshot (fake-provider …
EivMeyer Jul 9, 2026
2c88554
refactor(run-mode): RunPlan owns isolation too (follow-up to #588) (#…
EivMeyer Jul 9, 2026
0158356
chore(release): record v6.3.0 ancestry for dev promotion (#592)
EivMeyer Jul 9, 2026
3debc9e
chore(release): resolve main promotion ancestry
Jul 9, 2026
b2e706e
Merge pull request #597 from the-open-engine/chore/resolve-main-dev-r…
EivMeyer Jul 9, 2026
d2c10b4
fix: prefer opencode dir for worktrees (#598)
EivMeyer Jul 9, 2026
74b9519
feat: centralize provider engine registry (#599)
EivMeyer Jul 9, 2026
e032029
feat: add Pi provider engine (#600)
EivMeyer Jul 9, 2026
d622aff
feat: feat: add ACP-native engine adapter lane (#601)
EivMeyer Jul 9, 2026
762aa5b
feat: feat: add gateway-backed model-agent runner for Hermes/OpenRout…
EivMeyer Jul 9, 2026
7e7801d
feat: add GitHub Copilot provider engine (#603)
mkceichelbeck Jul 9, 2026
5597f10
test(providers): add opt-in live smoke runner (#604)
EivMeyer Jul 9, 2026
938654b
fix(providers): harden Gemini live smoke failures (#610)
EivMeyer Jul 9, 2026
cf6c54b
test(providers): add live smoke workflow (#611)
EivMeyer Jul 9, 2026
131954a
feat: feat(setup): setup plan --json + the stable, versioned setup co…
EivMeyer Jul 9, 2026
f588935
feat: feat(setup): setup apply/undo with write-tracking and explicit …
EivMeyer Jul 9, 2026
38ec5ef
fix(release): commit published package metadata (#615)
EivMeyer Jul 10, 2026
c3225a0
fix(agent): use anyOf for quality-gate timestamps so strict AJV accep…
EivMeyer Jul 10, 2026
53f949c
chore(release): merge main into dev to restore ancestry (#618)
EivMeyer Jul 10, 2026
992b7b0
chore(release): record main ancestry for dev promotion (#619)
EivMeyer Jul 10, 2026
21ab49c
feat(copilot): MCP support + cached per-provider Docker install (+ ba…
mkceichelbeck Jul 10, 2026
9d34032
fix(release): avoid default delivery merge conflict (#623)
EivMeyer Jul 10, 2026
75364ea
fix(release): treat promotion commits as minor releases (#624)
EivMeyer Jul 11, 2026
6852b38
fix(release): avoid protected branch writes during publish (#626)
EivMeyer Jul 11, 2026
25ac35b
fix(release): sync main while preserving no-write publish config (#628)
EivMeyer Jul 11, 2026
a953e73
fix(release): prefer package-owned publish config (#629)
EivMeyer Jul 11, 2026
74704b6
fix(release): fail closed on broken promotions (#631)
EivMeyer Jul 11, 2026
ee7c642
chore(release): sync main into dev (#633)
EivMeyer Jul 11, 2026
33a0f09
fix(release): avoid main promotion workflow conflict (#634)
EivMeyer Jul 11, 2026
16d11fc
fix(release): wait for npm latest propagation (#635)
EivMeyer Jul 11, 2026
cca54d4
fix: resume --detach runs agents in caller and leaves zombie clusters…
EivMeyer Jul 13, 2026
74e365d
chore: reconcile main into dev (heal diverged release history) (#641)
EivMeyer Jul 14, 2026
8b21347
feat: feat(cluster-protocol): bootstrap v1 and prove initialize/get (…
tomdps Jul 15, 2026
620c3ed
feat: feat(cluster-protocol): define the graph AST and decidable type…
tomdps Jul 15, 2026
2188028
Merge remote-tracking branch 'origin/main' into reconcile/trunk-cutover
Jul 15, 2026
8a6a2d9
ci: retire dev->main promotion, target main as trunk (#640)
Jul 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 24 additions & 35 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,45 +10,18 @@ name: CI

on:
push:
branches: [main, dev]
branches: [main]
pull_request:
branches: [main, dev]
branches: [main]
merge_group:
branches: [main, dev]
branches: [main]
workflow_dispatch:

jobs:
# ENFORCE: PRs to main must come from dev branch only
enforce-main-pr-source:
if: github.event_name == 'pull_request' && github.base_ref == 'main'
runs-on: ubuntu-latest
steps:
- name: Check PR source branch
run: |
if [[ "${{ github.head_ref }}" != "dev" ]]; then
echo "::error::PRs to main MUST come from the dev branch."
echo ""
echo "❌ BLOCKED: PR from '${{ github.head_ref }}' to main"
echo ""
echo "The dev → main workflow exists so that:"
echo " • All changes are tested on dev first"
echo " • Releases are coherent snapshots of dev"
echo " • main is always a subset of dev (no divergence)"
echo ""
echo "CORRECT WORKFLOW:"
echo " 1. Create PR to dev first: gh pr create --base dev"
echo " 2. After merge to dev, create release PR:"
echo " gh pr create --base main --head dev --title 'Release'"
echo ""
exit 1
fi
echo "✓ PR from dev to main - allowed"

# Fast quality gates - must pass before anything else
# Fast quality gates - must pass before anything else.
# Trunk model: PRs target main directly (the dev -> main promotion that caused
# release-history divergence is retired). See #640.
check:
# Wait for branch enforcement on PRs to main
needs: [enforce-main-pr-source]
if: always() && (needs.enforce-main-pr-source.result == 'success' || needs.enforce-main-pr-source.result == 'skipped')
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -59,9 +32,27 @@ jobs:
node-version: 20
cache: 'npm'

- name: Setup Rust 1.97.0
uses: dtolnay/rust-toolchain@stable
with:
toolchain: 1.97.0
components: clippy,rustfmt

- name: Install dependencies
run: npm ci

- name: Check generated Cluster Protocol artifacts
run: npm run protocol:check

- name: Check Rust formatting
run: cargo fmt --all -- --check

- name: Lint Rust
run: cargo clippy --workspace --all-targets -- -D warnings

- name: Test Rust workspace
run: cargo test --workspace

- name: Security audit
run: npm audit --audit-level=moderate --omit=dev
continue-on-error: false
Expand Down Expand Up @@ -219,10 +210,8 @@ jobs:

release-preflight:
name: Release preflight
needs: [enforce-main-pr-source]
if: |
always() &&
(needs.enforce-main-pr-source.result == 'success' || needs.enforce-main-pr-source.result == 'skipped') &&
(
(github.event_name == 'pull_request' && github.base_ref == 'main') ||
(github.event_name == 'merge_group' && (
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ yarn-error.log*
# Build output
dist/
build/
/target/
*.tsbuildinfo

# Environment
Expand Down
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ coverage
.tsbuildinfo
.eslintcache
lib/agent-cli-provider
protocol/openengine-cluster/v1
73 changes: 47 additions & 26 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,28 +21,49 @@ Destructive commands (need permission): `zeroshot kill`, `zeroshot clear`, `zero

## Where to Look

| Concept | File |
| ------------------------ | --------------------------------------------- |
| Conductor classification | `src/conductor-bootstrap.js` |
| Base templates | `cluster-templates/base-templates/` |
| Message bus | `src/message-bus.js` |
| Ledger (SQLite) | `src/ledger.js` |
| Guidance topics | `src/guidance-topics.js` |
| Guidance mailbox helper | `src/ledger.js` |
| Guidance live injection | `src/orchestrator.js` |
| Trigger evaluation | `src/logic-engine.js` |
| Agent wrapper | `src/agent-wrapper.js` |
| Providers registry | `src/providers/index.js` |
| Provider implementations | `src/providers/` |
| Provider engine registry | `src/agent-cli-provider/provider-registry.ts` |
| Gateway runner | `src/agent-cli-provider/gateway-runner.ts` |
| Gateway tools/policy | `src/agent-cli-provider/gateway-tools.ts` |
| Provider detection | `lib/provider-detection.js` |
| Provider capabilities | `src/providers/capabilities.js` |
| Start-cluster helper | `lib/start-cluster.js` |
| Docker mounts/env | `lib/docker-config.js` |
| Container lifecycle | `src/isolation-manager.js` |
| Settings | `lib/settings.js` |
| Concept | File |
| -------------------------- | ------------------------------------------------------------------ |
| Conductor classification | `src/conductor-bootstrap.js` |
| Base templates | `cluster-templates/base-templates/` |
| Message bus | `src/message-bus.js` |
| Ledger (SQLite) | `src/ledger.js` |
| Guidance topics | `src/guidance-topics.js` |
| Guidance mailbox helper | `src/ledger.js` |
| Guidance live injection | `src/orchestrator.js` |
| Trigger evaluation | `src/logic-engine.js` |
| Agent wrapper | `src/agent-wrapper.js` |
| Providers registry | `src/providers/index.js` |
| Provider implementations | `src/providers/` |
| Provider engine registry | `src/agent-cli-provider/provider-registry.ts` |
| Gateway runner | `src/agent-cli-provider/gateway-runner.ts` |
| Gateway tools/policy | `src/agent-cli-provider/gateway-tools.ts` |
| Provider detection | `lib/provider-detection.js` |
| Provider capabilities | `src/providers/capabilities.js` |
| Start-cluster helper | `lib/start-cluster.js` |
| Docker mounts/env | `lib/docker-config.js` |
| Container lifecycle | `src/isolation-manager.js` |
| Settings | `lib/settings.js` |
| Cluster wire/domain types | `crates/openengine-cluster-protocol/` |
| Graph AST/bindings/guards | `crates/openengine-cluster-protocol/src/graph.rs` |
| Closed payload algebra | `crates/openengine-cluster-protocol/src/payload.rs` |
| Compiled IR/identity | `crates/openengine-cluster-protocol/src/canonical.rs` |
| Artifact receipts | `crates/openengine-cluster-protocol/src/artifact.rs` |
| Graph diagnostics/bounds | `crates/openengine-cluster-protocol/src/diagnostic.rs` |
| Shared wire-value bounds | `crates/openengine-cluster-protocol/src/value.rs` |
| Cluster dispatch/stdio | `crates/openengine-cluster-server/` |
| Cluster typed transports | `crates/openengine-cluster-client/` |
| Cluster fixtures/artifacts | `crates/openengine-cluster-testkit/` |
| Negative graph vectors | `crates/openengine-cluster-testkit/src/negative_graph_fixtures.rs` |
| Graph contract prose | `docs/openengine-cluster-protocol/v1/graph-contract.md` |
| Generated graph fixtures | `protocol/openengine-cluster/v1/fixtures/graph/` |

Cluster Protocol Rust types are the source of truth. Files under
`protocol/openengine-cluster/v1/` are generated projections; update them with
`cargo run -p openengine-cluster-testkit --bin generate-cluster-protocol -- --write` and
verify byte-for-byte drift with `npm run protocol:check`. These generator-formatted artifacts
are excluded from Prettier; never format them independently.
Graph syntax, payload subtyping, compiled IR, diagnostics, and artifact receipt Rust types are
authoritative contract types only. They do not provide graph admission, verification, or execution.

The TUI is not included in this release. Use `zeroshot list`, `zeroshot status <id>`,
and `zeroshot logs <id> -f` or `zeroshot logs <id> -w` for monitoring.
Expand Down Expand Up @@ -194,11 +215,11 @@ Docker: fresh git clone in container, credentials mounted, auto-cleanup.

Configurable credential mounts for `--docker` mode. See `lib/docker-config.js`.

| Setting | Type | Default | Description |
| Setting | Type | Default | Description |
| ---------------------- | ------------- | -------- | ----------------------------------------------------- | ---------------------------------------- |
| `dockerMounts` | `Array<string | object>` | `['gh','git','ssh']` | Presets or `{host, container, readonly}` |
| `dockerEnvPassthrough` | `string[]` | `[]` | Extra env vars (supports `VAR`, `VAR_*`, `VAR=value`) |
| `dockerContainerHome` | `string` | `/root` | Container home for `$HOME` expansion |
| `dockerMounts` | `Array<string | object>` | `['gh','git','ssh']` | Presets or `{host, container, readonly}` |
| `dockerEnvPassthrough` | `string[]` | `[]` | Extra env vars (supports `VAR`, `VAR_*`, `VAR=value`) |
| `dockerContainerHome` | `string` | `/root` | Container home for `$HOME` expansion |

Mount presets: infrastructure presets plus provider ids from `src/agent-cli-provider/provider-registry.ts`.

Expand Down
Loading
Loading