Move libcurl/libuv HTTP client into acyclic http_client component - #8285
Open
Amaury Chamayou (achamayou) wants to merge 1 commit into
Open
Move libcurl/libuv HTTP client into acyclic http_client component#8285Amaury Chamayou (achamayou) wants to merge 1 commit into
Amaury Chamayou (achamayou) wants to merge 1 commit into
Conversation
Amaury Chamayou (achamayou)
force-pushed
the
achamayou-psychic-fishstick
branch
from
September 4, 2026 13:25
afdb7c1 to
efda87d
Compare
Amaury Chamayou (achamayou)
force-pushed
the
achamayou-psychic-fishstick
branch
from
September 4, 2026 13:46
efda87d to
e05ef04
Compare
Copilot started reviewing on behalf of
Amaury Chamayou (achamayou)
September 4, 2026 13:46
View session
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
src/http_client/curl.h is not self-contained due to missing standard library includes and has a signed/unsigned seek offset computation that can mis-handle negative offsets.
Pull request overview
This PR continues the acyclic-component refactor by moving the libcurl/libuv HTTP client integration out of the protocol-focused http component into a new http_client component, updating all in-tree includes and dependency-policy declarations accordingly.
Changes:
- Moved the internal curl integration header to
src/http_client/curl.hand updated all affected includes. - Relocated the curl unit test to
src/http_client/test/curl_test.cppand updated its CMake registration. - Updated
scripts/source-dependencies.jsonand the reviewer guidance doc to reflect the new component boundary/path.
Custom instructions used:
.github/instructions/reviewing.instructions.md
File summaries
| File | Description |
|---|---|
| src/snapshots/fetch.h | Switched include to http_client/curl.h. |
| src/node/recovery_decision_protocol.cpp | Switched include to http_client/curl.h. |
| src/node/quote_endorsements_client.h | Switched include to http_client/curl.h. |
| src/node/node_state.h | Switched include to http_client/curl.h. |
| src/node/jwt_key_auto_refresh.h | Switched include to http_client/curl.h. |
| src/host/run.cpp | Switched include to http_client/curl.h. |
| src/http_client/curl.h | Added new location for the curl/libuv integration header. |
| src/http_client/test/curl_test.cpp | Updated include to http_client/curl.h in moved test. |
| CMakeLists.txt | Updated curl_test source path to new location. |
| scripts/source-dependencies.json | Declared new http_client component and narrowed http dependencies. |
| .github/instructions/reviewing.instructions.md | Updated documentation reference to the new curl header path. |
Review details
- Files reviewed: 10/11 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Amaury Chamayou (achamayou)
force-pushed
the
achamayou-psychic-fishstick
branch
from
September 4, 2026 15:58
e05ef04 to
ef25ea2
Compare
Move src/http/curl.h to src/http_client/curl.h, and src/http/test/curl_test.cpp to src/http_client/test/curl_test.cpp, updating all in-tree includes and the CMake registration. No forwarding header is left at the old path since curl.h is an internal header. Narrow the http component's declared internal dependencies to [ccf-api, crypto, ds] now that the libuv-dependent client code has moved out, and add the new http_client component with [ccf-api, ds, uv]. This keeps http protocol-focused and acyclic, and keeps the new http_client component acyclic and outside the cyclic core. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Amaury Chamayou (achamayou)
force-pushed
the
achamayou-psychic-fishstick
branch
from
September 4, 2026 16:39
ef25ea2 to
246903a
Compare
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.
Third and top layer of a stack breaking cyclic source dependencies out of http. Makes the now-acyclic http source component protocol-focused by moving its libcurl/libuv client integration into a separate acyclic http_client component.
Relates to #3517 (does not close it).
Base: achamayou-crispy-sniffle (PR #8284), itself based on PR #8281 and PR #8278.
Changes:
No public API or runtime behavior changes, no compatibility shim, no namespace rename, no unrelated curl refactor.
Verification:
For the stack coordinator: please perform native stack registration; I have not registered stack metadata myself.