Skip to content

docs: antd v0.6.1 — health fields, upload visibility, MCP port discovery#37

Merged
JimCollinson merged 7 commits into
mainfrom
claude/prose-2026-05-11-api-health-visibility
May 12, 2026
Merged

docs: antd v0.6.1 — health fields, upload visibility, MCP port discovery#37
JimCollinson merged 7 commits into
mainfrom
claude/prose-2026-05-11-api-health-visibility

Conversation

@JimCollinson
Copy link
Copy Markdown
Collaborator

Upstream

  • ant-sdk: d7652ec3529280c3 (chore(antd): release v0.6.1)
  • ant-client: 71ad53b06cada1d6 (merge rc-2026.4.4)
  • ant-node: 23aee15c0c2f2c97 (merge rc-2026.5.1, payment verifier clock skew — internal only)
  • ant-protocol: 65651f3a8955144b (merge rc-2026.4.4, Cargo.lock only — metadata-only)

Source artifacts inspected

  • antd/openapi.yaml — primary REST API spec
  • antd/proto/antd/v1/health.proto — gRPC HealthCheckResponse
  • antd/src/types.rs — PrepareUploadRequest, PrepareDataUploadRequest, FinalizeUploadResponse, HealthResponse
  • antd/src/main.rs — EVM/build-commit fields wired into AppState
  • antd-mcp/src/antd_mcp/discover.py — port-file path changed to ant/sdk/daemon.port
  • antd-mcp/src/antd_mcp/server.py — check_health() now surfaces all six new fields
  • ant-core/src/data/client/data.rs — new data_prepare_upload_with_visibility method
  • ant-core/src/data/client/file.rsVisibility enum (Public/Private)
  • ant-core/src/data/mod.rspub use client::file::Visibility confirmed

Developer-facing change

antd v0.6.1 introduces four breaking additions to the REST and gRPC health surface, a new upload visibility parameter, and a corrected MCP port-file discovery path:

  1. GET /health and HealthCheckResponse now return six new required fields: version, evm_network, uptime_seconds, build_commit, payment_token_address, payment_vault_address.
  2. POST /v1/upload/prepare accepts a new optional visibility field ("private" | "public"). Public uploads bundle the DataMap chunk into the payment batch; finalize returns data_map_address.
  3. POST /v1/data/prepare accepts visibility but returns 501 for "public" (blocked on ant-core upstream PR #73). Use /v1/upload/prepare for public external-signer uploads today.
  4. antd-mcp now reads the port file from ant/sdk/daemon.port (matching where antd writes it); the previous mismatch note is corrected.
  5. ant-core gains data_prepare_upload_with_visibility(content, Visibility) and the Visibility enum as public API.

Files changed in this PR

  • docs/sdk/reference/rest-api.md — health response, visibility param on prepare endpoints, data_map_address on finalize, 501 error code
  • docs/sdk/reference/grpc-services.md — HealthCheckResponse fields, Common messages table
  • docs/sdk/how-to-guides/use-external-signers-for-upload-payments.md — visibility param, data_map_address on finalize, data_prepare_upload_with_visibility for Rust callers
  • docs/mcp/mcp-server-reference.md — port-file discovery corrected, check_health() response updated
  • docs/rust/library-reference.mdVisibility type in key types table, data_prepare_upload_with_visibility in external signer section
  • skills/start/SKILL.md — health shape updated, MCP discovery claim corrected; frontmatter bumped 0.1.3-draft → 0.1.4-draft
  • skills/start/version.json — version 0.1.4-draft, published_date 2026-05-11, verified_commits updated
  • skills/start/CHANGELOG.md — 0.1.4-draft entry added
  • planning/sweeps/2026-05-11-prose.md — sweep summary added

Why prose changed

  • rest-api.md: The GET /health response shape changed — six new required fields exist at 529280c3 in antd/openapi.yaml and antd/src/types.rs:HealthResponse. The prepare endpoints have a new visibility field. The finalize response has data_map_address.
  • grpc-services.md: antd/proto/antd/v1/health.proto at 529280c3 adds six new fields to HealthCheckResponse.
  • use-external-signers-for-upload-payments.md: Visibility is now a valid prepare parameter for file uploads, and finalize returns data_map_address. The ant-core native path has a new data_prepare_upload_with_visibility method.
  • mcp-server-reference.md: antd-mcp/src/antd_mcp/discover.py at 529280c3 switched from ant/daemon.port to ant/sdk/daemon.port, matching antd's write path. The check_health() server function now returns all six new health fields.
  • library-reference.md: ant-core/src/data/mod.rs at 6cada1d6 now pub uses Visibility from client::file. data_prepare_upload_with_visibility is a new public method on Client.
  • SKILL.md body: Health shape was stale; MCP discovery claim was factually wrong after the port-file path alignment.

Linked skill release

SKILL.md body changed → linked release applies per planning/routines/upstream-sweep.md:

  • version.json: version 0.1.3-draft → 0.1.4-draft
  • version.json: published_date 2026-05-02 → 2026-05-11
  • SKILL.md frontmatter version: 0.1.3-draft → 0.1.4-draft
  • SKILL.md frontmatter verified_date: 2026-05-02 → 2026-05-11
  • CHANGELOG.md entry added for 0.1.4-draft

Verification run

  • Scanner (python3 scripts/sweep_poll.py) re-run on prose branch: status: "ok", 0 drifted records on the 6 prose pages. Remaining 14 drifted records are all in the companion sweep PR, correct by design.
  • JSON (python3 -m json.tool skills/start/version.json): valid
  • Linked-release rule confirmed: SKILL.md body changed ↔ version, published_date, frontmatter version, verified_date, and CHANGELOG all updated
  • Endpoint/type re-grep against pinned upstream checkouts confirms: HealthResponse struct has all 6 new fields at 529280c32c024c92b68436abb6ace956c8da66ba; Visibility is re-exported from ant_core::data at 6cada1d6b318a93e52ea6c34aa4b68fc2782c946; antd-mcp/discover.py uses ant/sdk/ path at 529280c32c024c92b68436abb6ace956c8da66ba

Uncertainties

  • The 501 note on POST /v1/data/prepare with visibility:"public" references ant-client PR #73. That PR is not merged as of the audit. The page correctly documents the current (501) behavior and directs users to /v1/upload/prepare instead.
  • Reviewer should confirm the data_map_address description in rest-api.md matches the intent in antd/src/rest/upload.rs (not audited in full detail — inferred from types.rs and openapi.yaml).

Generated by Claude Code

…td v0.6.1

- rest-api.md: health endpoint now returns version, evm_network,
  uptime_seconds, build_commit, payment_token_address, payment_vault_address
  (all required); add visibility param on prepare endpoints; add
  data_map_address to finalize response; add 501 to error codes.
- grpc-services.md: HealthCheckResponse has 6 new fields; update
  Common messages table.
- use-external-signers-for-upload-payments.md: document visibility param
  on file prepare, data_map_address on finalize, and
  data_prepare_upload_with_visibility for Rust callers.
- mcp-server-reference.md: fix port-file discovery note (both antd and
  antd-mcp now use ant/sdk/daemon.port); update check_health() response.
- library-reference.md: add Visibility type; note
  data_prepare_upload_with_visibility in external signer section.
- SKILL.md: health shape updated; MCP discovery claim corrected;
  linked release 0.1.3-draft → 0.1.4-draft.

Upstream: ant-sdk d7652ec3→529280c3, ant-client 71ad53b0→6cada1d6

https://claude.ai/code/session_01PbqgEKBP7PkuUXZvjWRVrT
Comment thread docs/mcp/mcp-server-reference.md Outdated
Comment thread docs/sdk/reference/rest-api.md Outdated
Comment thread skills/start/SKILL.md Outdated
claude added 2 commits May 12, 2026 08:13
Per review on PR #37: the audit/write loop slipped into changelog-style
framing in several places, which violates CLAUDE.md's Style guide rule
on time-relative wording and the Voice-and-tone present-tense mandate.
The reviewer flagged three instances; sweep found five more of the same
pattern and they are all fixed here.

- docs/mcp/mcp-server-reference.md: "Both antd and antd-mcp now use the
  same path" → "antd writes the port file to ant/sdk/daemon.port and
  antd-mcp reads from the same path".
- docs/sdk/reference/rest-api.md (visibility on /v1/data/prepare):
  "reserved — returns 501 until upstream ant-core exposes
  data_prepare_upload_with_visibility" → "returns 501 on this endpoint;
  use /v1/upload/prepare with a file path".
- docs/sdk/reference/rest-api.md (visibility on /v1/upload/prepare):
  "Omitting this field preserves pre-0.6.1 (private) behavior" deleted
  — the default is already stated inline.
- docs/sdk/reference/rest-api.md (finalize response): "(legacy daemon-
  wallet path)" → "that path uses the daemon's own wallet to store the
  DataMap". State the mechanism, not a relationship to a successor.
- docs/sdk/reference/rest-api.md (501 row): "not yet supported" → "not
  supported".
- docs/sdk/how-to-guides/use-external-signers-for-upload-payments.md:
  same "currently only supports" / "legacy daemon-wallet path" fixes.
- skills/start/SKILL.md: same "now use the same path" rewrite as the
  MCP reference.

Changelog content in skills/start/CHANGELOG.md keeps its delta framing
(it is explicitly a version-comparison surface).

https://claude.ai/code/session_019cz1M7pXuXFQykMZxfdXHm
@JimCollinson JimCollinson marked this pull request as ready for review May 12, 2026 08:27
The original prose-PR commit added planning/sweeps/2026-05-11-prose.md,
but the prose-guard and sweep-guard regex only accepts the bare-date
form (planning/sweeps/<YYYY-MM-DD>.md). Renaming to the bare-date form
would conflict with PR #36's same-named file, so the cleanest path
right now is to drop the prose summary entirely. The PR body and the
CHANGELOG.md entry already carry the audit narrative; per policy the
file is "optional add."

Long-term the routine should either commit no per-run prose summary or
the guards/policy should be updated to allow a -prose / -sweep suffix
so both PRs in the same day can coexist with their own files. Out of
scope for this PR.

https://claude.ai/code/session_019cz1M7pXuXFQykMZxfdXHm
JimCollinson pushed a commit that referenced this pull request May 12, 2026
…tence

PR #37's prose changes drifted into changelog-style framing in eight
places ("now use the same path", "currently only supports", "legacy
daemon-wallet path", "until upstream X exposes Y", "preserves pre-0.6.1
behavior", "not yet supported"). Every one of these violated rules that
already exist in CLAUDE.md — the Style guide explicitly bans
time-relative wording, the Voice-and-tone section mandates present
tense, and the "do not narrate the evidence" rule asks for direct
statements of fact. The general CLAUDE.md pointer in step 4.7 was easy
to skim past during the audit/write loop.

Tighten step 4.7 to call out the specific failure mode the routine
keeps hitting: the audit gives the model a diff between two SHAs, but
the page describes the state of the surface at head_sha. Translating
"what changed" into "what is" is exactly where the model slips. The new
wording names the relevant CLAUDE.md sections explicitly and gives one
concrete bad-vs-good example without duplicating the rule itself.

No rule duplication; the Style guide remains the source of truth.

https://claude.ai/code/session_019cz1M7pXuXFQykMZxfdXHm
JimCollinson and others added 3 commits May 12, 2026 14:52
prose-guard's linked-release check compares version.json's
published_date (a JSON string) against SKILL.md frontmatter's
verified_date. YAML auto-parses an unquoted ISO date into a
datetime.date object, so the string-vs-date comparison always returns
False even when the values are semantically identical:

  published_date: '2026-05-11' (str)
  verified_date:  datetime.date(2026, 5, 11)
  '2026-05-11' != datetime.date(2026, 5, 11)  # always True

Quoting the YAML value preserves it as a string so the comparison works.
Same workaround applies in any future skill release.

There is a latent bug in the prose-guard workflow itself — it should
coerce both sides to strings before comparing — but that is a separate
.github/ change outside this PR's envelope.

https://claude.ai/code/session_019cz1M7pXuXFQykMZxfdXHm
@JimCollinson JimCollinson merged commit 01a78f1 into main May 12, 2026
5 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.

2 participants