Backlog โ
Not sequenced. Ordered work lives in planning.md. Every row says what would promote it; a row that cannot say that is a row nobody can act on.
Upstream platform status โ
- What it is. Monitor whether the platforms Lantern depends on are themselves down, so a GCP, Cloudflare, Firebase or Railway outage shows up as an outage rather than being inferred from our own failures.
- Why it is distinct from uptime. The uptime check proves OUR endpoints answer. It cannot tell you that they stopped answering because Cloud Run is degraded in
us-central1. Those are different alerts with different responses: one is "go fix our code", the other is "go read a status page and wait". - Raised by the operator, 2026-08-27, as a side quest.
- What would promote it. Client error capture landing first, since a user-visible outage matters more than a vendor dashboard, and either an alerting route existing to send it to, or her asking for it sooner.
Structured logging and correlation IDs โ
- What it is. Request tracing across services, so one user action can be followed through auth, lanterns, and analytics rather than read as three unrelated log streams.
- Why it matters here. The Errors tab now shows that something failed. It cannot show what led to it, so every investigation still starts from scratch.
- From
#164, Logging and Tracing. - What would promote it. A real incident where the missing trace is what costs the time.
Alerting on new or increased errors โ
- What it is. A route out of the dashboard, so nobody has to open the portal to learn something broke.
#164names PagerDuty and Slack. - Why it is parked rather than sequenced. Alerting on an error feed that was wrong until 2026-08-27 would have alerted on nothing. It needs a trustworthy source first, which is what planning tasks 4 and 5 build.
- What would promote it. Tasks 4 and 5 landing, plus a decision on where an alert should actually go given she is the only person on call.
Source map upload โ
- What it is. Uploading build source maps so a minified client stack trace reads as real file and line numbers.
- Why it matters. Without it, captured client errors arrive as unreadable minified frames, which makes the capture much less useful than it looks.
- From
#164, Error Tracking. - What would promote it. Client error capture landing and producing its first genuinely unreadable stack trace.
A dedicated service account for analytics-api โ
- What it is. analytics-api runs as
531553779372-compute@developer.gserviceaccount.com, the default compute account, which holdsroles/editoracross the project. - Why it is here. Found on 2026-08-27 while checking whether a
logging.viewergrant was needed. It was not, becauseroles/editoralready includes log reading, which is exactly the problem: the role is far broader than anything the service needs. - What would promote it. A security review pass, or any work that already touches Cloud Run service account configuration.