Conversation
…eps a live instance's socket Version bump only. 1.0.1 is 1.0.0 rebuilt from the template fix in #111; nothing in plainweb's spec changes. The published 1.0.0 adapter, on all four platforms: - keeps running after its daemon dies without stopping it (reparented to pid 1 and still answering IPC): always on macOS, and on Linux under every released daemon (v1.13.9 pins app-store v1.0.2, which sets no Pdeathsig); - on SIGTERM, unlinks app.sock by name, which deletes the socket of a newer instance started at the same path and takes it offline. Rebuilt from #111 (go1.26.8, TEST-ONLY key), the orphan exits by itself 210-380 ms after its parent dies on darwin/arm64, darwin/amd64 (Rosetta), linux/arm64 and linux/amd64, and the newer instance keeps its socket and keeps serving. Do not merge before #111 is merged and the four 1.0.1 bundles, built from that main and signed with plainweb's publisher key, are on R2: merging runs publish-rich-from-r2.sh, which builds the catalogue entry from whatever is on R2 for 1.0.1. Co-Authored-By: Claude Opus 5.5 (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.
What this is
A version bump only (
1.0.0→1.0.1). The plainweb adapter is generated from the template, so the fix is in #111 and this PR ships it. Nothing in plainweb's spec changes.Problems in the published 1.0.0 bundles (all four platforms)
app.sockpath. It was gone after the daemon restarted.app.sockby name. If a newer instance has since bound that path, the older instance's exit deletes the newer one's socket and takes it offline.Verified on 1.0.1 rebuilt from #111
Built from 80d19b2 (#111 head) with
publish.BuildBundle, go1.26.8, and a TEST-ONLY key. Nothing was uploaded or signed with a real key. The binary sha256 was identical across two builds on all four platforms.Harness results. darwin/amd64 ran under Rosetta, Linux ran in
docker --init, and--network nonewas used for the offline runs:harness verify(sha, signature, pin, format)pilot-app verifyplainweb.help×200plainweb.fetch(https://example.com)×200help×200helpcalls on darwin/arm64 level off at 18.8 MB (17.9 MB at call 250, 18.9 MB at call 5,000). fd stayed at 7 throughout.app.sockis replaced by instance B at the same path, then A gets SIGTERM. On 1.0.0:SOCKET GONE, and B is unreachable (connect: no such file or directory). On 1.0.1 (arm64 and amd64): B's socket keeps the same inode and B still answers.parent pid N is gone; shutting down, exits, and B keeps its socket.pilot-app verify-submissionon this submission: VERIFY OK, 4 platforms.pilot-app verify-update: UPDATE GATE OK (1.0.1 ≥ 1.0.0).Not fixed by this PR
app.sockis still left on disk after a supervisor stop (daemon shutdown, upgrade, uninstall). The supervisor stops apps with SIGKILL, and an app can't clean up after that. Measured with the real supervisorspawnplus a ctx cancel: app-store v1.0.3 givescode=-1,app.sockleft, for both 1.0.0 and 1.0.1. A SIGTERM-first stop (stacked on pilot-protocol/app-store#39, not yet opened) givescode=0in about 21 ms withapp.sockremoved. That fix belongs in app-store plus a daemon release. Until then, both the adapter and the supervisor delete a stale socket beforeListen.🤖 Generated with Claude Code