Two bugs, both visible in a single demo transcript. The stage memory was one shared set cleared whenever the incident changed. A ten-minute window routinely holds two incidents - the build just pushed and the one before it - so they wiped each other's progress and every stage reprinted on every poll, forever. Memory is now per incident, and the monitor follows one incident at a time: --incident pins an exact id, --filter matches a substring, and otherwise the newest wins, which is what someone who just triggered a build wants. Worse: the diagnosis panel read the newest diagnosis in the whole table, not the one for the incident on screen. During a code-demo run it displayed ananke/249 - a different service, a different failure - directly beneath the heading naming this incident. Showing an unrelated answer is worse than showing nothing, because nothing about it looks wrong. It is now scoped to the incident and reads both event types, since the code path records a code_proposal rather than a diagnosis - which is why nothing matched and the fallback took over. There is no fallback any more: an incident with no recorded run says so. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
titan-iac
Flux-managed Kubernetes desired-state config for bstein.dev.
Canonical source URL:
ssh://git@scm.bstein.dev:2242/bstein/titan-iac.git
Scope
This repo contains cluster configuration consumed by Flux:
- platform/infrastructure manifests
- service manifests and kustomizations
- operational scripts for render/reconcile workflows
Apply model
I use Git + Flux as the source of truth and avoid manual in-cluster edits for durable changes.
Description
Languages
Python
60.2%
Shell
30.6%
Mermaid
6.8%
HCL
1.2%
Groovy
0.5%
Other
0.7%