BOLT-1682: extend KORE control drawer PR with state-first command console and soft overlap warning
completedAgent: richie-engineer
Priority: 1
Branch:
winston/bolt-1656-kore-control-drawerPR: #13799
Linear: BOLT-1682
Richie requested 2026-07-28: extend existing PR #13799 (winston/bolt-1656-kore-control-drawer) to implement BOLT-1682. Deliver state-first landing with Active now / Upcoming & scheduled / Recent sections, prominent inline New command path, and schedule-domain-backed soft overlap warning at compose time. Preserve low-friction immediate dispatch. Link PR and verification once shipped.
Event Timeline
created
progress
Accepted Richies request to extend PR #13799 with BOLT-1682. Scope confirmed: state-first console (active/upcoming/recent), inline new-command path, schedule-domain-backed soft overlap warning. Implementation started on the existing PR branch.
progress
Scope correction from Richie: use device commands as the source of truth for upcoming/scheduled windows and overlap detection—not schedule-domain deviceSchedules. Updating implementation plan accordingly; will verify command payload/query fields before wiring the console.
status_change
in_progress → blocked
progress
Pushed BOLT-1682 to PR #13799 at 43353a6899. Command console now uses device command startAt/endAt windows for Upcoming/Scheduled and overlap warnings; schedule-domain dependency removed. Focused KoreControlDrawer Vitest suite: 40/40 passed; Prettier and git diff check passed. CI watch now active.
status_change
blocked → in_progress
progress
Review 4799630086 accepted. Implementing the substantive correctness change: remove Now/Schedule split and require an explicit bounded window for charge, discharge, and idle; reset remains a one-shot. Also folding history link into Upcoming, dropping redundant card/blurb/readback disclaimer, and hiding revision except for the unknown-revision guard.
failed
lease expired — re-queued for retry
in_progress → queued
progress
Addressed Richie review 4799630086 and pushed follow-up to PR #13799: every non-reset command is now a required bounded native window (including full-power discharge), so reserve enforcement/self-trip no longer has a floorless Now path. Folded View all into Upcoming, removed delivery card and explanatory copy, removed happy-path revision badge while preserving unknown-revision guard. Local dashboard lint, focused 7-test suite, and typecheck pass; CI watch active.
status_change
queued → in_progress
subagent_spawned
spawn claim: Implement BOLT-1682: extend KORE control drawer PR
subagent_completed
subagent done: [NO_TASK_COMPLETE_MARKER] No concrete implementation result returned; PR #13799 remains CI-green with zero unresolved threads.
status_change
in_progress → blocked
status_change
blocked → in_progress
progress
Addressed Richie review 4799862273 in 7fee0db435: post-click confirmation modal includes overlap warning; Full power wording simplified; explicit start/end date-time supports overnight/multi-day and past starts clamp to now; 12-hour device-local readbacks. Focused 11-test dashboard suite + changed-file Biome lint + dashboard tsgo pass. CI restarted.
failed
lease expired — re-queued for retry
in_progress → queued
status_change
queued → in_progress
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
subagent_completed
subagent done: [NO_TASK_COMPLETE_MARKER] Review feedback implemented in 7fee0db435; local dashboard checks passed; PR CI is being monitored.
status_change
failed → in_progress
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
Fixed PR #13799 lint failures in 058401039a: eliminated KORE drawer non-null assertion, typed/formatted Confirm mock, and removed duplicate test input. Focused test could not start in the clean PR worktree because its baseline lacks the uncommitted formatCommand module; full dashboard lint was clean aside from three unrelated pre-existing warnings. Pushed; CI restarted.
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
status_change
in_progress → blocked
status_change
blocked → in_progress
progress
Addressed Richie review 4800582445 in 98988c7318: discharge/idle use one same-day date (charge preserves explicit start/end date range); readback now uses useDnp3OperatingStateLatest for rev-c Auto/Manual + Armed/Disabled state and marks disabled windows inert; drawer widened to 680px. Focused 10-test suite, changed-file Biome lint, and dashboard tsgo pass. CI restarted.
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → blocked
status_change
blocked → completed