feat: send the SDK manifest hash on the tunnel heartbeat#41
Merged
Conversation
Each 30s heartbeat now GETs the local module manifest and forwards the SDK's
X-MS-Manifest-Hash response header (read verbatim — the CLI never computes a
hash, keeping it byte-consistent with what the platform reads) on the ping. The
platform uses it to skip re-fetching the manifest unless it changed.
- The ping payload carries {manifest_hash} when the local read succeeds; a failed
or timed-out fetch sends a payload-less ping so the tunnel keeps beating.
- The fetch is timeout-guarded (500ms) so a wedged module never stalls ping/pong.
- RegisterPayload gains manifest_hash (skip-if-none; None at register since the
module isn't up yet when open_tunnels runs).
- The dev proxy already relays response headers verbatim (raw io::copy), so the
platform's own manifest fetch sees the same X-MS-Manifest-Hash — no proxy change
needed.
Additive + wire-compatible: old dispatch ignores the new field. Part of the
3-repo hash-beat (app-module-sdk + api-platform).
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.
feat: send the SDK manifest hash on the tunnel heartbeat
Each 30s heartbeat now GETs the local module manifest and forwards the SDK's
X-MS-Manifest-Hash response header (read verbatim — the CLI never computes a
hash, keeping it byte-consistent with what the platform reads) on the ping. The
platform uses it to skip re-fetching the manifest unless it changed.
or timed-out fetch sends a payload-less ping so the tunnel keeps beating.
module isn't up yet when open_tunnels runs).
platform's own manifest fetch sees the same X-MS-Manifest-Hash — no proxy change
needed.
Additive + wire-compatible: old dispatch ignores the new field. Part of the
3-repo hash-beat (app-module-sdk + api-platform).
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com