Commit Graph
552 Commits
Author SHA1 Message Date
iris-aiandClaude Opus 5 d0c80a2037 Record that picking any dirty widget does not work, and what it costs
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 19:37:51 -04:00
iris-aiandClaude Opus 5 592cc808ca Record both halves of the text fix, and what dirtying many widgets shows
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 19:22:14 -04:00
iris-aiandClaude Opus 5 60bf2568f8 Say what the two measurement worktrees are for now
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 18:52:23 -04:00
iris-aiandClaude Opus 5 d50e791130 Record what the shaping store cost and what it bought
Both gestures, since two widths in turn flatters a store and a drag does
not, and the memory beside the time: the question that decided the shape
of it was whether it is a fixed cost or one per text widget.

Bring LAYOUT.md's §1 and §2 to what shipped. A widget returns its size
rather than recording it, a slot carries a box rather than a
translation, and the per-axis answer is `OnResize` rather than
`is_size_independent` -- and the constraint the position chain replaced
was an agent's, which the text now says.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 18:51:34 -04:00
iris-aiandClaude Opus 5 2acfcf51aa Compare the retained layout with the old code on one tree
The random generator grew during the work, so the seed that names a
1061-widget tree in the pre-#16 rows names a 144-widget one now. Every
"still N times the old resize" here was measured across that change and
says nothing; a hand-written fixture that compiles on both revisions
says the old code is 2.2x cheaper and puts a paragraph outside the
output, for two reasons it records as deliberate.

Record what a resize frame is actually spent on -- 63% text, 0.9%
draw_inner -- and what removing the single-entry shaping and placement
caches measures at.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 18:10:14 -04:00
iris-ai ecce4448f0 Document per-axis retained layout 2026-09-14 17:49:42 -04:00
iris-ai 974d6c7a52 Document coalesced resize layout 2026-09-14 17:06:41 -04:00
iris-ai 986f98380d Document retained layout diagnostics 2026-09-14 16:42:42 -04:00
iris-ai ccc75d24fe Separate layout cost from draw counts 2026-09-14 16:25:54 -04:00
iris-ai cb1cfff0bf Record retained layout optimization results 2026-09-14 15:58:10 -04:00
iris-aiandClaude Opus 5 38f6f9ac07 Record what the layout actually costs, and what of it is necessary
The random tree at depth 7 measured against the two revisions before it: the
GPU pass is a tenth of a millisecond everywhere, and every difference is the
CPU laying out. A repaint of one leaf costs 1313 draws and 6.5 ms where the
pre-#16 code cost one draw, because `redraw` escalates to the top size reader
before knowing whether the size changed at all. Drawing first and escalating
only on a different size takes that to one draw and takes a resize below the
pre-#16 number, but misplaces four widgets in the resize case, so it is the
owner's to call.

Also records the measure-by-drawing multiplier -- 1.3x the drawn widgets at
depth 4, 5.2x at depth 8 -- and that scrolling is now part of the random
trees.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 14:36:11 -04:00
iris-ai ba275fc966 Rewrite the handoff around what is true now: the chain's invariants, the open pixel decision, and what is left 2026-09-14 14:07:11 -04:00
iris-ai d5486b124a Record the random tree's padding nodes and span add/remove scenarios 2026-09-14 13:48:53 -04:00
iris-ai e442481a30 Record the two reuse defects the random trees found, their fixes, and the one-pixel tabs difference left for Iris to call 2026-09-14 13:31:46 -04:00
iris-ai 19b9ca7413 Record #18's three agreed changes, the measurement, and the wrapping-text divergence the random-tree rig found 2026-09-14 13:06:49 -04:00
iris-aiandClaude Fable 5.1 5959d58e44 Record the agreed plan after #18: opt-in slots, a rewalk stretch, Span saying Scale
And the open question beside it: a slot that carries a box rather than a
translation, which would make a move and a stretch of a Scale subtree
one write each. To be measured with chain_cost before it is chosen.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 11:39:45 -04:00
iris-ai c683e62e4f Bring the handoff up to date: #18's state, the open question, and the rigs 2026-09-14 11:08:59 -04:00
iris-ai e90b026969 Record the chain-depth measurement and the question it opens 2026-09-14 03:32:03 -04:00
iris-ai 836c222f0c Record #16 and #17 merged, and #18 opened for the position chain 2026-09-14 03:16:29 -04:00
iris-ai 9f039d6440 Record that Remap is temporary, to be deleted by region chaining 2026-09-14 02:44:58 -04:00
iris-ai d373a1b05c Record the Remap contract and the measured resize cost 2026-09-14 01:27:48 -04:00
iris-ai 270fe66802 Record the resize change, and why the position chain moved up 2026-09-14 01:09:33 -04:00
iris-ai 0aaa1f92db Record both review rounds answered, and what alignment now follows 2026-09-14 00:40:52 -04:00
iris 80527ff843 Reorder: alignment before the chain, and what the chain must fix 2026-09-13 23:51:48 -04:00
iris 8e6d709ff3 Record #17, and queue the render state behind Rc<RefCell> 2026-09-13 23:10:48 -04:00
iris 0f24d3ac23 Record #16, the position chain, and why the hint shortcut is not the fix 2026-09-13 23:05:47 -04:00
iris e04f873453 Record all three merged, and what comes next 2026-09-13 22:07:57 -04:00
iris 9c85ea4864 Correct how the work is sequenced, and record #15 opened 2026-09-13 20:44:46 -04:00
iris f3ba05d446 Record #14 merged, #12 reworked, and the harness slice 2026-09-13 20:21:11 -04:00
irisandClaude Opus 5 d0606f46ec Rewrite the extraction handoff as current state
Incremental edits had spliced the opening section into two half-sentences and
left it saying main was at the commit before last. It is now written as where
things are: two open PRs, the harness as the next slice, the renderer's
invariants rather than the story of how they arrived, and the three render
checks described rather than pointed at a script in /tmp.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 19:45:08 -04:00
irisandClaude Opus 5 c2b1c07895 Record #14
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 19:35:08 -04:00
irisandClaude Opus 5 8d9680547a Record the input restructure as a slice, and what guards it
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 19:23:44 -04:00
irisandClaude Opus 5 69b40d555e Record the #12 self-review
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 19:10:15 -04:00
irisandClaude Opus 5 ba678e97f3 Record #11 merged and #13 opened
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 18:59:19 -04:00
irisandClaude Opus 5 c5a10ac845 Record #11 as approved
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 18:56:16 -04:00
irisandClaude Opus 5 a009261fae Record the wgpu 30 upgrade and why it is not pushed yet
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 18:42:17 -04:00
irisandClaude Opus 5 64d8042f52 Record the primitive render dispatch and how it was measured
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 18:30:52 -04:00
irisandClaude Opus 5 912602d52b Order the remaining Iris slices by how fundamental they are
The owner asked for library updates and core framework changes first, so code
is only written once, and for tests to arrive with a slice rather than as
scripts outside the repository. So wgpu 28 -> 30 and the headless rig and
harness come before any of the feature slices.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 17:45:34 -04:00
irisandClaude Opus 5 2937a48133 Record the seventh #11 review
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 17:44:21 -04:00
irisandClaude Opus 5 8beb461d83 Record the sixth #11 review
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 17:23:54 -04:00
irisandClaude Opus 5 43f6bda92d Record the fifth #11 review
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 16:53:00 -04:00
irisandClaude Opus 5 8daf1bcac1 Record the fourth #11 review and the agreed texture design
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 16:15:59 -04:00
iris 26f86bc6f7 Rewrite the Iris extraction handoff for a fresh session
Current as of PR #11's fourth review, which is deliberately unread: the
first instruction is to fetch it. Records what #11 became over three
rounds of review, since that shape is what the new review is about, and
where the headless rig actually lives, since a rendering claim cannot be
verified without it.

Drops the finished detail -- PR #10's contents, the source-history
archaeology that has been consumed -- and points at the machine-wide
pre-submit-review gate rather than restating it.
2026-09-13 15:50:09 -04:00
iris bc555f9ded Record the #11 review and the pre-submit gate in the handoff 2026-09-13 12:48:24 -04:00
iris a9d63babe4 Record the two open Iris extraction PRs in the handoff 2026-09-13 04:01:47 -04:00
iris e774b465fd Document Iris extraction handoff 2026-09-13 03:45:02 -04:00
iris 50d214e5b1 Move Iris to its standalone repository 2026-09-12 23:16:47 -04:00
iris 715c86e7e2 iris: eliminate retained-frame heap churn 2026-09-12 22:44:03 -04:00
iris badd758d9b iris: retain next-frame staging allocation 2026-09-12 22:11:38 -04:00
iris 45cdfed293 iris: keep redraw comments current 2026-09-12 22:06:13 -04:00