Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions evidence/container-height-membership-20261007/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Native container membership during height measurement

Native `is_container` is true for either committed child membership or an
explicit layout. Child membership now answers first, avoiding RenderStyles
layout resolution on every populated step of a relative-height traversal.
Empty native child lists still consult the current layout declaration.

This changes only the original Widget property. Subclass property overrides,
relative percentage/fraction admission, hidden children, auto-size propagation,
layout policies, measurement generations and reparenting remain unchanged.
NodeList owns real child membership; RenderStyles owns the independently
changing layout declaration. Neither answer is stored or inferred from bounds.

The recursive relative-height query remains necessary: even independent
Stream content measurements can have auto boxes stretched by relative-height
descendants. Removing that query or treating content independence as box
independence would change geometry. This patch removes a predicate cost; it
does not claim to remove descendant traversal or solve burst frame latency.

source.json records existing Package AST declarations and consumers across
249 native and 288 Toad modules, with zero parse omissions. Runtime replacement
of the entire is_container property continues to dispatch normally. Private
replacement of native NodeList/RenderStyles with side-effectful nonconforming
objects is not a native measurement contract.

64 affected measurement/arrangement/structural-generation checks passed in
4.33s. The existing loaded source Toad App completed with 568 widgets/10 tabs,
equal relative-height answers for every widget, unchanged geometry and empty
stderr. It compares old/current short-circuit order on the same acquired tree.
Five alternating unprofiled trials of 20 query sweeps had medians 49.73ms and
47.92ms; trial variation overlaps, so this is not a reliable latency improvement.
The cProfile files retain instrumentation output; summed recursive cumulative
values are not an aggregate wall-time result and are not used as speed evidence.

No original session, submitted input, provider, package or public App is used.
The full recursive descendant query remains the outstanding cost; this patch
does not justify bypassing it, storing another readiness/dependency answer or
claiming the original 2.869s writer gap has been solved.
Empty file.
40 changes: 40 additions & 0 deletions evidence/container-height-membership-20261007/app.stdout.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"scope": "source Toad App recursive height queries, not burst/frame latency",
"widgets": 568,
"tabs": 10,
"sweeps_per_trial": 20,
"seconds": {
"original": [
0.05167253699619323,
0.04497357609216124,
0.043833934934809804,
0.0542515879496932,
0.04973278904799372
],
"membership_first": [
0.0633440789533779,
0.04001189791597426,
0.04056658991612494,
0.048753642942756414,
0.04791633493732661
]
},
"median_seconds": {
"original": 0.04973278904799372,
"membership_first": 0.04791633493732661
},
"profiles": {
"original": {
"is_container_seconds": 0.012723577,
"relative_height_seconds": 0.15487751200000002
},
"membership_first": {
"is_container_seconds": 0.013725005,
"relative_height_seconds": 0.006692936
}
},
"all_relative_answers_equal": true,
"geometry_unchanged": true,
"inputs": 0,
"providers": 0
}
2 changes: 2 additions & 0 deletions evidence/container-height-membership-20261007/controls.log
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
................................................................ [100%]
64 passed in 4.33s
Loading
Loading