Repository navigation
http surface consolidation: land the agnostic http.Client (extdeps/http/client.dag), dissolve the curl.Http nickname, declare the redfish hardwired-transport debt - #6754
Merged
Conversation
…ent (Get + moved Post/Download), curl.dag shrunk to tool authority, redfish hardwired-transport Scaffold row, real-execution witnesses + wet enrollment Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.
The fifth-http-surface consolidation
A probe GET surfaced that there is no canonical http-client GET in extdeps — the concept was forked across four partial surfaces (
http/server.dagserver-side only,curl.HttpPost/Download only,redfish.HttpGETs with baked DMTF paths,test/http_pilotrest-pilot). Minting a probe service would have been surface #5. This PR lands the missing node instead: the agnostic http-client interface, per the §3 shape/transport/policy split.What changed
dag/extdeps/http/client.dag— the client half ofextdeps/http(RFC 9110 anchor):service http.ClientwithGet { url } → { body, success }viacurl -fsS(fail-closed: HTTP ≥ 400 → nonzero exit →success=false, no fabricated body) — the probe GET,PostJsonFromFile/DownloadToFilemoved verbatim fromcurl.Http.transport rest(config inextdeps/transports/rest.dag) is the peer handler; REST itself is a behavioral refinement of HTTP (method semantics, statelessness), not a different client.dag/extdeps/tools/curl.dagshrunk to the tool authority only (CliTool/version/apt). Thecurl.Httpnickname (curl-spelled names for http-client semantics — thegit diff-argv pattern of §3) is dissolved; zero references remain tree-wide.dag/extdeps/os/ubuntu_install_media_fetch.dag— the one consumer rewired tohttp.Client.DownloadToFile.dag/extdeps/bmc/http.dag— typedDisposition = Scaffoldrow + note declaring the §3(b) debt: eachredfish.Httpop re-spells the curl handler per row. Dissolves when the shared transport machinery gains the three axes those argv rows carry by hand (netrc/basic auth, insecure-TLS, body-from-file). NOT rewired now: live BMC consumers (bmc_onboard*,bmc_read_telemetry,srv3_boot_once_cd) execute those rows, and the rewire rides on transport-machinery work plus the v1 recorded-fixture witness — its own lane.dag/test/claim/http_client_get_real_execution_witness_test.dag— real-execution roundtrip (mktemp fixture →http.Client.Getfile:// → body equality) and a RED control (missing target →success=false, empty body). Enrolled on the established wet rail: excluded from hermetic discovery (witness_exclusion_substrings) + declared Wet entries (bin_witness_wet_entries), same lane as the srv3 real-execution witnesses.Receipts
claim_batch --wet … --functions http_client_get_roundtrip_by_real_execution,http_client_get_missing_target_red_control_by_real_execution→ both PASS (RED control observes typed curl exit 37).ci_floor_plan_witnesses→ true over the edited rosters (plan validity + closure compile).grep -rn "curl.Http"tree-wide → zero hits.--entryruns ofsrv3_install_media_fetch_witness_test/diagnostic_mock_totality_testred in untouched std files (known scoped-universe artifact); localgunbc ciexit-1 (environmental; ci.yml embeds no roster content, so no drift from this change).Follow-up lanes (not this PR)
server.dag/rest.dagdouble-anchor) and the layer-home question forHttpMethod/HttpStatusinstd/types.dag.🤖 Generated with Claude Code