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
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"qualified_source": "230289d89d23195a005aadaa645686cebdcf7c04",
"normal_main": "fc17c5f6f046d5fadad47da71842a78432731f63",
"merge_head": "f244a641e1aece5ec385c1a81e3908ae5a5eb68e",
"all_textual_assets": 266,
"git_local_frozen_wheel_byte_equal": true,
"build_inputs_byte_equal": [
"README.md",
"pyproject.toml"
],
"src_delta": [],
"retained_wheel": "/home/ts/wt/textual-native-subtree-strips-20261002/.artifacts/native65-filewheel-20261005/textual-8.2.8-py3-none-any.whl",
"wheel_sha256": "e253066f005a2d9d67aeae2279ee4852b92f86d13b03acf32b60f16307d79355",
"wheel_metadata_sha256": "fa4831c4001c94a8d8177cccd05099d8fa021575c81a3bd53eae3b995eb22f1e",
"merge_conflicts": false,
"qualification": "Normal current-main integration only. Original native controls and standalone e253 artifact preserved; no new source checks/build/runtime/installed/frame qualification."
}
32 changes: 32 additions & 0 deletions evidence/immutable-subtree-window-acquisition-20261005/SANITY.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"source": "0ab59a0466cff6fd2bd8c3747b1be7e2fd660586",
"production_byte_equal_native_batch": "5a569464bcc567b5f8e85120a1983f52db1cf82e",
"native_source_batch": {
"passed": 32,
"failed": 1,
"seconds": 5.195401245029643,
"original_log": "/home/ts/wt/textual-native-subtree-strips-20261002/.artifacts/immutable-subtree-window-acquisition-20261005/negative01-native-source-batch.log",
"original_log_sha256": "543bdbdecaa15d6150b4d9c582097a33d013432e21a3aeca9a8c0d48200528f9"
},
"corrected_overlay_source_control": {
"source": "0ab59a0466cff6fd2bd8c3747b1be7e2fd660586",
"argv": [
"python",
"-m",
"pytest",
"-q",
"tests/test_viewport_geometry_targets.py::test_cached_overlay_and_fixed_children_match_the_original_scene"
],
"exit_code": 0,
"seconds": 1.4935176220024005,
"assessment": "Original negative01: 32 qualified controls and one incorrect overlay oracle. Diagnostic identified source-row-9 at y10 outside10row viewport; visible_region had zeroheight but Region.overlaps(wholeviewport) reportedtrue. Oracle now consumes original Compositor._paint_regions, exactly terminal paint admission plus original explicit bodytarget. Native production unchanged from source batch5a569; passed32 source cases not repeated.",
"qualification": "Actual native App source only; no installed Toad/frame performance."
},
"interpretation": "32 original qualified controls plus corrected affected overlay control PASS on byte-equal native production. Original 1-failure receipt retained. No repeated unchanged controls. Source-App scope only, no installed or frame gain qualification.",
"remaining_cost": "Complete widgets/invisible membership unions remain O(n); spatial grid construction is O(source extent/entries) once per immutable resource; coarse query false positives still need exact clipping. No CPU/smoothness proof.",
"no_new_env": true,
"no_installed_access": true,
"no_build": true,
"no_provider": true,
"no_film": true
}
79 changes: 79 additions & 0 deletions evidence/immutable-subtree-window-acquisition-20261005/SCOPE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# Immutable subtree window acquisition

Base: published frozen combined Text63/64 08e3dd6b3c7839baafcac6ff9ea61eb510ff9573.
The qualified source controls and 487b standalone wheel remain unchanged.

The existing immutable SubtreeGeometry owns source placement, membership, clip
scope and source order. Its viewport projection still scans every stored entry
before rejecting offscreen rectangles; restore also flattens complete native
membership on each use. Preserve complete capture, full-map queries, explicit
reader paths, overlay/screen-dependent fallback and bounded resource retirement.

Reuse the existing native spatial acquisition mechanism only as a derived index
of the original immutable resource, not a second scene or mutable geometry
registry. Migrate Placed and Intrinsic capture/publication together. Investigate
membership consumers before changing the published considered-widget contract.

Claim: native _compositor.py subtree capture/projection/restore and necessary
original membership consumers. No Toad, installed prefix, SDK, keeper, App or
recording lease. Heis owns the Toad workflow and original453 qualification.

Source ownership reasoning and implementation precede the final proportional
native App source controls. No CPU, frame latency or smoothness claim follows
from source deletion or a spatial-query operation count.

## Frozen implementation and source qualification

Production source: 0ab59a0466cff6fd2bd8c3747b1be7e2fd660586 (native product
byte-equal to the actual 5a569464 source batch). One production file: 33 added,
6 deleted lines compared with frozen08e3; no other native production changes.

`SubtreeGeometry.capture` now binds the original source ordinal alongside each
entry in its one immutable geometry mapping. Placed capture and Intrinsic capture
both consume this shared algorithm. Its private cached spatial resource uses
EXISTING SpatialMap and contains widget/ordinal references derived only from that
mapping. No second geometry map, ordinal registry, mutable update path or extra
lifetime owner was introduced. The original cache capacity, source key and
retirement own the index's lifetime.

Viewport publication queries that resource in original source coordinates, adds
root/explicit retained paths by direct lookup, and projects candidates in original
insertion order. This replaces the every-entry viewport scan. Complete full-map
and body capture consume all original entries and do not require the spatial
index. Screen-dependent/overlay clips still select Placed geometry at capture;
the index uses those actual absolute rectangles, not layout's fixed/overlay flags.
Exact region and clip admission remains unchanged after the candidate query.

Retirement now uses original geometry-key and membership-set disjointness rather
than allocating an expanded tuple of every referenced widget. Complete widget and
invisible-widget membership remain their original immutable sets, and restore
still unions them: this O(n) work is a required current contract, not claimed gone.
Index construction is source-size/extent work once per retained resource; coarse
spatial candidates still require exact clipping. No asymptotic/time claim applies
to the complete rendering workflow.

One final native App/source batch yielded 32 PASS and one failed NEW overlay
expectation. The original log and negative receipt are retained. Its expected set
used an empty intersection rectangle as painted (row9 y10 outside a ten-row
viewport); original Region.overlaps can return true for that zero-height shape.
The control now consumes the existing Compositor._paint_regions owner plus the
original explicit target. Only that changed control was re-run: PASS, 0.35s
pytest / 1.49s controller. Native production is byte-equal across both receipts;
the other 32 accepted controls were not repeated. No Region behavior was patched
or timeout/geometry oracle relaxed. SANITY.json binds these exact limits.

Actual source-App coverage: 240-row cached body forward/reverse acquisition,
offscreen explicit reader target, complete capture/full-map lookup, considered
membership, authored display invalidation, cache-budget/retirement; fixed child
and screen-overlay fallback/order against the original uncached scene; existing
native paint/layer/point-hit/damage and SpatialMap controls.

After: native249/tests460/Toad288 parsed without omissions. Before/after complete
root candidate output is in owner-consumers.json; dynamic aliases and external
subclass resolution remain explicit limits. Pattern IMPL-12: original shared
capture/publication behavior replaces the duplicated source-enumeration path.

No new env, build, keeper, installed prefix, Toad App, provider, physical recording
or CPU/smoothness qualification. Draft source checkpoint; affected installed
qualification belongs to a future meaningful Heis integration purpose. Frozen
Text63/64 08e3/wheel487 and Heis453 operands remain untouched.
Loading
Loading