Skip to content

feat(history): history.db, usage projections, simlock stats, GET /v1/stats and console figures (#623) - #626

Merged
V3RON merged 107 commits into
mainfrom
feature/623-adr
Oct 19, 2026
Merged

V3RON merged 107 commits into
mainfrom
feature/623-adr

Conversation

@V3RON

@V3RON V3RON commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Delivers #623: the event history moves to history.db, with usage projections, simlock stats, GET /v1/stats and the console's figures. It also includes ADR 0032.

This PR carries the whole feature. The stack's PRs were reviewed one by one, and then a stack sync pushed every branch to one commit. GitHub then marked them as merged into each other, never into main. Their reviews stay there:

After the sync onto main, a fix-check reviewed the conflict resolutions. Its fix makes history.db and its WAL/SHM files owner-only (0600), as #685 did for events.jsonl.

Closes #629, closes #630, closes #631, closes #632, closes #633, closes #634, closes #635, closes #636, closes #637.

Status

Implement: done Review: per-task PRs passed; sync fix-check passed Hardware: n/a Gate: running

Review

Spec review: skipped. Code review: 4 blocking, 4 fixed, 1 notes. Claims review: 0 blocking, 0 fixed, 0 notes.
Rounds: 1. Tokens: 29.0M.

Written by an agent.

V3RON added 19 commits October 19, 2026 14:11
Document the cause in the core manual's quarantine step, restore unrelated Known gaps wording, and cover the not-quarantined guard of the Cause fact.
…gnature; a non-stall hand-over is a delete-failed cause (#635)
Spec tests green, 14 failing -> 0 failing (unit and e2e waiting-requests).
…ILED; the twice-failed skip logic and provisioning-failed reason are gone (#636)
V3RON added 19 commits October 19, 2026 14:22
…ike the real one, so no agent-fallback notice reaches stderr (#632)

1 failing -> 0 failing
…is rounded in the CSV; one contract import in http/app (#632)
…der and the ledger in-flight key; docs name seven operator routes; reserved name stats in the optional-modules test (#632)
…tats; a range picker

14 failing -> 0 failing (unit specs; console lane not yet run).
…cs follow three charts

Console lane (chromium): 5 failing -> 0 failing.
…; Overview e2e runs past a completed minute and checks chart rows (#633)
Turns the Usage tests green: the view model, the screen, the route and icon, the Granted tile's link, docs.

13 failing -> 0 failing (unit)
…orward follows NAV's last two pages; counts keep a space between rows

0 failing (unit), 5 passing (usage e2e)
@V3RON V3RON changed the title docs(adr): 0032 the event history is a SQLite database, with projections beside it feat(history): history.db, usage projections, simlock stats, GET /v1/stats and console figures (#623) Oct 19, 2026
@V3RON
V3RON merged commit 60521f0 into main Oct 19, 2026
22 of 23 checks passed
@V3RON
V3RON deleted the feature/623-adr branch October 19, 2026 13:26
V3RON added a commit that referenced this pull request Oct 20, 2026
…ations (#718)

Proposes ADR 0035 for #707.

- A new gateway-only module, `src/alerts`, built by `main.ts`; not an
optional module.
- Outbound HTTP through a new `WebhookPoster` port; redirects never
followed.
- Config `gateway.alerts.destinations`: named destinations, `slack` or
`generic`, a fixed list of eleven events, https (http on loopback only).
- Delivery: one send at a time per destination, 10 s per try, three
tries, at most 100 waiting, memory only.
- `generic` body is the event envelope, signed with
`X-Simlock-Signature: sha256=…`.
- `alerts.test` admin operation, gateway only.

Numbered 0035: 0032 and two 0033s are taken by open ADR PRs (#626, #702,
#704).

Docs only. This PR stays open at the bottom of #707's stack and merges
with its last task.

## Review

Spec review: 0 blocking, 5 fixed, 0 notes. Code review: skipped. Claims
review: skipped.
Rounds: 3. Tokens: n/a.
Assessment: complete.
Fixed: R1 redaction names history.db; R2 secret rule moved to each
format; R3 subscribe citation; R4 Slack escaping; R2b secret rule
restored in section 5.

*Written by an agent.*

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment