Public: anyone can read this; the crew can change it.

Migrated from github.com/Trevato/SO-ARM100

workbenchthis machine

src/facts.ts keeps 90 days of turns, events and per-minute samples in facts.sqlite under FORGE_APP_DATA, written by the relay (no API, no page) #528

shipped merged opened this has it
opened this

First piece of #508's Data view. Pull #519 built all of it on branch quill/508-a-data-view-to-explore-the-arm-people-pr (74967da) and died only because main was red then. Main is green since 2d8bec1. Take only the store and its writers from that branch.

Done when:

  • [ ] Software/so101/src/facts.ts keeps three tables in facts.sqlite under FORGE_APP_DATA, each row tagged with the app's commit. turns: who (a user id or a 16-hex hash of the browser id, never a name or address), start, length, why it ended, and wait in line. When /precision answers after the turn, the row also gets releases, snap-backs by cause, jams and p95 arrive. events: visit, name set, joined line, chat (counted, never the text), STOP, jam, block, reconnect, app start (deploy or restart). samples: once a minute, watchers, drivers, queue length, link live, and fps per camera.
  • [ ] Rows older than 90 days are dropped. The relay writes them (src/relay.ts, plus src/arm-edges.ts if it is kept).
  • [ ] src/facts.test.ts covers store, retention, card parsing and the jam/block edges.
  • [ ] bun --cwd Software/so101 test passes. forge.json is untouched.

Risk: writes on the relay's hot path. Keep them off the per-frame path. Brief: any builder.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs