3.7 KiB
id, title, status, wave, depends_on, plan, requirements, acceptance_criteria, system_design
| id | title | status | wave | depends_on | plan | requirements | acceptance_criteria | system_design | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 01-attribute-rendering | Attribute continuous rendering | done | 1 | plan.md |
|
|
|
Task 01: Attribute continuous rendering
Summary
Produce a repeatable reproduction and identify the target that keeps the main thread rendering. Do not change production code in this work order.
In scope
Extend the gated trace fixture with normal-script baseline, all-motion paused, restoration, and per-group isolation arms. Inventory CSS and Web Animations, including pseudo-elements. Reload the isolated fixture between arms or restore exact play states and inline declarations in finally. Assert no active motion remains in the pause control; detect animations created after the first inventory. Preserve the existing narrow compositor and CSS-fallback controls.
Out of scope
Backend/state changes, plugin implementation changes, transcript virtualization, and unmounting user content. No global production animation suppression.
Acceptance
Record three equal windows per arm, environment details, target identities, CPU availability, event counts/durations, and node-level invalidations. A target is attributed only when pausing removes the recurring work and restoration reproduces it. Add the exact target files, regression, and commands to Task 03 before production repair; if not reproduced, record the limitation and keep that task pending.
Verification
From the repository root, after the plan's one-time dependency bootstrap:
(cd apps/web && KANDEV_E2E_ANIMATION_TRACE=1 rtk pnpm e2e:run --project chromium tests/chat/animation-performance-trace.spec.ts)
Record actual discovery counts, failures, and results. Do not substitute a skipped trace run for performance evidence. Implementation uses TDD for changed logic; the attribution work order produces diagnostic evidence first.
Files likely touched
apps/web/e2e/tests/chat/animation-performance-trace.spec.tsapps/web/e2e/helpers/animation-assertions.tsdocs/plans/frontend-rendering-cpu/evidence.md (new sanitized report)docs/plans/frontend-rendering-cpu/task-03-repair-rendering-trigger.md
Dependencies
None. See the manifest for evidence gates.
Risks
The existing small fixture may not reproduce the user's long transcript or high refresh rate. Seed disposable realistic content and compare a smaller-DOM control; do not silently call a non-reproduction a pass.
Parallelism
sequential
Inputs
- Requirements.
- Design.
- Existing animation trace, component tests, and desktop/mobile motion specs.
- Baseline findings in plan.md.
Results
Done. The gated trace fixture now records normal-page, compositor-control, CSS-fallback, all-motion, and per-target pause/restore arms. It inventories CSS animations, pseudo-elements, and Web Animations, retains all configured repeats, and reports medians and ranges without adding nested event durations.
The three-repeat Chromium run passed after the trace-control remediation. The fixture identifies grid and composer pulse invalidations with targets kept present, compares selective pause arms against a matched script-enabled baseline, and verifies continued activity in the unpaused group. The supplied production trace's persistent Layerize work remains unattributed. See evidence.md. Task 03 remains pending under its evidence gate.