core/workbench-ui/schema-snapshot.json
Shay 7ead395eeb feat(workbench): Lived Life surface — the always-on heartbeat made felt (read-only, persist-first)
The L10 heartbeat (chat/always_on, #747) holds CORE alive over uptime but had no
surface. This adds the read-only Lived Life route that renders the continuous-life
evidence: the heartbeat over uptime + the resume-as-same-life verdict — both halves
of "one continuous life" on one surface.

Persist-first, never recompute engine-owned values:
- chat/always_on: serialize_report + write_lived_life persist a run deterministically
  (sorted keys) to engine_state/lived_life.json; run_continuous gains an opt-in
  report_path so a real continuous-life run leaves its evidence where the workbench
  reads it. closure_ceiling is persisted so the artifact is self-describing.
- workbench/lived_life.py: projection + a fail-closed validate() gate — the wrong=0
  analogue for the continuity surface: closure_held/closure_observed/totals/converged
  are each re-checked against the per-beat measurements, and resume_status is re-checked
  against identity-vs-current-substrate, so a tampered artifact RAISES rather than
  rendering a false claim (a beat lying about a breached ceiling, an inflated closure,
  a miscounted total, a falsely-claimed resume).
- workbench/readers.lived_life(): reads the artifact, computes the resume verdict from
  the persisted identity vs the canonical engine_identity_for_config (fail-soft ->
  "unknown", like IdentityContinuity). Honest absence when no run has been persisted.
- GET /lived-life + LivedLife/LivedLifeHeartbeat schemas (snapshot regenerated; the
  schema-drift gate proves every field is mirrored in src/types/api.ts).

The resume verdict made felt: would_resume / substrate_changed / unknown IS the L11
reboot guarantee (a reboot recomputes identity and refuses if it differs) — so the
surface shows this life wakes up as ITSELF, not a copy. The per-reboot lineage chain
stays owned by Runs > Identity (honest cross-link).

Frontend: /lived-life route (Evidence section, route count 15 -> 16). Renders the
headline (heartbeats, closure-held-by-construction, learned-while-idle, at-rest, resume
pill), the summary, the heartbeat timeline (closure flat below the ceiling — read, never
repaired), and the resume verdict. Honest absence + ADR-0162 route conformance
(loading/error/empty), fail-closed like Vault/Calibration.

Tests (non-vacuous): 12 backend (every tamper case raises; resume tracks identity vs
substrate; run_continuous(report_path) round-trips a readable+valid artifact) + 4
frontend render tests (recorded life renders; a breached beat shows the warning, never a
false "held"; a changed substrate shows would-refuse, never a false resume; absent shows
honest absence). All workbench Python (167) + affected vitest (167) + tsc + vite build
green; architectural invariants green.

engine_state/lived_life.json is runtime state (gitignored, ADR-0146 pattern).
2026-06-14 16:45:03 -07:00

578 lines
10 KiB
JSON

{
"ArtifactDetail": [
"content_type",
"content"
],
"ArtifactRef": [
"artifact_id",
"kind",
"path",
"digest",
"created_at"
],
"AuditEvent": [
"event_id",
"source",
"source_path",
"timestamp",
"event_type",
"mutation_boundary",
"summary",
"ref_id",
"payload_digest",
"payload"
],
"CalibrationClass": [
"class_name",
"correct",
"wrong",
"refused",
"committed",
"reliability_floor",
"coverage",
"propose_required",
"propose_licensed",
"serve_required",
"serve_licensed",
"source_path",
"source_digest"
],
"ChatTurnResult": [
"prompt",
"surface",
"articulation_surface",
"walk_surface",
"grounding_source",
"epistemic_state",
"normative_clearance",
"normative_detail",
"trace_hash",
"refusal_emitted",
"hedge_injected",
"mutation_mode",
"identity_verdict",
"safety_verdict",
"ethics_verdict",
"proposal_candidates",
"turn_cost_ms",
"checkpoint_emitted",
"leeway_evidence",
"pipeline_record",
"field_evidence",
"turn_id"
],
"CognitivePipelineEdge": [
"from_stage",
"to_stage",
"label"
],
"CognitivePipelineRecord": [
"schema_version",
"status",
"missing_reason",
"trace_hash",
"versor_condition",
"field_digest",
"stages",
"edges"
],
"CognitivePipelineStage": [
"stage_id",
"label",
"status",
"summary",
"detail"
],
"ContemplationRunDetail": [
"before",
"after",
"engine_chain",
"scenes"
],
"ContemplationRunSummary": [
"run_id",
"source_path",
"source_digest",
"prompt",
"cold_subject",
"scene_count",
"learning_arc_closed",
"all_claims_supported",
"active_corpus_byte_identical"
],
"ContemplationScene": [
"scene_id",
"claim",
"detail",
"stage_role",
"proposal_id",
"candidate_id",
"proposal_state",
"grounding_source"
],
"DemoDagEdge": [
"from_node",
"to_node",
"label"
],
"DemoDagNode": [
"node_id",
"label",
"summary",
"detail"
],
"DemoEvidenceDag": [
"graph_id",
"graph_kind",
"title",
"source_digest",
"nodes",
"edges"
],
"DemoRunResult": [
"demo_id",
"all_passed",
"what_this_proves",
"what_this_does_not_prove",
"scenarios"
],
"DemoScenarioRunResult": [
"scenario_id",
"status",
"passed",
"proposer_wrong",
"evidence_class",
"decision_reason",
"trace_hash",
"problems",
"response",
"evidence_dag"
],
"DemoScenarioSummary": [
"scenario_id",
"title",
"expected_status",
"evidence_class",
"proposer_wrong",
"what_this_proves",
"what_this_does_not_prove"
],
"DemoSummary": [
"demo_id",
"title",
"description",
"evidence_class",
"scenario_count",
"read_only",
"scenarios"
],
"DeterminismTour": [
"schema_version",
"title",
"thesis",
"steps"
],
"EvalLaneSummary": [
"lane",
"versions",
"read_only",
"description"
],
"EvalRunResult": [
"lane",
"version",
"split",
"passed",
"metrics",
"cases",
"source_digest"
],
"EvidenceBundle": [
"schema_version",
"turn_id",
"generated_from",
"trace_hash",
"trace_integrity",
"prompt",
"surface",
"grounding_source",
"epistemic_state",
"normative_clearance",
"refusal_emitted",
"journal_digest",
"pipeline_record",
"field_evidence",
"leeway_evidence",
"replay_reproducer",
"bundle_digest"
],
"FieldEvidence": [
"schema_version",
"status",
"missing_reason",
"trace_hash",
"versor_condition",
"versor_condition_ceiling",
"field_valid",
"field_digest",
"parent_field_digest",
"transition_inner_product"
],
"IdentityContinuity": [
"status",
"engine_identity",
"parent_engine_identity",
"current_engine_identity",
"written_at_revision",
"current_revision",
"lineage_relation",
"verification_summary",
"evidence_gap"
],
"LeewayEvidence": [
"class_name",
"license",
"theta",
"claim_disclosure",
"source_digest",
"calibration_evidence_ref"
],
"LivedLife": [
"schema_version",
"status",
"missing_reason",
"identity",
"heartbeats",
"closure_observed",
"closure_held",
"closure_ceiling",
"final_checkpoint_ok",
"converged",
"total_facts_consolidated",
"total_proposals_created",
"current_identity",
"resume_status",
"resume_summary",
"records",
"artifact"
],
"LivedLifeHeartbeat": [
"tick",
"versor_condition",
"field_valid",
"facts_consolidated",
"proposals_created",
"pending_proposals",
"did_work"
],
"LogosAlignmentRow": [
"edge_id",
"source_id",
"target_id",
"relation",
"weight",
"evidence_ids",
"target_pack_id",
"target_resolved",
"invalid_target"
],
"LogosAlignmentTargetIssue": [
"edge_id",
"source_id",
"target_id",
"relation",
"target_pack_id"
],
"LogosGlossRow": [
"gloss_id",
"lemma",
"gloss",
"pos",
"entry_ids",
"provenance_ids",
"epistemic_status",
"raw"
],
"LogosLexiconRow": [
"entry_id",
"surface",
"lemma",
"language",
"part_of_speech",
"pos",
"morphology_id",
"morphology_tags",
"semantic_domains",
"provenance_ids",
"epistemic_status"
],
"LogosMorphologyLinkIssue": [
"entry_id",
"morphology_id"
],
"LogosMorphologyRow": [
"morphology_id",
"surface",
"lemma",
"language",
"root",
"prefix_chain",
"stem",
"inflection",
"suffix_chain"
],
"LogosPackContents": [
"schema_version",
"pack_id",
"manifest",
"lexicon",
"glosses",
"morphology",
"frames",
"compositions",
"alignment_edges",
"holonomy_cases"
],
"LogosPackOverview": [
"schema_version",
"normalization_policy",
"source_manifest",
"known_gaps"
],
"LogosPackSummary": [
"pack_id",
"language",
"role",
"script",
"version",
"determinism_class",
"gate_engaged",
"oov_policy",
"lexicon_count",
"gloss_count",
"morphology_count",
"frame_count",
"composition_count",
"alignment_edge_count",
"holonomy_case_count",
"safety_status",
"manifest_digest",
"manifest_path"
],
"LogosSafetyReport": [
"schema_version",
"pack_id",
"checksum_status",
"checksum_errors",
"domain_contract",
"domain_contract_status",
"oov_policy_ok",
"gate_policy_ok",
"path_safety_ok",
"dangling_morphology_links",
"invalid_alignment_targets",
"missing_holonomy_refs",
"epistemic_status_counts",
"speculative_entries",
"contested_entries",
"falsified_entries",
"known_gaps",
"verdict"
],
"MathProposalDetail": [
"wrong_zero_assertion",
"proposed_change_payload",
"reasoning_trace_id",
"reasoning_trace_steps",
"evidence_hashes",
"handler_name",
"suggested_ratify_cli",
"leeway_evidence"
],
"MathProposalSummary": [
"proposal_id",
"domain",
"shape_category",
"proposed_change_kind",
"structural_commonality",
"evidence_count",
"replay_equivalence_hash"
],
"MathRatifyResult": [
"proposal_id",
"change_kind",
"handler_name",
"routing_status",
"message",
"suggested_cli",
"applied",
"target_path",
"evidence_hash"
],
"MathReasoningStep": [
"step_index",
"step_kind",
"claim",
"justification",
"input_pointers",
"output_payload"
],
"PackDetail": [
"manifest_digest",
"manifest"
],
"PackSummary": [
"pack_id",
"source",
"manifest_path",
"version",
"language",
"modality",
"determinism_class",
"checksum",
"checksums"
],
"ProposalDetail": [
"proposed_chain",
"replay_evidence",
"source",
"evidence",
"artifact_refs",
"suggested_cli",
"leeway_evidence"
],
"ProposalRef": [
"candidate_id",
"source_kind"
],
"ProposalSummary": [
"proposal_id",
"state",
"source_kind",
"replay_equivalent",
"created_at",
"downstream_effect"
],
"RunDetail": [
"turns",
"manifest",
"identity_continuity"
],
"RunSummary": [
"session_id",
"source",
"turn_count",
"started_at",
"updated_at",
"checkpoint_present",
"checkpoint_revision",
"artifact_refs",
"evidence_gap"
],
"RunTurnRef": [
"turn_id",
"trace_hash",
"timestamp",
"trace_path",
"surface_excerpt",
"trace_integrity"
],
"RuntimeStatus": [
"backend",
"git_revision",
"engine_state_present",
"checkpoint_revision",
"revision_warning",
"active_session_id",
"mutation_mode"
],
"ServingMetrics": [
"lane",
"correct",
"refused",
"wrong",
"sample_count",
"source_path",
"source_digest"
],
"TourStep": [
"step_id",
"order",
"kind",
"headline",
"narrative",
"demo_id",
"demo_title",
"what_this_proves",
"what_this_does_not_prove",
"route_hint"
],
"TurnJournalEntrySchema": [
"turn_id",
"timestamp",
"trace_hash",
"prompt",
"surface",
"articulation_surface",
"walk_surface",
"grounding_source",
"epistemic_state",
"normative_clearance",
"verdicts",
"refusal_emitted",
"hedge_injected",
"proposal_candidates",
"turn_cost_ms",
"checkpoint_emitted",
"trace_integrity",
"journal_digest",
"leeway_evidence",
"pipeline_record",
"field_evidence"
],
"TurnJournalSummarySchema": [
"turn_id",
"timestamp",
"prompt_excerpt",
"surface_excerpt",
"trace_hash",
"grounding_source",
"trace_integrity"
],
"TurnReplayComparison": [
"turn_id",
"comparison_basis",
"origin_state",
"original_trace_hash",
"replay_trace_hash",
"equivalent",
"replay_turn_cost_ms",
"divergences",
"leeway_evidence"
],
"TurnReplayDivergence": [
"path",
"original",
"replay",
"severity"
],
"TurnVerdict": [
"outcome",
"runtime_detail"
],
"VaultEntry": [
"entry_index",
"epistemic_status",
"epistemic_state",
"metadata",
"versor_digest"
],
"VaultSummary": [
"source_path",
"entry_count",
"store_count",
"reproject_interval",
"max_entries",
"persisted"
]
}