Releases: jubayertalha/vibeframe
Release list
VibeFrame v0.2.0
The agent-ergonomics release: every item shipped here came out of using VibeFrame for real — the six-item friction backlog from live-agent dogfooding (2026-08-23), plus defect fixes from a full hands-on QA/UAT field test (2026-08-27). Nothing speculative.
Added
vibe_linkaction: "unbind"— remove exactly one step or component binding (no index check; removing dead bindings is the point). An unbind + bind pair in one call replaces a stale binding without re-declaring the whole capability.- Callback symbols (TS/TSX/JS) — registration-style handlers index as bindable symbols with deterministic names: commander actions (
command(status).action), route handlers (get(/api/meta)), tool registrations (registerTool(vibe_link)). CLI and server glue no longer forcesdeclared-onlyfile bindings. Only multiline anonymous callbacks on method calls with a string-literal anchor qualify; iteration/continuation glue never synthesizes a symbol. SQLite index schema is now v2 — existing indexes rebuild automatically on first contact. vibe_validate(andPOST /api/validate) returns the standing open findings — compact, severity-ranked, capped at 10 — alongside counts and deltas. No second query needed to see what is still wrong.- CI-gate coverage —
vibeframe validateexit codes (0 clean / 1 on open error findings, in both offline and daemon modes) are locked in by the dogfood suite; the CLI reference documents the one-line CI recipe.
Fixed
vibe_linkrejects unbindable file targets upfront with guidance — unindexable files (docs/config), globs matching nothing, and non-repo-relative paths return a note plus path candidates and write nothing, instead of landing and erroring later asbroken-binding. Just-written files are indexed on demand before judging, so a correct link never bounces on the watcher race.vibe_decideis idempotent — an identical retry returns the existing decision instead of minting a duplicate ADR; a same-slug conflict is refused with guidance to passsupersedesor pick a new slug.vibe_taskfinish warns when error findings remain open — finishing over a failing CI gate never looks clean.vibeframe validategates on authored-model parse errors in daemon mode too, matching offline behavior.vibe_linksymbol candidates are similarity-ranked (edit distance) — a typo's nearest neighbor comes first.- Two component-glob binds in one call no longer overwrite each other; YAML lists grown from empty write block style, never flow.
Install
npm i -D vibe-frame-cli # command: vibeframeRegistry-free: the attached tarballs install directly (npm i -D ./vibe-frame-cli-0.2.0.tgz after installing its five vibe-frame-* dependency tarballs). All six packages are published with npm provenance attestations via trusted publishing.
Full details in CHANGELOG.md.
VibeFrame v0.1.0
The first complete VibeFrame: a control plane for agentic coding — a living, in-repo model of intent, architecture, and code, deterministically indexed, bidirectionally linked, and continuously checked for drift. The framework makes zero LLM calls; your coding agent is the intelligence, connected over MCP.
Highlights
- The
.vibeframe/model (schemaVersion: 1) — capabilities → workflows → steps with symbol-level code bindings, components with hierarchy and declared dependency allowances, machine-checkable constraints, lockable ADR decisions. Plain YAML/Markdown, versioned by git, with first-class schema versioning and a migration contract. - Deterministic code plane — tree-sitter (vendored WASM grammars, no native parser builds) symbol extraction and exact import resolution for TypeScript/JavaScript (tsconfig paths, exports maps) and Python; incremental by content hash; git-aware catch-up; filesystem watcher as the backstop of record.
- Reflexion drift detection with evidence — absence, divergence, constraint violations, broken bindings (with repair candidates), orphans, cycles, locked-decision touches. Engineered precision-first: every check ships with a false-positive corpus in CI, and a false positive is treated as a product defect.
- One daemon per project — stateless Streamable-HTTP MCP endpoint (
vibe_context,vibe_declare,vibe_link,vibe_decide,vibe_validate,vibe_task,vibe_query), REST + SSE, localhost-only with token auth. - Claude Code plugin — session digest injection, same-turn violation feedback after edits, a reconcile nudge at stop, and an opt-in hard gate for files governed by locked decisions; plus
/vibeframe:plan-feature,/vibeframe:reconcile,/vibeframe:review-drift. - Live browser UI — six lenses (Focus, Map with the declared-vs-actual drift overlay, Flows with verification chips, Decisions, Activity, Drift inbox) and a trust-tier-labeled inspector, updating over SSE with no reloads.
- Dogfood acceptance suite — the entire loop runs as executable scenarios against the real CLI, daemon, MCP client, and hook scripts: greenfield init through drift, reconciliation, branch switching, restart, and index recovery, including the five-minute understanding test and a ≤4-tool-call overhead budget.
Full details in the CHANGELOG and documentation.
Install
npm i -D vibe-frame-cli # Node >= 22.12; installs the `vibeframe` command and all internals
npx vibeframe init
npx vibeframe startCareful: the unhyphenated vibeframe on npm is an unrelated project — don't install that. The attached tarballs offer a registry-free alternative (npm i -D all six files).
Claude Code: /plugin marketplace add jubayertalha/vibeframe → /plugin install vibeframe, or claude mcp add vibeframe -- npx vibeframe mcp for the MCP tools alone. Walkthrough: getting started.
Scope notes
v0.1.0 targets the greenfield loop on TypeScript/JavaScript/Python. Deliberately deferred: brownfield auto-adoption, other-agent adapters, symbol-level call graphs, teams, and anything hosted. Known false negatives of the validator are documented in docs/validation.md.