Conversation
…sery leak - remove transient_state from space manager and related APIs - keep TransactionContext as execution owner for commit inputs/state clear - refactor HolonServiceApi::commit_internal to take staged references - remove GuestHolonService internal nursery wiring and registration dependency - keep receptor commit-ingress guard as temporary bridge (Phase 2 will move to dispatcher) - add lightweight receptor routing classification tests - tighten internal access paths (service getters/private helpers) - document authoritative transaction lifecycle/operation matrix on assert_allowed
7 tasks
owleyeview
reviewed
Mar 4, 2026
owleyeview
reviewed
Mar 4, 2026
owleyeview
reviewed
Mar 4, 2026
shared_crates/holons_core/src/core_shared_objects/transactions/transaction_context.rs
Outdated
Show resolved
Hide resolved
owleyeview
reviewed
Mar 4, 2026
shared_crates/holons_core/src/core_shared_objects/transactions/transaction_context.rs
Outdated
Show resolved
Hide resolved
owleyeview
reviewed
Mar 4, 2026
shared_crates/holons_core/src/core_shared_objects/transactions/transaction_context.rs
Show resolved
Hide resolved
owleyeview
previously requested changes
Mar 4, 2026
Collaborator
owleyeview
left a comment
There was a problem hiding this comment.
Requesting some small changes and one slightly more significant change that's not directly related to the issue but should be addressed now.
Owner
Author
|
Implemented all review feedback and re-ran full validation. What was addressed
Architecture noteThe receptor precheck is intentionally a temporary correctness bridge in the current transitional
Validation
|
All requested changes have been resolved and validated. No need for another review.
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.
Summary
Post-merge follow-up for Phase 1.4 hardening (
Issue 414) to further tightenTransactionContextboundaries and reduce manager/internal leakage while preserving current runtime behavior.This PR focuses on:
TransactionContextTransactionContextWhat Changed
1) Removed
transient_stateplumbingHolonSpaceManagerno longer owns/exposestransient_state, andTransactionContext::get_transient_stateis removed.space_manager.rsspace_manager_behavior.rstransaction_context.rsget_space_holon().2) Commit inputs are now context-owned (guest-init boundary leak cleanup)
TransactionContext::commit()now owns commit input extraction and stage clear behavior:get_staged_references)commit_internal(...)CompleteThis removes the need for guest services to hold injected internal nursery access for commit orchestration.
3)
HolonServiceApi::commit_internalsignature hardenedChanged from nursery-internal access to explicit staged refs:
commit_internal(context, nursery_access_internal)commit_internal(context, staged_references: &[StagedReference])Updated all implementations/callers:
GuestHolonServiceClientHolonService4) Removed guest internal nursery wiring path
GuestHolonServiceno longer depends on internal nursery registration/getter path for commit execution.This reaps the boundary benefits of prior refactors: commit now receives required inputs from
TransactionContext.5) Receptor routing tests (lightweight)
Added routing-classifier tests only (no lifecycle/guard policy assertions):
This keeps receptor tests scoped to dispatch behavior.
6) Authoritative lifecycle/operation matrix docs
Added a single policy matrix directly above
TransactionContext::assert_allowed(...)documenting:Open,Committed)This is the canonical in-code policy reference.
Explicitly Deferred
Per discussion, the following are intentionally deferred:
core_runtimecrate-split prepTransitional Note (Phase 1.5 Bridge)
Receptor continues to acquire commit-ingress guard for commit-like host requests as a temporary bridge.
Policy/lifecycle invariants remain enforced in
TransactionContext.In Phase 2, ingress guard ownership is expected to move to CommandDispatcher.
Validation
Locally validated with targeted checks during refactor:
cargo checkforholons_corecargo checkforholons_guestcargo checkforholochain_receptorFull workflow (
build:happ,build:host,npm test) rerun requested before PR open.