4.9 KiB
Direct resizing foundation
Gitea issue #16 owns the live task. The initial design and fresh critique are preserved as proposals, including their original unexecuted-evidence qualifications. The experiment below was subsequently run by root; it does not establish a completed resizing feature.
The desired interaction remains eight handles on selected persisted rectangles, fixed opposite edges, unchanged authored child placements and semantic ownership, exact projected preview/reopen parity, and one ordinary placement edit with Undo. Process/scenario view persistence is a separate dependency. Positive-edge-only handles would be an intermediate experiment, not completed acceptance.
Executed falsifiers
The standalone actual-core probe compiled with Rust 1.98.1 Windows GNU LLVM and -D warnings, then passed both automatic/manual-anchor cases and the small-card case. Its oa_core-145180297aa692e4 library was identified through the dependency fingerprint of the desktop binary whose full 818-test suite passed at 42511f0f8ae46f29e11ae18c1030face654c2994. The manifest, build receipt and runtime receipt record source/library/executable hashes and exact commands. No Linux evidence is claimed.
Eight neutral component ports connect to ordinary separated actors above and below their owner. Initial stored size 224×160 projects to 224×232. Copying those visible dimensions into storage makes the next projection 232×232 because automatic capacity changes sides. An east-edge shrink can instead preserve stored height160 and produce exactly 214×232; normalizing stored height232 makes the same intended shrink project to232×232. Manual anchors preserve this counterexample because automatic capacity is computed independently. All model/candidate validation passed; only the selected placement changed.
A valid portless 100×50 card can grow from its east edge to110×50. Requiring both a new184×94 preferred floor and unchanged inactive height50 would incorrectly refuse this useful operation.
Accepted corrections and remaining experiment
Exact saved preview is required; unconditional copying of every visible dimension into storage is rejected. The planner must first preserve inactive authored fields and solve only the fields needed for the requested frame, evaluating candidates through the actual shared projector. Retain the exact original placement for zero motion and cancellation. A preferred interactive minimum must allow existing small cards to grow continuously and must not impose a new minimum on an inactive axis. Actual state/content/port constraints still apply.
Dynamic port geometry means feasibility is not proven monotone. A bounded search that fails to find a candidate must report an unresolved constraint, not assert a false minimum. The next foundation experiment compares all eight handles and candidate strategies with a bounded independent search on leaves, nested containers, collapsed views, state rows and port counterexamples before production gesture implementation. Port and handle hit testing also need joint arbitration because existing invisible port hit slop can swallow a visible resize handle. These are unresolved implementation/interaction questions, not reasons to remove required handles.
Eight-handle experiment result
The subsequent executed inverse experiment and exact probe are archived with successful and failed build/runtime receipts. The 576 requests across 12 fixtures and eight handles yielded 326 exact/no-op, 118 static-minimum, 48 dynamic-unresolved and 84 explicitly ineligible outcomes. All eligible static cases resolved. A separate 52,622-candidate finite grid found no missed feasible witness in 14 searches; that finite domain is not a proof over arbitrary geometry.
All successful plans used finite authored-interval seeds, at most five projections. Residual iteration demonstrated no additional value and is not justified for production. The substantial remaining failures are confined to the two port fixtures. Source-level analysis additionally establishes three impossible requested frames in the particular same-peer fixture under the current port-capacity rule. More inverse iterations cannot repair those constraints.
Preserving authored inactive geometry and exact projected acceptance remains the foundation. A port-capacity policy comparison is now required to make eight-handle resizing predictable while retaining readable spacing and manual anchors. The probe's dynamic refusals are not accepted final UX. This experiment does not establish native resizing, source/API parity, large-model performance or Linux verification.