Skip to content

feat(console): serve the react web console from the installed package#456

Merged
plind-junior merged 16 commits into
testfrom
feat/vouch-console
Jul 10, 2026
Merged

feat(console): serve the react web console from the installed package#456
plind-junior merged 16 commits into
testfrom
feat/vouch-console

Conversation

@plind-junior

Copy link
Copy Markdown
Member

What changed

adds vouch console: a starlette app that serves the vendored webapp/
react SPA plus a same-origin /proxy bridge to vouch serve --transport http backends — a python port of the vite dev-proxy
(webapp/plugins/vouch-proxy.ts): loopback-guarded, reads X-Vouch-Target,
forwards /proxy/<path> to the backend, passes backend statuses through
unmasked. the built SPA is bundled into the wheel as vouch/web/console by
a conditional hatch build hook, and the release workflow now builds the
webapp before packaging and builds the wheel from the working tree so the
console rides inside it. bumped to 1.3.0 across the four version sites;
readme + changelog updated.

Why

the react console previously shipped only via the docker demo or a repo
clone + make console (vite dev server). now pip install 'vouch-kb[web]'
then vouch console serves the same console from the installed package —
no docker, no node, no clone. the bridge must run locally and same-origin:
vouch sends no cors headers and the proxy only accepts loopback clients, so
a remotely-hosted console can't reach a local backend.

What might break

nothing on an existing .vouch/. no file moves, no on-disk field changes,
no kb.* method changes — vouch console is a new CLI command, and the
only packaging change is extra static files inside the wheel (skipped
cleanly when webapp/dist isn't built, so source-only builds still
succeed). version bumps 1.2.2 → 1.3.0.

VEP

not a surface change — no kb.* method, no object-model / on-disk-layout /
audit-log change; the wheel gaining static assets is not a kb bundle-format
change. no VEP.

Tests

  • make check passes locally (ruff + mypy + full pytest green on this branch)
  • New behaviour has a test — tests/test_console.py: proxy forward / loopback-guard / error-passthrough, SPA fallback, console-dir resolution, and the CLI command
  • CHANGELOG.md updated under ## [Unreleased]

note on the commit range: this branch is based on local test, which is
ahead of origin/test by the session-transcript-viewer work, so those
commits appear in this PR's range. the console change itself is the single
faa8abd commit.

add `vouch console`: a starlette app that serves the vendored webapp SPA
plus a same-origin /proxy bridge to `vouch serve --transport http`
backends — a python port of the vite dev-proxy (loopback-guarded, reads
X-Vouch-Target, passes backend statuses through unmasked). the built SPA
is bundled into the wheel as vouch/web/console via a conditional hatch
build hook, so `pip install 'vouch-kb[web]'` then `vouch console` needs no
node and no repo clone.

wire the release workflow to build the webapp before packaging and build
the wheel from the working tree so the console rides inside it. bump to
1.3.0 across the four version sites, document the pip path in the readme,
and add a changelog entry.
@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: d83f20f1-eb7b-43a0-9bd1-b600d4443fdf

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/vouch-console

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added docs documentation, specs, examples, and repo guidance ci github actions and automation cli command line interface review-ui browser review ui openclaw openclaw integration mcp mcp, jsonl, and http surfaces packaging packaging, build metadata, and make targets tests tests and fixtures size: XL 1000 or more changed non-doc lines labels Jul 10, 2026
@plind-junior plind-junior merged commit 8e74ca9 into test Jul 10, 2026
7 checks passed
@github-actions github-actions Bot added size: L 500-999 changed non-doc lines and removed mcp mcp, jsonl, and http surfaces size: XL 1000 or more changed non-doc lines labels Jul 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci github actions and automation cli command line interface docs documentation, specs, examples, and repo guidance openclaw openclaw integration packaging packaging, build metadata, and make targets review-ui browser review ui size: L 500-999 changed non-doc lines tests tests and fixtures

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant