Research Dossier
This dossier is the synthesized output of a multi-source, fact-checked research pass on dent8’s design space (agent-memory integrity, belief revision, formal verification, provenance/tamper-evidence, and academic positioning). It is the entry point; the depth lives in the topical docs it links. Facts here were produced by parallel web-search agents, then adversarially fact-checked (16 load-bearing facts: 14 supported, 1 refuted, 1 qualified). Corrections from that pass are folded into the topical docs and noted below.
Executive summary
Section titled “Executive summary”-
dent8 is principled, not novel-per-primitive. Every individual mechanism — bitemporal validity, supersession-not-deletion, contradiction edges, provenance, deterministic replay, hash-chained logs — is prior art (Zep/Graphiti, PROV, SQL:2011, event sourcing, Certificate Transparency). These foundations predate and are independent of Zep; the overlap with Zep is convergent evolution on shared sources, not derivation. The defensible contribution is the combination as substrate plus typed authority-weighted supersession. → related-work.md
-
Belief revision is the right formal identity, and it’s a clean fit. dent8 is a belief base (Hansson), not an AGM belief set; it should deliberately violate Recovery; its
contestedstate is genuine paraconsistency (inconsistency ≠ triviality); authority-vs-confidence is entrenchment vs probability; edges are TMS justifications. This is the “fresh and inspiring” lens and dent8’s strongest defensible framing. → belief-revision.md -
A layered formal-verification stack is achievable today. proptest/bolero → Kani (bounded) → Stateright (concurrency) → optional Creusot/Verus (the fold). Frame honestly as “property-tested + bounded-model-checked + concurrency-model- checked,” never blanket “formally verified.” → formal-verification.md
-
The honest gap is narrowing. Authority arbitration is now implemented in the core fold (the headline differentiator vs Graphiti’s recency-only resolution), with an exhaustive non-resurrection proof. The freshness evaluator and serde + canonicalization + hash chain are also built and tested in the library. The write-path firewall (enforced at
EventStore::append), the DB-verified Postgres adapter, the CLI/MCP runtime, and the evidence-edge retraction taint (ADR 0010,dent8 derive/verify+ thepoisoned_source_retractioneval) are built — the differentiator is now a running, demonstrated system (see STATUS.md). The analytical/export lane is also built (dent8 export→ Parquet for DuckDB), and the file-based scenario-family golden corpus is seeded (evals/); what remains on the eval side iscargo-fuzz. → roadmap.md, threat-model.md -
Publish in two stages. A model + belief-revision-semantics workshop paper is factable from the core semantics and runnable slice; the systems/security paper should wait for stronger operational evidence: fuzzing/model checking, operated witness deployment, and clearer production identity operations. → paper/outline.md
-
Defensible novelty is compositional, and an adversarial pass killed every single-primitive fact. The surviving directions route through authority arbitration — implemented. All three top directions now have a built+tested v0: rank 1 (verified non-resurrection, exhaustive + Kani harness), rank 2 (policy-counterfactual replay:
EpistemicPolicy+replay_*_with_policy+diff_states), and rank 3 (earned entrenchment: authority-weighted corroboration +unearned_supersessionsaudit + the challenge-survival half — ADR 0015: rejected challenges recorded asfact.challenge_rejectedfeedingFactState.survived_challenges, on by default, plus the opt-in earned-supersession gateDENT8_ENTRENCHMENT_GATE). Rank 3 also now feeds survived challenges into arbitration (ADR 0017: the gate weighs earned entrenchment = corroboration + survived challenges). → novelty.md
What’s useful for the project (concrete adoptions)
Section titled “What’s useful for the project (concrete adoptions)”| Adoption | Source/standard | Where |
|---|---|---|
| Belief-base + Recovery-non-postulate framing | Hansson; AGM | ADR 0005 |
| Paraconsistent contradiction tolerance (“contested”) | LFI / paraconsistency | belief-revision.md |
| Authority-as-entrenchment arbitration | AGM entrenchment | roadmap.md / ADR 0007 |
| LFI hard-alarm tier on canonical facts | Logics of Formal Inconsistency | belief-revision.md §Adopt-3 |
Sorted-key serde_json canonical form (not JCS) |
project invariant; RFC 8785 kept as contrast | ADR 0004 |
| RFC 6962 domain-separated leaf/node hashing | Certificate Transparency | storage.md |
| W3C PROV-DM export mapping | W3C Recommendation | related-work.md |
| Layered verification (proptest/Kani/Stateright) | AWS systems-correctness | ADR 0006 |
| MINJA/PoisonedRAG poisoning fixtures | attack literature | threat-model.md |
Fact-check ledger (corrections applied)
Section titled “Fact-check ledger (corrections applied)”- Refuted: “Prusti (uniquely) verifies unsafe code.” → Deductive verifiers (Creusot/Verus/Prusti/Aeneas) target safe Rust with unbounded functional correctness at high spec cost; the unsafe-coverage framing was wrong. Fixed in formal-verification.md.
- Qualified: RFC 8785 is an Informational RFC (Independent Submission), not
Standards Track; property names sort by UTF-16 code units. dent8 deliberately ships a
sorted-key
serde_jsonform instead, and documents that it is not JCS in storage.md / ADR 0004. - Critic corrections folded in: confidence float hazard was overstated
(
Confidenceisu16; onlyFactValue::Jsonwas at risk, now canonicalized via theCanonicalJsonnewtype); the temporal-validity matrix cell downgraded ✓→◐ (at the time: novalid_to, freshness-only; the freshness evaluator, and in v0.2.0valid_tointervals plus--as-of/--valid-attime-travel reads per ADR 0016, have since shipped); TTL/authority arbitration flagged as design-only everywhere they are stated; “AWS originated the P language” reworded (P: Microsoft/UC Berkeley); LOC corrected to ~470 non-test (a figure from that early snapshot — historical; the codebase is now ~33k src LOC).
Novelty risks (kept deliberately visible)
Section titled “Novelty risks (kept deliberately visible)”These are the reviewer objections the project must pre-empt, not hide:
- Authority-weighted supersession is THE differentiator vs Graphiti’s recency-only arbitration — now implemented, enforced at the write boundary, and runnable through CLI/MCP over file, SQLite, and DB-verified Postgres stores (no longer “zero code”). The remaining honesty caveat is product hardening: survived challenges are recorded and consulted by the opt-in earned-supersession gate (ADR 0017: earned entrenchment = corroboration + survived challenges), and production deployments still need operated witness and source-key workflows.
- Three of four “combination” ingredients are individually prior art (replay = event sourcing; hash-chain = transparency logs; bitemporal/provenance = SQL:2011/ PROV). Only typed authority-as-entrenchment arbitration is uncommon in this space.
- Belief-base framing is vocabulary, not a novel mechanism — bitemporal DBs already give “history matters, retract doesn’t resurrect.” Fact it as principled grounding, not as a contribution.
- On the temporal axis dent8 now has closed valid-time intervals (ADR 0016):
valid_tovia--valid-from/--valid-to, an elapsedvalid_tobounds read-time freshness like a TTL (expires_atis the earliest bound), plus--as-of/--valid-attime-travel reads — so it is no longer behind Zep on the missing-valid_toaxis. Frame the remaining difference precisely: dent8 treatsvalid_toas an asserted read-time freshness/validity bound, not a running lifecycle edge-invalidation — so state the exact bitemporal gap rather than asserting either a missing interval or full parity. - Deterministic replay alone is not unique — Zep/Graphiti reconstruct from episodes too. The precise differentiator is the typed, hash-verified, single-source-of-truth log.
- Hash-chain tamper-evidence is table-stakes, not a contribution (RFC 6962, blockchains). It is built (canonicalization + SHA-256 chain, DB-verified); the resistance upgrade (an operated external witness) is the part still maturing.
Method note
Section titled “Method note”Research harness: scope → 6 parallel search angles → URL-grounded fetch → 3-vote-style adversarial verification (refute-default) → parallel section synthesis → completeness/ novelty critic. ~28 agents, ~1.3M tokens. The verbatim section drafts, verdicts, and critic output are preserved outside the repo; this dossier and the topical docs are the curated, corrected result.