BOLT-1656: KORE command drawer and command-list operator copy/navigation follow-ups
failedAgent: richie-engineer
Priority: 0
Branch:
winston/bolt-1656-drawer-command-list-followupsPR: #13841
Linear: BOLT-1656
Richie feedback 2026-07-29. KORE drawer: remove Idle; operator-facing copy for Full Power / de-rate / charge / reset; simplify readback; confirmation time formatting. Navigation: View all command list must preserve Back-to-device-details-with-drawer-open state. Commands list: add start/end times and command mode/details. Enumerate cross-surface callsites, implement tests, open a small PR. Parent Linear BOLT-1656.
Event Timeline
created
status_change
in_progress → blocked
status_change
blocked → in_progress
failed
lease expired — re-queued for retry
in_progress → queued
status_change
queued → in_progress
subagent_spawned
spawn claim: Implement BOLT-1656: KORE command drawer and command-list follow-ups
subagent_completed
subagent done: [NO_TASK_COMPLETE_MARKER] Sub-agent returned no implementation result; requested rebase onto origin/main.
failed
lease expired — re-queued for retry
in_progress → queued
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 → in_progress
progress
Addressed Richie review on PR #13841 in af48fd7c7c: daily standing charge UI gated until BOLT-1680/1675 adapter route; discharge start+duration with derived same-day end and 8h fallback cap. Focused tests (10), Biome, dashboard tsgo passed; CI restarted.
subagent_completed
subagent done: [NO_TASK_COMPLETE_MARKER] Type Check rerun passed; deploy check pending at sub-agent completion.
status_change
in_progress → blocked
subagent_completed
CI remediation subagent returned no substantive implementation; parent independently verified the latest head: Lint/Build/Type Check/Unit Tests/Knip are green and a fresh DeepSource rerun is pending.
status_change
blocked → in_progress
progress
Audited PR #13841 against adapter PR #13854. Found dashboard was browser-timezone serialized while adapter reads site-local time; enabled submission would shift remote operators recurring windows. Kept submission gated and pushed fb36d2fdf7 updating source/UI copy + focused regression. PR body now records the exact dependency; site-timezone projection remains the separate enablement prerequisite.
progress
Richie corrected the timezone contract: dashboard sends UTC ISO command timestamps; adapter owns site-local interpretation. Replaced the incorrect site-timezone gate with enabled recurring charge submission in 2bae4fbcbf, updated PR #13841 body, and added focused regression asserting UTC ISO serialization. Focused 10 tests and Biome pass; CI restarted.
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
progress
Addressed Richie timezone review on PR #13841 in c5042c183b. Drawer now resolves existing schedule-domain deviceTimezone, anchors selected wall-clock date/time in that zone with @internationalized/date toZoned, then emits UTC ISO instants for adapter-side siteLocal parsing. Applies to recurring charge and start+duration discharge; regression proves 11 PM America/New_York -> 03:00Z. Focused drawer tests, Biome, and dashboard typecheck pass; CI restarted.
progress
PR #13841 re-review confirms timezone seam fixed; residuals are minor/non-blocking. Diagnosed visible drawer regression: KORE drawer lost its historical explicit 560px maxWidth and fell back to Edges 400px default. Restored 560px in 170cc36a4c with focused regression; drawer tests and Biome pass. CI restarted.
status_change
failed → in_progress
progress
Addressed Richies KORE drawer feedback in 05d7251a7d: Custom duration now exposes editable 15-min NumberField; copy names smooth=MANUAL calculated setpoint and full-power=native schedule retaining AUTO; charge/reset semantics visible before submit; standing charge hidden from active/upcoming command projection; upcoming restricted to scheduled discharge; restored operating-state telemetry so stored inert discharge windows render subdued/not in effect. Focused 12 tests, Biome, and dashboard typecheck pass; CI restarted.
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
progress
Restored lost KORE readback mode in 278616f333. Rev-C readback now shows Mode Auto/Manual; when Manual, both native Charge and Discharge windows render subdued and marked not in effect (discharge also remains inactive when schedule feedback disabled). Focused 12-test drawer suite and Biome pass; CI restarted.
progress
Removed KORE Charge power limit UI/state/payload in 9780854426. Daily native charge now sends only the window and uses the device native charge rate; regression asserts no rate control. Focused 12 tests, Biome, and dashboard typecheck pass; CI restarted.
progress
Reworked KORE drawer navigation in 6cf43d092b per Richie: removed returnToDrawer query propagation from list/detail routes; opening KORE control now pushes ?koreControl=open on the device URL, which supports direct links and browser Back/close history semantics. Command-list/detail navigation is clean. Focused drawer tests, Biome, and dashboard typecheck pass; CI restarted.
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → blocked
status_change
blocked → in_progress
progress
Richie review batch accepted. Delegated Codex ACP attempt was unavailable due to harness authentication, so proceeding directly in the existing isolated PR worktree.
progress
Richie review batch implemented and pushed in 0868d09847: Active now includes active native schedule windows plus active smooth command windows; recurring charge now uses start+duration and permits earlier daily hours; escaped apostrophe copy fixed. Focused 14-test suite, Biome, dashboard tsgo, and diff check pass; CI restarted.
status_change
in_progress → blocked
status_change
blocked → in_progress
progress
Addressed both current Richie review comments in 50bd3456f0: extracted shared KORE command/window classifier used by drawer + Operations console, excluded recurring standing charge from console command banner, and added deterministic native-window coverage for AUTO/armed, MANUAL, unarmed, outside-window, and overnight cases. Biome, dashboard tsgo, and 50 focused Vitest tests pass; fresh CI started.
progress
Implemented requested PR #13841 review item #4 in 06f19b5448: KORE Operations now highlights active native charge/discharge schedules per device from shared revision-aware DNP3 classification, using the schedule-domain site timezone. Added active and MANUAL-suppression regressions. Biome, dashboard tsgo, and 52 focused Vitest tests pass; fresh CI started.
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
progress
Addressed all four actionable items from Richie review 4814481408 in b5efb61423: one-time revision-aware charge prefill, charge no-op submit guard with distinct reason, confirm before→after delta, and soft offline warning threaded from Device Details. Biome, dashboard tsgo, and 54 focused Vitest tests pass; fresh CI started.
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
progress
Fixed custom charge prefill in 9faaf5a52f: non-preset native readback durations now show the Custom minutes field prepopulated with the computed value. Focused drawer tests pass (17/17); fresh CI started.
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
subagent_spawned
spawn claim: fix PR #13841 Codex P1/P2 review threads
subagent_completed
subagent done: [NO_TASK_COMPLETE_MARKER] [SUBSTRATE-ABORT] Codex ACP authentication required; no work started
subagent_spawned
spawn claim: fix PR #13841 Codex P1/P2 review threads via Claude
progress
Addressed all Richie/Codex PR #13841 findings in 966b664c29: required real timezone for recurring-charge submit/highlight, unified charge envelope date, and changed native active classification to explicit fail-closed state telemetry. Biome, dashboard tsgo, and 59 focused Vitest tests pass; fresh CI started.
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
progress
Addressed final PR #13841 timezone blocker in d6ea141cf1: KORE capability default America/New_York matches adapter mapping and keeps charge usable for the current ungeocoded Vermont fleet. Biome, dashboard tsgo, and 60 focused Vitest tests pass; fresh CI started.
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
subagent_completed
subagent done: [NO_TASK_COMPLETE_MARKER] [SUBSTRATE-ABORT] claude run failed: AcpRuntimeError [ACP_TURN_FAILED]: Internal error
subagent_spawned
spawn claim: Fix PR #13841 CI failures
subagent_completed
subagent done: [NO_TASK_COMPLETE_MARKER] [SUBSTRATE-ABORT] previous ACP Claude session failed the CI repair. DeepSource still failing.
subagent_completed
subagent done: [NO_TASK_COMPLETE_MARKER] [SUBSTRATE-ABORT] new Claude session will be spawned to fix DeepSource failure
subagent_spawned
spawn claim: Fix PR #13841 DeepSource failure
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
progress
Subagent check-in: dashboard Lint/Type Check/affected/census/test-edges-agents pass; Build/Unit Tests/DeepSource coverage/knip/Vercel deploys still in progress.
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
subagent_completed
subagent done: [NO_TASK_COMPLETE_MARKER] [NO_TASK_COMPLETE_MARKER] Failed Claude sub-agent that attempted to fix CI for PR 13841
subagent_completed
subagent done: [NO_TASK_COMPLETE_MARKER] Subagent completed: investigated DeepSource and deploy failures for PR #13841.