Skip to content

extdeps scope: retire 2 frontier rows (batch 6, after review pullback) - #13304

Merged
gunbai-bot[bot] merged 5 commits into
mainfrom
session/vivid-ibex-684-b6
Oct 5, 2026
Merged

gunbai-bot[bot] merged 5 commits into
mainfrom
session/vivid-ibex-684-b6

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Oct 4, 2026 •

Copy link
Copy Markdown
Contributor

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)

module subject decl upstream (page cited) reading
docker/endpoint.dag data docker_default_endpoint Docker's CLI reference, docs.docker.com/reference/cli/docker/ the CLI reference owns the daemon-selection surface: it documents the rootful default unix:///var/run/docker.sock for macOS/Linux. The datum is that documented default, so it is the surface this citation owns. The DOCKER_HOST override 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.dag type GcpBinding Google's REST reference for Policy#Binding, cloud.google.com/iam/docs/reference/rest/v1/Policy#Binding the Policy#Binding reference owns the binding structure; GcpBinding (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)

module reason (from the review)
docker/container_stats.dag the reading's "dispatched client" claim was unverified — service docker.ContainerStats has no production caller; the module also adds a repo-authored cpu_percent and reshapes networks, so it is not a field-for-field transcription of the Engine API payload.
docker/container_inspect.dag HostConfig includes exposed_ports/volumes, which Docker puts on ContainerConfig, so the type is not the exact inspect-response surface the cited page defines.
sec/edgar_rest.dag no production caller (the repo's own unconsumed-module census lists it); the reading described one of two operations rather than the service's surface.
sec/edgar.dag the cited page does not specify the CompanyFactsResponse JSON schema (entityName is not on it), so there is no upstream source attesting that exact shape.
ebay/errors.dag pulled with a finding (see below) — the review's offered repair ("point the scope at the exact ErrorDetailV3 authority used by the dispatched APIs, or add the appropriate API-specific further citations") is not currently executable against a live page: every eBay authority this session can fetch contradicts or withholds the exact wire spelling the review premises.

Finding 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 spells subdomain too — implying an API-specific page would attest it. What this session can actually fetch:

  • The generic handling-error-messages page now returns only a ~1.8 KB JavaScript shell (bot-blocked), so its content cannot be read either way.
  • Other API-specific ErrorDetailV3 pages (sell/fulfillment, commerce/identity, buy/browse) are 403/JS-shell-blocked for plain fetches.
  • The one API-specific page that IS fully fetchable — sell/inventory's ErrorDetailV3 (developer.ebay.com/api-docs/sell/inventory/types/ErrorDetailV3.html, HTTP 200, full schema inline) — embeds the schema with camelCase "subDomain", which contradicts the declaration's subdomain and 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. EbayError is 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 is subDomain, 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 touched iam.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.

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Brian Searls added 2 commits October 4, 2026 23:17
…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.
@gunbai-bot gunbai-bot Bot changed the title extdeps scope: retire 7 frontier rows under real upstream authorities (batch 6, production-dispatch pre-check) extdeps scope: retire 2 frontier rows (batch 6, after review pullback) Oct 4, 2026
@briansrls
briansrls added this pull request to the merge queue Oct 5, 2026

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.dag
  • dag/extdeps/docker/container_inspect.dag
  • dag/extdeps/sec/edgar_rest.dag
  • dag/extdeps/sec/edgar.dag
  • dag/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.
@gunbai-bot
gunbai-bot Bot removed this pull request from the merge queue due to a manual request Oct 5, 2026

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@gunbai-bot
gunbai-bot Bot added this pull request to the merge queue Oct 5, 2026
Merged via the queue into main with commit 676ac15 Oct 5, 2026
4 checks passed
@gunbai-bot
gunbai-bot Bot deleted the session/vivid-ibex-684-b6 branch October 5, 2026 05:17
gunbai-bot Bot pushed a commit that referenced this pull request Oct 5, 2026
… 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant