Trust

What is guaranteed, what is logged, and what is not promised.

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.