Skip to content

Add read-only Netdata loopback client - #5

Merged
Mjones13 merged 6 commits into
work/netdata-v3-parser-20260929from
work/netdata-loopback-client-20260929
Oct 7, 2026
Merged

Mjones13 merged 6 commits into
work/netdata-v3-parser-20260929from
work/netdata-loopback-client-20260929

Conversation

@Mjones13

@Mjones13 Mjones13 commented Sep 29, 2026 •

Copy link
Copy Markdown

Summary

Add a source-only read client for Netdata v3 over an explicitly configured loopback origin. It constructs fixed CPU and available-memory requests, validates responses against the parser in #4, and passes partial or unavailable observations through the existing model. The default transport uses an ephemeral session without cookies, credentials, or cache and rejects HTTP redirects.

This is a child of #4, which is itself a child of #2. No settings, polling, app UI, private tunnel, Mac deployment, or owner-visible telemetry is added.

Verification

  • git diff --check passed on the source commit and test assertion revision 1849a8cb0a4235b4e406036cc65316e99f53c0ba.
  • Added synthetic Linux tests for request construction, origin validation, endpoint failures, cancellation, and redirect policy. The first Linux ARM64 run compiled both new files but crashed in a Swift Testing optional/ternary assertion; the latest revision makes those assertions explicit. Fresh CI is pending.
  • Swift, SwiftFormat, and SwiftLint are unavailable on this VPS. Native macOS validation is not claimed.
  • The parser limit is enforced after transport buffering, so it is not an in-flight download limit.

Independent review finding

NETDATA-CLIENT-01 — P2, reviewed at a7d5e612c86aa0fca23637380554773995776ded: fetch(now:) classifies final sample age against the time captured before two sequential requests. A slow fetch can misclassify freshness. The original freshness-correctness claim remains open under the repository standing P2–P4 deferral; no timing repair was made. The test-only assertion revision does not address this finding.

Dependency and remaining gates

Base: #4 at 5386ee934d0d1e5291eceacc9362c2d938729d56. #4 depends on #2. The exact private Mac tunnel, expected GUID configuration, app refresh/cache injection, Systems rendering, compact menu display, and native Mac acceptance remain separate work. A failed endpoint is represented as partial or unavailable; the current host-observation model does not retain individual failure reasons.

@Mjones13
Mjones13 merged commit 5f4a4c9 into main Oct 7, 2026
8 checks passed
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