Console, workspace, and catalog ================================ Public UI: ``https://pfc.georgelambert.org`` (Caddy to ``127.0.0.1:18780``). Two identity planes ------------------- * **Peergos Drive** -- password plus TOTP/WebAuthn for cryptree. Google does not unwrap cubes. * **PFC console** -- password plus TOTP (Google OIDC optional). Inspect remains k-of-n officer shares. Workspace --------- Each console user gets a primary DataCube ``-ws`` (profile ``internal``, kind ``workspace``). Other cubes are catalogued inside it like a library. Creating an **internal** cube requires Client, Author, Subject, Title. Those fields append to: * ``cubes//catalog/card.json`` * the workspace catalog JSONL * the **cube** chain and the **workspace** chain Drag and drop ------------- * Desktop files onto the drop zone or a cube row: prompt with that cube's catalog defaults. SHA-256 is hashed in the browser first. * An object chip from another cube: keep this cube's catalog defaults, or edit for this item only. The original SHA-256 and timestamp receipt are never rewritten. Copy into another cube appends a ``copy`` row (original ``created_ts``, source cube/seq, receipt). Optional file bytes are re-wrapped on the dest cube. HIPAA bytes still need an inspect session. Hash registry and stamps ------------------------ Global registry: ``registry/hashes.jsonl``. First-seen ``created_ts`` and first receipt win. Every chain append (object, copy, catalog, comment, memo, link) queues unregistered hashes (content SHA-256 and/or envelope SHA-256). A daemon thread (``PFC_STAMP_SYNC``, default 15 seconds) flushes them through the NATS leaf (``verae.ts.request``). Already registered document hashes are skipped. New comments get a **new** envelope hash and a new timestamp. Comments, memos, and chain links append on the local cube immediately; the leaf batch only timestamps hashes that have no receipt yet.