Resolve saved values from canonical parameter declarations - #22
Merged
trissim merged 1 commit intoOct 5, 2026
Merged
Conversation
Retain original ParameterInfo declarations in ParameterStructure; derive editor snapshots on demand and read reset/default facts directly. Remove SimpleNamespace copies and unused forwarding properties without changing saved resolution or reconstruction. Fixes #21
This was referenced Oct 5, 2026
Closed
trissim
marked this pull request as ready for review
October 5, 2026 16:47
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Saved resolution copied analyzer declarations into a second metadata representation and built editor reset/help dictionaries during headless admission. ParameterStructure now retains the canonical ParameterInfo declarations, deriving default/help views only for real editor consumers. ObjectState resolves saved values through that same owner without the SimpleNamespace mirror or redundant whole-map materialization in per-field loops.
Requires python-introspect>=0.2.0,<0.3 and declares ObjectState1.3.0. Public value/factory/type-resolution/cache epochs and live ancestor resolution are preserved; help presentation is demanded by editor consumers. Existing saved/editor/reset/history/factory controls and authentic typed values, callable identities and provenance associations pass. Installed PyQtReactive consumers retain supported declaration and mapping-view APIs. The upstream CI jobs currently fail at dependency installation because PythonIntrospect0.2.0 is not yet published; they have not established an ObjectState runtime failure. PythonIntrospect's unrelated existing Python3.10 decoder defect is documented on PI12; ObjectState requires Python>=3.11.
Current production qualification (2026-10-05): OpenHCS integration92c22 used the exact private PythonIntrospect0.2.0/ObjectState1.3.0 wheels, normal public RegistryService READY before clocks, and default internal runtime profiling OFF. One Illum3 observation measured compile206.535ms, execution264.932ms, total565.896ms. Both older retained native output sets passed the full nonempty-image/inventory/source-association comparison under the existing1e-6 policy (maximum pixel difference2.98e-8). Source/input/helper/eight-dependency/four-native-ABI guards passed; owned processes terminated.
This is an absolute candidate observation, not a controlled ON→OFF or individual-patch gain. Older unpaired native full-invocation mean695.522ms gives1.229×total; the2×total target remains218.135ms away. Native module mean626.957ms is a different clock. Evidence:
/home/ts/.local/state/openhcs-maintenance/20261005/parameter-owner-illum3-default-ordinary-v1/receiving-summary.json; durable OpenHCS receipt:benchmark/results/perf_parameter_declaration_first_job_20261005/ordinary-observer-off.json.Earlier evidence is retained with its limits: authentic first-job PipelineConfig+10-step saved admission129.320→82.766ms (46.555ms reduction, mainly PipelineConfig); already-warm second-case3D231.263→235.966ms showed no gain. The earlier standalone261ms3D replay is not a whole-compiler gain. Failed helper attempts and the prior negative warmed ordinary observation remain archived; no repeat timing was used to rescue them.
Release state: PI12 merged43cdbf3 and this PR merged7db1519; both trees are identical to the qualified private-wheel source. Root pushed annotatedv0.2.0/v1.3.0 and tracks their supported publishers. PythonIntrospect publication availability must precede ObjectState consumer installation/CI. Shared installation and OH727 merge remain pending. The separate preexisting decoder follow-up is PI13.
Closes #21