Release notes
This page follows Keep a Changelog and Semantic Versioning. The repository's CHANGELOG.md is the English source.
0.3.0-rc.3 (November 10, 2026)
First release.
Added
- Run through your package manager. Set up a project with
npx review-bridge init; no global install is required. A global install withnpm i -g review-bridgealso works. Bridge prints commands using the package manager that launched it:npx review-bridge …for npm or when no package manager is specified,pnpm dlx review-bridge …,yarn dlx review-bridge …, orbun x review-bridge …. Commands omit the version and use the publishedlatestrelease;npxuses a global installation when one is present. This applies to setup instructions, status output, suggested next commands, agent entry points, and VS Code tasks. Only--helpuses the bare program name. Requires Node.js 22.8 or newer. - Interactive setup. Following create-vite's approach,
initasks for a writer, reviewer, project type, and optional VS Code tasks, with a default for each. It then sets up the current folder, prints progress one step per line, and shows the next commands. There is no extra confirmation or plan preview. Options supply answers directly; without an interactive terminal, defaults are used. The project type selects the test command and can benone. - Project files stay contained. Except for VS Code tasks you opt in to,
initwrites only to.review-bridge/: settings, rules, and work-order templates. Its own.gitignorecontains*, keeping the folder out of Git even if you initialize Git later. Setup leavesgit statusclean and doesn't modify the project's.claude/,AGENTS.md, orCLAUDE.md. - User-level agent entry points.
initinstalls~/.claude/commands/review-bridge.mdfor Claude Code, respectingCLAUDE_CONFIG_DIR, and~/.agents/skills/review-bridge/SKILL.mdfor Codex./review-bridgeand$review-bridgeteach the agent four actions—start, stop, resume, and clean—and require a person's approval. Existing user files at those paths are left alone. Uninstalling the last configured project removes Bridge's entries unless you've edited them. - A project graph for code navigation.
initrecords definitions, name references, and import destinations in your database for JavaScript, TypeScript,.vuescript blocks, Python, Go, Rust, Java, Kotlin, C++, and C#. Progress output ends with file, definition, reference, and import counts, plus a list of files that couldn't be fully parsed. No graph files are written to the project. Parsers for languages other than JavaScript and TypeScript are installed through npm into Bridge's data directory on first use. In npm and pnpm workspaces, the graph covers the package and its workspace dependencies.startrefreshes only files Git reports as changed;npx review-bridge graphrebuilds the full graph. Writer and reviewer can query it through Bridge's read-only MCP server,review-bridge-graph. - Contract creation without model calls. Bridge validates the work order as a form and copies each marked block into the contract unchanged. The result's token table records 0 tokens for this step. Acceptance lists are parsed with markdown-it, as in VitePress. Work orders require work instructions (
requested_workorrun_plan) and an acceptance list. Missing required content, invalid list items such as一、or(1), and unanswered open questions stopstartbefore the card. Bridge lists the problems and restores any missing required block marker and heading at the end of the file, leaving existing text unchanged. A#title is optional; without one, the title isuntitled. - Per-role model and effort settings. Work-order frontmatter accepts
writer:andreviewer:blocks withmodelandeffort, overriding the policy's priority table. Top-leveleffortapplies to the writer; specifying both forms is rejected.model: null, the default for both roles, uses the CLI's default. A model that doesn't match its role's CLI is rejected before the card. - One card and one approval to start.
npx review-bridge start <file>plans the work and shows a card identifying the contract. In a terminal, it asksStart this work? [y/N]and prints one line per step. Without an interactive terminal,startandresumeshow the card and stop atNeeds authorization. After you approve, the agent reruns the command with--yes. Authorization recordsauthorized_via(terminaloragent) and the SHA-256 of the sealed work-order text.--yesuses the previously displayed card's plan. It is rejected if no card was shown, the work order or options have changed, the card has passed itsValid untiltime, or the card has already started a run. A rejected request authorizes and starts nothing. Each rejection includes the next command to run. - Work-order identity and version history. On first approval, Bridge writes an
idinto the work order's frontmatter and records its versions in the database. Renaming or moving a file preserves its identity; editing its text creates a new version. A copy containing another file's ID gets its own, while two hard links to the same file remain one work order. Filesystems that don't provide file IDs are rejected. File names support letters, digits, and combining marks from any script, plus.,_,-, and single spaces, up to 80 characters and 180 bytes. Names are normalized to NFC for comparison and storage. The card identifies the work order being authorized;--update <work_order_id>and--as-newlet you specify a different identity choice. - Run work orders in sequence.
start <directory>treats a subdirectory of.review-bridge/work-packages/as a pipeline. Files run in name order, using numeric prefixes such as01-and02_, with unnumbered files last. Bridge checks the whole directory and shows one card listing the files without their contents. One approval authorizes the pipeline, with a separate run, authorization record, and contract for each work order. A failed work order doesn't stop the next one. A provider sign-out, exhausted quota,stop, or Ctrl+C stops the pipeline. Work orders recorded as delivered are skipped when you start again.statusshows progress, a final table summarizes the results, and files go underresults/<directory>/<work order>/. - Stop, resume, and clean.
stop <run_id>pauses a run and preserves its records.resume <run_id>starts a new run with the same stopping point and scope.clean [<run_id>]clears finished records;clean --allclears the project's records from the database. - Choose either provider for either role. Writer and reviewer support all four pairings of
claudeandcodex, with separate sessions. Roles come frombridge.jsonor per-run--writerand--revieweroptions onstart,resume, andwork-plan. The card shows the selected roles, which stay fixed for that run. Each run record and result header include both roles' provider, model, and effort. - Read-only reviewer checks. Before model work begins, Bridge verifies the reviewer's restrictions. For Codex, its OS sandbox must deny an actual write; the check also recognizes PowerShell's denial messages on Chinese-language Windows. For Claude Code, a plan-mode session with only
Read,Grep,Glob, and Bridge's graph server plus policy-approved servers is asked to write a sentinel file. The check passes only if the file is absent, the CLI finishes, and itsinitevent confirms the expected session configuration. - Personal connector isolation. Every Claude Code call uses
--strict-mcp-config; only the writer receives the project's.mcp.json. Every Codex call uses--disable apps --disable pluginsand disables each MCP server named bycodex mcp list. If that list can't be read, work doesn't start. The policy'sreviewer.mcp_allow, empty by default, passes named servers to the reviewer without additional restrictions. The card, run record, and result list the servers provided. - Verification run by Bridge. After each writer call, Bridge runs the project's test command itself. Projects without a test command can still run; the card, records, and result state that tests aren't configured. When the project has a test command, a writer reporting
blockedwithout asking a question still proceeds to Bridge's test step and review; without one, the run stops and returns to you. - Writer token budgets.
tokensandtokens_per_callapply to the writer and exclude cache reads, which are listed separately in the result. Reviewer usage is recorded but doesn't count against a token budget. - Results with supporting records. Each run produces a result file under
results/<work order>/explaining what was decided and why. Results needing your decision include the writer's own explanation.Files changedseparates Git changes, the writer's unverified change report, and changes that existed before the run. - An audit trail in PostgreSQL. One embedded PostgreSQL 18 database per user stores work orders, versions, cards, authorizations, contracts, runs, sequenced events, reviewer verdicts, Bridge's acceptance decisions, and deliveries across projects. It is created on first use. Each state change and its event are committed in the same transaction.
clean <run_id>deletes the run and its dependent records together, while preserving the consumed authorization so the card can't be reused. Files under.review-bridge/and logs are copies. - Database lifecycle controls. The database keeps running after you close the terminal or VS Code.
upstarts the database, then the local page;downstops them in reverse order, following thedocker compose downconvention of stopping whatupstarted. If any project has an active run,downlists the runs and refuses to stop.statusreports database state without starting it. A missing, unreadable, or invalid data directory is reported with its path, using exit code 4 aspg_ctl statusdoes. Startup failures include how longpg_ctlwaited and the latest server message. Startup doesn't clear files left by a dead server; if its processes are still running, Bridge reports that and asks you to restart the computer. - Backups before migrations. Before a new version applies database migrations, its first command backs up the database and prints the backup location. Backups are refused while a run is active. If the database contains migrations unknown to the installed version, Bridge names them, refuses to open it, and makes no changes. Use
backupto create a backup manually when no runs are active. - Stop on database loss. If the database becomes unavailable during a run, it stops with
database_unavailableand makes no further model calls. Records collected in the meantime are written back by the next command that opens the database. - Queryable run status.
status,work-status, anddoctorread database records showing the page, run status, stop reason, source file, and start time. Results are paginated in groups of ten; use--after <run_id>for the next page or--jsonfor machine-readable output.statusalso prints the host, port, database, user, and password-file location for connections from VS Code's PostgreSQL extension or SQLTools. - Localized CLI output.
init,status,up,down,ps, and the authorization card use the project's language, English or Traditional Chinese, detected from the system using create-vue's approach. - VS Code tasks. Run
start,stop,resume,clean,status, andlogsfrom Quick Open by typingtask review-bridge. Opt in to the project's.vscode/tasks.jsonduringinit, add tasks later withnpx review-bridge vscode, or usenpx review-bridge vscode --userfor user-level tasks. The default is not to add project tasks. Other tasks, comments, and formatting are preserved;uninstallremoves only Bridge's entries. - Windows encoding diagnostics.
doctorreports when PowerShell isn't writing UTF-8, which can garble Codex's Chinese output, and shows the line to add to$PROFILE. - Generated command help. Every command has
--helpgenerated from the command table, including option types, defaults, and descriptions.--help --allalso lists commands for agents and scripts, such aswork-planandwork-start.--versionprints the version.
Known limitations
- On Windows, two simultaneous
--yesrequests for one card can cause the second to return a file error instead of reporting that the card was used. Only one run starts. Approve each card once. - With Git's
core.autocrlfon Windows, line-ending-only changes count as changes in work proof and results. Commit or stash beforestart. - The writer doesn't pause to ask questions during implementation. Resolve ambiguities in the work order before
start; an unanswered line inopen_questionsprevents it from starting. - The writer may run or edit your project's tests. Bridge doesn't block or flag this. Test evidence in the result comes from Bridge's own test run after each writer call. Review the changed files listed in the result.
- Running through
npxchecks the npm registry for the latest version and requires network access. A global install withnpm i -g review-bridgeavoids that lookup;npx review-bridgethen uses the installed copy. - Ctrl+C during a single-file
startin a terminal ends the command, but the run may continue. Find it withnpx review-bridge status, then stop it withnpx review-bridge stop <run_id>. - In the runs measured for this release, neither the writer nor the reviewer called the project-graph tools on its own.
- Some messages from commands for agents and scripts, including
work-planandwork-start, aren't localized. - The card's
Valid untiltime is displayed in UTC. - The final output line doesn't include the run ID. Use
npx review-bridge statusto find it. - Directory pipelines run in the project folder. Starting two directories at once makes them share that folder; wait for one to finish before starting the next.
vscodeisn't listed innpx review-bridge --help. Usenpx review-bridge vscode --helpfor its options.- Work proof compares the project only at Bridge's sampling points. A file changed and restored between checks won't appear as changed.
- Native execution is verified on Windows x64. Apple Silicon macOS is selectable but unverified. Linux blocks native execution.
- Upgrading to a different PostgreSQL major version requires a dump and restore, which this version doesn't handle.