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
58 changes: 58 additions & 0 deletions evidence/relative-height-measurement-resource-20261007/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Relative-height measurement source

Widget's original height-dependency resource now holds the separate computed
box and relative-descendant answers under its original structural/layout epoch.
It does not derive relative stretch from content or box independence.
Unchanged native descendants answer through that resource instead of walking
their children again. Paint-only refresh does not retire it.

NodeList publishes membership, display constraints and prune admission to
ancestor epochs. Styles publishes actual geometry-rule changes through the
measurement owner before idle, including raw rule writes. Authored layout
changes propagate through auto-size ancestry; the relative query stops at
fixed-size children. Reparenting invalidates old and new native custody.

The original query remains live for custom container, child-list, display,
relative-height and scalar implementations. Source uncertainty propagates
through the actual auto-child path; it is not inferred from labels or bounds.
Custom content/layout behavior remains governed by its separate HeightDependency
declaration and is not used as a certificate for relative stretch.

Direct message-pump closure also changes native display before detach. The
existing pump now supplies a polymorphic closing hook; DOMNode publishes the
same NodeList update used by prune admission. This completes the native source
lifetime rather than keeping a stale relative answer until physical removal.

21 affected checks passed across the retained logs: 17 first-pass positives,
three corrected authored checks, and one live child-selection check. Three
initial authored oracles incorrectly assumed the imperative `50%` setter keeps
a PERCENT scalar; ScalarProperty normalizes it to HEIGHT, which the original
relative predicate does not recognize. controls-first.log preserves those
failures. The corrected checks use the original FRACTION behavior, without a
product parser or predicate change.

The existing loaded source Toad App completed with empty stderr, 10 tabs and
568 widgets, growing to 592 after three authored response appends. Every height
answer matched the original Git property on the same acquired tree; queries
preserved actual geometry before and after those content changes. Five
alternating unprofiled trials of 20 query sweeps measured median 54.24→45.86ms
loaded and 58.61→46.55ms after the authored burst. In the latter actual cProfile,
is_container calls fell from 18,840 to 4,126. This is query work, not a live
frame/whole-burst speed claim. The authored burst completed to idle in .262s;
there is no original-versus-changed burst-latency comparison.

The final closing-hook rename is a complete declaration/caller rename to
_message_pump_closing, avoiding the event-handler namespace for a custom
Closing message. Original transition conditions remain explicit; an already
closed pump does not republish its display retirement.

Custom getters without native mutation publication remain live, and their
ancestors cannot retain an uncertain answer. Native membership and rules must
still be changed through their original owners; direct replacement of private
NodeList/RenderStyles storage or mutation of native declarations without a
source publication is not certified by these epochs. External dynamic source
resolution cannot be established by the lexical AST record alone.

No provider/input, package/public runtime or saved-data operation is part of
this change. Original profile gaps remain correlation, not duration attribution.
Matching installation and live scroll/burst acceptance remain Parent's work.
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
{
"scope": "source App height queries and authored response geometry, not live frame latency",
"tabs": 10,
"sweeps": 20,
"phases": {
"loaded": {
"widgets": 568,
"seconds": {
"original": [
0.045427089906297624,
0.05181200604420155,
0.06757318798918277,
0.08904787409119308,
0.05424024909734726
],
"retained": [
0.03314762795343995,
0.045864460058510303,
0.03516618604771793,
0.07208854996133596,
0.05582378106191754
]
},
"median_seconds": {
"original": 0.05424024909734726,
"retained": 0.045864460058510303
},
"profile_actual_calls": {
"original": {
"_has_relative_children_height": 16280,
"_relative_children_height": 0,
"is_container": 16280
},
"retained": {
"_has_relative_children_height": 11360,
"_relative_children_height": 14068,
"is_container": 4419
}
},
"answers_equal": true,
"geometry_unchanged_during_queries": true
},
"after_authored_response_burst": {
"widgets": 592,
"seconds": {
"original": [
0.05860715894959867,
0.05218407104257494,
0.05673567100893706,
0.0629461359931156,
0.07115682295989245
],
"retained": [
0.053681319928728044,
0.04390930093359202,
0.045053731999360025,
0.05055906006600708,
0.04655407601967454
]
},
"median_seconds": {
"original": 0.05860715894959867,
"retained": 0.04655407601967454
},
"profile_actual_calls": {
"original": {
"_has_relative_children_height": 18680,
"_relative_children_height": 0,
"is_container": 18840
},
"retained": {
"_has_relative_children_height": 11839,
"_relative_children_height": 16380,
"is_container": 4126
}
},
"answers_equal": true,
"geometry_unchanged_during_queries": true
}
},
"authored_burst_to_idle_seconds": 0.26241247402504086,
"inputs": 0,
"providers": 0
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
... [100%]
3 passed in 0.48s
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
FF.F................ [100%]
=================================== FAILURES ===================================
_________ test_native_relative_source_changes_before_idle_and_reparent _________
tests/test_relative_height_resource.py:20: in test_native_relative_source_changes_before_idle_and_reparent
assert first._has_relative_children_height
E assert False
E + where False = VerticalGroup()._has_relative_children_height
__ test_opaque_display_and_container_getters_do_not_retire_with_native_epochs __
tests/test_relative_height_resource.py:74: in test_opaque_display_and_container_getters_do_not_retire_with_native_epochs
assert display_parent._has_relative_children_height is enabled
E assert False is True
E + where False = VerticalGroup()._has_relative_children_height
_______ test_direct_pump_retirement_publishes_display_before_detachment ________
tests/test_relative_height_resource.py:108: in test_direct_pump_retirement_publishes_display_before_detachment
assert parent._has_relative_children_height
E assert False
E + where False = VerticalGroup()._has_relative_children_height
=========================== short test summary info ============================
FAILED tests/test_relative_height_resource.py::test_native_relative_source_changes_before_idle_and_reparent
FAILED tests/test_relative_height_resource.py::test_opaque_display_and_container_getters_do_not_retire_with_native_epochs
FAILED tests/test_relative_height_resource.py::test_direct_pump_retirement_publishes_display_before_detachment
3 failed, 17 passed in 1.68s
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
. [100%]
1 passed in 0.37s
Loading
Loading