step 6: add animation and high rate update stress tests
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
## Current status
|
||||
|
||||
Step 5 completed and verified with automated checks. Step 5 commit is pending.
|
||||
Step 6 completed and verified with automated checks. Step 6 commit is pending.
|
||||
|
||||
## Completed steps
|
||||
|
||||
@@ -28,7 +28,19 @@ Step 1 - Public API contract and pure core:
|
||||
|
||||
## Current step
|
||||
|
||||
Step 6 - High-rate updates, animation, and stress examples.
|
||||
Step 7 - Documentation, hardening, and beta release.
|
||||
|
||||
Step 6 - High-rate updates, animation, and stress examples:
|
||||
|
||||
Implemented during Step 6:
|
||||
|
||||
- Runtime updates now start animations using monotonic time for public calls.
|
||||
- Optional smoothing now progresses displayed values toward the latest target instead of snapping immediately.
|
||||
- Repeated GUI-thread value updates coalesce naturally to the newest target with no explicit queue.
|
||||
- Renderer frame scheduling remains guarded so continuous callbacks are scheduled only while animation or smoothing is active.
|
||||
- Debug state now includes detailed animation and smoothing fields.
|
||||
- Added `examples/animations.py`, `examples/live_high_rate.py`, and `examples/live_worst_case.py` using GUI-thread frame callbacks for Dear PyGui updates.
|
||||
- Added Step 6 tests for animation convergence, smoothing reset behaviour, latest-target wins, and renderer scheduling.
|
||||
|
||||
Step 5 - Analog, segmented, compass, thermometer, battery, and multi-value gauges:
|
||||
|
||||
@@ -91,7 +103,7 @@ Implemented during Step 2:
|
||||
|
||||
## Known issues
|
||||
|
||||
Manual visual example checks for Steps 3, 4, and 5 were not run in this headless session.
|
||||
Manual visual/stress example checks for Steps 3, 4, 5, and 6 were not run in this headless session.
|
||||
|
||||
## Commands used
|
||||
|
||||
@@ -118,6 +130,14 @@ Manual visual example checks for Steps 3, 4, and 5 were not run in this headless
|
||||
- Ran `uv run ruff format .`.
|
||||
- Ran `uv run ruff format --check .`.
|
||||
- Ran `uv run pyright`.
|
||||
- Committed Step 5 with `git commit -m "step 5: complete first gauge catalogue"` before starting Step 6.
|
||||
- Read `codex/FEATURES.md`, `codex/ARCHITECTURE.md`, `codex/STEPS.md`, and `codex/AGENTS.md` before Step 6 changes.
|
||||
- Implemented Step 6 animation/smoothing scheduling refinements, high-rate examples, README status update, diagnostics fields, and tests.
|
||||
- Ran `uv run pytest`.
|
||||
- Ran `uv run ruff check .`.
|
||||
- Ran `uv run ruff format .`.
|
||||
- Ran `uv run ruff format --check .`.
|
||||
- Ran `uv run pyright`.
|
||||
- Read `codex/FEATURES.md`, `codex/ARCHITECTURE.md`, `codex/STEPS.md`, and `codex/AGENTS.md` before Step 2 changes.
|
||||
- Implemented Step 2 state, sizing, animation, smoothing, runtime API, diagnostics, tests, and README status update.
|
||||
- Ran `uv run pytest`.
|
||||
@@ -142,4 +162,4 @@ Manual visual example checks for Steps 3, 4, and 5 were not run in this headless
|
||||
|
||||
## Next action
|
||||
|
||||
Commit Step 5, then implement Step 6.
|
||||
Commit Step 6, then implement Step 7.
|
||||
|
||||
Reference in New Issue
Block a user