Add active tab page snapshots

This commit is contained in:
Meta Vens 2026-06-13 19:46:10 +01:00
commit b20fb98c54
8 changed files with 332 additions and 26 deletions

View file

@ -8,9 +8,11 @@ CultMesh/Eve consumers while keeping Chrome installation easy for the operator.
## Current Mechanism
The Chrome extension observes tab metadata with explicit Chrome permissions and
posts reports to Loki's localhost ingest endpoint. On command, it also uses
`chrome.debugger` to attach to debuggable tabs, probe Chrome Debugger Protocol
domains, and detach. Chrome can also expose DevTools metadata on
posts reports to Loki's localhost ingest endpoint. On explicit operator command
from the popup, it can capture the active tab's visible page text, headings,
links, and visible form controls for Codex-assisted navigation. On command, it
also uses `chrome.debugger` to attach to debuggable tabs, probe Chrome Debugger
Protocol domains, and detach. Chrome can also expose DevTools metadata on
`127.0.0.1:{port}` when started with `--remote-debugging-port`. Loki normalizes
these sources into one snapshot and writes typed witness documents from that
state.
@ -18,6 +20,7 @@ state.
```mermaid
flowchart LR
Extension["Chrome extension"] --> Ingest["extension ingest"]
Snapshot["active page snapshot"] --> Ingest
Debugger["chrome.debugger sweep"] --> Ingest
Chrome["Chrome CDP endpoint"] --> Observe["observe CDP"]
Config["Loki config"] --> Ingest
@ -35,6 +38,8 @@ flowchart LR
- CDP reachability is observed state, not assumed capability.
- Extension reachability is observed state, not assumed capability.
- Debug sweeps are explicit observations, not continuous hidden attachment.
- Page snapshots are explicit active-tab observations, not continuous page
surveillance.
- Chrome owns page reality; Loki owns only the observation snapshot.
- `.cc` witnesses are the durable local state surface.
- Eve/CultUI output is derived from the same snapshot as the witness.
@ -45,12 +50,12 @@ flowchart LR
1. Add CultCacheTS-backed binary `.cc` persistence behind the current writer.
2. Add CultNet/CultMesh publication of the same documents.
3. Add command handling only through `gamecult.eve.command.v1`.
4. Add consentful CDP actions, starting with read-only page metadata and
operator-approved screenshot capture.
4. Add operator-approved screenshot capture.
## Command Boundary
Loki currently advertises no executable tab commands. This is deliberate. A
daemon that can evaluate JavaScript inside live user tabs is holding a sharp
tool; it needs an explicit command document, audit log, origin, target tab id,
and denial path before it should act.
Loki currently advertises no executable tab commands. Page snapshot capture is
extension-owned and popup-triggered: the operator clicks once, the extension
captures the active tab, posts the typed observation, and detaches. A future
daemon-originated command path still needs an explicit command document, audit
log, origin, target tab id, and denial path before it should act.