From 99c823fb20a8395102231411536c7946d7d998ab Mon Sep 17 00:00:00 2001 From: ChirayuBatra99 Date: Wed, 11 Nov 2026 17:49:33 +0530 Subject: [PATCH 1/8] feat: alter components dir, and segregate components into corresponding folders from being in the same directory --- clients/web/src/README.md | 26 +++---- .../components/{ => altar}/AltarIcon.svelte | 0 .../components/{ => altar}/AltarShell.svelte | 4 +- .../components/{ => altar}/AltarShell.test.ts | 0 .../{ => altar}/AltarWelcome.svelte | 0 .../components/{ => atlas}/AtlasLinks.svelte | 0 .../components/{ => atlas}/AtlasLinks.test.ts | 0 .../components/{ => atlas}/AtlasView.svelte | 0 .../components/{ => atlas}/AtlasView.test.ts | 0 .../components/{ => bridge}/BridgeDock.svelte | 0 .../{ => bridge}/BridgeDock.test.ts | 0 .../BridgePreferenceSummary.svelte | 0 .../BridgePreferenceSummary.test.ts | 0 .../BridgeShellNavigation.test.ts | 4 +- .../components/{ => bridge}/BridgeView.svelte | 18 ++--- .../{ => bridge}/BridgeView.test.ts | 0 .../{ => bridge}/BridgeVoiceInput.svelte | 0 .../{ => bridge}/BridgeVoiceInput.test.ts | 0 .../components/{ => canvas}/CanvasView.svelte | 6 +- .../lib/components/canvas/CanvasView.test.ts | 2 +- .../{ => canvas}/CanvasWorkspace.svelte | 0 .../{ => canvas}/CanvasWorkspace.test.ts | 0 .../CreationFeedback.fixtures.ts | 0 .../{ => creation}/CreationFeedback.svelte | 4 +- .../{ => creation}/CreationFeedback.test.ts | 0 .../CreationInvestigation.svelte | 0 .../CreationInvestigation.test.ts | 0 .../{ => creation}/CreationSummary.svelte | 0 .../{ => creation}/CreationSummary.test.ts | 0 .../lib/components/{ => loom}/LoomView.svelte | 4 +- .../components/{ => loom}/LoomView.test.ts | 0 .../{ => loom}/LoomView.work-commands.test.ts | 0 .../components/{ => nexus}/NexusMap.svelte | 0 .../components/{ => nexus}/NexusMap.test.ts | 0 .../{ => nexus}/NexusProperties.svelte | 0 .../components/{ => nexus}/NexusView.svelte | 2 +- .../components/{ => nexus}/NexusView.test.ts | 0 .../lib/components/{ => orb}/OrbField.svelte | 8 +-- .../lib/components/{ => orb}/OrbField.test.ts | 0 .../{ => orb}/OrbPresentationCommands.test.ts | 0 .../components/{ => orb}/OrbTimeline.svelte | 0 .../components/{ => orb}/OrbTimeline.test.ts | 0 .../lib/components/{ => orb}/OrbView.svelte | 14 ++-- .../lib/components/{ => orb}/OrbView.test.ts | 0 .../lib/components/{ => orb}/orb-evidence.ts | 0 .../PublicNotePreparation.svelte | 0 .../PublicNotePreparation.test.ts | 0 .../PublicNoteRecall.svelte | 0 .../PublicNoteRecall.test.ts | 0 .../{ => public-notes}/PublicNotes.svelte | 0 .../{ => public-notes}/PublicNotes.test.ts | 0 .../{ => scavenger}/ScavengerView.svelte | 2 +- .../{ => scavenger}/ScavengerView.test.ts | 0 .../{ => seances}/SeancesWorkspace.svelte | 0 .../{ => seances}/SeancesWorkspace.test.ts | 0 .../{ => shared}/AnimatorRail.svelte | 0 .../{ => shared}/ArchiveRecallPanel.svelte | 0 .../{ => shared}/ArchiveRecallPanel.test.ts | 0 .../components/{ => shared}/CircleRun.svelte | 0 .../components/{ => shared}/CircleRun.test.ts | 0 .../{ => shared}/ConsentCard.svelte | 0 .../{ => shared}/ConsentCard.test.ts | 0 .../{ => shared}/DelegateMark.svelte | 0 .../{ => shared}/DictationFeedback.svelte | 0 .../{ => shared}/DictationFeedback.test.ts | 0 .../lib/components/{ => shared}/GenUI.svelte | 0 .../lib/components/{ => shared}/GenUI.test.ts | 0 .../InstrumentReadRecovery.test.ts | 4 +- .../{ => shared}/NamingCeremony.svelte | 0 .../{ => shared}/NamingCeremony.test.ts | 0 .../{ => shared}/RuntimeEvidence.svelte | 0 .../{ => shared}/RuntimeEvidence.test.ts | 0 clients/web/src/routes/+layout.svelte | 2 +- clients/web/src/routes/atlas/+page.svelte | 2 +- .../routes/atlas/[project_id]/+page.svelte | 2 +- clients/web/src/routes/bridge/+page.svelte | 6 +- clients/web/src/routes/canvas/+page.svelte | 2 +- .../routes/canvas/[project_id]/+page.svelte | 2 +- .../web/src/routes/canvas/local/+page.svelte | 2 +- clients/web/src/routes/loom/+page.svelte | 2 +- .../loom/[pattern_id]/[revision]/+page.svelte | 2 +- clients/web/src/routes/nexus/+page.svelte | 2 +- clients/web/src/routes/orb/+page.svelte | 2 +- .../web/src/routes/orb/[run_id]/+page.svelte | 2 +- clients/web/src/routes/scavenger/+page.svelte | 2 +- clients/web/src/routes/seances/+page.svelte | 2 +- .../routes/seances/[session_id]/+page.svelte | 2 +- docs/state-of-the-work.md | 72 +++++++++---------- scripts/verify_release_artifacts.py | 2 +- 89 files changed, 103 insertions(+), 103 deletions(-) rename clients/web/src/lib/components/{ => altar}/AltarIcon.svelte (100%) rename clients/web/src/lib/components/{ => altar}/AltarShell.svelte (99%) rename clients/web/src/lib/components/{ => altar}/AltarShell.test.ts (100%) rename clients/web/src/lib/components/{ => altar}/AltarWelcome.svelte (100%) rename clients/web/src/lib/components/{ => atlas}/AtlasLinks.svelte (100%) rename clients/web/src/lib/components/{ => atlas}/AtlasLinks.test.ts (100%) rename clients/web/src/lib/components/{ => atlas}/AtlasView.svelte (100%) rename clients/web/src/lib/components/{ => atlas}/AtlasView.test.ts (100%) rename clients/web/src/lib/components/{ => bridge}/BridgeDock.svelte (100%) rename clients/web/src/lib/components/{ => bridge}/BridgeDock.test.ts (100%) rename clients/web/src/lib/components/{ => bridge}/BridgePreferenceSummary.svelte (100%) rename clients/web/src/lib/components/{ => bridge}/BridgePreferenceSummary.test.ts (100%) rename clients/web/src/lib/components/{ => bridge}/BridgeShellNavigation.test.ts (99%) rename clients/web/src/lib/components/{ => bridge}/BridgeView.svelte (99%) rename clients/web/src/lib/components/{ => bridge}/BridgeView.test.ts (100%) rename clients/web/src/lib/components/{ => bridge}/BridgeVoiceInput.svelte (100%) rename clients/web/src/lib/components/{ => bridge}/BridgeVoiceInput.test.ts (100%) rename clients/web/src/lib/components/{ => canvas}/CanvasView.svelte (99%) rename clients/web/src/lib/components/{ => canvas}/CanvasWorkspace.svelte (100%) rename clients/web/src/lib/components/{ => canvas}/CanvasWorkspace.test.ts (100%) rename clients/web/src/lib/components/{ => creation}/CreationFeedback.fixtures.ts (100%) rename clients/web/src/lib/components/{ => creation}/CreationFeedback.svelte (98%) rename clients/web/src/lib/components/{ => creation}/CreationFeedback.test.ts (100%) rename clients/web/src/lib/components/{ => creation}/CreationInvestigation.svelte (100%) rename clients/web/src/lib/components/{ => creation}/CreationInvestigation.test.ts (100%) rename clients/web/src/lib/components/{ => creation}/CreationSummary.svelte (100%) rename clients/web/src/lib/components/{ => creation}/CreationSummary.test.ts (100%) rename clients/web/src/lib/components/{ => loom}/LoomView.svelte (99%) rename clients/web/src/lib/components/{ => loom}/LoomView.test.ts (100%) rename clients/web/src/lib/components/{ => loom}/LoomView.work-commands.test.ts (100%) rename clients/web/src/lib/components/{ => nexus}/NexusMap.svelte (100%) rename clients/web/src/lib/components/{ => nexus}/NexusMap.test.ts (100%) rename clients/web/src/lib/components/{ => nexus}/NexusProperties.svelte (100%) rename clients/web/src/lib/components/{ => nexus}/NexusView.svelte (99%) rename clients/web/src/lib/components/{ => nexus}/NexusView.test.ts (100%) rename clients/web/src/lib/components/{ => orb}/OrbField.svelte (99%) rename clients/web/src/lib/components/{ => orb}/OrbField.test.ts (100%) rename clients/web/src/lib/components/{ => orb}/OrbPresentationCommands.test.ts (100%) rename clients/web/src/lib/components/{ => orb}/OrbTimeline.svelte (100%) rename clients/web/src/lib/components/{ => orb}/OrbTimeline.test.ts (100%) rename clients/web/src/lib/components/{ => orb}/OrbView.svelte (99%) rename clients/web/src/lib/components/{ => orb}/OrbView.test.ts (100%) rename clients/web/src/lib/components/{ => orb}/orb-evidence.ts (100%) rename clients/web/src/lib/components/{ => public-notes}/PublicNotePreparation.svelte (100%) rename clients/web/src/lib/components/{ => public-notes}/PublicNotePreparation.test.ts (100%) rename clients/web/src/lib/components/{ => public-notes}/PublicNoteRecall.svelte (100%) rename clients/web/src/lib/components/{ => public-notes}/PublicNoteRecall.test.ts (100%) rename clients/web/src/lib/components/{ => public-notes}/PublicNotes.svelte (100%) rename clients/web/src/lib/components/{ => public-notes}/PublicNotes.test.ts (100%) rename clients/web/src/lib/components/{ => scavenger}/ScavengerView.svelte (99%) rename clients/web/src/lib/components/{ => scavenger}/ScavengerView.test.ts (100%) rename clients/web/src/lib/components/{ => seances}/SeancesWorkspace.svelte (100%) rename clients/web/src/lib/components/{ => seances}/SeancesWorkspace.test.ts (100%) rename clients/web/src/lib/components/{ => shared}/AnimatorRail.svelte (100%) rename clients/web/src/lib/components/{ => shared}/ArchiveRecallPanel.svelte (100%) rename clients/web/src/lib/components/{ => shared}/ArchiveRecallPanel.test.ts (100%) rename clients/web/src/lib/components/{ => shared}/CircleRun.svelte (100%) rename clients/web/src/lib/components/{ => shared}/CircleRun.test.ts (100%) rename clients/web/src/lib/components/{ => shared}/ConsentCard.svelte (100%) rename clients/web/src/lib/components/{ => shared}/ConsentCard.test.ts (100%) rename clients/web/src/lib/components/{ => shared}/DelegateMark.svelte (100%) rename clients/web/src/lib/components/{ => shared}/DictationFeedback.svelte (100%) rename clients/web/src/lib/components/{ => shared}/DictationFeedback.test.ts (100%) rename clients/web/src/lib/components/{ => shared}/GenUI.svelte (100%) rename clients/web/src/lib/components/{ => shared}/GenUI.test.ts (100%) rename clients/web/src/lib/components/{ => shared}/InstrumentReadRecovery.test.ts (99%) rename clients/web/src/lib/components/{ => shared}/NamingCeremony.svelte (100%) rename clients/web/src/lib/components/{ => shared}/NamingCeremony.test.ts (100%) rename clients/web/src/lib/components/{ => shared}/RuntimeEvidence.svelte (100%) rename clients/web/src/lib/components/{ => shared}/RuntimeEvidence.test.ts (100%) diff --git a/clients/web/src/README.md b/clients/web/src/README.md index 14c4c3fd..8bd05169 100644 --- a/clients/web/src/README.md +++ b/clients/web/src/README.md @@ -7,22 +7,22 @@ routes to the implementation and its operating guide rather than duplicating eit | Reading or interaction | Source entry | Interpretation | | --- | --- | --- | -| Canvas Project catalogue, retained concerns, judgments, references, and continuation | [AtlasView.svelte](lib/components/AtlasView.svelte), [Atlas link hints](lib/atlas/navigation.ts) | [Atlas](../../../docs/divination/altar/atlas.md) | -| Project board retention/recovery, portable authorship and reviewed selection transformations | [CanvasWorkspace.svelte](lib/components/CanvasWorkspace.svelte), [CanvasView.svelte](lib/components/CanvasView.svelte), [Canvas engine](lib/canvas/engine.ts) | [Canvas](../../../docs/compositions/canvas/index.md) | -| Conversation, consent, and offering recovery | [BridgeView.svelte](lib/components/BridgeView.svelte), [shell-lifetime workspace](lib/bridge/workspace.svelte.ts) | [Bridge](../../../docs/divination/altar/bridge.md) | -| Conversation catalogue, retained inspection, and source-linked document-local working material | [SeancesWorkspace.svelte](lib/components/SeancesWorkspace.svelte), [material](lib/seances/material.ts) | [Séances](../../../docs/divination/altar/seances.md) | -| Finite dictation, transcript review and private correction/vocabulary controls | [BridgeVoiceInput.svelte](lib/components/BridgeVoiceInput.svelte), [capture](lib/bridge/voice/capture.ts), [draft coordinator](lib/bridge/voice/dictation.ts), [DictationFeedback.svelte](lib/components/DictationFeedback.svelte) | [Bridge dictation](../../../docs/divination/altar/bridge.md#dictate-and-review) | +| Canvas Project catalogue, retained concerns, judgments, references, and continuation | [AtlasView.svelte](lib/components/atlas/AtlasView.svelte), [Atlas link hints](lib/atlas/navigation.ts) | [Atlas](../../../docs/divination/altar/atlas.md) | +| Project board retention/recovery, portable authorship and reviewed selection transformations | [CanvasWorkspace.svelte](lib/components/canvas/CanvasWorkspace.svelte), [CanvasView.svelte](lib/components/canvas/CanvasView.svelte), [Canvas engine](lib/canvas/engine.ts) | [Canvas](../../../docs/compositions/canvas/index.md) | +| Conversation, consent, and offering recovery | [BridgeView.svelte](lib/components/bridge/BridgeView.svelte), [shell-lifetime workspace](lib/bridge/workspace.svelte.ts) | [Bridge](../../../docs/divination/altar/bridge.md) | +| Conversation catalogue, retained inspection, and source-linked document-local working material | [SeancesWorkspace.svelte](lib/components/seances/SeancesWorkspace.svelte), [material](lib/seances/material.ts) | [Séances](../../../docs/divination/altar/seances.md) | +| Finite dictation, transcript review and private correction/vocabulary controls | [BridgeVoiceInput.svelte](lib/components/bridge/BridgeVoiceInput.svelte), [capture](lib/bridge/voice/capture.ts), [draft coordinator](lib/bridge/voice/dictation.ts), [DictationFeedback.svelte](lib/components/shared/DictationFeedback.svelte) | [Bridge dictation](../../../docs/divination/altar/bridge.md#dictate-and-review) | | Exact instrument work destination and inert Canvas command proposals | [work-command registry](lib/bridge/work-commands.ts), [Canvas command planner](lib/canvas/commands.ts) | [Canvas commands](../../../docs/compositions/canvas/index.md#give-a-bounded-command-through-bridge) | -| Public-note intake, lifecycle review and metadata recovery within Bridge | [PublicNotes.svelte](lib/components/PublicNotes.svelte), [recovery controller](lib/archive/notes.ts) | [Public notes](../../../docs/divination/altar/bridge.md#manage-public-notes) | -| Spatial Run field, tab observation history, and one Run's retained records and gaps | [OrbField.svelte](lib/components/OrbField.svelte), [OrbTimeline.svelte](lib/components/OrbTimeline.svelte), [OrbView.svelte](lib/components/OrbView.svelte) | [Orb](../../../docs/divination/altar/orb.md) | -| Admitted runtime topology, actual call attempts, source coverage and inspection-only scores | [Runtime evidence](lib/components/RuntimeEvidence.svelte), [runtime reader](lib/orb/runtime.ts), [generic projection](lib/graph/runtime.ts) | [Connected components](../../../docs/sepulcher/extensions/oculus.md#connected-components-and-activity) | -| Exact-Run matching Archive selection and capture limits | [ArchiveRecallPanel.svelte](lib/components/ArchiveRecallPanel.svelte) | [Archive selection](../../../docs/divination/altar/orb.md#inspect-a-matching-archive-selection) | -| Capability ownership map/list, selected properties, preview, ticket, and physical request | [NexusView.svelte](lib/components/NexusView.svelte), [native map](lib/components/NexusMap.svelte), [projection](lib/nexus/map.ts), [properties](lib/components/NexusProperties.svelte) | [Nexus](../../../docs/divination/altar/nexus.md) | -| Exact registered score and computed graph | [LoomView.svelte](lib/components/LoomView.svelte), [shared canvas](lib/components/graph/GraphCanvas.svelte) | [Loom](../../../docs/divination/altar/loom.md) | +| Public-note intake, lifecycle review and metadata recovery within Bridge | [PublicNotes.svelte](lib/components/public-notes/PublicNotes.svelte), [recovery controller](lib/archive/notes.ts) | [Public notes](../../../docs/divination/altar/bridge.md#manage-public-notes) | +| Spatial Run field, tab observation history, and one Run's retained records and gaps | [OrbField.svelte](lib/components/orb/OrbField.svelte), [OrbTimeline.svelte](lib/components/orb/OrbTimeline.svelte), [OrbView.svelte](lib/components/orb/OrbView.svelte) | [Orb](../../../docs/divination/altar/orb.md) | +| Admitted runtime topology, actual call attempts, source coverage and inspection-only scores | [Runtime evidence](lib/components/shared/RuntimeEvidence.svelte), [runtime reader](lib/orb/runtime.ts), [generic projection](lib/graph/runtime.ts) | [Connected components](../../../docs/sepulcher/extensions/oculus.md#connected-components-and-activity) | +| Exact-Run matching Archive selection and capture limits | [ArchiveRecallPanel.svelte](lib/components/shared/ArchiveRecallPanel.svelte) | [Archive selection](../../../docs/divination/altar/orb.md#inspect-a-matching-archive-selection) | +| Capability ownership map/list, selected properties, preview, ticket, and physical request | [NexusView.svelte](lib/components/nexus/NexusView.svelte), [native map](lib/components/nexus/NexusMap.svelte), [projection](lib/nexus/map.ts), [properties](lib/components/nexus/NexusProperties.svelte) | [Nexus](../../../docs/divination/altar/nexus.md) | +| Exact registered score and computed graph | [LoomView.svelte](lib/components/loom/LoomView.svelte), [shared canvas](lib/components/graph/GraphCanvas.svelte) | [Loom](../../../docs/divination/altar/loom.md) | [The layout](routes/+layout.svelte) supplies browser-document context; -[AltarShell](lib/components/AltarShell.svelte) projects navigation, global attention and the -shell-lifetime [Bridge dock and legacy full-focus page](lib/components/BridgeDock.svelte). The Séances +[AltarShell](lib/components/altar/AltarShell.svelte) projects navigation, global attention and the +shell-lifetime [Bridge dock and legacy full-focus page](lib/components/bridge/BridgeDock.svelte). The Séances work route inspects conversations without selecting the live Bridge; explicit continuation reuses that same conversation component. Its layout preferences contain only bounded width, side and open state; conversation and recovery remain in diff --git a/clients/web/src/lib/components/AltarIcon.svelte b/clients/web/src/lib/components/altar/AltarIcon.svelte similarity index 100% rename from clients/web/src/lib/components/AltarIcon.svelte rename to clients/web/src/lib/components/altar/AltarIcon.svelte diff --git a/clients/web/src/lib/components/AltarShell.svelte b/clients/web/src/lib/components/altar/AltarShell.svelte similarity index 99% rename from clients/web/src/lib/components/AltarShell.svelte rename to clients/web/src/lib/components/altar/AltarShell.svelte index 1a72afe6..18479ece 100644 --- a/clients/web/src/lib/components/AltarShell.svelte +++ b/clients/web/src/lib/components/altar/AltarShell.svelte @@ -4,8 +4,8 @@ import { asset } from "$app/paths"; import { resolvePath as resolve } from "$lib/navigation/paths"; import { onMount, setContext, tick, untrack, type Snippet } from "svelte"; - import BridgeDock from "./BridgeDock.svelte"; - import BridgeView from "./BridgeView.svelte"; + import BridgeDock from "../bridge/BridgeDock.svelte"; + import BridgeView from "../bridge/BridgeView.svelte"; import AltarIcon from "./AltarIcon.svelte"; import { altarNavigationContext, selectedBridgeHref, type AltarNavigation } from "$lib/navigation/instruments"; diff --git a/clients/web/src/lib/components/AltarShell.test.ts b/clients/web/src/lib/components/altar/AltarShell.test.ts similarity index 100% rename from clients/web/src/lib/components/AltarShell.test.ts rename to clients/web/src/lib/components/altar/AltarShell.test.ts diff --git a/clients/web/src/lib/components/AltarWelcome.svelte b/clients/web/src/lib/components/altar/AltarWelcome.svelte similarity index 100% rename from clients/web/src/lib/components/AltarWelcome.svelte rename to clients/web/src/lib/components/altar/AltarWelcome.svelte diff --git a/clients/web/src/lib/components/AtlasLinks.svelte b/clients/web/src/lib/components/atlas/AtlasLinks.svelte similarity index 100% rename from clients/web/src/lib/components/AtlasLinks.svelte rename to clients/web/src/lib/components/atlas/AtlasLinks.svelte diff --git a/clients/web/src/lib/components/AtlasLinks.test.ts b/clients/web/src/lib/components/atlas/AtlasLinks.test.ts similarity index 100% rename from clients/web/src/lib/components/AtlasLinks.test.ts rename to clients/web/src/lib/components/atlas/AtlasLinks.test.ts diff --git a/clients/web/src/lib/components/AtlasView.svelte b/clients/web/src/lib/components/atlas/AtlasView.svelte similarity index 100% rename from clients/web/src/lib/components/AtlasView.svelte rename to clients/web/src/lib/components/atlas/AtlasView.svelte diff --git a/clients/web/src/lib/components/AtlasView.test.ts b/clients/web/src/lib/components/atlas/AtlasView.test.ts similarity index 100% rename from clients/web/src/lib/components/AtlasView.test.ts rename to clients/web/src/lib/components/atlas/AtlasView.test.ts diff --git a/clients/web/src/lib/components/BridgeDock.svelte b/clients/web/src/lib/components/bridge/BridgeDock.svelte similarity index 100% rename from clients/web/src/lib/components/BridgeDock.svelte rename to clients/web/src/lib/components/bridge/BridgeDock.svelte diff --git a/clients/web/src/lib/components/BridgeDock.test.ts b/clients/web/src/lib/components/bridge/BridgeDock.test.ts similarity index 100% rename from clients/web/src/lib/components/BridgeDock.test.ts rename to clients/web/src/lib/components/bridge/BridgeDock.test.ts diff --git a/clients/web/src/lib/components/BridgePreferenceSummary.svelte b/clients/web/src/lib/components/bridge/BridgePreferenceSummary.svelte similarity index 100% rename from clients/web/src/lib/components/BridgePreferenceSummary.svelte rename to clients/web/src/lib/components/bridge/BridgePreferenceSummary.svelte diff --git a/clients/web/src/lib/components/BridgePreferenceSummary.test.ts b/clients/web/src/lib/components/bridge/BridgePreferenceSummary.test.ts similarity index 100% rename from clients/web/src/lib/components/BridgePreferenceSummary.test.ts rename to clients/web/src/lib/components/bridge/BridgePreferenceSummary.test.ts diff --git a/clients/web/src/lib/components/BridgeShellNavigation.test.ts b/clients/web/src/lib/components/bridge/BridgeShellNavigation.test.ts similarity index 99% rename from clients/web/src/lib/components/BridgeShellNavigation.test.ts rename to clients/web/src/lib/components/bridge/BridgeShellNavigation.test.ts index 4dacaf33..06a6a151 100644 --- a/clients/web/src/lib/components/BridgeShellNavigation.test.ts +++ b/clients/web/src/lib/components/bridge/BridgeShellNavigation.test.ts @@ -42,8 +42,8 @@ import { goto } from "$app/navigation"; import { createBridgeSession, getAltarStatus, getBridgeSnapshot, getOrbRun, sendBridgeMessage, listenToRun, cancelBridgeRun } from "$lib/api/client"; import { bridgeWorkspaceKey, createBridgeWorkspace } from "$lib/bridge/workspace.svelte"; import { getSeancesWorkspace, type SeancesWorkspace as SeancesContext } from "$lib/seances/workspace.svelte"; -import AltarShell from "./AltarShell.svelte"; -import BridgePage from "../../routes/bridge/+page.svelte"; +import AltarShell from "../altar/AltarShell.svelte"; +import BridgePage from "../../../routes/bridge/+page.svelte"; const children = createRawSnippet(() => ({ render: () => "
" })); const sessions = [ diff --git a/clients/web/src/lib/components/BridgeView.svelte b/clients/web/src/lib/components/bridge/BridgeView.svelte similarity index 99% rename from clients/web/src/lib/components/BridgeView.svelte rename to clients/web/src/lib/components/bridge/BridgeView.svelte index d4007fb6..1a2994a2 100644 --- a/clients/web/src/lib/components/BridgeView.svelte +++ b/clients/web/src/lib/components/bridge/BridgeView.svelte @@ -23,20 +23,20 @@ replaceLiveTurnFromSnapshot, type LiveTurn } from "$lib/bridge/projection"; - import ConsentCard from "./ConsentCard.svelte"; - import CircleRun from "./CircleRun.svelte"; - import DelegateMark from "./DelegateMark.svelte"; - import GenUI from "./GenUI.svelte"; - import AtlasLinks from "./AtlasLinks.svelte"; - import AltarWelcome from "./AltarWelcome.svelte"; - import NamingCeremony from "./NamingCeremony.svelte"; + import ConsentCard from "../shared/ConsentCard.svelte"; + import CircleRun from "../shared/CircleRun.svelte"; + import DelegateMark from "../shared/DelegateMark.svelte"; + import GenUI from "../shared/GenUI.svelte"; + import AtlasLinks from "../atlas/AtlasLinks.svelte"; + import AltarWelcome from "../altar/AltarWelcome.svelte"; + import NamingCeremony from "../shared/NamingCeremony.svelte"; import { atlasHref } from "$lib/atlas/navigation"; import { bridgeWorkspaceKey, createBridgeWorkspace, type BridgeWorkspace } from "$lib/bridge/workspace.svelte"; import { delegationStatusLabel } from "$lib/delegation/presentation"; import { bridgePinsLimit, bridgePinsStorageKey, parsePinnedConversations, togglePinnedConversation } from "$lib/bridge/pins"; - import AltarIcon from "./AltarIcon.svelte"; + import AltarIcon from "../altar/AltarIcon.svelte"; import BridgeVoiceInput from "./BridgeVoiceInput.svelte"; - import DictationFeedback from "./DictationFeedback.svelte"; + import DictationFeedback from "../shared/DictationFeedback.svelte"; import { workCommandKey, type CommandTarget, type CommandResult, type WorkCommandRegistry } from "$lib/bridge/work-commands"; import type { DictationDraft, DictationOptions } from "$lib/bridge/voice/dictation"; diff --git a/clients/web/src/lib/components/BridgeView.test.ts b/clients/web/src/lib/components/bridge/BridgeView.test.ts similarity index 100% rename from clients/web/src/lib/components/BridgeView.test.ts rename to clients/web/src/lib/components/bridge/BridgeView.test.ts diff --git a/clients/web/src/lib/components/BridgeVoiceInput.svelte b/clients/web/src/lib/components/bridge/BridgeVoiceInput.svelte similarity index 100% rename from clients/web/src/lib/components/BridgeVoiceInput.svelte rename to clients/web/src/lib/components/bridge/BridgeVoiceInput.svelte diff --git a/clients/web/src/lib/components/BridgeVoiceInput.test.ts b/clients/web/src/lib/components/bridge/BridgeVoiceInput.test.ts similarity index 100% rename from clients/web/src/lib/components/BridgeVoiceInput.test.ts rename to clients/web/src/lib/components/bridge/BridgeVoiceInput.test.ts diff --git a/clients/web/src/lib/components/CanvasView.svelte b/clients/web/src/lib/components/canvas/CanvasView.svelte similarity index 99% rename from clients/web/src/lib/components/CanvasView.svelte rename to clients/web/src/lib/components/canvas/CanvasView.svelte index 8cbd3490..7a66330e 100644 --- a/clients/web/src/lib/components/CanvasView.svelte +++ b/clients/web/src/lib/components/canvas/CanvasView.svelte @@ -5,9 +5,9 @@ import type { CanvasNode, Document as BoardDocument, Packet, Proposal, Scene, Tool } from "$lib/canvas/types"; import { CANVAS_COMMAND_HELP, isCanvasCommandCurrent, planCanvasCommand, type CanvasCommandPlan } from "$lib/canvas/commands"; import { workCommandKey, type CommandResult, type CommandTarget, type WorkCommandRegistry } from "$lib/bridge/work-commands"; - import CanvasSurface from "./canvas/CanvasSurface.svelte"; - import CanvasObjects from "./canvas/CanvasObjects.svelte"; - import AltarIcon from "./AltarIcon.svelte"; + import CanvasSurface from "./CanvasSurface.svelte"; + import CanvasObjects from "./CanvasObjects.svelte"; + import AltarIcon from "../altar/AltarIcon.svelte"; let { initialDocument, managed = false, onchange, onbusy }: { initialDocument?: BoardDocument; diff --git a/clients/web/src/lib/components/canvas/CanvasView.test.ts b/clients/web/src/lib/components/canvas/CanvasView.test.ts index b8ad0767..c892801e 100644 --- a/clients/web/src/lib/components/canvas/CanvasView.test.ts +++ b/clients/web/src/lib/components/canvas/CanvasView.test.ts @@ -5,7 +5,7 @@ import { blankDocument, exampleDocument } from "$lib/canvas/engine"; import type { Document as BoardDocument, Packet, Proposal } from "$lib/canvas/types"; import { createWorkCommandRegistry, workCommandKey } from "$lib/bridge/work-commands"; import CanvasSurface from "./CanvasSurface.svelte"; -import CanvasView from "../CanvasView.svelte"; +import CanvasView from "./CanvasView.svelte"; vi.mock("$app/navigation", () => ({ beforeNavigate: vi.fn() })); let downloads: NodeBlob[]; diff --git a/clients/web/src/lib/components/CanvasWorkspace.svelte b/clients/web/src/lib/components/canvas/CanvasWorkspace.svelte similarity index 100% rename from clients/web/src/lib/components/CanvasWorkspace.svelte rename to clients/web/src/lib/components/canvas/CanvasWorkspace.svelte diff --git a/clients/web/src/lib/components/CanvasWorkspace.test.ts b/clients/web/src/lib/components/canvas/CanvasWorkspace.test.ts similarity index 100% rename from clients/web/src/lib/components/CanvasWorkspace.test.ts rename to clients/web/src/lib/components/canvas/CanvasWorkspace.test.ts diff --git a/clients/web/src/lib/components/CreationFeedback.fixtures.ts b/clients/web/src/lib/components/creation/CreationFeedback.fixtures.ts similarity index 100% rename from clients/web/src/lib/components/CreationFeedback.fixtures.ts rename to clients/web/src/lib/components/creation/CreationFeedback.fixtures.ts diff --git a/clients/web/src/lib/components/CreationFeedback.svelte b/clients/web/src/lib/components/creation/CreationFeedback.svelte similarity index 98% rename from clients/web/src/lib/components/CreationFeedback.svelte rename to clients/web/src/lib/components/creation/CreationFeedback.svelte index a49296fc..4a92c5d6 100644 --- a/clients/web/src/lib/components/CreationFeedback.svelte +++ b/clients/web/src/lib/components/creation/CreationFeedback.svelte @@ -1,6 +1,6 @@ import { page } from "$app/state"; - import AtlasView from "$lib/components/AtlasView.svelte"; + import AtlasView from "$lib/components/atlas/AtlasView.svelte"; import { goto } from "$app/navigation"; import { page } from "$app/state"; - import PublicNoteRecall from "$lib/components/PublicNoteRecall.svelte"; - import PublicNotes from "$lib/components/PublicNotes.svelte"; + import PublicNoteRecall from "$lib/components/public-notes/PublicNoteRecall.svelte"; + import PublicNotes from "$lib/components/public-notes/PublicNotes.svelte"; import { notesHref, notesFocusSelection } from "$lib/archive/notes"; - import CreationInvestigation from "$lib/components/CreationInvestigation.svelte"; + import CreationInvestigation from "$lib/components/creation/CreationInvestigation.svelte"; import { investigationHref, investigationSelection } from "$lib/creation/intake"; const focus = $derived(page.url.searchParams.getAll("investigation")); diff --git a/clients/web/src/routes/canvas/+page.svelte b/clients/web/src/routes/canvas/+page.svelte index e61cdb2e..5373d917 100644 --- a/clients/web/src/routes/canvas/+page.svelte +++ b/clients/web/src/routes/canvas/+page.svelte @@ -1,6 +1,6 @@ diff --git a/clients/web/src/routes/canvas/[project_id]/+page.svelte b/clients/web/src/routes/canvas/[project_id]/+page.svelte index 519ce929..bf3e519a 100644 --- a/clients/web/src/routes/canvas/[project_id]/+page.svelte +++ b/clients/web/src/routes/canvas/[project_id]/+page.svelte @@ -1,6 +1,6 @@ diff --git a/clients/web/src/routes/canvas/local/+page.svelte b/clients/web/src/routes/canvas/local/+page.svelte index 3e5a520f..0ae28745 100644 --- a/clients/web/src/routes/canvas/local/+page.svelte +++ b/clients/web/src/routes/canvas/local/+page.svelte @@ -1,5 +1,5 @@ diff --git a/clients/web/src/routes/loom/+page.svelte b/clients/web/src/routes/loom/+page.svelte index 434fe25b..0f1f9dc4 100644 --- a/clients/web/src/routes/loom/+page.svelte +++ b/clients/web/src/routes/loom/+page.svelte @@ -1,5 +1,5 @@ diff --git a/clients/web/src/routes/loom/[pattern_id]/[revision]/+page.svelte b/clients/web/src/routes/loom/[pattern_id]/[revision]/+page.svelte index 2db8a703..d2a31d24 100644 --- a/clients/web/src/routes/loom/[pattern_id]/[revision]/+page.svelte +++ b/clients/web/src/routes/loom/[pattern_id]/[revision]/+page.svelte @@ -1,6 +1,6 @@ diff --git a/clients/web/src/routes/nexus/+page.svelte b/clients/web/src/routes/nexus/+page.svelte index e927aff8..db70053d 100644 --- a/clients/web/src/routes/nexus/+page.svelte +++ b/clients/web/src/routes/nexus/+page.svelte @@ -1,5 +1,5 @@ diff --git a/clients/web/src/routes/orb/+page.svelte b/clients/web/src/routes/orb/+page.svelte index 2635876f..2e3c326d 100644 --- a/clients/web/src/routes/orb/+page.svelte +++ b/clients/web/src/routes/orb/+page.svelte @@ -1,5 +1,5 @@ diff --git a/clients/web/src/routes/orb/[run_id]/+page.svelte b/clients/web/src/routes/orb/[run_id]/+page.svelte index 81609449..31eea79b 100644 --- a/clients/web/src/routes/orb/[run_id]/+page.svelte +++ b/clients/web/src/routes/orb/[run_id]/+page.svelte @@ -1,6 +1,6 @@ diff --git a/clients/web/src/routes/scavenger/+page.svelte b/clients/web/src/routes/scavenger/+page.svelte index 41907af8..492b8821 100644 --- a/clients/web/src/routes/scavenger/+page.svelte +++ b/clients/web/src/routes/scavenger/+page.svelte @@ -1,6 +1,6 @@ diff --git a/clients/web/src/routes/seances/+page.svelte b/clients/web/src/routes/seances/+page.svelte index f9b8143e..12a494d1 100644 --- a/clients/web/src/routes/seances/+page.svelte +++ b/clients/web/src/routes/seances/+page.svelte @@ -1,4 +1,4 @@ diff --git a/clients/web/src/routes/seances/[session_id]/+page.svelte b/clients/web/src/routes/seances/[session_id]/+page.svelte index 8e2b509d..809da0d8 100644 --- a/clients/web/src/routes/seances/[session_id]/+page.svelte +++ b/clients/web/src/routes/seances/[session_id]/+page.svelte @@ -1,5 +1,5 @@ diff --git a/docs/state-of-the-work.md b/docs/state-of-the-work.md index 76355952..fbcc5c64 100644 --- a/docs/state-of-the-work.md +++ b/docs/state-of-the-work.md @@ -1287,10 +1287,10 @@ cross-engine heap gate. Existing server-held recovery, current-access and consen **Evidence** -- **Source:** [Shell](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/AltarShell.svelte), [Bridge dock](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/BridgeDock.svelte), [conversation](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/BridgeView.svelte), [bounded layout preferences](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/navigation/dock.ts), and [semantic styling](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/app.css) -- **Source:** [Séances workspace](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/SeancesWorkspace.svelte), [source material](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/seances/material.ts), and [document-local collection](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/seances/workspace.svelte.ts) -- **Verification:** [Séances reads and working material](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/SeancesWorkspace.test.ts), [source export](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/seances/material.test.ts), and [Bridge selection and continuation](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/BridgeShellNavigation.test.ts) -- **Verification:** [Server shell fallbacks](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_pages.py), [shell admission/status tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/AltarShell.test.ts), [mounted conversation/navigation tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/BridgeShellNavigation.test.ts), [dock interaction tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/BridgeDock.test.ts), [layout preference tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/navigation/dock.test.ts), and [offline source profile](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/routes/canvas/layout.test.ts) +- **Source:** [Shell](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/altar/AltarShell.svelte), [Bridge dock](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/bridge/BridgeDock.svelte), [conversation](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/bridge/BridgeView.svelte), [bounded layout preferences](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/navigation/dock.ts), and [semantic styling](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/app.css) +- **Source:** [Séances workspace](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/seances/SeancesWorkspace.svelte), [source material](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/seances/material.ts), and [document-local collection](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/seances/workspace.svelte.ts) +- **Verification:** [Séances reads and working material](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/seances/SeancesWorkspace.test.ts), [source export](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/seances/material.test.ts), and [Bridge selection and continuation](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/bridge/BridgeShellNavigation.test.ts) +- **Verification:** [Server shell fallbacks](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_pages.py), [shell admission/status tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/altar/AltarShell.test.ts), [mounted conversation/navigation tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/bridge/BridgeShellNavigation.test.ts), [dock interaction tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/bridge/BridgeDock.test.ts), [layout preference tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/navigation/dock.test.ts), and [offline source profile](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/routes/canvas/layout.test.ts) - **Law:** [Shared workbench and Bridge dock](./adr/15-frontend.md#the-shared-workbench-and-bridge-dock) - **Topic:** [Altar](./divination/altar/index.md#keep-bridge-beside-the-work) @@ -1350,9 +1350,9 @@ survives process restart only in the PostgreSQL profile; disposable memory does - **Source:** [Canvas command planner](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/canvas/commands.ts) and [exact work-target registry](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/bridge/work-commands.ts). - **Verification:** [Closed command tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/canvas/commands.test.ts) and [synthetic voice-to-command journey](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/bridge/voice/acceptance.test.ts). -- **Source:** [Canvas records](https://github.com/hexanomicon/lychd/blob/main/src/lychd/compositions/canvas/schemas.py), [pure review](https://github.com/hexanomicon/lychd/blob/main/src/lychd/compositions/canvas/operations.py), [stateless API](https://github.com/hexanomicon/lychd/blob/main/src/lychd/interface/web/canvas.py), [client engine](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/canvas/engine.ts), and [Canvas surface](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/CanvasView.svelte) +- **Source:** [Canvas records](https://github.com/hexanomicon/lychd/blob/main/src/lychd/compositions/canvas/schemas.py), [pure review](https://github.com/hexanomicon/lychd/blob/main/src/lychd/compositions/canvas/operations.py), [stateless API](https://github.com/hexanomicon/lychd/blob/main/src/lychd/interface/web/canvas.py), [client engine](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/canvas/engine.ts), and [Canvas surface](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/canvas/CanvasView.svelte) - **Verification:** [Domain and parity tests](https://github.com/hexanomicon/lychd/blob/main/tests/unit/compositions/test_canvas.py), [HTTP admission tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_canvas.py), [client engine tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/canvas/engine.test.ts), [gesture/review tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/canvas/CanvasView.test.ts), [offline preview test](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/routes/canvas/layout.test.ts), and [manual model example](https://github.com/hexanomicon/lychd/blob/main/examples/canvas/README.md) -- **Verification:** [Workspace domain](https://github.com/hexanomicon/lychd/blob/main/tests/unit/domain/web/test_canvas_workspace.py), [PostgreSQL retention](https://github.com/hexanomicon/lychd/blob/main/tests/integration/test_db_atlas_pg.py), and [workspace client recovery](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/CanvasWorkspace.test.ts) +- **Verification:** [Workspace domain](https://github.com/hexanomicon/lychd/blob/main/tests/unit/domain/web/test_canvas_workspace.py), [PostgreSQL retention](https://github.com/hexanomicon/lychd/blob/main/tests/integration/test_db_atlas_pg.py), and [workspace client recovery](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/canvas/CanvasWorkspace.test.ts) - **Law:** [Frontend](./adr/15-frontend.md#canvas-portable-board-authoring) and [Project retention](./adr/06-persistence.md#atlas-records) - **Topic:** [Canvas](./compositions/canvas/index.md) @@ -1402,8 +1402,8 @@ outside this evidence; existing installations require migration `0009` before us **Evidence** - **Law:** [Frontend](./adr/15-frontend.md#atlas-and-continuity-across-invocations) and [Persistence](./adr/06-persistence.md#atlas-records) -- **Source:** [Atlas domain](https://github.com/hexanomicon/lychd/blob/main/src/lychd/domain/web/atlas.py), [API](https://github.com/hexanomicon/lychd/blob/main/src/lychd/interface/web/atlas.py), [PostgreSQL adapter](https://github.com/hexanomicon/lychd/blob/main/src/lychd/db/atlas.py), and [Atlas client](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/AtlasView.svelte) -- **Verification:** [Domain tests](https://github.com/hexanomicon/lychd/blob/main/tests/unit/domain/web/test_atlas.py), [API tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_atlas.py), [PostgreSQL tests](https://github.com/hexanomicon/lychd/blob/main/tests/integration/test_db_atlas_pg.py), [migration tests](https://github.com/hexanomicon/lychd/blob/main/tests/integration/test_db_migrations_pg.py), [two-boot application test](https://github.com/hexanomicon/lychd/blob/main/tests/integration/test_production_wiring.py), and [client tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/AtlasView.test.ts) +- **Source:** [Atlas domain](https://github.com/hexanomicon/lychd/blob/main/src/lychd/domain/web/atlas.py), [API](https://github.com/hexanomicon/lychd/blob/main/src/lychd/interface/web/atlas.py), [PostgreSQL adapter](https://github.com/hexanomicon/lychd/blob/main/src/lychd/db/atlas.py), and [Atlas client](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/atlas/AtlasView.svelte) +- **Verification:** [Domain tests](https://github.com/hexanomicon/lychd/blob/main/tests/unit/domain/web/test_atlas.py), [API tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_atlas.py), [PostgreSQL tests](https://github.com/hexanomicon/lychd/blob/main/tests/integration/test_db_atlas_pg.py), [migration tests](https://github.com/hexanomicon/lychd/blob/main/tests/integration/test_db_migrations_pg.py), [two-boot application test](https://github.com/hexanomicon/lychd/blob/main/tests/integration/test_production_wiring.py), and [client tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/atlas/AtlasView.test.ts) - **Topic:** [Atlas](./divination/altar/atlas.md) ### Bridge conversation and consent surface {#bridge-surface} @@ -1501,11 +1501,11 @@ they do not qualify production deployment or live effects. **Evidence** -- **Source:** [Bridge controller](https://github.com/hexanomicon/lychd/blob/main/src/lychd/interface/web/bridge.py), [Bridge client](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/BridgeView.svelte), [Altar shell](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/AltarShell.svelte), and [Context assembly](https://github.com/hexanomicon/lychd/blob/main/src/lychd/domain/cortex/context.py), with [native review resolution](https://github.com/hexanomicon/lychd/blob/main/src/lychd/domain/web/consent_reviews.py) and [binding migration](https://github.com/hexanomicon/lychd/blob/main/src/lychd/db/migrations/versions/0010_native_consent_binding.py). -- **Source:** [Circle Run disclosure](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/CircleRun.svelte) -- **Verification:** [Circle identity/action tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/CircleRun.test.ts) +- **Source:** [Bridge controller](https://github.com/hexanomicon/lychd/blob/main/src/lychd/interface/web/bridge.py), [Bridge client](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/bridge/BridgeView.svelte), [Altar shell](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/altar/AltarShell.svelte), and [Context assembly](https://github.com/hexanomicon/lychd/blob/main/src/lychd/domain/cortex/context.py), with [native review resolution](https://github.com/hexanomicon/lychd/blob/main/src/lychd/domain/web/consent_reviews.py) and [binding migration](https://github.com/hexanomicon/lychd/blob/main/src/lychd/db/migrations/versions/0010_native_consent_binding.py). +- **Source:** [Circle Run disclosure](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/shared/CircleRun.svelte) +- **Verification:** [Circle identity/action tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/shared/CircleRun.test.ts) - **Verification:** [Configured composer projection tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_bridge_composer.py) -- **Verification:** [Bridge tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_bridge.py), [archive tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_bridge_archive.py), [stream admission tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_bridge_stream_budget.py), [PostgreSQL archive receipts](https://github.com/hexanomicon/lychd/blob/main/tests/integration/test_db_consent_pg.py), and [client recovery tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/BridgeView.test.ts), [initial read recovery tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/InstrumentReadRecovery.test.ts), [shell navigation tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/BridgeShellNavigation.test.ts), [client review tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/ConsentCard.test.ts), and [decision transport tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/api/client.test.ts), plus [complete-history tests](https://github.com/hexanomicon/lychd/blob/main/tests/unit/domain/cortex/test_context.py), [native binding tests](https://github.com/hexanomicon/lychd/blob/main/tests/codex/test_native_consent.py), and [reviewer and decision tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_native_consent_review.py). +- **Verification:** [Bridge tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_bridge.py), [archive tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_bridge_archive.py), [stream admission tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_bridge_stream_budget.py), [PostgreSQL archive receipts](https://github.com/hexanomicon/lychd/blob/main/tests/integration/test_db_consent_pg.py), and [client recovery tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/bridge/BridgeView.test.ts), [initial read recovery tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/shared/InstrumentReadRecovery.test.ts), [shell navigation tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/bridge/BridgeShellNavigation.test.ts), [client review tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/shared/ConsentCard.test.ts), and [decision transport tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/api/client.test.ts), plus [complete-history tests](https://github.com/hexanomicon/lychd/blob/main/tests/unit/domain/cortex/test_context.py), [native binding tests](https://github.com/hexanomicon/lychd/blob/main/tests/codex/test_native_consent.py), and [reviewer and decision tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_native_consent_review.py). - **Law:** [Frontend](./adr/15-frontend.md), [Context](./adr/21-context.md), and [native Consent review](./adr/25-hitl.md#required-review-for-native-actions-designed) ### Nexus transition board {#nexus-transition-board} @@ -1540,9 +1540,9 @@ topology measurement and no configuration editor. **Evidence** - **Source:** [Nexus controller](https://github.com/hexanomicon/lychd/blob/main/src/lychd/interface/web/nexus.py) -- **Verification:** [Nexus tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_nexus.py) and [client transition tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/NexusView.test.ts) -- **Source:** [Native ownership map](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/NexusMap.svelte), [typed projection](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/nexus/map.ts), and [selected properties](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/NexusProperties.svelte) -- **Verification:** [Projection identity/impact tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/nexus/map.test.ts) and [native camera/selection tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/NexusMap.test.ts) +- **Verification:** [Nexus tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_nexus.py) and [client transition tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/nexus/NexusView.test.ts) +- **Source:** [Native ownership map](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/nexus/NexusMap.svelte), [typed projection](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/nexus/map.ts), and [selected properties](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/nexus/NexusProperties.svelte) +- **Verification:** [Projection identity/impact tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/nexus/map.test.ts) and [native camera/selection tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/nexus/NexusMap.test.ts) - **Law:** [Frontend](./adr/15-frontend.md) ### Loom workflow instrument {#loom-workflow-views} @@ -1578,8 +1578,8 @@ lifecycle, graph-failure, editor or general accessibility acceptance. **Evidence** -- **Source:** [Loom controller](https://github.com/hexanomicon/lychd/blob/main/src/lychd/interface/web/loom.py), [Pattern registry contract](https://github.com/hexanomicon/lychd/blob/main/src/lychd/agents/workflows/base.py), [Loom client](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/LoomView.svelte), and [shared graph adapter](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/graph/GraphCanvas.svelte) -- **Verification:** [Loom tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_loom.py), [client lifecycle tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/LoomView.test.ts), and [semantic projection tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/graph/loom.test.ts) +- **Source:** [Loom controller](https://github.com/hexanomicon/lychd/blob/main/src/lychd/interface/web/loom.py), [Pattern registry contract](https://github.com/hexanomicon/lychd/blob/main/src/lychd/agents/workflows/base.py), [Loom client](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/loom/LoomView.svelte), and [shared graph adapter](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/graph/GraphCanvas.svelte) +- **Verification:** [Loom tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_loom.py), [client lifecycle tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/loom/LoomView.test.ts), and [semantic projection tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/graph/loom.test.ts) - **Verification:** [Inspection-only source binding](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_orb_runtime.py) and [sealed descriptor contributions](https://github.com/hexanomicon/lychd/blob/main/tests/unit/extensions/test_observation_context.py) - **Law:** [Workflow](./adr/28-workflow.md) @@ -2626,14 +2626,14 @@ It supplies no complete event capture, continuous runtime activity or general re **Evidence** -- **Source:** [Orb controller](https://github.com/hexanomicon/lychd/blob/main/src/lychd/interface/web/orb.py), [Run catalogue queries](https://github.com/hexanomicon/lychd/blob/main/src/lychd/domain/cortex/ledger.py), [parallel field](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/OrbField.svelte), and [selected-Run client](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/OrbView.svelte) -- **Verification:** [Orb API and stream tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_orb.py), [catalogue privacy and pagination tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_orb_catalogue.py), [parallel-field tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/OrbField.test.ts), [folded coverage tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/graph/orb.test.ts), [selected-Run tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/OrbView.test.ts), and [feed recovery tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/orb/live.test.ts) -- **Source:** [Tab captures](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/orb/field-history.ts), [timeline](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/OrbTimeline.svelte), and [spatial adapter layout](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/graph/orb-layout.ts) -- **Verification:** [Capture retention and isolation](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/orb/field-history.test.ts), [timeline playback and seeking](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/OrbTimeline.test.ts), and [stable spatial layout](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/graph/orb-layout.test.ts) -- **Source:** [Retained preference projection](https://github.com/hexanomicon/lychd/blob/main/src/lychd/domain/web/orb.py) and [preference inspector](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/BridgePreferenceSummary.svelte) -- **Verification:** [Preference API and settled stream](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_orb_preference.py), [preference inspector controls](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/BridgePreferenceSummary.test.ts), and [typed stream metadata](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/orb/live.test.ts) +- **Source:** [Orb controller](https://github.com/hexanomicon/lychd/blob/main/src/lychd/interface/web/orb.py), [Run catalogue queries](https://github.com/hexanomicon/lychd/blob/main/src/lychd/domain/cortex/ledger.py), [parallel field](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/orb/OrbField.svelte), and [selected-Run client](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/orb/OrbView.svelte) +- **Verification:** [Orb API and stream tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_orb.py), [catalogue privacy and pagination tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_orb_catalogue.py), [parallel-field tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/orb/OrbField.test.ts), [folded coverage tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/graph/orb.test.ts), [selected-Run tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/orb/OrbView.test.ts), and [feed recovery tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/orb/live.test.ts) +- **Source:** [Tab captures](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/orb/field-history.ts), [timeline](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/orb/OrbTimeline.svelte), and [spatial adapter layout](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/graph/orb-layout.ts) +- **Verification:** [Capture retention and isolation](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/orb/field-history.test.ts), [timeline playback and seeking](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/orb/OrbTimeline.test.ts), and [stable spatial layout](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/graph/orb-layout.test.ts) +- **Source:** [Retained preference projection](https://github.com/hexanomicon/lychd/blob/main/src/lychd/domain/web/orb.py) and [preference inspector](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/bridge/BridgePreferenceSummary.svelte) +- **Verification:** [Preference API and settled stream](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_orb_preference.py), [preference inspector controls](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/bridge/BridgePreferenceSummary.test.ts), and [typed stream metadata](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/orb/live.test.ts) - **Law:** [Observability](./adr/29-observability.md), [Altar projection](./adr/15-frontend.md#snapshots-streams-and-recovery), and [Creation summary](./compositions/creation/index.md#selected-run-summary) -- **Source:** [Runtime source catalogue](https://github.com/hexanomicon/lychd/blob/main/src/lychd/domain/oculus/runtime.py), [shared field projection](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/graph/runtime.ts), and [runtime inspector](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/RuntimeEvidence.svelte) +- **Source:** [Runtime source catalogue](https://github.com/hexanomicon/lychd/blob/main/src/lychd/domain/oculus/runtime.py), [shared field projection](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/graph/runtime.ts), and [runtime inspector](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/shared/RuntimeEvidence.svelte) - **Verification:** [Runtime API authorization and exact binding](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_orb_runtime.py), [replay and lifecycle controls](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/orb/runtime.test.ts), and [generic topology/attempt projections](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/graph/runtime.test.ts) ### Structured logging configuration {#structured-logging} @@ -3004,7 +3004,7 @@ unimplemented outside the shared Pod. - **Topic:** [Scout](./sepulcher/extensions/scout.md) - **Verification:** [Pinned SearXNG transport study](./sepulcher/extensions/scout.md#searxng-transport-cut) and its [dated offline observation](https://github.com/hexanomicon/lychd/blob/main/tests/fixtures/scout/searxng-transport-cut-2026-10-18.json) establish controlled upstream retry and private one-use transport-cut behavior only. The separate [local service-fixture observation](https://github.com/hexanomicon/lychd/blob/main/tests/fixtures/scout/searxng-service-fixture-2026-10-18.json) adds actual one-use authenticated service/parser evidence; no live engine, repeated service use, production egress boundary or native Search is qualified. -- **Source:** [Feed admission and protected API](https://github.com/hexanomicon/lychd/blob/main/src/lychd/interface/api/scavenger.py), [model-free Graph](https://github.com/hexanomicon/lychd/blob/main/src/lychd/agents/workflows/observe_market.py), [application custody](https://github.com/hexanomicon/lychd/blob/main/src/lychd/db/scavenger.py), and [Altar application](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/ScavengerView.svelte) +- **Source:** [Feed admission and protected API](https://github.com/hexanomicon/lychd/blob/main/src/lychd/interface/api/scavenger.py), [model-free Graph](https://github.com/hexanomicon/lychd/blob/main/src/lychd/agents/workflows/observe_market.py), [application custody](https://github.com/hexanomicon/lychd/blob/main/src/lychd/db/scavenger.py), and [Altar application](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/scavenger/ScavengerView.svelte) - **Verification:** [Dated ordinary native public feed and retained readback observation](https://github.com/hexanomicon/lychd/blob/main/tests/fixtures/scout/native-finite-feed-observation-2026-10-18.json) records successful finite custody, the failed original restart guard, separate fresh-process GET readback and unchanged permanent accounting; clean application shutdown remains unqualified. - **Verification:** [After-fix ordinary native retained readback](https://github.com/hexanomicon/lychd/blob/main/tests/fixtures/scout/native-queue-shutdown-readback-2026-10-18.json) binds the exact dirty source candidate, full captured log assessment, unchanged retained data/accounting and independent resource settlement. [Queue-plugin regressions](https://github.com/hexanomicon/lychd/blob/main/tests/unit/system/services/test_runtime_queue_plugin.py) exercise actual installed workers, sole retirement ownership and partial-startup/failed-stop containment with inert transports. - **Verification:** [Selected PostgreSQL and physical feed proof](https://github.com/hexanomicon/lychd/blob/main/tests/integration/test_scavenger_feed_pg.py), [protected HTTP and logging tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_scavenger.py), [driver privacy tests](https://github.com/hexanomicon/lychd/blob/main/tests/unit/db/test_scavenger_privacy.py), and [Altar lifecycle tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/scavenger/observation.test.ts) @@ -3115,7 +3115,7 @@ streaming socket, resonance buffer, selectable Echo extension or Audio Coven. - **Topic:** [Local qualification](./sepulcher/extensions/echo-local-probe.md) - **Source:** [Dictation profile](https://github.com/hexanomicon/lychd/blob/main/src/lychd/domain/dictation.py), [attempt service](https://github.com/hexanomicon/lychd/blob/main/src/lychd/domain/dictation_service.py), [protected API](https://github.com/hexanomicon/lychd/blob/main/src/lychd/interface/web/dictation.py), [CPU adapter](https://github.com/hexanomicon/lychd/blob/main/src/lychd/system/services/dictation_transcriber.py), [retained attempts](https://github.com/hexanomicon/lychd/blob/main/src/lychd/db/dictation.py), [private vocabulary](https://github.com/hexanomicon/lychd/blob/main/src/lychd/db/dictation_lexicon.py). -- **Verification:** [API tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_dictation.py), [attempt history tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_dictation_history.py), [vocabulary tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_dictation_lexicon.py), [store tests](https://github.com/hexanomicon/lychd/blob/main/tests/unit/db/test_dictation.py), [voice controls](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/BridgeVoiceInput.test.ts), [history and corrections](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/DictationFeedback.test.ts), [synthetic command journey](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/bridge/voice/acceptance.test.ts). +- **Verification:** [API tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_dictation.py), [attempt history tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_dictation_history.py), [vocabulary tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_dictation_lexicon.py), [store tests](https://github.com/hexanomicon/lychd/blob/main/tests/unit/db/test_dictation.py), [voice controls](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/bridge/BridgeVoiceInput.test.ts), [history and corrections](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/shared/DictationFeedback.test.ts), [synthetic command journey](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/bridge/voice/acceptance.test.ts). - **Topic:** [Bridge dictation](./divination/altar/bridge.md#dictate-and-review) - **Law:** [Audio](./adr/37-audio.md) @@ -3395,13 +3395,13 @@ Generated answers can quote sources; later revocation does not erase earlier out - **Verification:** [Initial readiness observations](https://github.com/hexanomicon/lychd/blob/main/tests/unit/domain/web/test_lifespan_readiness.py), [fixed native answer profile](https://github.com/hexanomicon/lychd/blob/main/tests/integration/test_semantic_answer_native_runtime.py), [maintained native answer receipt](https://github.com/hexanomicon/lychd/blob/main/tests/fixtures/archive/native-semantic-answer-runtime-2026-10-19.json), and [inert transport/result controls](https://github.com/hexanomicon/lychd/blob/main/tests/unit/support/test_semantic_answer_runtime.py) and [maintained receipt freshness controls](https://github.com/hexanomicon/lychd/blob/main/tests/unit/support/test_archive_semantic_runtime.py). This separate fixed A/B/C qualification does not extend the Archive lifecycle receipt. - **Verification:** [Native semantic composition](https://github.com/hexanomicon/lychd/blob/main/tests/integration/test_archive_semantic_native_runtime.py), [owned runtime helper](https://github.com/hexanomicon/lychd/blob/main/tests/support/archive_semantic_runtime.py), [maintained native receipt](https://github.com/hexanomicon/lychd/blob/main/tests/fixtures/archive/native-semantic-runtime-2026-10-19.json), and [inert admission/source freshness](https://github.com/hexanomicon/lychd/blob/main/tests/unit/support/test_archive_semantic_runtime.py) - **Verification:** [Metadata authority, cursor and column-selection tests](https://github.com/hexanomicon/lychd/blob/main/tests/unit/db/test_archive_failures.py) and [guarded metadata HTTP tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_archive_metadata.py); the PostgreSQL lifecycle and vertical tests above include retained metadata recovery and no-write reads. -- **Source:** [Public-note focus](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/PublicNotes.svelte) and [framework-neutral recovery controller](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/archive/notes.ts) -- **Verification:** [Recovery and unknown outcomes](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/archive/notes.test.ts), [controls and late-focus races](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/PublicNotes.test.ts), [transport/CSRF](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/api/archive.test.ts), [closed route dispatch](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/routes/bridge/page.test.ts), and [ordinary Bridge workspace preservation](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/BridgeShellNavigation.test.ts) -- **Source:** [Explicit semantic source focus](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/PublicNoteRecall.svelte) and [plain recall controller](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/archive/semantic.ts) -- **Verification:** [Semantic request, recovery and source fences](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/archive/semantic.test.ts), [source focus and keyboard controls](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/PublicNoteRecall.test.ts), and the transport/route/workspace tests above. -- **Source:** [Exact-note preparation controls](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/PublicNotePreparation.svelte) and [preparation controller](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/archive/preparation.ts) -- **Verification:** [Latest-state and frozen-reference recovery](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/archive/preparation.test.ts), [preparation controls](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/PublicNotePreparation.test.ts), and the public-note management/transport tests above. -- **Source:** [Exact-Run Archive inspector](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/ArchiveRecallPanel.svelte); [inspector tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/ArchiveRecallPanel.test.ts) cover protected display and lifetime. +- **Source:** [Public-note focus](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/public-notes/PublicNotes.svelte) and [framework-neutral recovery controller](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/archive/notes.ts) +- **Verification:** [Recovery and unknown outcomes](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/archive/notes.test.ts), [controls and late-focus races](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/public-notes/PublicNotes.test.ts), [transport/CSRF](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/api/archive.test.ts), [closed route dispatch](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/routes/bridge/page.test.ts), and [ordinary Bridge workspace preservation](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/bridge/BridgeShellNavigation.test.ts) +- **Source:** [Explicit semantic source focus](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/public-notes/PublicNoteRecall.svelte) and [plain recall controller](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/archive/semantic.ts) +- **Verification:** [Semantic request, recovery and source fences](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/archive/semantic.test.ts), [source focus and keyboard controls](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/public-notes/PublicNoteRecall.test.ts), and the transport/route/workspace tests above. +- **Source:** [Exact-note preparation controls](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/public-notes/PublicNotePreparation.svelte) and [preparation controller](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/archive/preparation.ts) +- **Verification:** [Latest-state and frozen-reference recovery](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/archive/preparation.test.ts), [preparation controls](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/public-notes/PublicNotePreparation.test.ts), and the public-note management/transport tests above. +- **Source:** [Exact-Run Archive inspector](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/shared/ArchiveRecallPanel.svelte); [inspector tests](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/shared/ArchiveRecallPanel.test.ts) cover protected display and lifetime. - **Verification:** [Exact-Run recall binding, preseed and current-authority HTTP tests](https://github.com/hexanomicon/lychd/blob/main/tests/web/test_archive_run_recall.py); the PostgreSQL lifecycle and vertical tests above cover terminal and historical metadata reads. - **Topic:** [Public-note answers](./divination/altar/bridge.md#public-note-answers), [explicit semantic sources](./divination/altar/bridge.md#recall-semantic-sources), [semantic generation answers](./divination/altar/bridge.md#answer-from-a-semantic-generation), and [matching Archive selection](./divination/altar/orb.md#inspect-a-matching-archive-selection) - **Law:** [Memory](./adr/27-memory.md) @@ -3448,12 +3448,12 @@ or end-to-end host qualification. Historical speaker labels are not rewritten fr - **Source:** [Names and local suggestions](https://github.com/hexanomicon/lychd/blob/main/src/lychd/domain/naming.py), [persistent acceptance](https://github.com/hexanomicon/lychd/blob/main/src/lychd/db/naming.py), [HTTP surface](https://github.com/hexanomicon/lychd/blob/main/src/lychd/interface/web/naming.py), and - [ceremony](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/NamingCeremony.svelte) + [ceremony](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/shared/NamingCeremony.svelte) - **Verification:** [Admission and replay](https://github.com/hexanomicon/lychd/blob/main/tests/unit/domain/cortex/test_naming_admission.py), [actual model instructions](https://github.com/hexanomicon/lychd/blob/main/tests/agents/test_naming.py), [execution compatibility](https://github.com/hexanomicon/lychd/blob/main/tests/agents/test_naming_revisions.py), [PostgreSQL reconstruction and migration](https://github.com/hexanomicon/lychd/blob/main/tests/integration/test_naming_pg.py), and - [ceremony interactions](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/NamingCeremony.test.ts) + [ceremony interactions](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/shared/NamingCeremony.test.ts) ### Shadow simulation {#shadow-simulation} @@ -3746,7 +3746,7 @@ attestation plane, canonical source on Radicle, Radicle node topology or downstr - **Verification:** [Unfamiliar native noncompletion](https://github.com/hexanomicon/lychd/blob/main/tests/fixtures/creation/native-successor-2026-10-17.json) retains the exact public role packet, unadopted output, separate schema/byte failures and attributed citation review. - **Verification:** [Known-case source projection](https://github.com/hexanomicon/lychd/blob/main/tests/fixtures/creation/native-source-projection-2026-10-17.json) retains both exact projected packets/results, native accepted, separate partial external judgments and normal restart/closure observations. - **Verification:** [Native attachment of the later review](https://github.com/hexanomicon/lychd/blob/main/tests/fixtures/creation/native-source-projection-feedback-2026-10-17.json) retains the subsequent exact-report attachment, separate partial/hold, typed coverage, replay/restart and zero-inference settlement. -- **Verification:** [Current-authority read regressions](https://github.com/hexanomicon/lychd/blob/main/tests/unit/compositions/test_creation_read_authority.py), [intake lifecycle](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/creation/intake.test.ts), [Investigation UI](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/CreationInvestigation.test.ts), [feedback disclosure](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/CreationFeedback.test.ts), and [generated transport](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/api/creation.test.ts) +- **Verification:** [Current-authority read regressions](https://github.com/hexanomicon/lychd/blob/main/tests/unit/compositions/test_creation_read_authority.py), [intake lifecycle](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/creation/intake.test.ts), [Investigation UI](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/creation/CreationInvestigation.test.ts), [feedback disclosure](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/components/creation/CreationFeedback.test.ts), and [generated transport](https://github.com/hexanomicon/lychd/blob/main/clients/web/src/lib/api/creation.test.ts) - **Topic:** [Creation investigation](./compositions/creation/index.md), [Smith](./sepulcher/extensions/smith.md), [Creation](./sepulcher/extensions/weaver/creation.md), and [Ouroboros](./sepulcher/extensions/weaver/ouroboros.md), with [Development bootstrap](./sepulcher/extensions/weaver/development-bootstrap.md) and diff --git a/scripts/verify_release_artifacts.py b/scripts/verify_release_artifacts.py index a71e2daf..635a0288 100644 --- a/scripts/verify_release_artifacts.py +++ b/scripts/verify_release_artifacts.py @@ -245,7 +245,7 @@ def _verify_sdist(sdist: Path, revision: str, version: str, source_root: Path) - "clients/web/package-lock.json", "clients/web/package.json", "clients/web/static/THIRD_PARTY_NOTICES.txt", - "clients/web/src/lib/components/AltarShell.svelte", + "clients/web/src/lib/components/altar/AltarShell.svelte", "clients/web/vite.config.ts", "scripts/generate_python_third_party_notices.py", "scripts/verify_release_artifacts.py", From 04b5ba411039481b522030843b928090970c26e8 Mon Sep 17 00:00:00 2001 From: ChirayuBatra99 Date: Wed, 11 Nov 2026 18:28:01 +0530 Subject: [PATCH 2/8] feat: add a header component for code reusability in all UI pages --- .../src/lib/components/atlas/AtlasView.svelte | 32 +++--- .../lib/components/canvas/CanvasView.svelte | 11 +- .../components/canvas/CanvasWorkspace.svelte | 20 ++-- .../creation/CreationInvestigation.svelte | 27 +++-- .../src/lib/components/loom/LoomView.svelte | 19 ++-- .../src/lib/components/nexus/NexusView.svelte | 11 +- .../web/src/lib/components/orb/OrbView.svelte | 18 +-- .../public-notes/PublicNoteRecall.svelte | 23 ++-- .../public-notes/PublicNotes.svelte | 23 ++-- .../components/scavenger/ScavengerView.svelte | 39 +++---- .../seances/SeancesWorkspace.svelte | 10 +- .../lib/components/shared/PageHeader.svelte | 105 ++++++++++++++++++ 12 files changed, 208 insertions(+), 130 deletions(-) create mode 100644 clients/web/src/lib/components/shared/PageHeader.svelte diff --git a/clients/web/src/lib/components/atlas/AtlasView.svelte b/clients/web/src/lib/components/atlas/AtlasView.svelte index 107399ce..0c999f11 100644 --- a/clients/web/src/lib/components/atlas/AtlasView.svelte +++ b/clients/web/src/lib/components/atlas/AtlasView.svelte @@ -2,6 +2,7 @@ import { beforeNavigate, goto } from "$app/navigation"; import { tick, untrack } from "svelte"; import { atlasHref, parseAtlasLink, type AtlasLinkIntent } from "$lib/atlas/navigation"; + import PageHeader from "../shared/PageHeader.svelte"; import { ApiError, @@ -578,14 +579,15 @@ {view ? `${view.title} · Atlas` : "Atlas"} — LychD
-
-
- {#if projectId}← All projects{/if} - {projectId ? "Canvas project record" : "Canvas projects"} -

{view?.title ?? "Atlas"}

- {#if !projectId}

Open a canvas or return to a project.

{/if} -
-
+ + {#snippet actions()} @@ -597,8 +599,8 @@ Open Canvas → {lifecycleNames[view.lifecycle]} {/if} -
-
+ {/snippet} + {#if notice}

{notice}

{/if} {#if linkIntent} @@ -1141,17 +1143,14 @@ padding: clamp(1.25rem, 3vw, 2.5rem); color: var(--color-bone); } - .atlas-heading, .section-heading, .actions, .form-footer, .pagination { + .section-heading, .actions, .form-footer, .pagination { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 0.75rem; } - .atlas-heading { align-items: flex-end; margin-bottom: 2.25rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--color-engraving); } - .atlas-heading h1 { margin-block: 0.35rem 0.6rem; font-size: clamp(1.8rem, 3.3vw, 2.8rem); letter-spacing: -0.02em; overflow-wrap: anywhere; } - .atlas-heading p { color: var(--color-parchment); max-width: 48rem; } - .back-link { display: inline-block; margin-bottom: 0.6rem; } + .atlas > :global(.page-header) { margin-bottom: 2.25rem; } h2 { font-size: var(--text-xl); font-weight: 500; } h3 { font-size: var(--text-lg); font-weight: 500; overflow-wrap: anywhere; } h4 { font-size: var(--text-base); font-weight: 600; } @@ -1319,7 +1318,6 @@ .project-facts { align-items: flex-start; text-align: left; } .card-foot { display: flex; justify-content: space-between; width: 100%; } .record-preview { justify-content: flex-start; } - .atlas-heading { align-items: flex-start; } } @media (max-width: 68rem) { .project-reading { grid-template-columns: minmax(0, 1fr); } @@ -1329,7 +1327,6 @@ .atlas-chart { display: none; } .supporting-grid, .form-pair, .comparison-values, .concern-filters, .overview-body, .basis-columns { grid-template-columns: minmax(0, 1fr); } .concern-counts { grid-template-columns: repeat(2, minmax(0, 1fr)); } - .atlas-heading { gap: 1rem; } .section-heading { gap: 0.8rem; } .atlas { padding: 1rem; } .editor input, .editor textarea, .editor select { font-size: 1rem; } @@ -1342,7 +1339,6 @@ .atlas-chart { display: none; } .supporting-grid, .form-pair, .comparison-values, .concern-filters, .overview-body, .basis-columns { grid-template-columns: minmax(0, 1fr); } .concern-counts { grid-template-columns: repeat(2, minmax(0, 1fr)); } - .atlas-heading { gap: 1rem; } .section-heading { gap: 0.8rem; } .atlas { padding: 1rem; } .editor input, .editor textarea, .editor select { font-size: 1rem; } diff --git a/clients/web/src/lib/components/canvas/CanvasView.svelte b/clients/web/src/lib/components/canvas/CanvasView.svelte index 7a66330e..56c20c16 100644 --- a/clients/web/src/lib/components/canvas/CanvasView.svelte +++ b/clients/web/src/lib/components/canvas/CanvasView.svelte @@ -8,6 +8,7 @@ import CanvasSurface from "./CanvasSurface.svelte"; import CanvasObjects from "./CanvasObjects.svelte"; import AltarIcon from "../altar/AltarIcon.svelte"; + import PageHeader from "../shared/PageHeader.svelte"; let { initialDocument, managed = false, onchange, onbusy }: { initialDocument?: BoardDocument; @@ -291,7 +292,9 @@ {#if managed}
{@render boardTitle()}r{scene.revision} · {count} objects
{@render fileActions()}
{:else} -
Portable board

Canvas

{@render fileActions()}
+ + {#snippet actions()}
{@render fileActions()}
{/snippet} +
{@render boardTitle()}{unexported ? "● " : ""}{fileState}r{scene.revision} · {count} objects
{/if} @@ -337,10 +340,6 @@ diff --git a/clients/web/src/lib/components/creation/CreationInvestigation.svelte b/clients/web/src/lib/components/creation/CreationInvestigation.svelte index 80fd4e8a..e57bab49 100644 --- a/clients/web/src/lib/components/creation/CreationInvestigation.svelte +++ b/clients/web/src/lib/components/creation/CreationInvestigation.svelte @@ -3,6 +3,7 @@ import { getContext, onDestroy, tick } from "svelte"; import { readCreationInvestigation, submitCreationInvestigation } from "$lib/api/client"; import CreationFeedback from "./CreationFeedback.svelte"; + import PageHeader from "../shared/PageHeader.svelte"; import { altarNavigationContext, type AltarNavigation } from "$lib/navigation/instruments"; import { emptyDraft, initialIntakeState, InvestigationIntake, investigationHref, investigationSelection, prepareRequest, utf8Bytes @@ -106,12 +107,15 @@ Creation investigation — Bridge — LychD
-
- Bridge · public source -

Creation investigation

-

A bounded question about literal public source. The fixed investigation is tools-free: it does not acquire a repository, edit source or promote a change.

- Return to conversation -
+ {#if intakeState.unconfirmedIds.length > 0}