Skip to content

Releases: vantage-ai-eng/vantage-core

vantage-core 0.1.20

Choose a tag to compare

@simonbright simonbright released this 25 Sep 13:32

vantage-core 0.1.20

Tag: vantage-core-v0.1.20 · PyPI: pending

Two fixes and a listing. The gate is now installable as a GitHub Action, and it runs
on every Python version this package claims to support — which, until this release,
it did not.

vantage-core --version   # 0.1.20

Ship-gate GitHub Action

- uses: vantage-ai-eng/vantage-core@v1
  with:
    suite: suites/starter.suite.yaml
    openrouter-api-key: ${{ secrets.OPENROUTER_API_KEY }}

Four lines in place of the ~90-line workflow vantage-core ci stub github emits. The
action sets up Python, installs the CLI, validates the suite, restores the last
successful decision recorded on your default branch, re-decides against it, builds the
scorecard memo and Center, uploads the decision artifact, and posts the verdict as a PR
comment.

Exit codes are unchanged: 0 pass · 2 review · 1 block. fail-on defaults to
block, so a review verdict reports without breaking the build. Set fail-on: review
to gate on both, or fail-on: never while you tune a suite. If the decide step cannot
produce an exit code, the gate fails closed.

Inputs and outputs are documented in action.yml. The ci stub command
still emits a plain workflow for anyone who would rather own it.

Fixed — center and report were broken on Python 3.10 and 3.11

pyproject.toml declared requires-python = ">=3.10" and carried PyPI classifiers for
3.10, 3.11 and 3.12. But vantage_core/center.py and vantage_core/report.py contained
PEP 701 f-string syntax, which only parses on 3.12 and later. Neither module compiled on
3.10.

Both load lazily, so import vantage_core succeeded and nothing surfaced until you ran
vantage-core center or vantage-core report — at which point you got a SyntaxError
on a Python version this package advertised.

Seven lines hoisted out of f-string expressions. The emitted HTML is byte-identical.
Full test suite on Python 3.10: 220 passed, previously 8 failed plus a collection
error.

If you are on 3.10 or 3.11 and the scorecard or Control Center never worked for you,
this is why. Upgrade to 0.1.20.

Fixed — a test that passed because its input was missing

test_scan_skips_node_modules_and_env asserts that .env does not appear in the paths
scan_repo collects — the check that a draft scan cannot pull secrets out of a repo.
.env is gitignored, so in any fresh clone the file was absent and the assertion passed
on absence rather than on the scanner skipping it. The fixture is now written at run
time, and paths are compared relative to the scan root.

Worth stating plainly, since this package exists to catch exactly this: a green test that
tests nothing is the failure mode, not the exception.

vantage-core 0.1.18

Choose a tag to compare

@simonbright simonbright released this 05 Sep 20:27

vantage-core 0.1.18

Tag: vantage-core-v0.1.18

Demo + Coverage clarity — sample documents open in the main panel; Coverage adds a distinct Gap state; Live is labeled as last ship-cleared PASS (not this decision).

Try this

python3 -m pip install --no-cache-dir -U vantage-core
vantage-core --version   # 0.1.18

vantage-core demo --interactive
# Sample documents → open YAML/JSON in the main panel
# Beat 3: Live / Seen ungated / Gap / Pending

What changed

  • Demo: sample suite/contracts/exports selectable in the sidebar; content reviewed full-width (not cramped in the rail).
  • Coverage: Gap = known quiet-miss family with no export evidence yet (separate from Seen ungated).
  • Live cue: Live ≠ this decision when the current gate is STOP; Live notes say last ship-cleared PASS.
  • Pending → Live uses the Acme sample SQL safety id (sample.acme_sql_safety_v1) so docs match the cockpit.
  • Primary next distinguishes Seen ungated vs Gap; CLI suite refs avoid absolute machine paths.
  • Shorter beat-3 talk track; Goal / beat labels include Gap.

What this is not

No hosted dashboard. No change to the CI brake. Coverage is still one-shot file fuel — not monitoring.

vantage-core 0.1.17

Choose a tag to compare

@simonbright simonbright released this 05 Sep 15:05

vantage-core 0.1.17

Tag: vantage-core-v0.1.17

Vantage blue on Control Center + demo — interactive DEMO chrome and center.html use brand blue (#1375d9), not teal. Same DEMO labeling as 0.1.16.

Try this

python3 -m pip install --no-cache-dir -U vantage-core
vantage-core --version   # 0.1.17

vantage-core demo --interactive
# badge: DEMO · 0.1.17 · Vantage blue banner / accents

What changed

  • Demo console + Control Center HTML accents → --v-brand blue (#1375d9 / #e8f4fd).
  • Pass / block / review colors unchanged (status, not brand).

What this is not

No hosted dashboard. No change to the CI gate or Coverage semantics.

vantage-core 0.1.16

Choose a tag to compare

@simonbright simonbright released this 05 Sep 14:54

vantage-core 0.1.16

Tag: vantage-core-v0.1.16

Clear DEMO chrome for design partners — after pip install, the interactive walkthrough is labeled as a demo (banner, title, badge) so it cannot be confused with their CI ledger. The iframe still shows the real Control Center HTML (same as the CI artifact).

Try this

python3 -m pip install --no-cache-dir -U vantage-core
vantage-core --version   # 0.1.16

vantage-core demo --interactive
# same: vantage-core center --demo
# → http://127.0.0.1:8767/
# banner: Interactive demo — sample fixtures, not your CI ledger
# badge: DEMO · 0.1.16

What changed

  • Outer demo chrome: demo-banner, Control Center · Demo H1, DEMO · version badge, Demo beats sidebar, Demo · Control Center main bar.
  • Packaged sample fixtures / Obs exports / fleet sim unchanged from 0.1.15.

What this is not

No hosted org dashboard. No live LangSmith sync. No override of the CI gate. The right panel is the real cockpit; the left chrome is the walkthrough.

vantage-core 0.1.15

Choose a tag to compare

@simonbright simonbright released this 05 Sep 13:47

vantage-core 0.1.15

Tag: vantage-core-v0.1.15

Control Center demo ships in the wheel — after pip install vantage-core, strangers launch the same browser walkthrough you use. No monorepo clone. CI remains the brake (0/2/1). Offline HTML — not a Cloud dashboard.

What's new

Surface What you get
demo --interactive Full beats 1–7 from a PyPI install (fixtures, Obs samples, fleet sim, report samples)
center --demo Same walkthrough — alias on the prod Center command
Naming RuntimeAI Control Center (was “still-ship Center”) on CLI, HTML, CI stubs
Reports Summary PDF from the HTML memo; packaged detailed Simulation scorecard sample

Preferred line: Obs shows what ran; Center shows which of those behaviors you already gate, which you still owe, and what the next ship would change.

Try this

python3 -m pip install --no-cache-dir -U vantage-core
vantage-core --version   # 0.1.15

vantage-core demo --interactive
# same: vantage-core center --demo
# → http://127.0.0.1:8767/
# beats 1–2 silent miss · 3–5 Coverage → Pending → Live · 6 fleet · 7 reports

What changed (plumbing)

  • Packaged vantage_core.center_sim (fleet busy sim) — no repo scripts/ required for beat 6.
  • Demo pending/SQL paths use packaged starters/; Braintrust + Simulation scorecard samples in samples/.
  • center --demo / elevated stranger path in README.

What this is not

No hosted org dashboard. No live LangSmith sync. No fleet exit. No override of the CI gate.

vantage-core 0.1.14

Choose a tag to compare

@simonbright simonbright released this 05 Sep 13:47

vantage-core 0.1.14

Tag: vantage-core-v0.1.14

Coverage on Center — the cockpit now reads their existing tools.
Drop a LangSmith / Braintrust export; Center shows which of those behaviors you already gate, which you still owe, and what the next ship would change. CI remains the brake (0/2/1). Offline HTML — not a Cloud dashboard.

What's new

Surface What you see
Live On last ship-cleared PASS — already gated
Seen ungated In their export, not in the suite — author next
Pending Authored, not yet on that PASS — next ship would change this
Stale On last ship-cleared PASS, but absent from the recent export

Same ingest file as authoring. One-shot export — not OAuth, not monitoring, not a trace UI.

Preferred line: Obs shows what ran; Center shows which of those behaviors you already gate, which you still owe, and what the next ship would change.

Try this

python3 -m pip install --no-cache-dir -U vantage-core
vantage-core --version   # 0.1.14

# Browser (primary demo) — mirrors this release
vantage-core demo --interactive
# → http://127.0.0.1:8767/
# beats 1–2 silent miss · 3–5 Coverage → Pending → Live · 6 fleet

# CLI talk track (same story, no browser)
vantage-core demo --offline
# with artifacts:
vantage-core demo --save decisions/
vantage-core center --decisions decisions/ --html decisions/center.html --open

What changed (plumbing)

  • Center Coverage from suite + last PASS + ingest JSON (Live / Seen ungated / Pending / Stale).
  • Packaged samples/langsmith_export_sample.json so pip install can demo ingest without the monorepo.
  • demo --offline prints Coverage SAY + version banner; demo --interactive beats 3–5 walk export → Coverage → pending → live (beat 6 remains fleet). Both demos label themselves as mirroring 0.1.14.

What this is not

No hosted org dashboard. No live LangSmith sync. No fleet exit. No override of the CI gate.

vantage-core 0.1.13

Choose a tag to compare

@simonbright simonbright released this 05 Sep 02:08

vantage-core 0.1.13

Tag: vantage-core-v0.1.13

Still-ship Center — the local control surface for ship / still-trust.
CI remains the brake (0/2/1). Center is the cockpit: what is in play, what blocks, what moved, what to do next. Offline HTML artifact — not a Cloud dashboard.

What's in Center

One screen over suite + local decisions/ ledger (+ optional ingest plan):

Surface What you see
Verdict Ship and still-trust twin labels · route · what blocks
Path register Every path with optional why: and priority: (display + sort) · bar · bind
Memory Vs last ship · motion history (last N) · per-path last pass / fail
Next One primary next action · author-next ingest panel (drafts only — you own the bar)
Fleet register When suites/*.suite.yaml has more than one suite: advisory rollup (N CLEAR · K STOP) and focus on the worst suite

Fleet never invents a fleet exit. Each suite keeps its own CI gate. Opening Center never unblocks a merge.

Try this

python3 -m pip install --no-cache-dir -U vantage-core
vantage-core --version   # 0.1.13

# Interactive control surface (browser) — run beats, watch Center update
vantage-core demo --interactive
# → http://127.0.0.1:8767/

# Or CLI → open the HTML cockpit
vantage-core demo --save decisions/
vantage-core center --decisions decisions/ --html decisions/center.html --open

What changed (plumbing)

  • vantage-core center — builds the cockpit HTML from suite YAML + ledger (+ optional ingest JSON).
  • Auto-refresh — suite run / suite rerun --save writes decisions/center.html. CI stubs re-run center with if: always() / after_script and upload the artifact. PR comment points at center.html.
  • vantage-core demo --interactive — browser walkthrough: last ship → after change → fleet; Center panel updates after each beat.

What this is not

No hosted org dashboard. No fleet exit code. No OAuth connectors. No override of the CI gate.

vantage-core 0.1.12

Choose a tag to compare

@simonbright simonbright released this 31 Aug 11:11

vantage-core 0.1.12

Tag: vantage-core-v0.1.12

Cost and latency are now first-class gate inputs when you opt in. They are estimated when the provider returns no usage, metered when it does — and the field says which.

Try this

python3 -m pip install --no-cache-dir -U vantage-core
vantage-core --version   # 0.1.12
vantage-core demo --save decisions/
vantage-core report "$(vantage-core decisions latest)" --html decisions/suite.html

Ceilings are opt-in, no defaults. Add them only if you want them to block:

# on a contract (path) or a suite
cost_ceiling_usd: 0.05
latency_ceiling_p95_ms: 8000
# vs last-ship baseline (suite only)
# cost_regression_pct: 25
# latency_regression_pct: 25

What changed

  • Metered cost — provider usage is split into input / output / cached read / cache write / reasoning. usd.source is "metered" when those tokens exist, "estimated" when we fall back to calls × (1500 in + 350 out) × the pinned rate table. config_stamp.model_costs_sha256 still pins the table so a partner can reproduce the figure.
  • Agent-turn latency — latency.agent_turn_latency_ms[] is request sent → response complete per agent turn. elapsed_s remains wall-clock (scoring, simulated user, network). harness_overhead_s is the rest, recorded so a stopwatch mismatch is explainable. turns_to_closure is null if the scenario never closed — never the turn cap. Derived: agent_time_to_closure_s, turn_latency_median_ms, turn_latency_p95_ms. Gate on p95, never the mean.
  • Ceilings as blockers — path-level cost_ceiling_usd (suite-level already existed) and latency_ceiling_p95_ms on contract and suite. Absent does not gate. Present breach is over_cost_ceiling / over_latency_ceiling in build_pass_gate_numeric, same route mapping as other blockers. Both ceilings, when set, sit inside contract_bar_sha256() / suite_sha256.
  • Regression vs last-ship — compare always reports p95 and USD deltas. Suite latency_regression_pct / cost_regression_pct are opt-in blockers (over_latency_regression / over_cost_regression). No default.
  • Library scorer identity — library:… contracts bind scorer_sha256 (the scorer module body) into the content / bar hash. A later wheel cannot change the heuristic under an unchanged suite hash. hard_checks YAML was already in the bar; that path is unchanged. Existing hard-check suite hashes are stable. Library-replay hashes move once.

What this is not

No default ceilings. No pillar rollups, pack catalogs, or GEV in Core. Website and investor copy are unchanged until these rows read SHIPPED and the wheel is on PyPI.

vantage-core 0.1.11

Choose a tag to compare

@simonbright simonbright released this 28 Aug 15:42

vantage-core 0.1.11

Tag: vantage-core-v0.1.11

0.1.10's verify does not recompute the suite hash; 0.1.11 does. Upgrade if you need suite_sha256 to be falsifiable against the decision record.

Try this

python3 -m pip install --no-cache-dir -U vantage-core
vantage-core --version   # 0.1.11
vantage-core demo --save decisions/
vantage-core report "$(vantage-core decisions latest)" --html decisions/suite.html
vantage-core attest "$(vantage-core decisions latest)"   # needs RUNTIMEAI_API_KEY
vantage-core verify "$(vantage-core decisions latest)"   # offline, in-package keyring

pip install vantage-core without -U may still leave 0.1.10 if it was already installed.

What changed

  • vantage-core verify recomputes suite_sha256 from suite content in the decision (same treatment as payload_sha256). A client-supplied stamp cannot fake the bar. 0.1.10's verify compared stamp to envelope only and did not recompute.
  • Path-hash stamping — live suite run now writes suite fail_under and per-path content_sha256 / bar_sha256 onto the decision so verify can recompute.
  • Runner-version-gated fallback — stamp-vs-envelope (no recompute) is allowed only when signed pins.runner_version parses and is older than 0.1.11. At or after 0.1.11, or if runner_version is missing/unparseable: recompute or fail. Never fall back merely because the client omitted hashes.
  • Countersignature remains free while in preview; we will give at least 90 days' notice before that changes. Pro is cadence, retained history, and the chain — not a paywall on signing.

What this is not

Not a hosted chain yet (seq / prev_digest stay null). Verify does not need a RuntimeAI account. Attest does.

vantage-core 0.1.7

Choose a tag to compare

@simonbright simonbright released this 16 Aug 01:47

Still-trust CI: re-decide PRs against last ship.

Install: pip install -U vantage-core

Docs: https://www.vantageai.cc/runtimeai/method/cicd
PyPI: https://pypi.org/project/vantage-core/0.1.7/