Architecture §4, §15.0; Running: the tunnel service drains on SIGTERM (#649)
Fit the hosted deployment in its free allowances: folded latency reads, batched SQL Server storage, compression (#614)
A privilege a release adds is optional, announced once, and grantable in one step (D184, #599)
The images ship no node_modules: every api entrypoint is a bundle (#580, D182)
The scrubber removes a failed query's values; Sentry 11 states every data category (#579, D181) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Behind a proxy that appends to X-Forwarded-For, believe the CDN's header: CLIENT_IP_HEADER (D180, #574) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
TRUST_PROXY names addresses: fastify 5.12 trusts no hop for a count (D177) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The api boots from one bundled file: 52 s to 31 s at 0.1 CPU (#567)
MongoDB 9.0 supported; its $queryStats samples 1% by default (#560)
Retention follows the organisation's plan alone; RETENTION_DAYS removed (#556)
Retention deletes on each plan's own window (#549)
Live events: a hidden tab closes its stream and refetches on show (#548)
Fast passes: keep the ping at five, raise FAST_PASS_INTERVAL_MINUTES to fifteen (#546)
Say what the tick interval costs on a free serverless database A ping every five minutes leaves Neon no five-minute gap to suspend in, so the compute never sleeps and runs out of Free-plan CU-hours around day 16. Fifteen sits on Render free's spin-down edge. Fourteen clears both, at the cost of apply and the probe running every 14 minutes.
Document the mail counter and its alerts (#526) Outbound mail was the last subsystem with no metric and no alert, and the only one whose failure is indistinguishable from having nothing to say. Records what the counter can see, what it deliberately cannot — a message the transport accepted and the recipient's server then rejected — and why that makes a DMARC rua= record at the sending domain part of deploying this rather than an optional extra.
Running Indexterity: name the fold combination that is expected to fire (#498)
Running Indexterity: the fold ratio is a metric worth alerting on (#498)
docs: loaders warm rather than block, and how preloading hides that Architecture: the loading model changed under §14 (D117). A loader warms and hands the page over; the server still awaits because its render is the payload. Adds the rule and the one that follows from it — the router's pending state does not exist at all without a pending component, so defaultPendingMs is inert on its own. Also corrects the cluster settings row, which has warmed two keys rather than one since #244. Running: a note that preloading will tell you a loading change is fine when it is not, because that is how the blocking loader survived. Hover and keyboard focus share a delayed timer; a tap skips it entirely. Judge a loader change with the read held open, not by clicking it. Suite counts were well out of date — 870 api unit against a measured 1,261, and 134 integration against 205. Web unit and e2e updated with them.
The peering is a service beside the api, addressed by TUNNEL_PORT (D113) Architecture: the runtime is a service in the api's own network namespace rather than a process the api spawns — what loopback buys (no key on a network, no reachable proxy, no shared secret), what it gives up (a stack boundary instead of a process boundary), and the URL-with-a-token revision that came first and was strictly worse. Running Indexterity: TUNNEL_PORT is the whole of the configuration and turns on both halves; unset means the feature is off, which is supported. Names where the container comes from per deployment, and the one misconfiguration to watch — on with nothing in the pod. Connecting a cluster: says what to do when the page reports the feature as turned off.
node-postgres reads sslmode its own way, and the URL should say so
One runtime: our WireGuard implementation is gone, wireguard-go carries the peering
The peering has two runtimes now: ours, and wireguard-go with gvisor
Add Running Indexterity, carrying what the README used to