Repository navigation
Present native forms from admitted ObjectState declarations - #13
Conversation
Unfinished source, not ready for integration or installation. Factory inheritance and frontend consumer migration are checkpointed. Nullable group editing and canonical topology transitions remain incomplete; Qt helper bodies still need to move into their behavior owners. Syntax and whitespace checked only; no behavioral tests, application or provider runs. Original refactor/native-formbridge branch is unchanged.
Removes public names (ParameterInfoBase, GenericInfo, create_parameter_info, EnumDispatchService, ParameterServiceABC, the converter's fourth argument), so this is a minor bump under 0.x. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
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
1a45b8e0: delete the converter's unusedobj_typeparameter and stale sibling-inheritance documentation (1+/2−). The prior recorded-declaration correction remains. The wider consumer search found two four-argument PyQt production calls and one test call outside the native Toad graph: PyQt #33 migrates them and the two remaining removed-signature-default API readers to recorded declarations, and aligns dependency ranges. All 24 known call sites now pass exactly three arguments (5 production; no alias/call-resolution proof claimed). 25 FormBridge checks passed in 0.17s; 30 PyQt checks passed in 1.20s. These are source/library checks using an isolated Python 3.12 environment borrowing existing Qt dependencies, not a resolved application build. Toad #670f76f4d55epins this exact FormBridge head (with ObjectState #6182a6213); 107-package resolution and offline lock check pass. No build, installation or app acceptance. Claude review and explicit UNKNOWN disposition remain required.Accepted leaf checkpoint
3478efcd: bridge conversion and PreviewFieldFormatRequest use existingDottedFieldPath.field_name; inspection and all matching ObjectState lifecycle consumers migrate in #61973aa098. All twelve copies are removed without a helper/stored path copy. 13 FormBridge checks passed in 0.08s; 113 ObjectState checks passed in 0.94s, including root/nested preview naming and actual string-to-int bridge conversion. Toad #6706c1748b31pins these exact heads; 107-package resolution and offline lock check pass. No paired app build or installed acceptance.Accepted parent checkpoint
360bc06a: preview grouping consumesDottedFieldPath.parent; the local_container_pathhelper/splitting/root branch is deleted. The owning ObjectState #61 source now shares parent and lineage behavior across all matching consumers. 6 preview checks passed in 0.02s, including actual ObjectState root/nested grouping, with 36 ObjectState checks passed in 0.13s. Static DSL and ScopeKey identities stay distinct.parameters_for_stateyields the original admittedDottedFieldPathalongside the existing parameter-kind information. Its native consumer passes that path into the existing bound field instead of rebuilding it throughgetattron the static DSL. No new carrier class, cache, registry or unchecked path constructor. The yielded information is not retained as model state.The paired Toad #670
f76f4d55epins the latest source in both pyproject and lock, with ObjectState #61 and paired Textual #134/#135. Resolution anduv lock --check --offlinepass; no new candidate build, native constructor/MRO or saved-app acceptance has run. 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; that dependency source input is corrected. Runtime dispatch/effects are not certified by AST.ParameterFormService.parameters_for_stateconsumes ObjectState's admitted direct-child topology and declarations. Existing FormBridge visibility and field-kind selection remain the UI owner; no second recursive form tree is extracted or retained for this native boundary. Type selection unwraps Annotated once while preserving the original metadata on the declaration.Delete
_nested_param_info_cache: SignatureAnalyzer already owns declaration caching/lazy help. Existing nested extraction reads its admitted ParameterInfo records rather than rawdataclasses.Field.type(which can still be a forward string); delete the obsolete_get_field_valuewrapper. No frontend-specific switch or new field registry.Owner/consumer search:
rg -n 'parameters_for_state|_nested_param_info_cache|_get_field_value|create_parameter_info|extract_nested_parameters' src <Toad root> <OpenHCS root>. The removed cache/helper have zero remaining production readers; all field-kind creation remains in the existing factory. Original package consumers of extract_nested_parameters are within this service.Existing NRA source/class index: current ObjectState + FormBridge roots 124 modules/549 original and projected classes, zero parse omissions. This is source evidence, not a runtime equivalence proof. Syntax/diff whitespace checked; final package checks and actual settings/sort/provider-model/history journey remain after the complete native family. Based on current main 8cc5632 and its declared ObjectState4.0.1/python-introspect0.3/zmqruntime0.6.5 cohort; installed pins unchanged. Paired ObjectState/Toad drafts required. Codex integrates/installs.