diff --git a/.agents/skills/missing_docs/references/changelog_decisions.md b/.agents/skills/missing_docs/references/changelog_decisions.md index d9d0ec5d..5a73f2e0 100644 --- a/.agents/skills/missing_docs/references/changelog_decisions.md +++ b/.agents/skills/missing_docs/references/changelog_decisions.md @@ -32,6 +32,12 @@ Newest first. One row per PR number — usually a `warpdotdev/warp` changelog it | PR | Decided | Verdict | Gate / disqualifier | Reason and outcome | |---|---|---|---|---| +| GET /networking/egress-ranges | 2026-09-14 | deferred | Gate 0 | Returns the canonical outbound IP ranges for Warp-hosted agents, scoped to the authenticated principal's active team (`RegisterNetworkingRoutes` / `EgressRangesHandler`, `router/handlers/public_api/networking.go:17-77`, behind `middleware.EnforceAuth()`). The only new surface this run — it is both the sole `undocumented_api_endpoints` finding and the sole `surface_changes` entry. Gate 0 fails twice over in warp-server's canonical `public_api/openapi.yaml`: the `networking` tag carries `x-internal: true` and so does the `getEgressRanges` operation, and `sync_openapi.py` drops `x-internal` operations wholesale, so the route cannot reach `developers/agent-api-openapi.yaml` while the markers stand (that file has zero `networking` paths and zero `x-internal` entries today). It backs the Admin Panel's hosted-agent egress CIDR list (`client/src/components/admin/team/platform/HostedAgentEgressCIDRs.tsx`), not the released public Agent API. Not a content gap either: the ranges themselves are already published on `platform/warp-hosting.mdx` under "Networking". Mapped `-> internal`. Re-check if the `x-internal` markers come off, and route it through sync-openapi-spec rather than hand-drafting. | +| n/a (hardcoded egress CIDR list on platform/warp-hosting.mdx) | 2026-09-14 | no | Not a docs gap / noted for the owner | Surfaced while triaging the route above, recorded so it is not silently dropped. `platform/warp-hosting.mdx` publishes the hosted-agent egress ranges as a hardcoded bullet list, and warp-server now computes the same set server-side (`logic/ai/ambient_agents/networking/egress_ranges.go`). The page can therefore drift from the canonical source with nothing to catch it. No docs change is available: the endpoint is `x-internal`, so the page cannot point readers at it, and the current list is not known to be wrong. Flagging the durability question for the docs owner rather than editing correct content. | +| n/a (24 potentially_stale_docs, 2026-09-14 run) | 2026-09-14 | no | Already decided (2026-09-11) / owned by style_lint | Identical file set and term set to the 2026-09-11 row; re-verified rather than carried forward. 13 files are the `ai credits` bucket-name false positive (still the unresolved style-policy question in the Notes below — deliberately left for a human owner, so `stale_terms.md` was not narrowed unattended). All 13 `warp terminal` hits are the distinguishing usage the rule's own reason exempts: client vs. backend in `enterprise/`, the product-list entry in `enterprise/index.mdx`, and local terminal vs. cloud harness across `platform/harnesses/` and `guides/`. `warp ai` is the historical FAQ heading "What happened to the old Warp AI chat panel?" (`agents/getting-started/faqs.mdx:18`). `generate command` matches the live headings on `agents/local-agents/generate.mdx`, a page titled "Generate (Legacy)". `ai command` matches AI Command Search (`terminal/entry/index.mdx:11`). No missing content. | +| n/a (82 --weak-coverage feature findings, 2026-09-14 run) | 2026-09-14 | no | Disqualified: not a docs gap / heuristic false positive | Ran `--weak-coverage` for exhaustiveness. 82, up one from the 81 on 2026-09-09, entirely because `ShellWidgetHandoff` moved off the ignore list onto `command-search.mdx` on 2026-09-11 and so re-entered the mapped pool the check scores. Every hit is a mapped page that lacks a phrase derived from an internal CamelCase flag name. Spot-verified four this run: `GroupedTabs` → `terminal/windows/tabs.mdx` has a full "## Tab groups" section; `CloudRunners` → `platform/runners.mdx` documents runner CRUD end to end; `BundledSkills` → covered by "## Pre-built skills" on `agents/capabilities/skills.mdx` plus the `~/.warp/skills/` paths on `terminal/settings/file-locations.mdx`; `AskUserQuestion` → `agents/local-agents/interacting-with-agents/agent-questions.mdx` plus the `ask_user_question` profile key. Keyword artifacts, which is why the flag is off by default. | +| n/a (zero findings in seven categories, 2026-09-14) | 2026-09-14 | n/a | Not a verdict | Recording the clean categories so a later run can tell "checked and empty" from "not checked": `undocumented_features`, `undocumented_cli_commands`, `undocumented_slash_commands`, `undocumented_settings`, `stale_doc_references`, `unlisted_pages`, and `map_hygiene` all returned zero. Both audit modes exited 0 with `audits_skipped: null`, and the completeness accounting reported an empty `unaccounted` bucket across 296 flags, 91 CLI commands, 220 API routes, 65 slash commands, and 232 settings. | +| n/a (release gate no-op, 2026-09-14) | 2026-09-14 | n/a | Not a verdict | `check_new_release.py` exited 10: current stable is still `v0.2026.09.09.08.26.stable_02`, already recorded in `last_release_processed.json` by bookkeeping PR #736 (merged 2026-09-13). No new changelog entries and no new `oz_updates` bullets, which is why `changelog_review` is empty. `last_release_processed.json` deliberately left unchanged, and `check_new_release.py --commit` was not run. The rest of the run is the exhaustive standing-coverage and snapshot-diff sweep requested on top of the gate. | | GET /factory/{uid}/setup-progress, POST /factory/{uid}/setup-progress/dismiss | 2026-09-12 | deferred | Gate 0 | Both marked `x-internal: true` in warp-server `public_api/openapi.yaml` (`getFactorySetupProgress`, dismiss counterpart) inside the unreleased `/factory` namespace. Released `developers/agent-api-openapi.yaml` has zero `/factory` paths. Missed in the 2026-09-11 map pass that covered sibling factory routes; mapped both `-> internal` on this bookkeeping extension. Re-check when the factory API is published. | | appearance.window.backdrop (map residual) | 2026-09-12 | yes | Gate 1 (map only) | Setting already verdicted yes on 2026-09-11 with feature PR docs#733, but the surface-map entry was never added so coverage kept flagging it. Mapped `appearance.window.backdrop -> terminal/settings/all-settings.mdx` on this extension. | | n/a (third residual sweep of v0.2026.09.09.08.26.stable_02, 2026-09-12) | 2026-09-12 | n/a | Not a verdict | Drift-watch re-entry after the release gate on `main` still reported this stable as new (bookkeeping PR #736 unmerged). Checked out and extended #736 rather than opening a second bookkeeping PR. Independently re-verified Gate 0 for the two remaining unmapped factory routes above; re-confirmed #15913 docker-registry flags still deferred (Gate 0, not in any stable); re-confirmed the 15 changelog/`oz_updates` bullets and three flag promotions already carry ledger verdicts; `potentially_stale_docs` (24) still style_lint-owned. Feature PRs docs#733, docs#734, docs#735 remain open with reviewer `dannyneira`. Regenerated `surface_snapshot.json` so setup-progress leaves the `--diff` added bucket; #15913 flags enter the baseline and rely on the deferred ledger row plus the next stable changelog for re-surface. No new feature PR. | diff --git a/.agents/skills/missing_docs/references/feature_surface_map.md b/.agents/skills/missing_docs/references/feature_surface_map.md index 837030f4..8cb974a0 100644 --- a/.agents/skills/missing_docs/references/feature_surface_map.md +++ b/.agents/skills/missing_docs/references/feature_surface_map.md @@ -626,6 +626,18 @@ POST /agent/events/{run_id} -> internal # on the RTC host, so it is not a released public API operation. GET /agent/events/stream -> internal +# Canonical outbound IP ranges for Warp-hosted agents, scoped to the +# authenticated principal's active team (RegisterNetworkingRoutes / +# EgressRangesHandler, router/handlers/public_api/networking.go). Both the +# `networking` tag and the getEgressRanges operation are marked +# `x-internal: true` in warp-server's canonical spec, so the publish filter +# strips the route from the docs OpenAPI copy; it backs the Admin Panel's +# hosted-agent egress CIDR list rather than the released public Agent API. Not +# a docs gap either: the ranges themselves are already published on +# src/content/docs/platform/warp-hosting.mdx under "Networking". Revisit and +# route through sync-openapi-spec if the x-internal marker comes off. +GET /networking/egress-ranges -> 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 91acabfb..79266fc9 100644 --- a/.agents/skills/missing_docs/references/surface_snapshot.json +++ b/.agents/skills/missing_docs/references/surface_snapshot.json @@ -949,6 +949,7 @@ "GET /api/v1/memory_stores/{uid}/memories", "GET /api/v1/memory_stores/{uid}/memories/{memoryUid}", "GET /api/v1/memory_stores/{uid}/memories/{memoryUid}/versions", + "GET /api/v1/networking/egress-ranges", "GET /api/v1/oauth/authorize", "GET /api/v1/oauth/consent/info", "GET /api/v1/oauth/grants",