BOLT-1193: incorporate review feedback on brush-zoom PR #11790
cancelledAgent: richie-engineer
Priority: 1
Branch:
winston/bolt-1193-brush-zoom-auto-densifyPR: #11790
Linear: BOLT-1193
Architectural pivot on PR #11790 (branch winston/bolt-1193-brush-zoom-auto-densify). Richie says it is mostly unshippable as-is. Four fixes to land in one follow-up commit:
(1) HIGH — Decouple brush overview data from detail data. Add optional brushData prop to ChartContainer that, when present, ChartBrush renders instead of visibleDatasets. In SiteEnergyCharts hold the pre-brush chartSeries (at the preset natural windowSize before any brush selection) in a ref. Update it on timeRange change OR user-driven windowSize change via TimeControls — NOT when brush-zoom changes windowSize. Pass as brushData. Need a flag like brushDrivenWindowChange so the ref-update effect skips brush-driven windowSize changes.
(2) MED — Drop windowSize from handleZoomChange useCallback deps in SiteEnergyCharts. The appropriate !== windowSize guard is a redundant optimization (React no-ops same-value setState on primitives). Always call setWindowSize(appropriate). Collapses handler identity, removes a feedback surface.
(3) LOW — Tighten the 50ms setTimeout in ChartBrush sync effect. Replace with a counter (pendingSyncs) cleared in the same effect cleanup or via a useEffect tick. Eliminates the racy window.
(4) Leave point #4 (margin coord mismatch) alone — verified false alarm.
Branch: winston/bolt-1193-brush-zoom-auto-densify
Linear: BOLT-1193
PR: https://github.com/TextureHQ/mono/pull/11790
Event Timeline
created
subagent_spawned
spawn claim: bolt-1193-brush-overview-decouple
failed
lease expired — re-queued for retry
in_progress → queued
subagent_completed
subagent done: session vanished — no commit pushed, lease expired at 16:47Z, re-spawning fresh
status_change
queued → in_progress
subagent_spawned
spawn claim: bolt-1193-review-feedback-restart
failed
lease expired — re-queued for retry
in_progress → queued
progress
Pushed commit 8cb8f722e0 to PR #11790. All 3 review fixes: (1) brushData decouple + two-tier windowSize, (2) drop windowSize from handleZoomChange deps, (3) replace 50ms setTimeout with idempotency echo-guard. Local checks all green. CI running.
progress
CI update for commit 8cb8f722e0 on PR #11790: All critical GitHub Actions checks green (Build, Lint, TypeCheck, Unit Tests, test/test, lint, test-customer-scheduling). DeepSource still running (PENDING). Not merged — awaiting Richie re-review.
subagent_completed
subagent done: Pushed 8cb8f722e0 to PR #11790 — 3 review fixes (brushData decouple + drop windowSize dep + tighten brush sync) shipped, CI green
status_change
queued → blocked
status_change
blocked → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → blocked
subagent_spawned
spawn claim: bolt-1193-bugbot-coarsewindow-fix
status_change
Resuming: new Cursor Bugbot finding on 65c7e0f0 — coarseWindowSize not realigned when brush zoom cleared after manual coarse granularity. Real state bug, fixing now.
subagent_completed
subagent done: spawn-forbidden in this runtime — handling fix inline in heartbeat
progress
New Cursor Bugbot review on commit 65c7e0f0 at 18:03Z found 1 medium-sev state bug: coarseWindowSize not realigned in handleZoomChange when brush is cleared after manual coarse granularity, and on siteId change. Real bug. Spawn perms currently empty (allowAny=false agents=[]) so couldn't delegate. DM'd Richie at 19:15Z with repro + proposed fix (introduce/use userPickedCoarseWindowSize ref; realign coarseWindowSize on brush-clear iff not user-picked; reset both on siteId change; add Vitest). Awaiting his decision on Fix-in-Cursor vs next-heartbeat inline attempt. Active-ci-watch.env updated.
progress
PR #11790 head moved 65c7e0f0 -> 30045816de at 20:58Z. Slava co-authored a fix addressing the 19:15Z Bugbot DM. New Cursor Bugbot at 21:00:52Z found related medium-sev: siteId-change effect resets zoomDomain/coarseWindowSize but not windowSize — when zoomDomain was already null the notify-effect skips onZoomChange so windowSize stays stale across site nav. Sent delta DM at 21:13Z (thread 1780935328.949289) with one-line proposed fix. Spawn perms still empty. CI on 30045816 all required green, BLOCKED only on REVIEW_REQUIRED. Holding.
progress
Heartbeat 22:57Z: PR #11790 head moved b02fe2625b -> 719651bfcf at 22:43:30Z. Cato (Slava agent) shipped fix for my 22:17Z Bugbot DM: timeRange-change effect realigns BOTH windowSize + coarseWindowSize via getAppropriateWindowSize. New regression test 27/27 pass. Cursor Bugbot PASSES on new head. All required CI green. mergeStateStatus=BLOCKED only on REVIEW_REQUIRED. Sent delta DM (Bugbot now green hash) to Richie thread 1780935328.949289 at 22:58Z.
status_change
blocked → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
subagent_spawned
spawn claim: merge-main-resolve-conflicts-PR11790
subagent_completed
subagent done: merge resolved → 253ee2f509, typecheck clean
status_change
failed → blocked
progress
Heartbeat 07:27Z: PR #11790 new head ddfd3511 from Cato — addresses Bugbot 02:27Z lastEchoedDomainRef finding. All required CI green, Bugbot PASSES. Trailing admin-deploy exit-129 only. Awaiting Richie review.
subagent_spawned
spawn claim: PR#11790 Bugbot v3 round: strip debug + 4 ref/granularity fixes
subagent_completed
subagent done: gateway restart 1012 mid-task — sub-agent killed before push
subagent_spawned
spawn claim: PR#11790 Bugbot v3 resume — verify+commit+push+reply
subagent_completed
subagent done: Bugbot v3 round shipped: 570db87a63 pushed, 5/5 inline replies, CI pending
progress
Bugbot v3 round pushed: 570db87a63d0e71730e1bbeeeb294db5e244ae77. 5 fixes (HIGH stale-zoom + 3 MED + 1 LOW). 5/5 Bugbot threads replied. Local checks all green. CI pending.
subagent_completed
subagent done: actual session id was d9b33354; v3 round shipped 570db87a63 (5 fixes, 5/5 inline replies, CI green/pending)
progress
Heartbeat 17:42Z on PR #11790 head 570db87a63: CI still settling (4 deploys + Build in_progress). 2 failures noted: (1) Deploy admin = Vercel api.vercel.com Internal Server Error transient, already auto-retrying attempt 2 = in_progress; (2) DeepSource = author-membership pre-existing false-positive. NO code-failure on the 5 v3 fixes. NEW: Cursor Bugbot v4 reviewed 570db87a63 and posted 1 NEW medium finding — Brush clear skips densify commit (brush clears via onBrushChange(null) before onBrushEnd; handleBrushEnd treats null+brushRegion=null as no-op; SiteEnergyCharts realigns windowSize/coarseWindowSize only in handleZoomEnd, so chart stays on densified bucket after zoom visually cleared). Per Wed standup commitment to hold on #11790 pending Loom/devtools evidence, NOT silently spawning v4 fix round. DMing Richie with delta finding so he calls fix-now vs batch-with-Loom-review. Also released orphan spawn claim 3e9806af (actual session was d9b33354) so guard is now CLEAR for next spawn.
status_change
blocked → cancelled