diff --git a/.agents/skills/missing_docs/references/feature_surface_map.md b/.agents/skills/missing_docs/references/feature_surface_map.md index fe23dd7df..1f012b017 100644 --- a/.agents/skills/missing_docs/references/feature_surface_map.md +++ b/.agents/skills/missing_docs/references/feature_surface_map.md @@ -379,6 +379,24 @@ GET /factory/scorers -> internal POST /factory/scorers -> internal GET /factory/scorers/{scorer_id}/results -> internal +# Orchestration messaging and lifecycle-event endpoints. These are marked +# `x-internal: true` in warp-server's canonical spec (public_api/openapi.yaml), +# so the publish filter deliberately strips them from the public docs copy. +# They back the agent-to-agent messaging tools and the documented +# `oz run message` CLI, but the REST surface itself is not part of the released +# public Oz Agent API. Revisit if warp-server drops the x-internal marker. +POST /agent/messages -> internal +GET /agent/messages/{run_id} -> internal +POST /agent/messages/{id}/read -> internal +POST /agent/messages/{id}/delivered -> internal +GET /agent/events -> internal +POST /agent/events/{run_id} -> internal + +# SSE lifecycle-event stream consumed by the Warp client and the Oz web app. +# Absent from warp-server's canonical public spec entirely, and registered only +# on the RTC host, so it is not a released public API operation. +GET /agent/events/stream -> internal + # Agent Memory REST API — research preview (gating flag AIMemories is non-GA), # deferred via `gated:` and auto-surfaces when AIMemories goes GA. See # "Public vs. private surfaces" in SKILL.md. diff --git a/.agents/skills/missing_docs/references/surface_snapshot.json b/.agents/skills/missing_docs/references/surface_snapshot.json index 0564a2627..94e978f80 100644 --- a/.agents/skills/missing_docs/references/surface_snapshot.json +++ b/.agents/skills/missing_docs/references/surface_snapshot.json @@ -127,7 +127,7 @@ "FullScreenZenMode": "ga", "FullSourceCodeEmbedding": "dogfood", "GPTConfigurableContextWindow": "dogfood", - "GeminiEnterprise": "dogfood", + "GeminiEnterprise": "ga", "GeminiNotifications": "dogfood", "GetStartedTab": "ga", "GitCredentialRefresh": "ga", @@ -917,20 +917,20 @@ "PUT /api/v1/memory_stores/{uid}/memories/{memoryUid}" ], "slash_commands": [ - "/add-api-key", "/add-mcp", "/add-prompt", "/add-rule", "/agent", + "/api-keys", "/auto-approve", "/changelog", "/clear", - "/clear-provider-api-key", "/cloud-agent", "/compact", "/compact-and", "/continue-locally", "/conversations", + "/copy-debugging-id", "/cost", "/create-environment", "/create-new-project", @@ -967,6 +967,7 @@ "/remote-control", "/rename-conversation", "/rename-tab", + "/reset-statusline", "/rewind", "/set-tab-color", "/skills", @@ -975,6 +976,7 @@ "/theme", "/usage", "/view-logs", + "/vim-mode", "/voice" ], "settings": { @@ -1000,6 +1002,7 @@ "agents.third_party.submit_on_ctrl_enter": "always_on", "agents.usage_display_mode": "always_on", "agents.voice.voice_input_enabled": "always_on", + "agents.voice.voice_input_hold_key": "always_on", "agents.voice.voice_input_language": "always_on", "agents.voice.voice_input_toggle_key": "always_on", "agents.warp_agent.active_ai.agent_mode_query_suggestions_enabled": "always_on", @@ -1019,6 +1022,7 @@ "agents.warp_agent.input.show_model_selectors_in_prompt": "always_on", "agents.warp_agent.is_any_ai_enabled": "always_on", "agents.warp_agent.other.agent_attribution_enabled": "always_on", + "agents.warp_agent.other.auto_approve_bypasses_command_denylist": "always_on", "agents.warp_agent.other.auto_handoff_on_sleep_enabled": "always_on", "agents.warp_agent.other.cloud_agent_computer_use_enabled": "always_on", "agents.warp_agent.other.default_prompt_submission_mode": "ga", @@ -1266,6 +1270,7 @@ "read_skill", "read_todos", "remove_todos", + "report_external_reference", "report_intent", "report_outcome", "report_pr", @@ -1311,5 +1316,5 @@ "verify-ui-change-in-cloud": "dogfood", "warpctrl": "bundled" }, - "changelog_last_version": "2026.07.23" + "changelog_last_version": "2026.07.31" } diff --git a/.agents/skills/missing_docs/scripts/audit_docs.py b/.agents/skills/missing_docs/scripts/audit_docs.py index 8afed9df8..16fa5b6cb 100755 --- a/.agents/skills/missing_docs/scripts/audit_docs.py +++ b/.agents/skills/missing_docs/scripts/audit_docs.py @@ -939,10 +939,17 @@ def _normalize_path_params(path: str) -> str: def parse_openapi_paths(openapi_text: str) -> set[str]: - """Extract normalized path keys from the OpenAPI YAML text.""" + """Extract normalized path keys from the OpenAPI YAML text. + + Path keys containing `{param}` are usually emitted quoted (YAML treats a + leading `{` as a flow mapping), so both ` /agent/runs:` and + ` '/agent/runs/{runId}':` must be recognized. Missing the quoted form made + every parameterized endpoint look absent from the spec. + """ paths = set() - for match in re.finditer(r"(?m)^\s{2}(/[^\s:]+):", openapi_text): - paths.add(_normalize_path_params(match.group(1))) + for match in re.finditer(r"""(?m)^\s{2}(?:'(/[^']+)'|"(/[^"]+)"|(/[^\s:'"]+)):""", openapi_text): + path = match.group(1) or match.group(2) or match.group(3) + paths.add(_normalize_path_params(path)) return paths # ---------------------------------------------------------------------------