app-server: add app/installed runtime snapshot API#31487
Draft
mzeng-openai wants to merge 1 commit into
Draft
Conversation
59a9dac to
4f515b5
Compare
123c5f2 to
353b3b7
Compare
353b3b7 to
16f827c
Compare
4f515b5 to
7a93f9a
Compare
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
app/installedAPI backed by the committed connector runtime snapshotapp/listbehavior unchanged and add the M4 installed-read telemetry seamThis is PR 4 of the connector runtime-state stack and is based on #31476.
Public contract
reloadis required.reload: falseperforms a committed-snapshot/cache-only read.reload: truerefreshes workspace policy and, when Apps are permitted, performs exactly one uncached hosted-connector refresh under the shared lock before returning the committed result.The response deliberately omits
Tool[]and all canonical connector metadata. IDs are sorted, deduplicated, non-empty connector IDs derived from non-synthetic/ps/mcp tools/listmetadata. Consequently, zero-tool connectors are absent. This deliberately narrows the RFC draft and does not consume_meta.installedApps.Canonical names, descriptions, branding, labels, and install URLs remain an M3
app/read/ConnectorMetadataStoredependency once that lands. Tool-level connector names and descriptions remain compact runtime/search metadata only.Behavior and ownership
ConnectorRuntimeManagerremains the owner of persisted/committed raw runtime snapshots and adds a non-activating peek used only for failure telemetry.McpConnectionManagerremains the owner of generic MCP filtering and publication; the read-time callable projection reuses its effective MCP tool-filter semantics.apps_runtime_state_refactor; legacyapp/listremains available with its existing response andforceRefetchbehavior.Telemetry
The strict refresh trigger/outcome metrics are emitted by the preceding refresh-manager PR. This does not duplicate turn-start availability analytics.
Testing
just test -p codex-app-server-protocol(253 passed)just test -p codex-mcp(118 passed)just test -p codex-app-server app_installed(10 passed)just test -p codex-core callable_app_ids_apply_effective_mcp_tool_filterjust fixforcodex-mcp,codex-core,codex-app-server-protocol,codex-chatgpt, andcodex-app-serverjust fmtCoverage includes feature gating, reload false/true, empty and zero-tool results, synthetic identities, MCP/app policy, thread config, concurrent serialization, failure retention, context changes, atomic publication, and legacy
app/listcompatibility.