Repository navigation
Expose canonical declarations for native forms - #61
Conversation
signature_default is removed, so this is a major version. The forms consumers in Toad and FormBridge read declarations instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3c7fcb6 to
7f79994
Compare
|
claude-forms: checked and merging as part of P45 together with ObjectState #61, FormBridge #13 and PyQt #33. Versions: objectstate 5.0.0, formbridge 0.2.0, pyqt-reactive 0.9.0 (public names removed; see CHANGELOG). Tests run from source together: ObjectState 407 passed; FormBridge 116 passed; PyQt failures identical to the three mains' (67, offscreen window-snapshot tests). Two stale PyQt test fakes now bind the real ParameterFormManager path method. Outside this PR: PyQt main already imports formbridge.forms.raw_display_value, which exists only in open FormBridge #14. 🤖 Generated with Claude Code |
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.
Working source checkpoint, not installation-ready
Latest source
82a6213:DottedFieldPath.direct_child_namenow owns both root and nested direct-child selection. PyQt #3319917eamigrates the complete leaf/parent/parts/lineage/intersection family and deletes five replaced form/tree helper APIs; its child identity still rejects the root. General containment and structural-display/enum/module/ScopeKey parsing remain unchanged. 19 ObjectState checks passed in 0.07s; 67 PyQt checks passed in 2.10s. No new production type/cache/alias/codec/helper. Toad #670f76f4d55epins this exact source; 107-package offline lock check passes. Source-only checks, not a built/installed application. Claude review and UNKNOWN disposition remain required.Accepted leaf checkpoint
973aa098: all twelve matching leaf-name consumers across ObjectState/FormBridge now use existingDottedFieldPath.field_namedirectly. This includes the five reported sites and seven further edit/resolution/save/restore copies. Raw splits/branches and split-only temporaries are deleted; no helper, stored path copy or new class/cache. 113 ObjectState checks passed in 0.94s, plus 13 FormBridge checks in 0.08s, including inherited inspection and actual root/nested conversion/preview requests. Toad #6706c1748b31pins these heads; 107-package resolution and offline lock check pass. No paired app build or installed acceptance.Accepted parent checkpoint
061a5ed3:DottedFieldPath.parentowns immediate parenting andlineageowns nearest-first traversal. ParameterStructure lookup/ancestors, ObjectState indexing/container rebuild, FieldInspection, Toad settings and FormBridge preview formatting consume those operations. All duplicate parent splits/root branches and prefix loops are deleted; ScopeKey and static FieldPath stay separate. 36 ObjectState checks passed in 0.13s, plus 6 FormBridge preview checks in 0.02s. No new class/cache/wrapper.ParameterStructure.path,ancestorsandleaf_pathsreturn paths through the existing admitted topology. Static declaration binding, native form search/filtering and SavedSettings now use these operations instead of rebuilding a static declaration tree. No additional map, cache, wrapper or registry. Existing history/callable assertions were migrated without restoring removed aliases.The paired Toad #670
f76f4d55epins the latest source in both pyproject and lock. The full paired graph resolves, anduv lock --check --offlinepasses; focused parent/topology/restore behavior passed the checks above; complete native-family and installed acceptance remain unverified. Corrected full cohort source census against actual registry python-introspect 0.3.0: 999 modules, 5,166 original / 5,150 nominally projected classes, 16 OPEN, no parse errors. Earlier evidence used a python-introspect checkout still at 0.2.8; the dependency source input is now corrected. Runtime MRO/dynamic effects are not certified by AST.Expose the existing
ObjectState.parameter_structureobject as the form declaration/topology owner. Delete four forwarding property pairs and migrate every production reader/writer, including local transaction rollback and registry diagnostics. Remove thesignature_defaultforwarding API; its Toad consumer and the two PyQt inline reset consumers found in the wider pass (#33) read the recorded declaration, and existing package assertions migrate to the same owner. Root type lookup now identifies the extraction target rather than a delegated lifecycle wrapper.Native checkpoint search (ObjectState, FormBridge, Toad and Core candidate roots; the later wider pass found and migrated two additional PyQt readers):
rg -n '\._(parameter_structure|path_to_type|direct_parameter_paths|exclude_param_names|excluded_params)\b|\.signature_default\(' <roots>; before readers in ObjectState's object_state.py, transaction_checkpoint.py and object_state_registry.py, plus Toad DeclaredField; after zero replaced member readers. ParameterStructure remains the sole declarations/direct_paths/defaults owner, not a copied map or compatibility alias.Existing NRA source/class index: current ObjectState + FormBridge dependency roots 124 modules, 549 original classes, 549 projected, no parse omissions; original installed family context 680 modules, 2752 original classes, 2736 projected with 16 conditional/demo classes explicitly OPEN. Native binding, dynamic dispatch and behavior are not certified by that index.
Source syntax and diff whitespace checked. Focused package checks and actual saved settings/history/forms acceptance remain after the complete family implementation and one resolved current dependency graph. No installed pin changed. Source based on current main 093d82d, not a second backported API. Paired Toad/FormBridge drafts are required; Codex alone integrates/installs.