Commit 14c03e0
committed
Bring the public release up to date with a week of work
Ports the epistemic layer, the Tool Provider Layer, and the MCP client from the
private instance, plus this week's two loop repairs.
New capability
· epistemic_dossier.py — GET /api/house/prove returns a receipt for a belief:
who asserted it, on what evidence, who dissented and whether that was ever
resolved, what would falsify it, and the asserters' calibrated record. The
load-bearing field is trust_basis: UNEARNED when a belief carries a
confidence figure but nobody who asserted it has ever been graded against
reality. GET /api/house/self-audit says the same about the whole system, and
is written to be unflattering — empty ratios return null, never a
complimentary zero.
· judgment_queue.py — GET /api/house/judgments separates AWAITING_HORIZON
(reality has not answered) from AWAITING_HUMAN (overdue, no automatic judge,
and blocking N dissents). One unanswerable claim had been silently blocking
every dissent recorded in its session. Also flags MALFORMED records.
· tool_providers/ + mcp_client.py — external tool sources arrive as providers
rather than as edits to exec_tool. MCP is provider #1: tools are namespaced
mcp__<server>__<tool> so an external server can never shadow a native tool,
output is quarantined as untrusted, and the gate ESCALATES anything the
server has not itself declared read-only. An absent hint is treated as
dangerous, never as safe — safety is never inferred from a tool's name.
· extractor.py — refuses to stake a claim nobody can read or judge. Two rows
in production held a Python dict repr as the statement and a fragment of raw
JSON as the invalidation, from a character-window slice taken out of
serialised data.
Merging, not overwriting
The public tree is not a copy of the private one and the drift runs both ways.
It carries fixes the private instance does not: the YELLOW health verdict,
OLLAMA_BASE_URL, platform-aware discovery, per-hook kernel reporting, and the
privacy-scan repairs. It is also relicensed — every module header says
Apache-2.0 where the private one still says Open Cognitive License v1.0.
So this is a merge. Files where the private copy is strictly newer were ported
with their headers rewritten; files carrying public-only fixes were left alone;
and main.py, which holds work from both sides, had only its private-only blocks
lifted in by anchor.
Safety
mcp_servers.json is now git-ignored in the public tree as well. It holds API
tokens — the shipped example has a GITHUB_PERSONAL_ACCESS_TOKEN field — and
without this a user who created one would publish their own credentials. Only
the .example. template ships. The ADR-0014 state tripwire has both registered
deliberately, with the reasoning recorded beside them.
Counts corrected against measurement, not memory: 272 routes, 91 tools (75
native + 16 arriving through the provider layer), 672 tests. Social preview
regenerated to match.
672 tests pass. Privacy scan clean.1 parent e1381b3 commit 14c03e0
25 files changed
Lines changed: 2904 additions & 13 deletions
File tree
- backend
- tests
- tool_providers
- docs
- assets
- tools
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
151 | 151 | | |
152 | 152 | | |
153 | 153 | | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
142 | 158 | | |
143 | 159 | | |
144 | 160 | | |
| |||
235 | 251 | | |
236 | 252 | | |
237 | 253 | | |
238 | | - | |
| 254 | + | |
239 | 255 | | |
240 | 256 | | |
241 | 257 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
115 | 122 | | |
116 | 123 | | |
117 | 124 | | |
| |||
0 commit comments