Skip to content

Resolve saved declarations without initializing editing states - #19

Merged
trissim merged 2 commits into
mainfrom
fix/headless-saved-resolution-20261004
Oct 4, 2026
Merged

trissim merged 2 commits into
mainfrom
fix/headless-saved-resolution-20261004

Conversation

@trissim

@trissim trissim commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

Headless compilation currently creates temporary editing states to obtain saved declarations and provenance. Those states compute LIVE and SAVED views, initialize dirty tracking and enter registration/history lifecycle even though compilation only needs a saved capture.

Add ObjectState.resolve_saved_object(...) on the existing owner. Editing states and the new operation share field extraction, scoped dual-axis resolution and nominal reconstruction. The headless operation receives explicit saved ancestors and returns the concrete declaration plus same-epoch provenance. It detaches mutable resolved values as one graph while preserving callable identities and shared aliases. Live editors retain their existing saved/live and ancestry behavior. Remove the unused separate live reconstruction implementation.

Validation: 25 focused controls passed, covering existing restore/update/callable baselines and new saved-vs-live scope, ancestor currentness, MRO precedence, nominal subtype, ordinary None, default-factory/constructor effects, delegate admission and detached inherited aliases. Six substantive OpenHCS compiler consumer controls passed against this isolated source, including inherited/explicit well-filter provenance, source isolation, UI saved/live distinction, no temporary registrations and captured declaration completeness. Public saved-request compilation remains pending dependency integration. No benchmark or latency improvement is claimed; the observed 0.295 s constructor envelope is only an upper bound.

Expose this new API in ObjectState 1.2.0 so production consumers can require its actual supported version.

Closes #18.

Refs OpenHCSDev/openhcs#384 and OpenHCSDev/openhcs#596. Immediate consumer: OpenHCS PR 597, replacing temporary editor registration in PipelineCompiler / ResolvedPipelineDefinition with the admitted saved declaration and its scope/provenance facts.

Share ObjectState extraction, scoped resolution and reconstruction with a one-shot headless API. Capture mutable resolved values independently while preserving callable identities and graph aliases.

Fixes #18
@trissim
trissim marked this pull request as ready for review October 4, 2026 09:10
Copilot AI balanced review requested due to automatic review settings October 4, 2026 09:10

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@trissim
trissim merged commit ffb8b51 into main Oct 4, 2026
10 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Expose saved declaration resolution without constructing editing states

2 participants