Spaces:
Sleeping
Sleeping
avoigt1121 Claude Opus 5 commited on
Commit ·
125b8a5
1
Parent(s): 819da30
docs(memory): the regression I shipped in 23d37b6, the three-way measurement, and why colors_in_legend was never cosmetic
Browse files
TODO.md
CHANGED
|
@@ -130,6 +130,17 @@ the design doc's M0–M4 is the intent behind it — see that doc's §0).
|
|
| 130 |
Numbers reflect the profiled-subset denominator fix. The whole path (orchestrator → this
|
| 131 |
Space → machine-auth gate → curated artifact) is now proven in production.
|
| 132 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 133 |
## Open — the dev lane cannot be click-through verified while private
|
| 134 |
|
| 135 |
- [ ] **Decide: make `pdac-genomics-agent-dev` public, or accept that UI verification happens on prod
|
|
|
|
| 130 |
Numbers reflect the profiled-subset denominator fix. The whole path (orchestrator → this
|
| 131 |
Space → machine-auth gate → curated artifact) is now proven in production.
|
| 132 |
|
| 133 |
+
## Open — a chart regression is LIVE on prod; the fix is committed but not deployed
|
| 134 |
+
|
| 135 |
+
- [ ] **DEPLOY `819da30`.** Prod (`23d37b6`) has a regression shipped 2026-08-05: a query that
|
| 136 |
+
NARROWS the gene set leaves the previous answer's bars under the new answer's caution for one
|
| 137 |
+
render. Self-corrects on a second click and never shows a wrong *number*, but it does show one
|
| 138 |
+
cohort's bars beneath another cohort's warning. `819da30` fixes it (handler now blanks the
|
| 139 |
+
chart before yielding the answer) and is verified in BOTH directions on a single click — the
|
| 140 |
+
check whose absence caused this. 234 tests pass. Not deployed: needs Annie's go-ahead.
|
| 141 |
+
**Do not "clean up" `colors_in_legend` back in** — it looks cosmetic and is not; see `memory.md`
|
| 142 |
+
2026-08-05 (latest) for the three-way measurement.
|
| 143 |
+
|
| 144 |
## Open — the dev lane cannot be click-through verified while private
|
| 145 |
|
| 146 |
- [ ] **Decide: make `pdac-genomics-agent-dev` public, or accept that UI verification happens on prod
|
memory.md
CHANGED
|
@@ -4,6 +4,49 @@ Current status + history. Architecture → `CLAUDE.md`. Backlog → `TODO.md`.
|
|
| 4 |
|
| 5 |
---
|
| 6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
## 2026-08-05 — first signed-in click-through since 2026-07-27; two display bugs found (`6c7b8cc`, NOT deployed)
|
| 8 |
|
| 9 |
Everything shipped that day had been verified only by reading the deployed tree over `resolve/main`
|
|
|
|
| 4 |
|
| 5 |
---
|
| 6 |
|
| 7 |
+
## 2026-08-05 (latest) — I shipped a regression to prod and caught it in the post-deploy click-through (`819da30`, NOT deployed)
|
| 8 |
+
|
| 9 |
+
`23d37b6` went to prod and fixed the three real bugs. It also introduced a fourth, which the
|
| 10 |
+
post-deploy click-through found: **on a query that NARROWED the gene set, the chart body lagged one
|
| 11 |
+
render behind** — caution and legend updated, the bars kept the previous answer's data. One cohort's
|
| 12 |
+
numbers under another cohort's warning, which is the same class of wrong answer the whole change set
|
| 13 |
+
existed to remove.
|
| 14 |
+
|
| 15 |
+
**`colors_in_legend` was the cause, and I had added it as the *cosmetic* half of the fix.** Passing a
|
| 16 |
+
value that CHANGES between renders is what forced the colour scale to rebuild — which is what fixed
|
| 17 |
+
the narrow→wide direction. It was never cosmetic; it was load-bearing for a reason I had not
|
| 18 |
+
understood. Measured, each against `40ab3dd` as control:
|
| 19 |
+
|
| 20 |
+
| build | narrow → wide | wide → narrow |
|
| 21 |
+
|---|---|---|
|
| 22 |
+
| `40ab3dd` (before) | marks dropped | correct |
|
| 23 |
+
| `23d37b6` (`colors_in_legend`) | correct | **stale one render** |
|
| 24 |
+
| `color_map` alone | marks dropped | correct |
|
| 25 |
+
|
| 26 |
+
So the two configurations I had were **the same bug pointing in opposite directions**, and the
|
| 27 |
+
direction I happened to test first was the one that looked fixed.
|
| 28 |
+
|
| 29 |
+
**Also tried and rejected:** holding the modality categories open with NaN placeholder rows so the
|
| 30 |
+
domain never changes shape. NaN poisons the y extent — no bars and no axis render at all. (Zeros
|
| 31 |
+
would have worked visually and were never an option: NRG1 is not 0% mutated, it is unassayed.)
|
| 32 |
+
|
| 33 |
+
**The fix stops relying on the plot diffing correctly.** `_ui_variant_status` is now a generator: it
|
| 34 |
+
blanks the chart, then yields the answer. The worst intermediate state a reader can catch is an
|
| 35 |
+
EMPTY chart, which claims nothing, rather than a stale one, which claims something false. Both
|
| 36 |
+
directions verified repainting on a single click. `test_ui_handler_gating` reads the final frame via
|
| 37 |
+
`_final()`; the ADR-0004 assertions are untouched and a denied path still yields exactly one frame.
|
| 38 |
+
|
| 39 |
+
**Three process lessons, all of them mine:**
|
| 40 |
+
1. **I explained away the symptom the first time.** I saw the stale chart locally, guessed "my click
|
| 41 |
+
missed the button", and moved on. It had not missed. A surprising observation deserves one cheap
|
| 42 |
+
check before a comfortable explanation.
|
| 43 |
+
2. **A fix verified in one direction is not verified.** Both bugs here are the same scale-rebuild
|
| 44 |
+
fault; testing narrow→wide only was the whole gap.
|
| 45 |
+
3. **Green tests proved nothing about either.** Every version passed its own tests, because the tests
|
| 46 |
+
asserted the payload and the hypothesis, not the rendered result across a SEQUENCE of renders.
|
| 47 |
+
|
| 48 |
+
---
|
| 49 |
+
|
| 50 |
## 2026-08-05 — first signed-in click-through since 2026-07-27; two display bugs found (`6c7b8cc`, NOT deployed)
|
| 51 |
|
| 52 |
Everything shipped that day had been verified only by reading the deployed tree over `resolve/main`
|