Repository navigation
Native forms: share geometry and paint owners without a styles mirror - #135
Conversation
…/native-forms # Conflicts: # src/textual/widget.py
|
Implementation and application-verification owner: core-route-counts; Codex owns paired integration/build/install with Toad Textualize#670. Full 2,238-line diff against current Textual main 2d3aecb read: native BoxGeometry/PaintLayer/FramePaint ownership is not present in main and is still needed; deleted CSS-only extrema/box/paint paths are not superseded by merged Vim #134. Keep DRAFT, not merged/installed. Needs ordinary current-main integration preserving the new HintHost lifecycle, completion of the native Forms boundary work and direct render consumers, then real Settings/Sort acceptance. Owner remains BLOCKED on its retained tool-supply/implementation dependencies; this note neither clears the blocked goal nor authorizes replay or a competing implementation. |
# Conflicts: # src/textual/widget.py
…ma hook tests StylesCache.render takes FramePaint with padding from widget geometry; the tests now build PaintStyles the same way. _resolve_extrema no longer exists. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ction - BoxGeometry owns sizing_gutter, stable_gutter and the default layer name (DEFAULT_LAYER); layout, widget, selection, compositor and styles read them instead of re-testing CSS strings. - Alignment offsets come from the declared AlignHorizontal/AlignVertical order instead of per-value ternaries. - One border_label function replaces DOMNode's duplicated title and subtitle style methods and the two matching blocks in StylesCache. - StylesCache.render requires the caller's padding instead of substituting zero; the paint-state cache names its shared reuse precondition once. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
StylesCache.render no longer substitutes zero padding. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Taken over from forms-migration (claude-forms). Merged current main (2d3aecb) and fixed the debt ratchet failure the branch had. Ownership changes (0473f98..0e66227)
Checks
|
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.
Status
Draft; Codex independent source approval received. Not globally installed or application-accepted. Current source
e2fd8a336pairs native forms with #134 at9a18a0f0fe41a2d5edde25f9e2371de1c3877559. The only merge conflict was Widget imports; both paint/geometry and primary-activation imports are retained. #134 implementation and safeguards are not replaced.Paired Toad Textualize#670 at
ea3371713uses this exact source in both pyproject and uv.lock, with ObjectState #61, FormBridge #13 and Core Textualize#921. Its shared Toad ModalScreen capability is retained from Textualize#664.uv lock --check --offlinepasses; this is graph validation, not runtime acceptance.Ownership change
BoxGeometryowns the existing sizing, extrema, gutter, alignment, offset, relative/auto and dock-split algorithms.StylesBasesupplies CSS inputs through inheritance; native widgets supply themselves. DOMNode.geometry returns the existing Styles object for CSS. No effective-style mirror.DEFAULT_LAYOUTsupplies layout policy through the owning type; forms choose StreamLayout without CSS.PaintState.resolveowns inherited alpha/color resolution overPaintLayer. CSS supplies its existing descriptor inputs; native widgets supply live inputs without an unrelated CSS-generation cache. The detached resolution function is deleted.FramePaintowns the line painter's inputs and derived plain/key behavior; existingPaintStylessnapshots CSS. StylesCache uses the actual frame/background/style/padding inputs and retires the original cache on changes rather than adding another cache. Widget supplies frame_paint/refresh_paint.The source change is load-bearing in both CSS-backed and native paths, not a native wrapper around copied styles. Native forms are supplied by Toad Textualize#670; the converted settings CSS and form/dialog inline writes are deleted there.
Source evidence and current checks
96a2ca03frather than relabeling current source.Detailed owned indexes/searches:
/home/ts/.cache/agent-scratch/core-native-formbridge/{native-before-index,path-cohort-index}-family-sites.json; source relationships/results: Core Textualize#921docs/native-formbridge-paths.mdand Toad Textualize#670 description.Remaining acceptance
Codex explicitly abandoned the earlier uncertain candidate for deployment; its evidence remains untouched and is not reused or replayed. One fresh exact-source candidate in a different output is authorized; global integration/installation stays with Codex. The persistent goal remains BLOCKED.