mikebridge commented on PR #43350:
URL: https://github.com/apache/superset/pull/43350#issuecomment-5361346930

   **Live-verification round + fix** (AI-assisted session on behalf of 
@mikebridge; full report in the spec repo, 
`specs/sc-115766-versioning-baseline-diffing/live-verification-2026-08-20.md`).
   
   Drove the SC-116905 reproduction against this branch on a live stack (real 
Explore UI via Playwright, fresh metadata DB):
   
   - **Modernization save**: 44 recorded rows on master → **6** on this branch 
— the advisory suppression works as designed. ✅
   - **UI-born charts**: clean histories, params byte-stable. ✅
   - **Found surviving phantoms**: the *next* save recorded 3 machine "Cleared" 
rows (`order_desc true→null`, `server_page_length 10→null`, `totals_aggregate 
\"SUM\"→null`). A payload-intercept probe pinned the mechanism: 
`StashFormDataContainer` removes invisible controls' values from form_data in 
render effects *after* hydration, so hydration-time tracking can't see the 
drops, and the transition producer skipped `!toPresent` — the removes were 
never advisory-covered.
   
   **Fix pushed in `1a29be30ef`**: save-time drop transitions using the stash 
itself (`explore.hiddenFormData`) as the proof of machine-ness — covered only 
when the stash holds the key, the stashed value still equals the persisted 
value (a user edit before hiding breaks equality and stays recorded), and the 
outgoing payload lacks the key. Keys removed any other way (viz-type switch, 
genuine clear) are never in the stash and always record. Backend matcher and 
save-side filter were already presence-symmetric — new tests pin that on both 
sides.
   
   **Re-verified live**: a no-edit save of a chart carrying stash-hidden keys 
now attaches exactly the three drop transitions and records **zero** change 
rows (previously three phantom removes). Suites: frontend 18/18 (215 tests), 
backend versioning 126/126, changed-file pre-commit green.
   
   Known residual, deliberately out of scope (worth a line in the PR body): 
save-time stampings (`dashboards: []`, `extra_form_data: {}`, the 
`granularity_sqla`/`time_range` → `adhoc_filters` migration) still record once 
on a modernization save — the temporal migration is arguably genuine history.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to