4.2 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 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 03-repair-rendering-trigger | Repair the attributed rendering trigger | pending | 3 |
|
plan.md |
|
|
|
Task 03: Repair the attributed rendering trigger
Summary
Eliminate the reproduced host-owned continuous rendering trigger while preserving visible motion. This work order is evidence-gated until Task 01 identifies the target.
In scope
Restrict the repair to the target and existing motion boundaries identified in Task 01. Reuse compositor spin, grid, or pulse mechanisms where applicable. Add a failing behavioral or node-attributed trace regression before changing production. Update the design and this work order with exact ownership and targeted test commands before execution; do not treat the candidate list as blanket edit scope.
Out of scope
Backend/state changes, plugin implementation changes, transcript virtualization, and unmounting user content. No global production animation suppression.
Acceptance
Pause/restore evidence identifies a specific target. A pre-fix regression fails for its recurring invalidations and passes after repair. Normal-page before/after captures demonstrate removal of the attributed recurring work with visible feedback, settlement, and mobile behavior preserved.
ASCII UI preview
UI-01, excerpt from the combined preview:
Desktop / phone existing task surface:
Visible active -> motion runs
Hidden active -> motion pauses, state remains current
Visible settled -> settled status
Context ring -> arc transition only
Preserve the existing desktop panels and dedicated phone Chat composition. The work order's frontmatter ACs map this preview to its rendered checks.
Verification
From the repository root, after the plan's one-time dependency bootstrap:
(cd apps/web && rtk pnpm test lib/ui/state-icons.test.tsx lib/ui/compositor-pulse.test.tsx components/grid-spinner.test.tsx)
(cd apps/web && rtk pnpm e2e:run --project chromium tests/chat/persistent-animation-motion.spec.ts)
(cd apps/web && rtk pnpm e2e:run --project mobile-chrome tests/chat/mobile-persistent-animation-motion.spec.ts)
(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/packages/ui/src/compositor-spin.tsx (candidate only)apps/packages/ui/src/compositor-pulse.tsx (candidate only)apps/web/components/grid-spinner.tsx (candidate only)apps/web/app/globals.css (candidate only)apps/web/e2e/tests/chat/animation-performance-trace.spec.ts
Dependencies
01-attribute-rendering, 02-bound-ring-transitions. See the manifest for evidence gates.
Risks
The exact source is unknown. If it is plugin-owned, outside status motion, or requires transcript virtualization, record the finding and revise the relevant design before proceeding. No speculative memoization or new rendering architecture.
Parallelism
sequential
Inputs
- Requirements.
- Design.
- Existing animation trace, component tests, and desktop/mobile motion specs.
- Baseline findings in plan.md.
Results
Pending by design. Task 01 isolates the disposable fixture's grid and composer pulse invalidations, but the supplied trace's recurring Layerize work is not attributed to a production node. The evidence gate therefore prevents a speculative repair. Reopen this work order only after a target-specific trace and failing regression identify the source.