Sunstead trust scoring project
1# mprocs: brings up the whole stack. Run `mprocs` in the repo root.
2#
3# DuckDB allows only ONE read-write process at a time and a held lock blocks
4# every other open. So each process opens the file briefly (open -> work ->
5# close) with retry, letting these panes interleave. Don't run `ingest` and
6# `score` at the same time in live mode — they're both writers and will just
7# contend; ingest is the single writer, score reads+writes scores in its gaps.
8procs:
9 seed:
10 shell: uv run trust-seed # one-shot: load demo data, then exits
11 autostart: true
12
13 score:
14 shell: uv run python -m trust.score --loop --interval 5
15 autostart: true
16
17 api:
18 shell: uv run trust-api # http://127.0.0.1:8003 (JSON: triage/dashboard/leaderboard/graph)
19 autostart: true
20
21 web:
22 shell: cd web && bun run dev # http://127.0.0.1:5173 (SvelteKit UI -> proxies /api to :8003)
23 autostart: true # set API_BASE to override the :8003 proxy default
24
25 embed:
26 shell: uv run trust-embed --build # (re)build the known-bad slop corpus (6.12)
27 autostart: false # one-shot; needs FEATHERLESS_API_KEY, else indexes 0
28
29 ingest:
30 shell: uv run python -m trust.ingest # live firehose -> DuckDB
31 autostart: false # enable after `--probe` confirms NSIDs; pause `seed`/`score` first
32
33 probe:
34 shell: uv run python -m trust.ingest --probe --max-events 300
35 autostart: false # confirm real sh.tangled.* collection names