KMPCharts/.paul/STATE.md
dtrentin b9ee5ddfa3 Initial commit: chart-realtime KMP library v0.4.1-SNAPSHOT
- RealtimeChart composable with Canvas-based rendering
- TieredBuffer: 3-tier ring buffer (5min full-rate, 10min @10Hz, 45min @1Hz) for 1h data support with ~5MB footprint
- LodDecimator: MEAN / MIN_MAX / MIN_MAX(default) / LTTB render-time decimation
- AxisRenderer: X/Y axis with INSIDE/BESIDE/HIDDEN label modes, T0-relative timestamps, scientific notation
- SignalRenderer: clipRect-bounded path rendering with LoD
- ChartTheme: Material3-compatible dynamic theming (light/dark)
- package: dev.dtrentin.chart

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 01:48:51 +02:00

61 lines
2 KiB
Markdown

# Project State
## Project Reference
See: .paul/PROJECT.md (updated 2026-05-20)
**Core value:** Android devs plot 200Hz+ multi-signal sensor data without frame drops
**Current focus:** v0.2.0 — Phase 4 LOD scratch optimization (deferred)
## Current Position
Milestone: v0.2.0
Phase: 3 of 4 — In Progress
Plan: .paul/phases/v0.2.0-plan.md
Status: In Progress
Last activity: 2026-05-20 — Phases 1-3 complete + build green. rememberMaterialChartTheme(), axis text labels (TextMeasurer), dynamic xWindowSeconds param, theme param on RealtimeChart. Fix: added compose.material3 to commonMain deps.
Progress:
- Milestone: [██████████] 100%
- Phase 6: [██████████] 100%
## Loop Position
```
PLAN ──▶ APPLY ──▶ UNIFY
✓ ✓ ✓ [v0.1.0 SHIPPED]
```
## Accumulated Context
### Decisions
| Decision | Phase | Impact |
|----------|-------|--------|
| Canvas custom rendering (no lib) | Init | Core architecture |
| Render/data decoupled withFrameNanos | Init | RenderLoop design |
| LoD min/max decimation | Init | SignalRenderer calls LodDecimator |
| compose.foundation added to commonMain deps | Phase 4 | Canvas + Modifier.background require it |
| iOS deferred | Init | commonMain only, no expect/actual beyond currentTimeMs |
### Deferred Issues
| Issue | Origin | Effort | Revisit |
|-------|--------|--------|---------|
| LodDecimator scratch array allocation per frame | Phase 2 | M | v0.2.0 |
| Double snapshot per frame in RealtimeChart | Phase 4 | M | v0.2.0 |
| Axis text labels | Phase 4 | M | v0.2.0 — needs TextMeasurer |
| iOS support | Init | L | Future milestone |
### Blockers/Concerns
None.
## Session Continuity
Last session: 2026-05-20
Stopped at: Phases 1-5 complete. 16 tests pass.
Next action: Phase 6 — 06-01 ChartTheme + Material3, 06-02 KDoc + README + publish config
Resume context: All source in chart-realtime/commonMain; demo app in app/
---
*STATE.md — Updated after every significant action*