Read the system before you trust the diagnosis.
These notes describe the implementation as it exists. Live product surfaces are identified as live; paid plans and future work remain explicitly labelled as planned.
Local setup
Run the FastAPI backend and Next.js frontend locally with SQLite and no external services.
Jump to notesSectionAPI reference
The versioned HTTP API, its error envelope, request IDs, and the endpoints used by the console.
Jump to notesSectionArchitecture
Adapters, services, the shared evidence model, and how a diagnosis is assembled.
Jump to notesSectionSecurity
Read-only adapters, Argon2id passwords, session and CSRF handling, and secret redaction.
Jump to notesSectionKubernetes
Fixture mode, real-cluster configuration, and the read-only client contract.
Jump to notesSectionInvestigation engine
How observations become ranked hypotheses, and why every claim carries evidence IDs.
Jump to notesOne repository, two processes.
Start the backend with its local SQLite database, then run the frontend against the versioned API. Demo fixtures make the Kubernetes surface usable without a cluster.
Predictable errors, traceable requests.
Responses use a uniform error envelope, every request carries an ID, and secrets are redacted before they reach logs or evidence.
Adapters in, evidence out.
Infrastructure adapters normalize read-only observations. Services turn those observations into evidence, and the diagnosis layer ranks hypotheses without hiding the facts underneath them.
Read-only is a structural property.
Infrastructure adapters expose no mutating operations. Passwords use Argon2id, session tokens are stored hashed, and sensitive values are removed before they enter the evidence trail.
Fixtures first, cluster second.
Start with the bundled demo fixtures, then connect a real cluster with a read-only kubeconfig. The console reports connected, demo, and off states honestly.
Facts first. Hypotheses second.
Each diagnosis exposes its evidence IDs, the resource and payload behind each observation, and a confidence for every hypothesis. A plausible guess is never presented as a fact.