Skip to content

chore: promote test branch to main (desktop app + examples)#292

Merged
plind-junior merged 6 commits into
mainfrom
chore/promote-test-to-main
Jun 30, 2026
Merged

chore: promote test branch to main (desktop app + examples)#292
plind-junior merged 6 commits into
mainfrom
chore/promote-test-to-main

Conversation

@plind-junior

Copy link
Copy Markdown
Collaborator

promotes the current test branch state onto main. bundles the six commits that test carries over main:

no new code paths bypass the review gate — this is documentation, examples, and the desktop companion app. make check state is inherited from the already-merged sub-PRs (#284, #285, #290).

plind-junior and others added 6 commits June 30, 2026 11:47
adds 23 examples that together demonstrate every one of the 54 kb.* methods,
with an auditable method -> example coverage matrix in examples/README.md.

- 17 runnable flows (README.md + run.sh): each builds a throwaway KB in a temp
  dir, drives the real CLI / JSONL surface, asserts the end state, and cleans up.
  covers the review gate, dry-run preview, jsonl quickstart, search backends,
  context + synthesize, browse/read, the propose family, lifecycle, sessions +
  crystallize, graph + provenance, maintenance/health, embeddings, export/import
  bundles, audit, and scoping.
- 4 playbooks for the features that spawn external agents or hit the network
  (dual-solve, auto-pr, vault sync, install-mcp): the safe legs run, the
  dangerous command is printed with its requirements rather than executed.
- 2 conformance-level snapshots (level-0 markdown wiki, level-3 graph) in the
  existing <name>/vouch/ snapshot convention.

every run.sh was verified exit-0 against vouch 1.0.0. generic placeholder data
only (alice-example, acme-example).
docs(examples): runnable, verified examples for the full kb.* surface
brings the vouch-desktop electron app into the repo as a monorepo directory.
desktop/ is a self-contained typescript + react + vite + electron app that drives
vouch as a child process over the jsonl and review-ui transports, and never writes
durable kb state except through the review gate.

node_modules/, out/, dist/, and release/ are gitignored via desktop/.gitignore;
only source is committed (78 files). the python ci gate is unaffected — ruff,
mypy, and pytest target src/ and tests/, not desktop/.

note: this softens the repo's "buildless, no npm" guidance to "buildless python
package, with the node/vite toolchain fenced under desktop/".
feat(desktop): add the electron desktop app under desktop/ (monorepo)
the example KBs under examples/ were text-only: the READMEs told a reader
to copy a fixture and run vouch status / search / show / audit without
showing what those commands return. someone evaluating vouch on github
had to install it and load a fixture before seeing anything.

adds terminal screenshots rendered straight from the shipped fixtures:

* docs/img/examples/render.py — a stdlib-only generator. copies a fixture
  to a throwaway .vouch, runs each documented command with colour off,
  normalises the one volatile token (the absolute kb path), and renders
  the output to a self-contained terminal-style svg. svg is text, so it
  diffs cleanly in prs and re-renders byte-for-byte.
* docs/img/examples/*.svg — tiny/: status, search auth, show prop-001,
  audit. decision-log/: search free-tier and a supersession diff.
* examples/README.md, examples/tiny/README.md,
  examples/decision-log/README.md embed the images.
* make examples-screenshots regenerates them.
* tests/test_example_screenshots.py asserts the renderer is pure, escapes
  xml, and the committed svgs match a fresh render.

chose deterministic svg over the vhs/.tape path the issue suggested:
vhs needs ttyd + ffmpeg, while this needs only python + the vouch cli and
produces text-diffable output. the audit-trail shot uses tiny/ (the
fixture that ships an audit log) and the supersession shot uses
decision-log/; no fixture is modified. web review-ui and desktop gui
captures are left as a follow-up since they need a browser/electron
runtime to capture deterministically.

closes #286
docs(examples): add reproducible screenshots of the sample KBs
@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 187 files, which is 37 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 77d7995a-c445-4ddc-add3-2a572985854b

📥 Commits

Reviewing files that changed from the base of the PR and between adc7026 and b2c9eeb.

⛔ Files ignored due to path filters (11)
  • desktop/docs/screenshots/browse.png is excluded by !**/*.png
  • desktop/docs/screenshots/dashboard.png is excluded by !**/*.png
  • desktop/docs/screenshots/dual-solve.png is excluded by !**/*.png
  • desktop/docs/screenshots/review.png is excluded by !**/*.png
  • desktop/package-lock.json is excluded by !**/package-lock.json
  • docs/img/examples/decision-log-diff.svg is excluded by !**/*.svg
  • docs/img/examples/decision-log-search.svg is excluded by !**/*.svg
  • docs/img/examples/tiny-audit.svg is excluded by !**/*.svg
  • docs/img/examples/tiny-search.svg is excluded by !**/*.svg
  • docs/img/examples/tiny-show.svg is excluded by !**/*.svg
  • docs/img/examples/tiny-status.svg is excluded by !**/*.svg
📒 Files selected for processing (187)
  • CHANGELOG.md
  • Makefile
  • desktop/.gitignore
  • desktop/CHANGELOG.md
  • desktop/LICENSE
  • desktop/README.md
  • desktop/docs/architecture.md
  • desktop/docs/reports/2026-06-26.md
  • desktop/electron-builder.yml
  • desktop/electron.vite.config.ts
  • desktop/package.json
  • desktop/resources/vouch/.gitkeep
  • desktop/scripts/dev-with-vouch.ts
  • desktop/scripts/gen-methods.ts
  • desktop/src/catalog/backend.json
  • desktop/src/catalog/methods.json
  • desktop/src/main/http-client.ts
  • desktop/src/main/index.ts
  • desktop/src/main/ipc.ts
  • desktop/src/main/jsonl-client.ts
  • desktop/src/main/kb-store.ts
  • desktop/src/main/supervisor.ts
  • desktop/src/main/tray.ts
  • desktop/src/main/types.ts
  • desktop/src/main/vouch-locator.ts
  • desktop/src/preload/index.ts
  • desktop/src/renderer/index.html
  • desktop/src/renderer/src/App.tsx
  • desktop/src/renderer/src/app.css
  • desktop/src/renderer/src/components/Diff.tsx
  • desktop/src/renderer/src/components/Drawer.tsx
  • desktop/src/renderer/src/components/EmptyState.tsx
  • desktop/src/renderer/src/components/MethodCard.tsx
  • desktop/src/renderer/src/components/MethodForm.tsx
  • desktop/src/renderer/src/components/Placeholder.tsx
  • desktop/src/renderer/src/components/Rail.tsx
  • desktop/src/renderer/src/components/StatusBar.tsx
  • desktop/src/renderer/src/components/Topbar.tsx
  • desktop/src/renderer/src/components/controls/index.tsx
  • desktop/src/renderer/src/components/results/Cards.tsx
  • desktop/src/renderer/src/components/results/JsonTree.tsx
  • desktop/src/renderer/src/components/results/Renderers.tsx
  • desktop/src/renderer/src/components/results/ResultView.tsx
  • desktop/src/renderer/src/components/results/atoms.tsx
  • desktop/src/renderer/src/global.d.ts
  • desktop/src/renderer/src/lib/VouchContext.tsx
  • desktop/src/renderer/src/lib/client.ts
  • desktop/src/renderer/src/lib/format.ts
  • desktop/src/renderer/src/lib/useOnOpen.tsx
  • desktop/src/renderer/src/lib/useVouchEvents.ts
  • desktop/src/renderer/src/main.tsx
  • desktop/src/renderer/src/views/Dashboard.tsx
  • desktop/src/renderer/src/views/DualSolve.tsx
  • desktop/src/renderer/src/views/GenericView.tsx
  • desktop/src/renderer/src/views/Review.tsx
  • desktop/src/renderer/src/views/blurbs.ts
  • desktop/src/renderer/src/views/registry.tsx
  • desktop/src/shared/ipc.ts
  • desktop/src/shared/methods.gen.ts
  • desktop/src/shared/methods.types.ts
  • desktop/test/catalog.test.ts
  • desktop/test/controls.test.tsx
  • desktop/test/gen-methods.test.ts
  • desktop/test/http-client.test.ts
  • desktop/test/jsonl-client.test.ts
  • desktop/test/method-card.test.tsx
  • desktop/test/method-form.test.tsx
  • desktop/test/method-gate.test.ts
  • desktop/test/smoke-jsonl.ts
  • desktop/test/vouch-locator.test.ts
  • desktop/tsconfig.json
  • desktop/tsconfig.node.json
  • desktop/tsconfig.scripts.json
  • desktop/tsconfig.web.json
  • desktop/vitest.config.ts
  • docs/img/examples/render.py
  • examples/README.md
  • examples/audit-timeline/README.md
  • examples/audit-timeline/run.sh
  • examples/browse-and-read/README.md
  • examples/browse-and-read/run.sh
  • examples/context-and-synthesize/README.md
  • examples/context-and-synthesize/run.sh
  • examples/decision-log/README.md
  • examples/embeddings-suite/README.md
  • examples/embeddings-suite/run.sh
  • examples/export-import-bundle/README.md
  • examples/export-import-bundle/run.sh
  • examples/graph-and-provenance/README.md
  • examples/graph-and-provenance/run.sh
  • examples/jsonl-quickstart/README.md
  • examples/jsonl-quickstart/run.sh
  • examples/level-0-markdown-wiki/README.md
  • examples/level-0-markdown-wiki/vouch/.gitignore
  • examples/level-0-markdown-wiki/vouch/audit.log.jsonl
  • examples/level-0-markdown-wiki/vouch/config.yaml
  • examples/level-0-markdown-wiki/vouch/decided/20260630-022916-d3df5b0d.yaml
  • examples/level-0-markdown-wiki/vouch/decided/20260630-022917-09694280.yaml
  • examples/level-0-markdown-wiki/vouch/decided/20260630-022917-fb42862e.yaml
  • examples/level-0-markdown-wiki/vouch/pages/local-development-setup.md
  • examples/level-0-markdown-wiki/vouch/pages/onboarding-a-new-engineer-at-acme-example.md
  • examples/level-0-markdown-wiki/vouch/pages/team-glossary.md
  • examples/level-0-markdown-wiki/vouch/schema_version
  • examples/level-3-graph/README.md
  • examples/level-3-graph/vouch/audit.log.jsonl
  • examples/level-3-graph/vouch/claims/billing-service-depends-on-postgres-billing-for-all-durable-.yaml
  • examples/level-3-graph/vouch/claims/every-charge-endpoint-write-must-carry-an-idempotency-key-st.yaml
  • examples/level-3-graph/vouch/claims/incident-247-was-caused-by-a-missing-idempotency-key-on-the-.yaml
  • examples/level-3-graph/vouch/claims/ledger-api-owns-the-billing-service-and-is-maintained-by-pla.yaml
  • examples/level-3-graph/vouch/claims/vouch-starter-reviewed-knowledge.yaml
  • examples/level-3-graph/vouch/config.yaml
  • examples/level-3-graph/vouch/decided/20260630-023139-c828c6f8.yaml
  • examples/level-3-graph/vouch/decided/20260630-023139-cf6d0af3.yaml
  • examples/level-3-graph/vouch/decided/20260630-023140-1e3d7db1.yaml
  • examples/level-3-graph/vouch/decided/20260630-023140-695e854e.yaml
  • examples/level-3-graph/vouch/decided/20260630-023140-7636854d.yaml
  • examples/level-3-graph/vouch/decided/20260630-023141-7c4fe7d4.yaml
  • examples/level-3-graph/vouch/decided/20260630-023142-c45a0491.yaml
  • examples/level-3-graph/vouch/decided/20260630-023143-046b20d5.yaml
  • examples/level-3-graph/vouch/decided/20260630-023143-06df4acf.yaml
  • examples/level-3-graph/vouch/decided/20260630-023143-b576a486.yaml
  • examples/level-3-graph/vouch/decided/20260630-023145-d9ca6c82.yaml
  • examples/level-3-graph/vouch/decided/20260630-023146-862c90f3.yaml
  • examples/level-3-graph/vouch/decided/20260630-023146-c87bc35b.yaml
  • examples/level-3-graph/vouch/decided/20260630-023146-e408e51f.yaml
  • examples/level-3-graph/vouch/decided/20260630-023147-4f7c23ef.yaml
  • examples/level-3-graph/vouch/decided/20260630-023147-e25bf2df.yaml
  • examples/level-3-graph/vouch/decided/20260630-023150-09c4c5bb.yaml
  • examples/level-3-graph/vouch/decided/20260630-023150-682c8fb4.yaml
  • examples/level-3-graph/vouch/decided/20260630-023150-732a4743.yaml
  • examples/level-3-graph/vouch/decided/20260630-023150-f2cbafde.yaml
  • examples/level-3-graph/vouch/decided/20260630-023150-f77df0fc.yaml
  • examples/level-3-graph/vouch/decided/20260630-023151-33b26a95.yaml
  • examples/level-3-graph/vouch/entities/billing-service.yaml
  • examples/level-3-graph/vouch/entities/idempotency-keys.yaml
  • examples/level-3-graph/vouch/entities/incident-247.yaml
  • examples/level-3-graph/vouch/entities/ledger-api.yaml
  • examples/level-3-graph/vouch/entities/platform-team.yaml
  • examples/level-3-graph/vouch/entities/postgres-billing.yaml
  • examples/level-3-graph/vouch/pages/billing-platform-overview.md
  • examples/level-3-graph/vouch/pages/edit-in-obsidian.md
  • examples/level-3-graph/vouch/pages/idempotency-keys.md
  • examples/level-3-graph/vouch/relations/billing-service-depends-on-postgres-billing.yaml
  • examples/level-3-graph/vouch/relations/billing-service-owned-by-ledger-api.yaml
  • examples/level-3-graph/vouch/relations/idempotency-keys-depends-on-postgres-billing.yaml
  • examples/level-3-graph/vouch/relations/idempotency-keys-implements-billing-service.yaml
  • examples/level-3-graph/vouch/relations/incident-247-caused-by-idempotency-keys.yaml
  • examples/level-3-graph/vouch/relations/ledger-api-owned-by-platform-team.yaml
  • examples/level-3-graph/vouch/schema_version
  • examples/level-3-graph/vouch/sources/294d6209814a465c62e43a6acdbf7a90323649bfba5eae6dcc0fc7db0b3dcd09/content
  • examples/level-3-graph/vouch/sources/294d6209814a465c62e43a6acdbf7a90323649bfba5eae6dcc0fc7db0b3dcd09/meta.yaml
  • examples/level-3-graph/vouch/sources/511434079b5d91900c46d7eeaccd2fbb883a47a6632337b4a8420f18edc0a4ff/content
  • examples/level-3-graph/vouch/sources/511434079b5d91900c46d7eeaccd2fbb883a47a6632337b4a8420f18edc0a4ff/meta.yaml
  • examples/level-3-graph/vouch/sources/767fad9400fac95d7c0f8e548ae0fdec2ff26945613b16dab0e3f75f7f78c496/content
  • examples/level-3-graph/vouch/sources/767fad9400fac95d7c0f8e548ae0fdec2ff26945613b16dab0e3f75f7f78c496/meta.yaml
  • examples/level-3-graph/vouch/sources/be7aec64b0fc803a33cb3d610f67ae95e636877db20231ef72440a7cbe6b69d2/content
  • examples/level-3-graph/vouch/sources/be7aec64b0fc803a33cb3d610f67ae95e636877db20231ef72440a7cbe6b69d2/meta.yaml
  • examples/lifecycle-expire-and-reject-extracted/README.md
  • examples/lifecycle-expire-and-reject-extracted/run.sh
  • examples/lifecycle-supersede-contradict/README.md
  • examples/lifecycle-supersede-contradict/run.sh
  • examples/maintenance-health/README.md
  • examples/maintenance-health/run.sh
  • examples/playbook-auto-pr/README.md
  • examples/playbook-auto-pr/run.sh
  • examples/playbook-dual-solve/README.md
  • examples/playbook-dual-solve/run.sh
  • examples/playbook-install-mcp/README.md
  • examples/playbook-install-mcp/run.sh
  • examples/playbook-vault-sync/README.md
  • examples/playbook-vault-sync/run.sh
  • examples/propose-family/README.md
  • examples/propose-family/run.sh
  • examples/provenance-graph-export/README.md
  • examples/provenance-graph-export/run.sh
  • examples/review-gate-dry-run-preview/README.md
  • examples/review-gate-dry-run-preview/run.sh
  • examples/review-gate-flow/README.md
  • examples/review-gate-flow/run.sh
  • examples/scoping-and-visibility/README.md
  • examples/scoping-and-visibility/run.sh
  • examples/search-backends/README.md
  • examples/search-backends/run.sh
  • examples/sessions-and-crystallize/README.md
  • examples/sessions-and-crystallize/run.sh
  • examples/tiny/README.md
  • tests/test_example_screenshots.py

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 chore/promote-test-to-main

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 packaging packaging, build metadata, and make targets tests tests and fixtures size: XL 1000 or more changed non-doc lines labels Jun 30, 2026
@plind-junior plind-junior merged commit 94e84b1 into main Jun 30, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs documentation, specs, examples, and repo guidance packaging packaging, build metadata, and make targets size: XL 1000 or more changed non-doc lines tests tests and fixtures

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants