Skip to content

Releases: jubayertalha/vibeframe

VibeFrame v0.2.0

Choose a tag to compare

@jubayertalha jubayertalha released this 28 Aug 09:52

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_link action: "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 forces declared-only file 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 (and POST /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 coveragevibeframe validate exit 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_link rejects 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 as broken-binding. Just-written files are indexed on demand before judging, so a correct link never bounces on the watcher race.
  • vibe_decide is idempotent — an identical retry returns the existing decision instead of minting a duplicate ADR; a same-slug conflict is refused with guidance to pass supersedes or pick a new slug.
  • vibe_task finish warns when error findings remain open — finishing over a failing CI gate never looks clean.
  • vibeframe validate gates on authored-model parse errors in daemon mode too, matching offline behavior.
  • vibe_link symbol 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: vibeframe

Registry-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

Choose a tag to compare

@jubayertalha jubayertalha released this 23 Aug 03:40

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 start

Careful: 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.