# Project State ## Project Reference See: .paul/PROJECT.md (updated 2026-05-21) **Core value:** Android devs plot 200Hz+ multi-signal sensor data without frame drops **Current focus:** v0.3.0 IN PROGRESS — dirty flag render + targetFps=30 shipped ## Current Position Milestone: v0.2.0-polish Phase: 6 of 6 — Complete Plan: .paul/phases/v0.2.0-plan.md Status: Complete Last activity: 2026-05-21 — dirty flag render, targetFps=30, 17 unit tests, KDoc, README, iOS targets (iosX64/iosArm64/iosSimulatorArm64) + Platform.ios.kt actual. Progress: - v0.1.0 milestone: [██████████] 100% SHIPPED - v0.2.0 milestone: [██████████] 100% SHIPPED ## Loop Position ``` PLAN ──▶ APPLY ──▶ UNIFY ✓ ✓ ✓ [v0.2.0 SHIPPED — v0.5.0-SNAPSHOT] ``` ## Accumulated Context ### Decisions | Decision | Phase | Impact | |----------|-------|--------| | Canvas custom rendering (no lib) | Init | Core architecture | | Render/data decoupled withFrameNanos | Init | RenderLoop design | | TieredBuffer over flat ring | v0.2.0 | O(N×constant) memory, 20+ signals | | MIN_MAX tier binning (not MEAN) | v0.2.0 | Composable, no artifacts at tier boundaries | | MEAN removed from LodMode | v0.2.0 | Cleaner API, no synthetic values | | LodDecimator as class (pre-alloc scratch) | v0.2.0 | Zero GC at render time | | Sensor cap 200Hz (5_000μs) | v0.2.0 | Thermal/battery optimization | | Package dev.dtrentin | v0.2.0 | Personal project, not company | | iOS targets shipped | v0.3.0 | iosX64/iosArm64/iosSimulatorArm64 + Platform.ios.kt | ### Deferred Issues | Issue | Origin | Effort | Revisit | |-------|--------|--------|---------| | ~~Dirty flag render (skip frame if no new data)~~ | v0.2.0 | S | ✓ v0.3.0 | | ~~targetFps=30 default~~ | v0.2.0 | S | ✓ v0.3.0 | | ~~iOS expect/actual beyond currentTimeMs~~ | Init | L | ✓ v0.3.0 | | ~~KDoc on public API surface~~ | v0.2.0 | M | ✓ v0.3.0 | | ~~README with integration example~~ | v0.2.0 | S | ✓ v0.3.0 | | Publish to Maven Central / GitHub Packages | v0.2.0 | M | v0.3.0 | ### Blockers/Concerns None. ## Session Continuity Last session: 2026-05-21 Stopped at: v0.2.0 complete. All AC pass. Git pushed to remote. Next action: Define v0.3.0 scope (dirty flag render, targetFps=30, KDoc, publish) Resume context: - Library: AndroidCharts/chart-realtime, published dev.dtrentin:chart-realtime:0.5.0-SNAPSHOT to mavenLocal - App: AndroidChartsApp consuming library, builds clean - Remote: ssh://git@3nt-git.duckdns.org:222/davide.trentin/KMPCharts.git - Package: dev.dtrentin.chart --- *STATE.md — Updated after every significant action*