2026-07-03 pre-merge audit of the #102→#107 stack confirmed 28 of 33 Codex inline findings + several workflow-review candidates. 22 were fixed on feat/system-prompt-elision before merge; these 6 are real but architectural/design-scoped — deferred with owners-of-record here.
Also noted (accepted behavior changes, no action): complete_openai_base_url now rewrites operator base URLs (escape hatch: trailing #); /resume fuzzy matching can resume instead of creating a fresh session when a fragment uniquely matches; legacy sessions.sqlite fallback removed from journal replay (documented in code).
2026-07-03 pre-merge audit of the #102→#107 stack confirmed 28 of 33 Codex inline findings + several workflow-review candidates. 22 were fixed on
feat/system-prompt-elisionbefore merge; these 6 are real but architectural/design-scoped — deferred with owners-of-record here.state.extras["mcp_tools_json"]+ synthesized registry entries snapshot once at boot;McpAdapter.enable_one/add_serverafter boot leaves advertised schemas stale until restart. Needs a refresh hook from the adapter into_wire_mcp_tool_plane./events/liveSSE side effects; opening/admin/subagentswith no active session stream never discovers inline children in grpc_agent mode. Needs an overview-owned journal tail or a process-wide observer._sessions_lib._replay_from_journalskips the whole in-progress turn (deliberate — 739f5eb dup-bubble fix) butresumeInFlightonly rebuilds the assistant bubble; the user's own prompt vanishes until the turn completes. Fix belongs in the frontend resume path (rehydrate the user bubble from turn user_text).canonicalize_tool_namefoldsblackboard.readand a distinctblackboard_readinto one canonical name with no collision detection — skill gates / subagent allowlists could over-permit. Needs an explicit collision policy (reject or alias)._register_tool_mediare-reads config from disk per tool result (workflow review, pre-existing on main):_resolve_public_base_url()re-reads the py-config drop + learned-origin file on every tool result whenCORLINMAN_PUBLIC_URLis unset. Cache with mtime invalidation.Also noted (accepted behavior changes, no action):
complete_openai_base_urlnow rewrites operator base URLs (escape hatch: trailing#);/resumefuzzy matching can resume instead of creating a fresh session when a fragment uniquely matches; legacysessions.sqlitefallback removed from journal replay (documented in code).