Repository navigation
extdeps scope: retire 2 frontier rows (batch 6, after review pullback) - #13304
Conversation
… (batch 6, production-dispatch pre-check)
briansrls
left a comment
There was a problem hiding this comment.
Four rows need to return to the frontier, and the other three need citation/readings corrected before approval.
The mechanical reconciliation is exact: seven carrier additions equal the seven TSV removals, and floor/generated/emit-build/witnesses are green at this head. The blockers are the semantic source-to-subject pairings.
PULL 1 — docker/container_stats.dag::docker.ContainerStats.
The Engine API reference owns /containers/{id}/stats, but this service is not the exact upstream surface currently claimed. Its response model adds repository-authored CpuStats.cpu_percent, which is not a v1.47 response field, and reshapes the upstream networks object-map into a local Networks { interfaces: [...] } vocabulary. More importantly for this PR's stated production-dispatch pre-check, repository search finds no production call of docker.ContainerStats.GetStats: only the declaration, frontier machinery and a supplied-value witness. The reading's “dispatched client” claim is false. Return it until an actual route consumes it and the upstream response/projection boundary is explicit.
PULL 2 — docker/container_inspect.dag::HostConfig.
This type is production-consumed, but it is not an exact transcription of Docker's HostConfig surface. It includes exposed_ports and volumes, which Docker v1.47 places on ContainerConfig, not HostConfig. The module itself then describes these as HostConfig anemic leaves. Scoping this declaration would attest a locally mixed object as Docker's HostConfig. Return it until the two misplaced fields are corrected or the subject is narrowed to an exact upstream-owned projection.
PULL 3 — sec/edgar_rest.dag::sec.Edgar.
The SEC page owns the companyfacts and companyconcept endpoints, but the production-dispatch claim is not true. sec.Edgar.GetCompanyFacts and .GetCompanyConcept occur only in the service declaration, mock corpus and mock-totality test; the repository's own unconsumed-module census lists extdeps.sec.edgar_rest as unconsumed. The reading also describes only GetCompanyFacts while the scoped subject is the whole two-operation service. Return it until a production route actually calls the service (and then describe both operations or scope at the operation grain if supported).
PULL 4 — sec/edgar.dag::CompanyFactsResponse.
The cited SEC page documents the companyfacts endpoint and says it returns all company concepts, but it does not specify the exact cik / entityName / nested facts JSON schema this type claims; entityName does not occur on the cited page. The type is presently consumed only as the response of the uncalled service above. An actual companyfacts response/schema citation could ground this later, but the current anchor does not own this exact surface.
KEEP AFTER CITATION/READING REPAIR — docker/endpoint.dag::docker_default_endpoint.
The datum itself is legitimate, but Engine API v1.47 is the wrong authority for client daemon selection. Docker's CLI reference is the page that states unix:///var/run/docker.sock as the macOS/Linux default and documents DOCKER_HOST. Re-anchor to that page and narrow the reading to the scoped datum (the override is a sibling declaration, not part of docker_default_endpoint).
KEEP AFTER CITATION REPAIR — ebay/errors.dag::EbayError.
This is genuinely production-dispatched through Inventory/Browse response arms and is an upstream error shape. However, the current generic-guide anchor spells the field subDomain, while the declaration spells subdomain. API-specific ErrorDetailV3 references use lowercase subdomain and otherwise match these fields. Point the scope at the exact ErrorDetailV3 authority used by the dispatched APIs (or add the appropriate API-specific further citations); the current page does not attest the exact wire spelling.
KEEP AFTER CITATION REPAIR — cloud/gcp/iam.dag::GcpBinding.
The declaration is real and production-dispatched. The IAM overview owns the concept of a conditional role binding but not the exact REST object. Google's Policy#Binding reference is the exact authority for { role, members[], condition }; use it as the primary citation (the overview may remain a further citation).
After those changes, the honest batch is three rows, frontier 358 -> 355. No other blocker found.
…licy#Binding primary), 5 rows returned to frontier Per review 5406002589 on #13304: pull docker/container_stats, docker/container_inspect, sec/edgar_rest, sec/edgar (byte-identical to main). Pull ebay/errors with a documented finding: the only fetchable API-specific ErrorDetailV3 page (sell/inventory) spells the field subDomain, contradicting the declaration's subdomain; the generic guide and other API pages are bot-blocked, so no live page attests the exact spelling. Keep docker/endpoint re-anchored to the CLI reference (docs.docker.com/reference/cli/docker/) with the reading narrowed to the default endpoint datum; keep cloud/gcp/iam with Policy#Binding as the primary citation and the overview demoted to further citation. Frontier 358 -> 356.
briansrls
left a comment
There was a problem hiding this comment.
One small mechanical blocker remains; the two retained semantic pairings now pass.
docker/endpoint.dag::docker_default_endpoint is correctly re-anchored to Docker's CLI reference. That page explicitly names unix:///var/run/docker.sock as the macOS/Linux default when no -H or custom context is selected. The reading is now scoped to the datum, with DOCKER_HOST correctly described as a sibling.
cloud/gcp/iam.dag::GcpBinding is correctly anchored to the REST Policy#Binding object. The primary authority defines exactly the top-level role, members[], and optional condition fields; the overview is appropriately only a further citation. The type is consumed by the live IAM policy routes.
The five pulled modules are no longer changed files, so their source files are restored to main.
However, legacy_extdeps_scope_frontier.tsv does not restore their rows in place. The final PR diff deletes these five rows from their original locations and ADDS them at EOF:
dag/extdeps/docker/container_stats.dagdag/extdeps/docker/container_inspect.dagdag/extdeps/sec/edgar_rest.dagdag/extdeps/sec/edgar.dagdag/extdeps/ebay/errors.dag
That violates this manifest's explicit remove-only lifecycle. manifest_line_observation classifies any added non-introduction row as ManifestLinesAdded; a migration may delete rows, but may not add/re-add them. It also makes the claim that the diff is only two manifest removals false: the current patch is seven deletions plus five additions.
Please restore those five rows at their exact main positions, leaving the manifest diff as only the two intended deletions (docker/endpoint.dag and cloud/gcp/iam.dag). Then the honest final shape is two scoped modules, two carrier additions, and two pure manifest deletions, frontier 358 -> 356.
The exact-head four-job workflow is green, but that does not make the visible added-line diff admissible; it may indicate the remove-only gate did not consume this particular move-shaped patch. No other blocker at this head.
… in place Review 5409444888 blocker: the previous tsv edit deleted the five pulled rows from their original positions and re-added them at EOF, making the patch 7 deletions + 5 additions against a remove-only manifest. Rebuilt from main's tsv with only the two keeper lines removed, so the diff vs main is exactly two in-place deletions.
briansrls
left a comment
There was a problem hiding this comment.
Approved at 04e5db6.
The sole blocker from review 5409444888 is fixed. The final PR has exactly four changed files: the two previously accepted scoped modules, the carrier roster, and the legacy manifest. The manifest diff is now remove-only and consists exactly of the two in-place deletions for dag/extdeps/cloud/gcp/iam.dag and dag/extdeps/docker/endpoint.dag; there are no added lines or EOF re-additions.
The repair commit changes only legacy_extdeps_scope_frontier.tsv and restores the five pulled rows to their main positions. The Docker default-endpoint and GCP Policy#Binding scope edits are unchanged from the previously accepted shape, and the carrier additions reconcile one-for-one with the two manifest removals.
No remaining semantic or mechanical blocker. The exact-head workflow is currently queued; queueing only after it turns green is the correct final condition.
… sample scoping Review fixes: (1) remove the false manager attribution and restate case 1 / point 4 per DESIGN 3c — an unconsumed (a) row is a delete-or-name-a-consumer decision, never a scope; case 12's recommendation updated to match. (2) all consumption claims labeled grep-grade, none identity-verified, with case 11 named as the proof of the grade's hole; (3) the (b)-is-empty claim scoped to the twelve-row sample, no frontier prediction; (4) case 12 updated for the merged #13304; (5) external_authority.rs cited by function symbol (external_authority_is_clean_tree_roster_excluded_for_module_path, line 211); (6) case 3 rephrased as the per-row rule, not a batch template; (7) case 10's SemVer-transcription claim marked unverified field-for-field.
extdeps scope: retire 2 frontier rows under real upstream authorities (batch 6, after review pullback)
Frontier: 382 baseline − 10 (#12967) − 6 (#13110) − 3 (#13189) − 5 (#13258) − 2 (this PR) = 356 rows (
dag/gunbc/legacy_extdeps_scope_frontier.tsv).This is PR #13304 as filed (7 rows) after review 5406002589: four rows pulled byte-identical to main as the review specifies, a fifth pulled with a documented finding (below), and the two keepers repaired per the review.
Rows retired (2)
docker/endpoint.dagdata docker_default_endpointunix:///var/run/docker.sockfor macOS/Linux. The datum is that documented default, so it is the surface this citation owns. TheDOCKER_HOSToverride is a sibling datum (docker_host_env_var), not part of this one. Re-anchored per the review: the Engine API page describes the API's behavior, not the CLI's daemon selection.cloud/gcp/iam.dagtype GcpBindingGcpBinding(role, members, condition) transcribes that object field-for-field and is dispatched by the iam_admin route. Primary citation re-pointed from the IAM overview (kept as further citation) per the review: the overview frames bindings but is not the authority that defines the object.Citation liveness: both pages verified live (HTTP 200; the CLI reference page contains the literal
unix:///var/run/docker.sock; the Policy page's #Binding section defines role/members/condition).Rows returned to the frontier (5, byte-identical to main)
docker/container_stats.dagservice docker.ContainerStatshas no production caller; the module also adds a repo-authoredcpu_percentand reshapesnetworks, so it is not a field-for-field transcription of the Engine API payload.docker/container_inspect.dagHostConfigincludesexposed_ports/volumes, which Docker puts onContainerConfig, so the type is not the exact inspect-response surface the cited page defines.sec/edgar_rest.dagsec/edgar.dagCompanyFactsResponseJSON schema (entityNameis not on it), so there is no upstream source attesting that exact shape.ebay/errors.dagFinding on ebay/errors — flagging rather than guessing
The review grounds the pull in "the generic guide is not API-specific, and the API-specific ErrorDetailV3 references spell the field lowercase (
subdomain)" while the declaration spellssubdomaintoo — implying an API-specific page would attest it. What this session can actually fetch:ErrorDetailV3pages (sell/fulfillment, commerce/identity, buy/browse) are 403/JS-shell-blocked for plain fetches."subDomain", which contradicts the declaration'ssubdomainand the review's premise.So pointing the scope at any fetchable eBay authority would pair the declaration with a citation that attests a different field spelling, and adding that citation as a "repair" would write an unverified reading — the exact failure this PR series keeps getting corrected for.
EbayErroris returned to the frontier unchanged; before it can be scoped, someone with a rendering fetch (or eBay's OpenAPI spec) needs to establish which spelling the dispatched APIs' own pages use, and if it issubDomain, the declaration's field spelling is itself a wire defect to fix as a code change first.Merge state
Based on current origin/main
ed68b5573b(merged mid-PR: #13291's GCP IAM bootstrap touchediam.dag; no scope collision — main's iam/endpoint carry no ExternalModelScope, and the merged file re-validates). The diff vs main is exactly: 2 modules (each + scope block, reading, imports; endpoint's locator re-pointed; iam gains the Policy#Binding authority datum), 2 carrier entries, tsv 358→356. The five pulled modules are byte-identical to main. Touches nothing else.Witnesses
Local: full-tree parse via
gunbc compile(both source roots, binary rebuilt from the merged tip, 0 blocking errors) on both repaired modules; assert-checks pass (each keeper's subject unscoped on current main with its row present in main's tsv and absent from the branch tsv, one carrier entry each, tsv 358→356).CI (run 37244402760 at this head, all four jobs green): floor
verdict=FloorClean,planned=671 executed=671 passed=661 known_red_held=5 claims_failed=0 stale_non_verdict=0; generated, emit-build, and witnesses all pass.