Skip to content

Fix: Introduce RenderPhase and isolate first-frame measurement#59

Merged
phranck merged 4 commits into
mainfrom
issue/55-render-phase-foundation
Jul 21, 2026
Merged

Fix: Introduce RenderPhase and isolate first-frame measurement#59
phranck merged 4 commits into
mainfrom
issue/55-render-phase-foundation

Conversation

@phranck

@phranck phranck commented Jul 21, 2026

Copy link
Copy Markdown
Owner

Closes #55 (sub-issue of #13). Design spec: .claude/openspec/render-phase-effect-commit.md.

Summary

Test plan

phranck added 4 commits July 21, 2026 20:18
- Capture approved design for issue #13 (variant C: phase enum, pass collectors, pending diff)
- Record documentation mandate, testing strategy, and four-plan split
- List verified code references audited on main @ 3219f2e
- Pin first-frame measurement leaks: onAppear fires and .task mounts for a view that exists only in the measure pass
- Pin duplicate key-handler registration when the header-correction pass re-renders the frame
- Pin onChange(initial:) double-firing caused by per-frame instead of per-pass index claims
- Add KeyEventDispatcher.handlerCount for tests and diagnostics
- Mark desired behavior withKnownIssue until #55/#56/#57 land
- Introduce RenderPhase (.measure/.render) with documented invariants and the effect classification rule
- Replace RenderContext.isMeasuring with RenderContext.phase across all 15 sites
- No deprecation bridge: project is pre-release and rebuilds APIs cleanly
- Update review policy overrides for the removed and added symbols
- Regenerate the API compatibility manifest with the tool
- Run the first-frame header measurement with phase == .measure so lifecycle, task, and focus guards apply
- Document why AppHeaderModifier stays unguarded until the pass collectors land (#56)
- Add a render-phases section to the RenderLoop architecture comment
- Promote the measure-pass characterization tests to hard expectations
@phranck
phranck merged commit ab58e22 into main Jul 21, 2026
6 checks passed
@phranck
phranck deleted the issue/55-render-phase-foundation branch July 21, 2026 19:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[P0-08a] Characterize render passes and introduce RenderPhase

1 participant