Skip to content

Releases: supernovae-st/nika-vscode

0.103.0 — lockstep on the language-tightens wave

Choose a tag to compare

@ThibautMelen ThibautMelen released this 13 Jul 12:05
e957217

Lockstep on engine v0.103.0 (BREAKING: the language tightenscommand: argv-only · shell: the explicit door · bare ${{ tasks.X }} an error · the gate algebra normative). Editor-side: the double voice dies (#105 — capability-yield: the server's capabilities silence their client twins, crash restores them) · the 0.103 starters/authoring re-projection (#108) · the lens-path law.

Install: VS Marketplace · Open VSX

0.102.0 — the doors and their one source

Choose a tag to compare

@ThibautMelen ThibautMelen released this 13 Jul 08:09
770e23f

Lockstep on the engine's 0.102 wave (the editor speaks the language — the LSP arc lands server-side). Extension-side: the guided-edit doors arc (#89 contract · #91 flow · #93 armor · #94 agent tools) and the SSOT consolidation (#96 — guided-edit registers project from nika-spec, the 25 hand-written snippets die, SSOT.md becomes a gated ledger). README language map (#95); two spec-parity CI gates (#90/#92).

Install: VS Marketplace · Open VSX

0.101.0 — lockstep on the sovereign-lane wave

Choose a tag to compare

@ThibautMelen ThibautMelen released this 12 Jul 22:57
baf2af7

Lockstep on the engine's 0.101 wave — the sovereign lane ships whole: every engine release binary now carries local-infer (nika model pullserve → workflow infer, no cloud, no build wall). Rides: the doors-speak pass (#86 — lens titles become calls, one vocabulary module).

Install: VS Marketplace · Open VSX

0.100.2 — the run door heals on 0.100 engines

Choose a tag to compare

@ThibautMelen ThibautMelen released this 12 Jul 21:45
fea6f37

Worth the immediate patch: the ▶ Run door and the infer-permits CTA passed --no-color — a clap error on every 0.100 engine (#84). --color never everywhere now (it was always the umbrella, 0.99 included). Real-engine suites re-proven: 590 green against the 0.100.0 Cellar. README learns the lens doors.

Install: VS Marketplace · Open VSX

0.100.1 — the verb doors ship

Choose a tag to compare

@ThibautMelen ThibautMelen released this 12 Jul 21:16
cfc4712

The verb line becomes a door

  • One lens above every bare <verb>: key (#82) — ◆ tool on invoke: (spec starters + every builtin THIS binary carries, args skeleton from the tool's own schema); ◇ ▷ ✦ starters on infer:/exec:/agent:. Picking replaces the verb block — one surgical edit, one undo.
  • Starters are spec-truth — projected from nika-spec stdlib/verb-starters-v0.1.yaml; the projector refuses starters the conformance oracle rejects. Builtins stay engine-truth (catalog --tools --json).

Install: VS Marketplace · Open VSX

0.100.0 — the version line joins the engine's wave

Choose a tag to compare

@ThibautMelen ThibautMelen released this 12 Jul 21:16
69f3afd

The 0.100/0.101/… line starts here: engine · extension · client-sdk · agents kit ship the same number per wave.

The envelope reads top-to-bottom

  • Every lens on the line it serves (#80) — the GitHub door above nika:, Check · DAG · Run above workflow:, Explain above description:; the status row stays above tasks:. One pure placement law (core/lensAnchors, 10 tests).
  • The model line is a door (#79) — ⇄ model opens the embedded catalog picker (local-first) and surgically rewrites exactly that line.

Install: VS Marketplace · Open VSX

v0.97.4 · 2026-07-07

Choose a tag to compare

@ThibautMelen ThibautMelen released this 07 Jul 21:15

Evidence reaches the editor — reviewed, then released

Engine 0.97.0 shipped « the run becomes evidence »; this release turns
it on in the editor — after the adversarial pass the trust arc had
never had (two HIGHs died pre-ship, the law pays again):

  • Verify Journal — one click asks the engine itself (nika trace verify): intact with its head, BROKEN at its exact line, or
    unchained (pre-0.96 — nothing to verify, nothing to distrust).
  • Reproduce Run — the determinism taxonomy in the Runs view:
    reproduced · NONDETERMINISTIC (the flaky task, named) ·
    authored · environment. Reads two journals; never re-runs,
    never spends.
  • One head everywhere — the run's verdict banner, the tooltip and
    the run report carry the engine's printed chain head.
  • The drift badge tells a re-encode from an edit — the Runs view
    folds workflow_sha256_lf (engine #247's client twin): a CRLF↔LF
    save no longer cries « definition drifted ».

Fixed (the adversarial pass)

  • A stopped run no longer wears the previous run's chain head
    the anchor only prints at run END, so Stop/crash/older-engine runs
    inherited the last run's head on their banner; the anchor now clears
    at spawn (HIGH).

  • A one-line torn journal is UNREADABLE, never a green — the
    client walk returned « torn » with the constant genesis head on a
    file the engine rejects; torn now requires a verified prefix,
    mirroring the engine's exact hardening (HIGH).

  • The client chain walk matches the engine on CRLF journals — a
    re-encoded journal verified INTACT by the engine read BROKEN in the
    tooltip (\r hashed into the line); and broken line numbers are
    FILE lines, blanks counted — client and engine name the same line.

  • Banner/tooltip carry the engine's full 32-hex anchor (16 was the
    forgeable width the engine's own review rejected) · a nameless
    recorded journal says so in the Reproduce picker instead of listing
    the whole workspace as siblings · the « Prove it ran » walkthrough
    step owns its media page.

  • Verify Journal (nika ≥ 0.97) — one click on any recorded run asks
    the engine (nika trace verify) for its authoritative chain verdict:
    OK with the full head for the anchor comparison, or the broken line
    as a warning. The tooltip's instant client walk and the engine's own
    word are now both one gesture away.

  • Reproduce Run (determinism check) (nika ≥ 0.97) — right-click any
    recorded run, pick another journal of the same workflow, and the
    engine's taxonomy answers WHY they diverge: reproduced ·
    NONDETERMINISTIC (same def+inputs, different output) · authored ·
    environment · status-changed — with the engine/platform attestation
    compared. The verdict opens as a markdown preview.

  • The anchor closes in the tooltip — an intact run now shows its
    chain head ($(verified-filled) chain intact — head …) in the Runs
    view: compare it against the one the run printed to close the anchor
    loop by eye. Torn tails say "crash, not tampering".


📦 VS Marketplace · Open VSX · CHANGELOG · engine: docs.nika.sh/changelog/releases

v0.97.3 · 2026-07-07

Choose a tag to compare

@ThibautMelen ThibautMelen released this 07 Jul 21:15

The second adversarial pass — the review reviews the reviewers

Two more agents attacked the never-reviewed halves of the F5/OTel/rates
arc (client) and the nika dap server itself. The server's protocol
layer came back hardened (~30 hostile inputs, zero panics); the client
side pays its findings now:

  • Preflight rates were dead on the wireparseCheckReport never
    copied pricing: the exact class that hit requirements one review
    earlier, recurred one field later. Fixed — and a full-wire
    round-trip ratchet
    now types the fixture Required<CheckReport>,
    so any future field the parser forgets fails at compile time AND at
    test time. The class is structurally dead.
  • The generated launch.json no longer hijacks F5. workflow: "${file}" reached the resolver before variable substitution, read as
    a literal path, missed the name, and silently replayed the newest run
    of ANY workflow. Resolution now runs in the substituted hook — and
    the newest-overall fallback is gone when the workflow's name is
    known: F5 says « no recorded run of name » instead of silently
    debugging a foreign journal (fork's never-silent-runs law, applied
    to the other direction).
  • Quoted workflow names match their journalsworkflow: "deploy #7" was truncated at the # by the line-scan extractor
    (the real parser handled it), so such workflows could never
    exact-match in the F5 direction.
  • OTel export trusts the engine's own answer — the exported path
    is parsed from the engine's exported → … line instead of assumed
    from a suffix rule (a custom .jsonl traces glob made the assumed
    path point at the raw journal); a timed-out export no longer shows
    an empty error.
  • Rates guard hardened (typeof, an omitted key renders nothing —
    never $undefined) · journal scan cap raised 100 → 500 stat-first.

📦 VS Marketplace · Open VSX · CHANGELOG · engine: docs.nika.sh/changelog/releases

v0.97.2 · 2026-07-06

Choose a tag to compare

@ThibautMelen ThibautMelen released this 07 Jul 21:15

The backlog paid — the review's remaining five

  • Fork resolves by NAME, asks on ambiguity. The journal stamps its
    workflow name; fork now requires the exact match when present — an
    active sibling sharing task ids can no longer hijack the fork, several
    declaring files QuickPick instead of first-wins, and a no-match refusal
    names the workflow it looked for. The overlap heuristic survives only
    for nameless (truncated/foreign) journals.
  • The cross-run grid stops mixing siblings — membership is the exact
    workflow name too, and the window is honest: stat-first newest-first,
    folding lazily until 12 members (the old shape folded an arbitrary
    100-file window eagerly — the « last 12 » could omit the actual newest
    runs, and 88 folds were thrown away).
  • Answering warns before killing a live run — the notification click
    superseded any in-flight run silently; it now asks first.
  • Unknown pause modes degrade to the input box — never the Yes/No
    picker (a boolean fails a choice gate every time); a future engine
    mode gets a string the gate validates against its own contract.

Riding the same train

  • Preflight rates (nika ≥ 0.96) — every model row in the flight plan
    shows what it will pay per token ($2/$10 per 1M, from the engine's
    vendored 602-model catalog) beside its key verdict. An UNKNOWN price
    renders nothing — never $0.
  • The AI authoring prompt teaches proof — agents are now told to
    quote trace evidence (trace outputs · trace peek --raw · replay
    under nika dap · trace export to OTel), not vibes.
  • Runs view: the time-travel action rides inline — the ▷ debug icon
    sits on every recorded run beside diff.
  • Fix: F5 via the generated launch.json snippet — the snippet's
    replay: "" beat the trace the provider had just resolved (first F5
    died on cannot read journal ''). Resolved paths now win over
    empty/missing ones; user config keeps the cosmetics. (Landed minutes
    after 0.97.1 was cut — rides this train.)

📦 VS Marketplace · Open VSX · CHANGELOG · engine: docs.nika.sh/changelog/releases

v0.97.1 · 2026-07-06

Choose a tag to compare

@ThibautMelen ThibautMelen released this 07 Jul 21:15

The adversarial review pays — nine fixes in the day's own release

An end-of-day adversarial review of everything 0.97.0 shipped found
real edges in the untested seams; all confirmed on the code, fixed and
pinned the same day:

  • Housekeeping can no longer strand an answerable run. The trace
    pruner was blind to what a journal IS: it could delete a PAUSED run's
    journal (the resume substrate) — including the very --resume target
    the click was about to consume, since it pruned BEFORE the spawn.
    Paused journals now survive any ranking (tail check), and the
    imminent spawn's resume target is explicitly protected.
  • An answer now targets its own pause. The paused notification
    re-derived the journal at click time from a live map that EVERY run
    overwrites — a mock preview run between pause and answer could
    swallow a real human approval into a mock journal. The paused record
    now carries its journal path, captured at pause time; answering the
    same pause twice warns before re-running gated side effects.
  • Typed answers survive. The engine JSON-parses answer values —
    answering 123 to an input gate arrived as a Number and failed the
    gate's string contract; numeric-looking choices could never match.
    Input and choice answers are JSON-encoded (text stays text).
  • Preflight's engine contract is alive. parseCheckReport never
    copied the requirements section — the whole engine-stated-contract
    adapter was dead code on the wire. One copy, one wire-level test.
  • Diff v2 names the culprit, not a victim. First-divergence ranked
    by clocks mixed across the two runs — a cascade-cancelled task (no
    compare clock) fell back to the OLDER run's epoch and always outranked
    the actual failure. Compare-run clocks only now.
  • Drift truth only speaks about its own workflow (the sha check now
    requires the trace to match the active document), the runs-tree cache
    keys on mtime+size (same-tick appends on coarse filesystems), the
    .gitignore nudge re-reads before writing (a stale snapshot could
    revert edits made while the toast waited), and terminal runs (run
    fallback · golden test) honor the spawn-cwd law so their journals
    land beside the workflow.

Time travel, for real

  • F5 time-travel debugger (nika ≥ 0.96) — breakpoints in your
    .nika.yaml, F5 replays the newest recorded run of that workflow under
    the real VS Code debugger: step forward AND backward through task
    settles, recorded outputs in the Variables pane, continue runs to the
    next breakpointed task. Replay never re-executes — stepping back is
    free. Every run in the Runs view gains "Debug This Run (Replay · Time
    Travel)" (journal→source matched by workflow name; QuickPick on
    ambiguity). A walkthrough step teaches it.
  • Export to OpenTelemetry (nika ≥ 0.96) — a context action on any
    recorded run projects its journal to OTLP/JSON lines: drag into Jaeger
    UI, or POST to Aspire/Grafana/Langfuse (cost rides gen_ai.usage.cost).
    Local file, zero collector. An engine older than the verb is told to
    upgrade instead of a clap parrot.
  • Runs view discoverability — Run History and Diff join the view
    title bar; Preflight and Run History join the welcome capabilities grid.

📦 VS Marketplace · Open VSX · CHANGELOG · engine: docs.nika.sh/changelog/releases