# Completed work Shipped Junie briefs and implementation records. Each file is kept as the design record for its change — do not delete. ## Shipped briefs | File | Queue # | Subject | Shipped | |---|---|---|---| | [`k3d-knoe-auth-dev-loop.md`](k3d-knoe-auth-dev-loop.md) | k3d Phase 1 | CNPG + KDC in k3d; `make k3d-knoe-{up,pf,down}`; `--mode k3d` flag; `etc/krb5.local.conf`; smoke script; engineer doc. | 2026-05-02 | | [`02-k3s-prole-rename.md`](02-k3s-prole-rename.md) | #2 | Rename k3s `prole-*.yaml` → `knoe-*.yaml` (kustomize is broken). | 2026-05-02 · `fb7e8b7` | | [`06-patch-garage-script-fixes.md`](06-patch-garage-script-fixes.md) | #6 | Three defects in `scripts/patch_garage_cross_cluster.sh`. | 2026-05-02 · `34a25dd` + `5d17325` | | [`07-init-cnpg-gke-sa-wiring.md`](07-init-cnpg-gke-sa-wiring.md) | #7 | Wire `cnpg-backup-sa` into CNPG cluster spec; bump operator to v1.29. | 2026-05-02 · `c3fae73` | | [`13-podmonitor-manual-management.md`](13-podmonitor-manual-management.md) | #13 | Migrate off CNPG-deprecated `enablePodMonitor` + `podMonitorRelabelings`. | 2026-05-02 · `c3fae73` | | [`15-remove-dead-dashboard-consumer.md`](15-remove-dead-dashboard-consumer.md) | #15 | Remove dead Kong DASHBOARD consumer + `basicauth_credentials`. | 2026-05-02 · `c3fae73` | | [`03-image-rename-knoe-authority-to-knoe-auth.md`](03-image-rename-knoe-authority-to-knoe-auth.md) | #3 | Rename Docker image `knoe-authority` → `knoe-auth`; add `Dockerfile.app`; update 2 manifests. | 2026-05-02 | | [`phase2-oidc-gke-deploy.md`](phase2-oidc-gke-deploy.md) | Phase 2 GKE | Enable OIDC in GKE deployment; Kong `/auth` route; `studioIngress`+`knoeAuth` values defaults. | 2026-05-02 | | [`todo-1-cfg-save-path-bug.md`](todo-1-cfg-save-path-bug.md) | TODO-1 | TDD fix: `_validate_cfg_values` added to `knoe/ui/screens/cfg.py`; `_save_knoe_cfg` now raises `TypeError` before serializing any non-string widget value. New test `tests/installer/test_cfg_save_refuses_mock_values.py`. | 2026-05-23 |