Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
128 commits
Select commit Hold shift + click to select a range
ea086eb
Merge pull request #25 from alpurkan17/fix/jsonl-search-backend-label-14
plind-junior May 19, 2026
0f08817
Merge pull request #26 from alpurkan17/fix/artifact-id-collision-12
plind-junior May 19, 2026
abf9c8f
Merge pull request #27 from dripsmvcp/fix/11-approve-idempotent-artif…
plind-junior May 19, 2026
4bae34b
fix(server): block path traversal in register_source_from_path
dripsmvcp May 19, 2026
b48b404
fix(cli): translate domain errors into clean ClickException output
dripsmvcp May 19, 2026
2a439a5
chore(lint): chain FileExistsError cause in storage put_ methods
dripsmvcp May 19, 2026
1cb329f
fix(verify): catch ArtifactNotFoundError and OSError on stored read
dripsmvcp May 19, 2026
129480f
chore(ci): unblock lint/type/test gates so the CLI fix can land
dripsmvcp May 20, 2026
d3881ef
chore(ci): unblock mypy + test gates for path-traversal PR
dripsmvcp May 20, 2026
8a09295
fix(server): close TOCTOU window between path check and read
dripsmvcp May 20, 2026
9a88018
Merge pull request #28 from dripsmvcp/fix/10-register-source-path-tra…
plind-junior May 20, 2026
784a7b5
chore(lint): chain FileExistsError cause in storage put_ methods
dripsmvcp May 19, 2026
df508a5
chore(ci): unblock mypy + test gates for path-traversal PR
dripsmvcp May 20, 2026
736ad06
Merge branch 'main' into fix/verify-exception-30
alpurkan17 May 20, 2026
c1feb23
Merge pull request #31 from dripsmvcp/fix/cli-clean-domain-errors
plind-junior May 20, 2026
18cf531
Merge pull request #24 from bittoby/fix/issue-9-bundle-path-traversal
plind-junior May 20, 2026
a6f1c3c
Merge pull request #32 from dripsmvcp/fix/30-verify-source-exception
plind-junior May 20, 2026
056e88c
Merge pull request #33 from alpurkan17/fix/verify-exception-30
plind-junior May 20, 2026
a3c24a4
docs: add banner diagram to README
plind-junior May 20, 2026
23f504f
docs(spec): semantic search as primary retrieval backend
dripsmvcp May 20, 2026
2206cb3
docs(plan): semantic search implementation plan
dripsmvcp May 20, 2026
b3795e5
feat(embeddings): add optional-deps extras and pytest markers
dripsmvcp May 20, 2026
8659b75
feat(embeddings): create package skeleton
dripsmvcp May 20, 2026
5a00683
feat(embeddings): Embedder ABC, registry, content_hash, MockEmbedder
dripsmvcp May 20, 2026
3536e0f
feat(embeddings): sentence-transformers all-mpnet-base-v2 default ada…
dripsmvcp May 20, 2026
9fb6f0c
feat(embeddings): sentence-transformers MiniLM-L6 alternative adapter
dripsmvcp May 20, 2026
84ab0ac
feat(embeddings): fastembed BGE alternative (no-torch) adapter
dripsmvcp May 20, 2026
02ed5d1
fix(ci): satisfy ruff SIM105 + add mypy overrides for optional deps
dripsmvcp May 20, 2026
dbe52ce
fix(ci): skip embeddings test suite when numpy isn't installed
dripsmvcp May 20, 2026
2e3ef76
fix(bundle): skip Pydantic validation for opaque source content files
dripsmvcp May 20, 2026
7a7951f
fix(embeddings): MockEmbedder uses uint32 scaling to avoid NaN/Inf
dripsmvcp May 20, 2026
2abce16
feat(embeddings): state.db schema for embedding storage + put/get hel…
dripsmvcp May 20, 2026
d36b2e8
feat(embeddings): NumPy brute-force cosine search over embedding_index
dripsmvcp May 20, 2026
b769dab
feat(embeddings): sqlite-vec ANN path with NumPy fallback
dripsmvcp May 20, 2026
c6b0e8b
feat(embeddings): query embedding LRU cache
dripsmvcp May 20, 2026
3722ee4
style: fix ruff E402/SIM105/E702/I001 violations from Phase 2 storage…
dripsmvcp May 20, 2026
d51474b
fix(embeddings): use outer-query for WHERE on cosine alias in search_…
dripsmvcp May 20, 2026
3612f0b
feat(embeddings): write-time embedding hook + wire put_claim
dripsmvcp May 20, 2026
807c326
feat(embeddings): search_semantic wrapper with query cache
dripsmvcp May 20, 2026
f7c3c89
feat(embeddings): hook all six artifact write paths
dripsmvcp May 20, 2026
062c149
feat(embeddings): kb_search defaults to embedding primary, fts5 fallback
dripsmvcp May 20, 2026
d3bee3b
feat(embeddings): re-embed on update_claim
dripsmvcp May 20, 2026
f5c2a95
feat(embeddings): JSONL _h_search parity with MCP semantic-primary di…
dripsmvcp May 20, 2026
b7e333a
style: fix ruff SIM105/E501/I001/RUF059 violations from Phase 3
dripsmvcp May 20, 2026
9cfdf78
fix(ci): silence mypy import-untyped for forward-ref fusion import
dripsmvcp May 20, 2026
1c2dc21
fix(ci): silence mypy import-untyped for forward-ref dedup import
dripsmvcp May 20, 2026
3c9108e
Merge pull request #37 from dripsmvcp/feat/semantic-search
plind-junior May 20, 2026
7ab35e9
spec: cut dated 2026-05-21 snapshot; promote schema generator to script
plind-junior May 20, 2026
9e77d51
ci(mypy): collapse fusion import to single line for type-ignore
dripsmvcp May 21, 2026
f6b8427
feat(embeddings): RRF/weighted/normalized fusion strategies
dripsmvcp May 20, 2026
a63603b
Merge pull request #38 from dripsmvcp/feat/semantic-search-phase-2-st…
plind-junior May 21, 2026
0e9ff56
Merge pull request #39 from dripsmvcp/feat/semantic-search-phase-3-wr…
plind-junior May 21, 2026
3417da8
Merge pull request #40 from dripsmvcp/feat/semantic-search-phase-4-re…
plind-junior May 21, 2026
45dd293
docs: add 'What ships today' table to README
plind-junior May 21, 2026
86808bd
kb: approve review-gate fact
plind-junior May 21, 2026
75406c6
docs: add 'When to use vouch' section
plind-junior May 21, 2026
3ba9088
fix(cli): honor VOUCH_AGENT in _whoami for consistent actor attribution
plind-junior May 21, 2026
c1cadc6
docs: add captured example session walkthrough
plind-junior May 21, 2026
cbe911b
docs: add screen recording of full vouch loop (VHS tape + GIF)
plind-junior May 21, 2026
98e4e18
docs: embed demo GIF under Quick start in README
plind-junior May 21, 2026
1f1eeb8
fix(embeddings): address CodeRabbit review on hybrid + fusion + write…
plind-junior May 21, 2026
abf0620
Merge pull request #41 from dripsmvcp/feat/semantic-search-phase-5-fu…
plind-junior May 21, 2026
cef1664
fix(lifecycle): only catch missing-artifact errors in cite()
plind-junior May 21, 2026
bc719aa
fix(context): only catch missing-artifact errors in citation lookup
plind-junior May 21, 2026
0f3ffc4
refactor(sessions): keep tracebacks when crystallize() approve fails
plind-junior May 21, 2026
c095ff3
fix(context): only catch sqlite errors when FTS5 falls back
plind-junior May 21, 2026
781fa8e
refactor(health): use typed status filter for pending proposal count
plind-junior May 21, 2026
d416e65
chore(capabilities): pin pluginApi compat baseline, fail CI on host-c…
Tet-9 Jun 21, 2026
45f32c2
feat(dual-solve): surface engine logs
plind-junior Jun 26, 2026
0f9687e
fix(sessions): make crystallize retry idempotent for summary pages
Yaroslav98214 Jun 21, 2026
536c4ce
fix(models): reject empty text/name/title on claim/entity/page
minion1227 Jul 1, 2026
89815c0
refactor(models): extract shared _require_non_empty validator helper
minion1227 Jul 1, 2026
96ea554
fix: resolve RPC traceback leakage on internal errors
RealDiligent Jul 5, 2026
24c55c2
feat(review): kb.triage_pending — advisory triage scoring for the pen…
jsdevninja Jul 3, 2026
f2b554c
feat(diff): register kb.diff at all four kb.* surface sites
jsdevninja Jul 3, 2026
68c0ea5
Merge pull request #361 from RealDiligent/fix/critical-issue-rpc-trac…
plind-junior Jul 6, 2026
9b280f6
Merge pull request #300 from minion1227/minion_155
plind-junior Jul 6, 2026
b4fd469
fix(jsonl): define module logger after the import block
dripsmvcp Jul 6, 2026
1a3f1c3
feat(adapters): toml_merge install strategy for codex config.toml
dripsmvcp Jul 6, 2026
2982a6c
Merge pull request #344 from jsdevninja/feat/327-kb-diff-parity
plind-junior Jul 6, 2026
7327e3f
Merge pull request #345 from jsdevninja/feat/322-triage-pending
plind-junior Jul 6, 2026
628c733
feat(adapters): codex T2 agents.md fenced snippet
dripsmvcp Jul 6, 2026
109a3a3
feat(adapters): codex T3 skills mirroring the vouch slash commands
dripsmvcp Jul 6, 2026
0eb7917
feat(capture): ingest codex session rollouts into review-gated summaries
dripsmvcp Jul 6, 2026
453869f
Merge pull request #392 from dripsmvcp/feat/codex-toml-merge
plind-junior Jul 6, 2026
6eaba12
Merge pull request #393 from dripsmvcp/feat/codex-agents-snippet
plind-junior Jul 6, 2026
e2acd6c
Merge pull request #394 from dripsmvcp/feat/codex-skills
plind-junior Jul 6, 2026
87b4a5e
Merge pull request #395 from dripsmvcp/feat/codex-ingest
plind-junior Jul 6, 2026
cca0269
Merge branch 'test' into feat/dual-solve-engine-logs
plind-junior Jul 6, 2026
bc57c11
Merge pull request #278 from vouchdev/feat/dual-solve-engine-logs
plind-junior Jul 6, 2026
79ed4c1
feat(adapters): codex T4 hook wiring for automatic session capture
dripsmvcp Jul 6, 2026
363bfd8
Merge pull request #256 from Yurii214/fix/139-crystallize-retry-idemp…
plind-junior Jul 6, 2026
f8020a2
test(adapters): live codex install gate against the real cli
dripsmvcp Jul 6, 2026
4b93764
docs(adapters): codex adapter docs reflect the tiered install
dripsmvcp Jul 6, 2026
1c7971b
Merge pull request #257 from Tet-9/chore/237-host-compat-baseline
plind-junior Jul 6, 2026
d323635
Merge pull request #396 from dripsmvcp/feat/codex-capture-hook
plind-junior Jul 6, 2026
72813eb
Merge pull request #397 from dripsmvcp/test/codex-live-gate
plind-junior Jul 6, 2026
2fb255a
Merge pull request #398 from dripsmvcp/docs/codex-adapter-refresh
plind-junior Jul 6, 2026
1ac6cbb
docs(mcp): design a friendlier mcp surface — profiles + auto-recall
plind-junior Jul 7, 2026
b14cf06
docs(mcp): plan the friendlier-mcp-surface build
plind-junior Jul 7, 2026
add870f
feat(mcp): add tool profiles, expose a minimal surface by default
plind-junior Jul 7, 2026
de6310e
fix(mcp): harden profile resolution against a non-dict config section
plind-junior Jul 7, 2026
cb291fd
test(capabilities): assert mcp tool set matches the method list
plind-junior Jul 7, 2026
a13cbfc
feat(retrieval): fuse embedding + fts5 by default instead of a waterfall
plind-junior Jul 7, 2026
356c3a3
fix(volunteer): treat hybrid relevance as rank-relative, not pre-norm…
plind-junior Jul 7, 2026
3cbf712
feat(retrieval): drop near-duplicate items from the context pack
plind-junior Jul 7, 2026
1468a7e
fix(retrieval): dedupe by score so the highest-scored near-dup wins
plind-junior Jul 7, 2026
f698fd0
feat(hooks): inject per-prompt kb context via a userpromptsubmit hook
plind-junior Jul 7, 2026
63333c4
fix(hooks): never raise on non-dict payload or missing kb
plind-junior Jul 7, 2026
c33b48e
feat(mcp): serve one-line tool descriptions under non-full profiles
plind-junior Jul 7, 2026
6ea2a94
docs(mcp): document tool profiles
plind-junior Jul 7, 2026
0cf6b29
fix(retrieval): dedupe by score but keep caller order for the pack
plind-junior Jul 7, 2026
6246363
docs(changelog): note minimal mcp profile, fusion, auto-recall
plind-junior Jul 7, 2026
f433975
chore(merge): integrate friendlier-mcp-surface into test
plind-junior Jul 7, 2026
c5c5282
docs(readme): note the fourth hook, per-prompt recall, and lean mcp p…
plind-junior Jul 7, 2026
7e68098
fix(capabilities): read openclaw.compat from package.json (#417)
plind-junior Jul 7, 2026
bb06565
chore(repo): untrack owner-local web/ and .claude/ (#413)
plind-junior Jul 7, 2026
2ddd1f9
chore(merge): integrate main into test branch
plind-junior Jul 7, 2026
b72ac59
chore(merge): integrate origin/test updates
plind-junior Jul 7, 2026
4f52d9b
chore(merge): resolve changelog and version conflicts with main
plind-junior Jul 7, 2026
719b8e9
chore(merge): update changelog to resolve merge conflicts
plind-junior Jul 7, 2026
3b649ff
chore(merge): update to main's latest versions for clean merge
plind-junior Jul 7, 2026
1625b16
docs(readme): restore incubated by gittensor acknowledgment
plind-junior Jul 7, 2026
b8d2e66
chore: remove banner.svg and its reference in README
plind-junior Jul 7, 2026
e52ecd0
chore: remove desktop, spec, migrations dirs and pre-commit config
plind-junior Jul 7, 2026
233a1d1
chore(merge): resolve conflicts by taking test branch version
plind-junior Jul 7, 2026
571a11d
fix(ci): restore missing storage and context constants
plind-junior Jul 7, 2026
45f63da
fix(ci): restore coherent backing modules to match callers
plind-junior Jul 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions .github/workflows/security-audit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: security-audit

# Non-blocking dependency vulnerability scan (pip-audit). Runs weekly so
# newly-disclosed advisories surface without waiting for a push, plus on
# any change to the dependency set, plus on demand. continue-on-error
# keeps a fresh CVE from turning the tree red — triage it, don't gate on
# it. (the blocking gates are ci.yml / schema-check.yml / eval.yml.)
on:
schedule:
- cron: "0 6 * * 1" # mondays 06:00 utc
pull_request:
paths:
- "pyproject.toml"
- ".github/workflows/security-audit.yml"
workflow_dispatch:

permissions:
contents: read

jobs:
audit:
name: pip-audit
runs-on: ubuntu-latest
timeout-minutes: 15
continue-on-error: true
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: pip

- name: install
run: |
python -m pip install --upgrade pip pip-audit
pip install -e .

- name: audit
run: pip-audit --desc
13 changes: 0 additions & 13 deletions .pre-commit-config.yaml

This file was deleted.

93 changes: 93 additions & 0 deletions .vouch/captures/1218169c-de25-48f4-bd93-70ff77d2fda2.jsonl

Large diffs are not rendered by default.

19 changes: 19 additions & 0 deletions .vouch/captures/5720220c-b77c-4947-aeec-9d6ef91d70b8.jsonl
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{"cmd": "gh pr view 418 --json number,title,headRefName,baseRefName,state,statusCheckRollup", "summary": "Ran: gh pr view 418 --json number,title,headRefName,baseRefName,s", "tool": "Bash", "ts": 1783423093.927102}
{"cmd": "gh pr view 418 --json mergeStateStatus", "summary": "Ran: gh pr view 418 --json mergeStateStatus", "tool": "Bash", "ts": 1783423099.6623337}
{"cmd": "git fetch origin test && git show origin/test --stat | head -20", "summary": "Command failed: git fetch origin test && git show origin/test --stat | head ", "tool": "Bash", "ts": 1783423108.4746783}
{"cmd": "git merge-base origin/main origin/test && git diff origin/main...origin/test --name-only", "summary": "Ran: git merge-base origin/main origin/test && git diff origin/ma", "tool": "Bash", "ts": 1783423112.3211405}
{"cmd": "git switch test 2>&1 || true", "summary": "Command failed: git switch test 2>&1 || true", "tool": "Bash", "ts": 1783423115.6308467}
{"cmd": "\n# Back up local artifacts\nmkdir -p /tmp/vouch-local-backup\nmv .claude/commands .claude/settings.json web /tmp/vouch-local-backup/ 2>/dev/null || true\n\n# Now switch to test branch\ngit switch test\n", "summary": "Ran: ", "tool": "Bash", "ts": 1783423121.803357}
{"cmd": "git merge --abort", "summary": "Ran: git merge --abort", "tool": "Bash", "ts": 1783423136.2827957}
{"cmd": "echo \"=== Last 5 commits on test ===\" && git log --oneline -5 && echo -e \"\\n=== Last 5 commits on main ===\" && git log --oneline -5 origin/main", "summary": "Ran: echo \"=== Last 5 commits on test ===\" && git log --oneline -", "tool": "Bash", "ts": 1783423158.2759066}
{"cmd": "git log --oneline origin/main..test | head -20", "summary": "Ran: git log --oneline origin/main..test | head -20", "tool": "Bash", "ts": 1783423164.307516}
{"cmd": "git status", "summary": "Ran: git status", "tool": "Bash", "ts": 1783423223.8349576}
{"cmd": "git merge --abort", "summary": "Ran: git merge --abort", "tool": "Bash", "ts": 1783423233.6671906}
{"cmd": "\ngit diff CHANGELOG.md | head -100\n", "summary": "Ran: ", "tool": "Bash", "ts": 1783423621.2922633}
{"cmd": "grep -n \"^<<<<<<< \\|^======= \\|^>>>>>>>\" CHANGELOG.md", "summary": "Ran: grep -n \"^<<<<<<< \\|^======= \\|^>>>>>>>\" CHANGELOG.md", "tool": "Bash", "ts": 1783423624.135201}
{"cmd": "git diff --name-only --diff-filter=U", "summary": "Ran: git diff --name-only --diff-filter=U", "tool": "Bash", "ts": 1783423626.975001}
{"cmd": "git status", "summary": "Ran: git status", "tool": "Bash", "ts": 1783423629.8912878}
{"cmd": "\ngit fetch origin && \\\ngit checkout -b final-test origin/main && \\\ngit merge --no-ff --no-commit origin/resolve-conflicts 2>&1 | head -5 && \\\necho \"---\" && \\\ngit status | grep -E \"nothing to commit|wo", "summary": "Ran: ", "tool": "Bash", "ts": 1783423765.7631629}
{"cmd": "\ngit merge --abort\ngit log --oneline origin/main..origin/resolve-conflicts\n", "summary": "Command failed: ", "tool": "Bash", "ts": 1783423776.9763196}
{"cmd": "\ngit fetch origin main && \\\ngit checkout -b final-check origin/main && \\\ngit merge --no-commit --no-ff origin/test && \\\necho \"\u2705 MERGE SUCCEEDS CLEANLY\" && \\\ngit merge --abort\n", "summary": "Ran: ", "tool": "Bash", "ts": 1783424451.3126318}
{"cmd": "git merge --abort", "summary": "Ran: git merge --abort", "tool": "Bash", "ts": 1783424561.0509841}
Loading
Loading