Battery config: Power semantics + Grid status mismapping
blockedBOLT-1442 subtask 1. In packages/device-config/src/configs/battery.config.ts:
- Change headlineMetrics.power path from state.gridPower to state.chargeRate; rename label to Charge Rate.
- Add gridPower as a secondary headline metric labeled 'Grid Power', only shown when the field is present.
- Fix stateRules.secondaryState: identity mapping (idle->idle, unknown->unknown), fallback: unknown.
- Update DeviceDetailPage/DeviceDetailPanel to hide the Grid status KPI when secondaryState === unknown (or render distinct badge — confirm with Richie).
- Add translations. Update tests: batteryConfig, DeviceDetailPage, DeviceDetailPanel, aggregateDeviceMetrics.
- Rebuild @texturehq/device-config, run affected consumers' lint + typecheck + tests.
Branch: winston/bolt-1442-battery-config-fixes
Event Timeline
created
status_change
queued → in_progress
failed
lease expired — re-queued for retry
in_progress → queued
status_change
queued → blocked
subagent_spawned
spawn claim: typecheck+review fixes on PR #12984 (BOLT-1442)
status_change
blocked → in_progress
failed
lease expired — re-queued for retry
in_progress → queued
status_change
queued → in_progress
subagent_completed
subagent done: CI fixes pushed 08e0f739d9; all 3 cursor threads resolved; CI pending
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
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
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
subagent_spawned
spawn claim: BOLT-1442-cursor-bugbot-fixes
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
status_change
failed → in_progress
progress
Cursor Bugbot fixes committed (31e3a5d577) and pushed. All 3 findings addressed. Tests pass.
subagent_completed
subagent done: SUCCESS — 3 Cursor findings fixed, commit 31e3a5d577, all tests green
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
subagent_spawned
spawn claim: Fix DeviceMapMarkers.tsx gridPower-vs-SOC Bugbot finding + investigate DeepSource coverage failure
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
subagent_completed
subagent done: Bugbot fix (b39c2e12a0) + 12 unit tests (05cb2d236f) pushed; awaiting CI
status_change
failed → in_progress
subagent_spawned
spawn claim: Fix Cursor Bugbot: idle grid shows import arrow in GridStateBadge icon-only mode
subagent_completed
subagent done: Bugbot idle/unknown icon fix pushed at 6155bef4; 16/16 tests pass
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
subagent_spawned
spawn claim: gridPower pairWith visibility fix (Bugbot PR #12984)
failed
lease expired — max retries reached, marking failed (poison pill)
in_progress → failed
subagent_completed
subagent done: pushed 7323602a57 — DeviceStateSection pairWith fix, 9 tests pass, Bugbot thread resolved
status_change
failed → in_progress
subagent_spawned
spawn claim: lint-fix-formatting-and-index-key-warning
subagent_completed
subagent done: pushed 327e105bb1 — biome format + noArrayIndexKey fix (3 files)
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
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 → blocked