vinta-ai-workflows 0.7.0-alpha14 → 0.7.0-alpha16

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.
package/CHANGELOG.md CHANGED
@@ -7,6 +7,8 @@ the project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  ## [0.7.0] — YYYY-MM-DD
9
9
 
10
+ <!-- pre-release: 0.7.0-alpha16 on 2026-09-16 -->
11
+ <!-- pre-release: 0.7.0-alpha15 on 2026-09-16 -->
10
12
  <!-- pre-release: 0.7.0-alpha14 on 2026-09-16 -->
11
13
  <!-- pre-release: 0.7.0-alpha13 on 2026-09-16 -->
12
14
  <!-- pre-release: 0.7.0-alpha12 on 2026-09-15 -->
@@ -24,6 +26,27 @@ the project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
24
26
 
25
27
  ### Added
26
28
 
29
+ - **A run no longer dies with the terminal that started it.** `vinta-ai-maestro
30
+ serve` accepts `POST /api/runs`, so a run can be submitted to a daemon that
31
+ was already listening and belongs to that daemon rather than to the shell that
32
+ asked for it; the request answers with the run id as soon as the run is
33
+ registered, not when it finishes. Previously `run` was the only way to start a
34
+ run and it hosted its own daemon, so closing the window killed the scheduler
35
+ and every agent under it — and left the journal claiming `running` for ever,
36
+ with nothing able to tell that row apart from a run still in flight.
37
+
38
+ - **`vinta-ai-maestro run --resume <run-id>` picks an interrupted run back up.**
39
+ Phases already `done` stay done and are not dispatched again, their lane
40
+ worktrees are adopted rather than re-provisioned — so whatever an agent had
41
+ written and not committed is still there — and a phase that was mid-turn when
42
+ the process died runs again from the top of its pipeline, because the turn it
43
+ was in belonged to a process that is gone. The plan comes from the run's
44
+ frozen snapshot, never from the document it was written from, so editing that
45
+ file in the meantime cannot switch plans under a run already under way. A new
46
+ `run_resumed` event records each hand-over; it is deliberately not a second
47
+ `run_started`, which would have moved the run's `started_at` to whenever it
48
+ was last picked up and made every duration short by the length of the outage.
49
+
27
50
  - **`vinta-ai-maestro gate <gate-id>` runs a declared gate from inside an agent
28
51
  turn.** A phase used to run its full gate suite five or six times a round —
29
52
  implementer, reviewer, fixer, reviewer again, then the authoritative `gate`
@@ -453,6 +476,24 @@ the project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
453
476
 
454
477
  ### Fixed
455
478
 
479
+ - **Closing a terminal on a run now records the interruption.** `run` and
480
+ `serve` handle SIGHUP as well as SIGINT and SIGTERM — SIGHUP is what a
481
+ terminal sends when its window closes, and with no handler Node's default was
482
+ to die on the spot, running no teardown and writing no `run_ended`. Both
483
+ commands now mark their live runs interrupted before exiting and print the
484
+ `--resume` line for each, so a closed window leaves something recoverable
485
+ instead of a row nothing will ever move again.
486
+
487
+ - **A member's reviews were counted as phases they took.** `node_crew` is
488
+ written for both seats — the reviewer's claim carries `role: 'reviewer'`, the
489
+ implementer's omits it — and the staffing rollup read neither, so every phase
490
+ a member reviewed was folded into the count of phases they implemented. On any
491
+ run with reviewers that inflated the number the rollup exists to put beside
492
+ the plan's estimate, and inflated `asPlanned`, which the run view divides by.
493
+ The two seats are counted apart now rather than one of them dropped: a review
494
+ is real work by a real member, and a member who only reviewed is neither a
495
+ phase-taker nor idle.
496
+
456
497
  - **An agent taking a lease left the resource panel showing the one before it.**
457
498
  The scheduler's own gate-pool transitions are journalled as `gate_pool`
458
499
  events, so the browser re-reads the snapshot when one lands. An agent's lease,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vinta-ai-workflows",
3
- "version": "0.7.0-alpha14",
3
+ "version": "0.7.0-alpha16",
4
4
  "description": "Bootstrap AI tooling (AGENTS.md, skills, sub-agents) across Claude Code, Codex, Cursor, and VS Code + GitHub Copilot.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -11,7 +11,7 @@
11
11
  # Tier *placement* is human/LLM judgement — the job flags drift and proposes
12
12
  # edits, it does not blindly reassign tiers. See scripts/check-ai-models.mjs.
13
13
  schema_version: 1
14
- last_verified: 2026-07-13
14
+ last_verified: 2026-09-16
15
15
 
16
16
  # Drift is checked against a free, no-key community aggregator (models.dev,
17
17
  # vendor-keyed with release dates + pricing), cross-checked against LiteLLM's
@@ -56,7 +56,7 @@ tiers:
56
56
  openai:
57
57
  - id: gpt-5-mini
58
58
  google:
59
- - id: gemini-3.5-flash
59
+ - id: gemini-3.8-flash
60
60
 
61
61
  - tier: 3
62
62
  label: multi-file orchestration, business logic, SQL views
@@ -82,10 +82,12 @@ tiers:
82
82
  tuning slow query against partitioned hot table, debugging heisenbug.
83
83
  models:
84
84
  anthropic:
85
- - id: claude-opus-4-8
85
+ - id: claude-opus-5
86
86
  openai:
87
+ - id: gpt-6-astra
88
+ note: frontier model; roughly twice sol's price, so reserve it for tier 4
87
89
  - id: gpt-5.6-sol
88
- note: Frontier model for complex professional work
90
+ note: cheaper frontier option when astra's step up is not warranted
89
91
  google:
90
92
  - id: gemini-3-pro
91
93
  note: with thinking