Skip to content
Open

Test #420

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
157 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
d6e4e37
docs(contributing): require webapp screenshots for user-facing changes
plind-junior Jul 7, 2026
034b00b
docs(contributing): require webapp screenshots for user-facing changes
plind-junior Jul 7, 2026
661b59c
Merge branch 'main' into test
plind-junior Jul 7, 2026
ef4b6c9
feat(webapp): vendor vouch-ui console with delete/clear/archive ui (#…
plind-junior Jul 9, 2026
5f2c03e
docs(spec): design host-neutral session-split summaries
plind-junior Jul 8, 2026
880f3b5
docs(plan): session-split summaries implementation plan
plind-junior Jul 8, 2026
bfd56f9
refactor(compile): extract shared llm drafting into llm_draft
plind-junior Jul 8, 2026
1465946
feat(session-split): add SplitConfig loaded from capture.split
plind-junior Jul 8, 2026
146c42d
refactor(capture): route finalize through session_split.summarize
plind-junior Jul 8, 2026
b081bb9
feat(session-split): llm topical split for large sessions
plind-junior Jul 8, 2026
99a4393
feat(session-split): expose kb.summarize_session across surfaces
plind-junior Jul 8, 2026
29d9745
feat(sessions): add kb.list_sessions for the review-pipeline view
plind-junior Jul 8, 2026
0246038
feat(sessions): llm-narrate a filed mechanical summary in place
plind-junior Jul 8, 2026
0b6245f
docs(delete): spec review-gated artifact delete
plind-junior Jul 8, 2026
b5d46b8
docs(delete): correct relation index facts in delete spec
plind-junior Jul 8, 2026
b6fa83c
docs(delete): add artifact-delete implementation plan
plind-junior Jul 8, 2026
c515f2a
feat(delete): add pure-io storage delete_* for four kinds
plind-junior Jul 8, 2026
74f134c
feat(delete): add index_db.deindex for removed artifacts
plind-junior Jul 8, 2026
22764dc
feat(delete): add ProposalKind.DELETE and referenced_by matrix
plind-junior Jul 8, 2026
9502c45
feat(delete): add proposals.propose_delete
plind-junior Jul 8, 2026
df184c3
feat(delete): execute delete proposals through approve()
plind-junior Jul 8, 2026
34c5a13
feat(delete): expose kb.propose_delete across all surfaces
plind-junior Jul 8, 2026
6eb34bf
fix(delete): align kb_propose_delete mcp tool with siblings
plind-junior Jul 8, 2026
0a9e4db
fix(delete): deindex on idempotent approve path + audit polish
plind-junior Jul 9, 2026
efb7eb5
feat(demo): dual-path LLM configuration for session capture or direct…
plind-junior Jul 9, 2026
bb8335f
feat(claims): bulk clear for auto-approved claims (#433) (#434)
dripsmvcp Jul 10, 2026
02bcd3a
feat(webapp): console dashboard driven by kb.activity (#454)
plind-junior Jul 10, 2026
8e74ca9
feat(console): serve the react web console from the installed package…
plind-junior Jul 10, 2026
b0674f1
Demo update (#455)
plind-junior Jul 10, 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
8 changes: 8 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,13 @@ tests
benchmarks
skills
proposals
# webapp/ is copied by demo/Dockerfile — ship only its source, never the
# host's node_modules (breaks cross-arch: npm ci reinstalls in-image) or the
# generated dist/. The root vouch image ignores webapp entirely.
webapp/node_modules
webapp/dist
webapp/test-results
webapp/playwright-report
webapp/.superpowers
**/__pycache__
**/*.py[cod]
11 changes: 10 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,20 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Build the React console so the wheel can bundle it as vouch/web/console
# (hatch_build.py force-includes webapp/dist when present).
- uses: actions/setup-node@v4
with:
node-version: "20"
- run: npm --prefix webapp ci && npm --prefix webapp run build
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: python -m pip install --upgrade build
- run: python -m build
# sdist is source-only; the wheel is built from the working tree (not the
# sdist) so the freshly-built, gitignored webapp/dist rides inside it.
- run: python -m build --sdist
- run: python -m build --wheel
- uses: actions/upload-artifact@v7
with:
name: dist
Expand Down
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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect the workflow and nearby workflow settings.
sed -n '1,220p' .github/workflows/security-audit.yml

echo
echo "----"
# Look for token/permissions settings in this workflow and related workflows.
rg -n "persist-credentials|permissions:|checkout@v4|pip-audit|pull_request|workflow_dispatch|schedule" .github/workflows -S

Repository: vouchdev/vouch

Length of output: 4157


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Inspect packaging metadata to see what the editable install can execute.
sed -n '1,220p' pyproject.toml

echo
echo "----"
# Find any setup.py or build backend files that might run during install.
git ls-files | rg '(^|/)(setup\.py|setup\.cfg|pyproject\.toml|setup_hooks|build\.py)$' -n

Repository: vouchdev/vouch

Length of output: 4149


Disable persisted checkout credentials.

actions/checkout stores the token in local git config by default. This workflow installs PR-controlled code, so leaving it there is unnecessary exposure; set persist-credentials: false.

🔧 Proposed fix
       - uses: actions/checkout@v4
+        with:
+          persist-credentials: false
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
persist-credentials: false
🧰 Tools
🪛 zizmor (1.26.1)

[warning] 27-27: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/security-audit.yml at line 27, The security-audit workflow
is using actions/checkout with default persisted credentials, which leaves the
token stored in local git config unnecessarily. Update the checkout step in the
workflow to disable credential persistence by setting persist-credentials to
false on the actions/checkout@v4 step so the PR-controlled code cannot reuse the
token.

Source: Linters/SAST tools


- 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
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,5 @@ build/
# and adapters/claude-code/.claude stay tracked)
/web/
/.claude/
.vouch
docs
13 changes: 0 additions & 13 deletions .pre-commit-config.yaml

This file was deleted.

18 changes: 18 additions & 0 deletions .vouch/audit.log.jsonl
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,21 @@
{"actor":"a","created_at":"2026-05-21T06:05:54.067884Z","data":{},"dry_run":false,"event":"source.add","id":"0b451622d85246089a1d04c45d56c007","object_ids":["67478e72acfb8fac3a059143e95c95f5cc6f7e8d4dccc05fbcea8dbccb8a4eba"],"reversible":true}
{"actor":"a","created_at":"2026-05-21T06:06:58.649209Z","data":{},"dry_run":false,"event":"source.add","id":"b72feb84d842486490bb7616c616a08c","object_ids":["67478e72acfb8fac3a059143e95c95f5cc6f7e8d4dccc05fbcea8dbccb8a4eba"],"reversible":true}
{"actor":"a","created_at":"2026-05-21T06:07:08.973490Z","data":{"slug_hint":"vouch-enforces-a-review-gate-on-agent-writes"},"dry_run":false,"event":"proposal.claim.create","id":"9ef38f6a9d8c4e02ad3fd196c49bcc6f","object_ids":["20260521-060708-2b81cdab"],"reversible":true}
{"actor":"vouch-capture","created_at":"2026-07-10T06:51:08.777382Z","data":{"slug_hint":"session-71-file-s"},"dry_run":false,"event":"proposal.page.create","hash":"76845f95a24cc02ab36c491b8b121340d21291954e35d52a960bbebc85e30cdc","id":"d7b136387184484e8811038ab33cf68b","object_ids":["20260710-065108-54f0c393"],"prev_hash":"0000000000000000000000000000000000000000000000000000000000000000","reversible":true}
{"actor":"session-split","created_at":"2026-07-10T06:53:35.234458Z","data":{"slug_hint":"scaffolded-inbounds-detection-engine-package-with-typescript"},"dry_run":false,"event":"proposal.page.create","hash":"6d65bcafe2c0f48f78ea5a8b52d76a924e49d80d9195b928cda6ae3a2dd6bb3b","id":"b1d08c345681419297ce580018ae4a6c","object_ids":["20260710-065335-f6053bee"],"prev_hash":"76845f95a24cc02ab36c491b8b121340d21291954e35d52a960bbebc85e30cdc","reversible":true}
{"actor":"session-split","created_at":"2026-07-10T06:53:35.239312Z","data":{"slug_hint":"defined-core-domain-types-and-initial-type-level-test-covera"},"dry_run":false,"event":"proposal.page.create","hash":"c99d094fed530bed419a65cec72c63a515910cf0761aa69ef3bb2a76be4b5e14","id":"709f36729bd84a94a9d260d71eeeab24","object_ids":["20260710-065335-bc8ede6c"],"prev_hash":"6d65bcafe2c0f48f78ea5a8b52d76a924e49d80d9195b928cda6ae3a2dd6bb3b","reversible":true}
{"actor":"session-split","created_at":"2026-07-10T06:53:35.242918Z","data":{"slug_hint":"built-the-github-adapter-layer-fetch-normalize-handle-action"},"dry_run":false,"event":"proposal.page.create","hash":"ac62f3954014810ff07fa2fc80a8852ae8c10571015b80c5318092dd2bb1ff08","id":"f4110c94f0404fc5b7be15e8cb8f6c56","object_ids":["20260710-065335-a882803f"],"prev_hash":"c99d094fed530bed419a65cec72c63a515910cf0761aa69ef3bb2a76be4b5e14","reversible":true}
{"actor":"session-split","created_at":"2026-07-10T06:53:35.247145Z","data":{"slug_hint":"implemented-deterministic-scoring-module-with-unit-tests"},"dry_run":false,"event":"proposal.page.create","hash":"ceeb8483f50f9a6b383c0be2347fedce07941c7a70bc79e2eb924a7accc2d047","id":"0a718c0581484802a4c76038a1fb700f","object_ids":["20260710-065335-eb4a7247"],"prev_hash":"ac62f3954014810ff07fa2fc80a8852ae8c10571015b80c5318092dd2bb1ff08","reversible":true}
{"actor":"session-split","created_at":"2026-07-10T06:53:35.250920Z","data":{"slug_hint":"wired-evaluate-and-cli-entry-points"},"dry_run":false,"event":"proposal.page.create","hash":"3fc88df87d56cbdb5ace39b6df14afba28748b0c1512e39eebfcf06509c07bd1","id":"f9a5694f054c4ce09c69f1feb50e497b","object_ids":["20260710-065335-142a3abd"],"prev_hash":"ceeb8483f50f9a6b383c0be2347fedce07941c7a70bc79e2eb924a7accc2d047","reversible":true}
{"actor":"session-split","created_at":"2026-07-10T06:53:35.254094Z","data":{"slug_hint":"created-json-fixture-files-for-scenario-driven-testing"},"dry_run":false,"event":"proposal.page.create","hash":"0660c585390b276a3255617710e8105fe572ee23b4aed8aa54b519d3c93dc1a8","id":"c3f3d0583f8e4272b949705f977e41cc","object_ids":["20260710-065335-a8161813"],"prev_hash":"3fc88df87d56cbdb5ace39b6df14afba28748b0c1512e39eebfcf06509c07bd1","reversible":true}
{"actor":"session-split","created_at":"2026-07-10T06:53:35.263211Z","data":{"reason":"superseded by llm narrative summary"},"dry_run":false,"event":"proposal.page.reject","hash":"270b31129cdf9096dbdc4717f7bfd1ebb6a0a4d6ade2e9df467b8989465f88dd","id":"900e8f66fcdf4babbdea394716afa54a","object_ids":["20260710-065108-54f0c393"],"prev_hash":"0660c585390b276a3255617710e8105fe572ee23b4aed8aa54b519d3c93dc1a8","reversible":true}
{"actor":"session-split","created_at":"2026-07-10T06:53:35.265122Z","data":{"dropped":0,"observations":0,"proposed":6,"truncated":false},"dry_run":false,"event":"session.split","hash":"234acadc3c644da01487935d5f117a25892e7b46fa1ca8dbc188ea3b77cc1c3d","id":"a98c8540c53b4021b1adc938def2335e","object_ids":["20260710-065335-f6053bee","20260710-065335-bc8ede6c","20260710-065335-a882803f","20260710-065335-eb4a7247","20260710-065335-142a3abd","20260710-065335-a8161813"],"prev_hash":"270b31129cdf9096dbdc4717f7bfd1ebb6a0a4d6ade2e9df467b8989465f88dd","reversible":true}
{"actor":"unknown-agent","created_at":"2026-07-10T07:24:02.966238Z","data":{"reason":null},"dry_run":false,"event":"proposal.page.approve","hash":"0a979813ec3ce3f3909e5f8519527157052ccdb85a5dea3fd12184aae1697130","id":"71fece2560d040a493b8f89534730775","object_ids":["20260710-065335-bc8ede6c","defined-core-domain-types-and-initial-type-level-test-covera"],"prev_hash":"234acadc3c644da01487935d5f117a25892e7b46fa1ca8dbc188ea3b77cc1c3d","reversible":true}
{"actor":"wiki-compiler","created_at":"2026-07-10T07:24:33.615350Z","data":{"slug_hint":"review-gated-knowledge-proposal-workflow"},"dry_run":false,"event":"proposal.page.create","hash":"dd18e31fc67152a2135b2ebb5e241b9e6a04d1fb19c4d77b2b91fbbcb5de775b","id":"fa3ba361a4fa4094ba52c07624c924b7","object_ids":["20260710-072433-ffff6671"],"prev_hash":"0a979813ec3ce3f3909e5f8519527157052ccdb85a5dea3fd12184aae1697130","reversible":true}
{"actor":"wiki-compiler","created_at":"2026-07-10T07:24:33.617853Z","data":{"slug_hint":"repository-as-knowledge-store"},"dry_run":false,"event":"proposal.page.create","hash":"8b35e84a4e0ef89e89c244568de6158f33117a1a64bc131542b3a94072291f60","id":"daa78f7818a1442496c0b69071378fbe","object_ids":["20260710-072433-123db33a"],"prev_hash":"dd18e31fc67152a2135b2ebb5e241b9e6a04d1fb19c4d77b2b91fbbcb5de775b","reversible":true}
{"actor":"unknown-agent","created_at":"2026-07-10T07:24:33.618337Z","data":{"dropped":0,"proposed":2,"proposer":"wiki-compiler"},"dry_run":false,"event":"compile.run","hash":"6aa930c42142624a0ca4753564efaaf5bfbf6e19ced80e7f0b0fd4c09ee66aed","id":"83373b1dda3c45f19748753b2bc9de88","object_ids":["20260710-072433-ffff6671","20260710-072433-123db33a"],"prev_hash":"8b35e84a4e0ef89e89c244568de6158f33117a1a64bc131542b3a94072291f60","reversible":true}
{"actor":"vouch-extractor","created_at":"2026-07-10T07:25:41.876231Z","data":{"slug_hint":"review-gated-knowledge-proposal-workflow-mentions-reviewed-k"},"dry_run":false,"event":"proposal.relation.create","hash":"f35167409cbe540e24293b348e0127e60553e171a35d32fb8b5b71c33317bfce","id":"e73a022074444ddb9e30407963f20907","object_ids":["20260710-072541-96ce439f"],"prev_hash":"6aa930c42142624a0ca4753564efaaf5bfbf6e19ced80e7f0b0fd4c09ee66aed","reversible":true}
{"actor":"unknown-agent","created_at":"2026-07-10T07:25:41.877790Z","data":{"reason":null},"dry_run":false,"event":"proposal.page.approve","hash":"1a2d24c3a512bc4c0171efb61c9631f4882477170e152aad4199e732f829fc5e","id":"34b056e066f7444d819f0486bc5a0584","object_ids":["20260710-072433-ffff6671","review-gated-knowledge-proposal-workflow"],"prev_hash":"f35167409cbe540e24293b348e0127e60553e171a35d32fb8b5b71c33317bfce","reversible":true}
{"actor":"unknown-agent","created_at":"2026-07-10T07:25:59.154361Z","data":{"reason":null},"dry_run":false,"event":"proposal.page.approve","hash":"b4cc6e9d79da47b096917cdeefd5d5b0910bda7b7bc06a7e146d8dd9d0038310","id":"b8c6719b8d44472883e40b016f8faad0","object_ids":["20260710-072433-123db33a","repository-as-knowledge-store"],"prev_hash":"1a2d24c3a512bc4c0171efb61c9631f4882477170e152aad4199e732f829fc5e","reversible":true}
{"actor":"unknown-agent","created_at":"2026-07-10T09:48:36.518125Z","data":{"reason":null},"dry_run":false,"event":"proposal.page.approve","hash":"9f2e75b6d37082ee754475878d52da597cc2cffaf42627b832adcf16a642df4c","id":"d509714619ff4e36b46e7c6360614f26","object_ids":["20260710-065335-eb4a7247","implemented-deterministic-scoring-module-with-unit-tests"],"prev_hash":"b4cc6e9d79da47b096917cdeefd5d5b0910bda7b7bc06a7e146d8dd9d0038310","reversible":true}
{"actor":"unknown-agent","created_at":"2026-07-10T09:48:48.002564Z","data":{"reason":null},"dry_run":false,"event":"proposal.page.approve","hash":"dbb2d71c150fec0055c3e1c825c9503d6e2bcf638fcb57c33f71f46e8cb8b630","id":"ff3b16ca8ebc484fb57bcd75700dcb7e","object_ids":["20260710-065335-142a3abd","wired-evaluate-and-cli-entry-points"],"prev_hash":"9f2e75b6d37082ee754475878d52da597cc2cffaf42627b832adcf16a642df4c","reversible":true}
Loading