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
96 changes: 96 additions & 0 deletions evidence/native-height-declaration-admission-20261005/SCOPE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Height reuse from the original measurement declaration

Base: merged66/main9ea7a109b648be526ce5d000b2c94799b57f3c23.
Frozen66/0945 and65/e253 source/control/artifacts remain immutable.

Existing HeightDependency, Widget class binding and Layout class binding already
own the selected measurement/arrangement's available-height dependency. Widget
arrange and box resolution ask those same owners but only after a separate
CACHE_HEIGHT_INDEPENDENT_BOX/ARRANGEMENT class flag grants reuse. That repeats
an independently supplied decision across native and Toad subclasses and leaves
ordinary declared-independent containers remeasuring unchanged width/source.

Remove both flags, their native subclass declarations and every native gate/test
reader. Existing proof/resource invalidation becomes load bearing by default.
No new class, mapping, cache, state flag, threshold or alternate algorithm.
Unknown/custom method/layout/scalar/relative-height proofs remain conservative;
original viewport, width, parent source/auto-size inputs and native revisions
remain. Dynamic instance method replacement has no class-declared proof: this
change does not manufacture a proof for arbitrary monkeypatches.

Claims: Widget.arrange/_get_box_model class-flag gate family, native containers
and existing affected source controls. Heis owns all15 Toad declaration removals
in the future paired successor; current455 purpose/source stays untouched.
Einstein456 preparation completion is disjoint; no Toad writes by this contributor.

Original436 Down78.432014329 observed nested native reflow/arrange/content-height
calls. Its profile observes execution, not redundancy, per-call duration or CPU
share. Source identifies the separate flag bypass of existing proof authority.
Current scroll measurement epochs already exclude mere scroll placement; do not
remove them or genuine custom/relative-height dependencies for this change.

Complete before AST from original Package loader covers native production/tests
and Toad production/tests/tools with no parse omissions (before.json). AST alone
cannot prove dynamic dispatch or arbitrary external aliases. Read original owner,
class initialization, proof family and all flag consumers before implementation.
Pattern IMPL-5: duplicate authorization of one declared measurement relation.

At the initial source checkpoint this was source-only/Draft/untested. Later
named source App authorization and qualification are recorded below; installed
pairing remains separate. Existing oracle controls will compare warmed results against original
fresh calculation after cache clear, not retain a second opt-in switch.


## Coherent implementation checkpoint

Widget.arrange always borrows its existing source-epoch height-dependency proof;
its original resource key retains width, viewport, NodeList/layout source,
optimal mode and dependency result. The actual calculation receives the original
size, never the normalized cache key. Widget._get_box_model similarly borrows
its existing selected proof; only proven-unused incoming-height key inputs are
normalized. Original parent revision/auto-size inputs and all source invalidation
remain unchanged. No measurement or style proof algorithm is relaxed.

Deleted both Widget opt-in declarations and both decisions plus all four native
VerticalGroup/HorizontalGroup labels. Existing controls now instantiate original
native classes rather than four empty opt-in wrapper classes. Reference results
come from original fresh calculation after cache clear for each input; warmed
results compare against those exact originals. Custom measurement/layout/extent/
scalar/hook, stream/grid/docking, viewport/relative-height, raw mutation, parent
auto-sizing and scroll/retirement controls stay in the affected source family.
No alternate raw measurement algorithm, new test toggle or proof mirror.

All original native source/test flag consumers are gone. Heis owns deletion of
15 remaining Toad class labels in the future paired successor; they are explicitly
unfinished consumer cleanup, not current455 edits. Native dependencies remain
class-declared through original subclass initialization: arbitrary later runtime
monkeypatch rebinding is an unresolved external dynamic boundary, not a proven
native reuse contract. No public input or installed runtime was changed.

At implementation checkpoint455d8ec2 only source syntax/diff was checked. No
controls/App/wheel/dependency/prefix/SDK/provider/recording had run. Subsequent
changed source App qualification is below; installed pairing remains unqualified.


## Changed native source App qualification

Executed source/controlb158ca382f835db4351d920eef6c16f77490b2c6; production
455d8ec2d0339e1f0ddba2634361c7aebf86386e. ONE originally authorized source App
batch: **62PASS/4.51s pytest**,5.604s controller, exit0. Exact argv/interpreter/raw
output/hash are source-batch01.json and source-batch01.log. Existing system
/usr/bin/python and dependencies, PYTHONPATH=src; no new environment/installation.

The two existing modules retain fresh original calculation versus warmed reuse,
width/viewport/optimal/parent inputs, full source mutation/inherited style/display/
structural admission and scroll retirement. Custom measurement/layout/hooks,
scalar resolvers, relative/fractional/extrema, stream/grid/automatic sizing keep
conservative context. These 62 source App cases pass without either retired flag
or label-only wrapper class. No failed case or rerun; accepted66 compositor22
and frozen65 controls not repeated.

This confirms the changed native source family, not installed Toad/body/wheel,
Linux motion, frame cadence, cold traversal cost, CPU gain or full performance.
New proof acquisition has a real cold traversal; existing source-epoch reuse is
not a measured speedup. Heis owns remaining15Toad declaration deletions and the
future coherent affected paired application scope; current455 bytes/artifacts
stay frozen. No current holder, wheel, SDK/provider, film or package purpose.
53 changes: 53 additions & 0 deletions evidence/native-height-declaration-admission-20261005/after.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"head": "455d8ec2d0339e1f0ddba2634361c7aebf86386e",
"roots": [
{
"root": "src/textual",
"parsed": 249,
"omitted": []
},
{
"root": "tests",
"parsed": 460,
"omitted": []
}
],
"retired_flags": [],
"proof_declarations": [
{
"path": "src/textual/widget.py",
"line": 1880,
"name": "_arrangement_depends_on_available_height"
},
{
"path": "src/textual/widget.py",
"line": 1899,
"name": "_box_depends_on_available_height"
}
],
"proof_calls": [
{
"path": "src/textual/_measurement.py",
"line": 93,
"source": "widget._arrangement_depends_on_available_height()"
},
{
"path": "src/textual/_measurement.py",
"line": 134,
"source": "child._box_depends_on_available_height()"
},
{
"path": "src/textual/widget.py",
"line": 1418,
"source": "self._arrangement_depends_on_available_height()"
},
{
"path": "src/textual/widget.py",
"line": 1934,
"source": "self._box_depends_on_available_height()"
}
],
"limits": [
"AST name matching is not arbitrary external/dynamic alias proof. Toad15 label deletions remain Heis-owned future paired work; current455 stays frozen. Class-contract binding and source invalidation remain original."
]
}
Loading
Loading