2026-04-21 20:59:52 +08:00
|
|
|
# Checklist
|
|
|
|
|
|
Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
2026-05-06 16:00:45 +08:00
|
|
|
- [x] `release.yml` does not invoke Velopack.
|
|
|
|
|
- [x] `plonds-build.yml` uploads app payload artifacts and generates PloNDS delta/static outputs.
|
|
|
|
|
- [x] S3 output path is rooted at `lanmountain/update/` (no system version prefix).
|
|
|
|
|
- [x] CI workflow expects `repo/`, `meta/`, `manifests/`, and `installers/` outputs after a release run.
|
|
|
|
|
- [x] Host update source keeps compatibility (`pdc`/`stcn` normalize to active PloNDS source).
|
|
|
|
|
- [x] Host can persist PloNDS payload into launcher incoming directory.
|
|
|
|
|
- [x] Launcher can apply PloNDS FileMap payload with signature/hash verification.
|
|
|
|
|
- [x] Legacy signed `files.json + update.zip` path still works as compatibility fallback.
|
|
|
|
|
- [x] Launcher keeps rollback-capable deployments after successful update.
|
|
|
|
|
- [x] Manual rollback returns a structured failure when the snapshot source directory is missing.
|
2026-04-21 20:59:52 +08:00
|
|
|
- [ ] CI run attached proving all release matrix jobs pass.
|
Introduce render gate and chart caching
Replace UI DispatcherTimer polling with a StudySnapshotRenderGate across multiple widgets to queue and apply only the latest analytics snapshot; components updated include StudyDeductionReasonsWidget, StudyEnvironmentWidget, StudyInterruptDensityWidget, StudyNoiseCurveWidget. Add StudySnapshotRenderGate implementation to coordinate rendering and monitoring leases and update subscription/lease lifecycle handling (subscribe/unsubscribe, Acquire/Dispose leases, Clear/Dispose gate). Rewrite chart controls (StudyNoiseCurveChartControl and StudyNoiseDistributionScatterChartControl) to use stable logical-time origins, split series into static vs dynamic tails, add geometry/sample caching, stable jitter/coordinate mapping helpers, and expose internal helpers & counts for testing. Add unit tests (StudyComponentRenderingTests) covering the render gate and chart behaviors (layer counts, logical X mapping, stable jitter, cache rebuild). These changes improve rendering correctness and performance by avoiding redundant renders and enabling deterministic chart layout.
2026-05-06 16:00:45 +08:00
|
|
|
- [x] N-1 -> N incremental update verified locally on Windows x64.
|
|
|
|
|
- [ ] N-1 -> N incremental update verified on Windows x86 and Linux x64.
|
|
|
|
|
- [x] Rollback regression tests attached in `LanMountainDesktop.Tests`.
|