You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
no MCP/project settings, kernel host-request, launchEnv/lifecycle recovery, probe, or saved-sibling follow-up
Note
High Risk
Changes authentication-adjacent agent family reach, cross-worker messaging, and catalog I/O; ambiguous or hostile topology now hard-denies ACL surfaces that previously might have succeeded.
Overview
Replaces ad-hoc sibling/parent inference with a managed family catalog built from saved sessions, RLM registries, and live workers. The catalog process gains family / listCatalogFamilySessions, openat-based trusted reads, and strict topology checks (depth, cycles, duplicates, symlinks); siblings are derived from that graph instead of loose registry scans.
agent-messages now resolves siblings only when the catalog yields a single unambiguous parent; contradictory id/path parent claims are rejected. Name reservation can still use direct parent claims when a passive child outlives its parent row, without widening family reach.
Daemon and supervisor build agentFamilyCatalogEntries / familyCatalogEntries by merging persisted, artifact, passive, resident, and remote rows (duplicate or conflicting topology fails closed). Agent-origin send, observe, roster, and wake authorize against one captured snapshot; post-wake session substitution is rejected. CLI sends stay deliverable with advisory relationship labels when the catalog is ambiguous or unavailable.
rename_saved_session bumps to schema revision 17 with optional sessionDir so inactive renames and name checks use the correct catalog root. readSessionInfoFromBuffer lets catalog parsing reuse bound file bytes without reopening paths.
Reviewed by Cursor Bugbot for commit 8a3c33f. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Reconstruct managed session catalog with authoritative topology snapshots for daemon ACL enforcement
Introduces listCatalogFamilySessions in daemon-catalog-process.ts, which traverses the session family graph securely using O_NOFOLLOW directory handles and a Python descriptor-relative file reader to mitigate TOCTOU races and path traversal attacks.
Adds agentFamilyCatalogEntries to daemon-mode.ts, merging saved, passive, resident, and remote session sources into a single immutable authorization snapshot; agent-origin message delivery is now gated against this snapshot rather than mutable live state.
Updates sameAgentFamilyParent and isAgentFamilyParent in agent-messages.ts to require catalog-resolved, unambiguous single parents for sibling classification; direct identifier equality without catalog resolution no longer qualifies.
Extends daemon-supervisor.ts with familyCatalogEntries and authoritativeFamilyCatalogEntry to scope rename, name-availability, and send-message authorization to a specific sessionDir; conflicting persisted vs. live topology now fails closed.
Bumps daemon schema to revision 17 and adds optional sessionDir to the rename_saved_session command, requiring protocol>=7 and schemaRevision>=17.
Risk: listSavedSessionSiblings now throws if the target session is absent from the authoritative family traversal, and malformed remote peer topology raises AGENT_FAMILY_REACH_ERROR instead of being silently coerced.
Follow-up fix in 8a3c33f9ded05383424baafc415cf1623a9f7da2: during independent review of the CLI sibling-label fix, we found that malformed endpoint catalog authority or catalog acquisition failure could incorrectly block an otherwise valid CLI delivery. CLI topology is now best-effort label metadata: acquisition failures emit a scoped diagnostic, and family-authority ambiguity omits the relationship label. Agent-origin acquisition and reachability authorization remain fail-closed and unchanged.
Superseded by #1333 as part of the physical Core/MCP stack split. The replacement preserves this PR’s reviewed semantic delta on the corrected shared #1243 foundation. Closing this PR to avoid duplicate review; branch retained for provenance.
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
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
Stack
core02-host-request-dispatcher)Validation
Exclusions
Note
High Risk
Changes authentication-adjacent agent family reach, cross-worker messaging, and catalog I/O; ambiguous or hostile topology now hard-denies ACL surfaces that previously might have succeeded.
Overview
Replaces ad-hoc sibling/parent inference with a managed family catalog built from saved sessions, RLM registries, and live workers. The catalog process gains
family/listCatalogFamilySessions, openat-based trusted reads, and strict topology checks (depth, cycles, duplicates, symlinks); siblings are derived from that graph instead of loose registry scans.agent-messagesnow resolves siblings only when the catalog yields a single unambiguous parent; contradictory id/path parent claims are rejected. Name reservation can still use direct parent claims when a passive child outlives its parent row, without widening family reach.Daemon and supervisor build
agentFamilyCatalogEntries/familyCatalogEntriesby merging persisted, artifact, passive, resident, and remote rows (duplicate or conflicting topology fails closed). Agent-origin send, observe, roster, and wake authorize against one captured snapshot; post-wake session substitution is rejected. CLI sends stay deliverable with advisory relationship labels when the catalog is ambiguous or unavailable.rename_saved_sessionbumps to schema revision 17 with optionalsessionDirso inactive renames and name checks use the correct catalog root.readSessionInfoFromBufferlets catalog parsing reuse bound file bytes without reopening paths.Reviewed by Cursor Bugbot for commit 8a3c33f. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Reconstruct managed session catalog with authoritative topology snapshots for daemon ACL enforcement
listCatalogFamilySessionsindaemon-catalog-process.ts, which traverses the session family graph securely using O_NOFOLLOW directory handles and a Python descriptor-relative file reader to mitigate TOCTOU races and path traversal attacks.agentFamilyCatalogEntriestodaemon-mode.ts, merging saved, passive, resident, and remote session sources into a single immutable authorization snapshot; agent-origin message delivery is now gated against this snapshot rather than mutable live state.sameAgentFamilyParentandisAgentFamilyParentinagent-messages.tsto require catalog-resolved, unambiguous single parents for sibling classification; direct identifier equality without catalog resolution no longer qualifies.daemon-supervisor.tswithfamilyCatalogEntriesandauthoritativeFamilyCatalogEntryto scope rename, name-availability, and send-message authorization to a specificsessionDir; conflicting persisted vs. live topology now fails closed.sessionDirto therename_saved_sessioncommand, requiring protocol>=7 and schemaRevision>=17.listSavedSessionSiblingsnow throws if the target session is absent from the authoritative family traversal, and malformed remote peer topology raisesAGENT_FAMILY_REACH_ERRORinstead of being silently coerced.Macroscope summarized 8a3c33f.