Claim verification map
SHA-256 at intake
Implemented in
server/lib/pipeline.js
(runHashStage) and
server/services/integrity/chain-hash.js
. The hash is stored in Supabase
files.sha256
and displayed in the document viewer metadata panel.
Append-only custody log
Implemented in
server/lib/custody.js
. Entries are SHA-256 chained to the previous entry hash. No update or delete API exists for custody records.
Chain hash between stages
Each pipeline stage output receives a chain hash computed from input_sha256 + output_sha256 + stage_name +
previous_chain_hash + timestamp. Formula documented in
server/services/integrity/chain-hash.js
.
Tier-gated features
Feature flags are enforced in route middleware (
server/lib/tiers.js
) and checked at stage runtime (
stage-router.js
). The tier matrix is published in
_ai/LUMEN.md
.
What we do not claim
- We do not guarantee admissibility. Courts decide admissibility based on case-specific context.
- We do not guarantee deterministic output for AI-assisted stages (transcription, object detection, LLM analysis). We log confidence scores and flag outputs for human review.
- We do not claim 100% local processing. Core stages run locally when possible; cloud routing is used for GPU-dependent workloads based on tier and configuration.
- We do not provide legal advice. The platform is a technology tool, not a law firm.
Inspect the pipeline yourself.