Repository navigation
Held keys, one machine identity, web-only links - #179
Merged
Merged
Conversation
…opped Keys typed while the terminal was shown but not yet live — still connecting, its handshake not done, the agent away — were dropped without a word: a person typing the moment a terminal opens saw the start of their command vanish. They are now held, in order, and sent the moment the session is live (up to 64 KiB; kept no longer than 30 s, after which the terminal says they were not sent). The terminal takes focus as it starts connecting, so the first keys are its own. And "agent_online" while the agent was thought here — the relay had not seen the old connection end (a process that died, or a machine that went away, with its socket never seen to close) and a new one took its place, possibly another process with another session key — now handshakes again. Keeping the old key, every key typed afterwards was sealed for an agent that is gone and dropped there, with nothing coming back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…re first Two processes that found no machine key at the same moment each minted one and wrote it, the last write winning: every other process went on signing as an identity the machine no longer had, and a device that had pinned it refused the machine as "identity changed". The lock around the mint was per process only. A session's machine channel mints the key as it starts, so anything else asking for it then could lose the race (four processes at once, in a fresh home: 47 of 50 split the identity). The mint is now written whole to a temporary file and linked into place: the first link wins, and a process that loses takes the winner's key instead of keeping its own (0 of 50). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A port's open_url from a host was put into a tab this page opened, and a terminal's OSC 8 links used xterm's default handler: a javascript: address from a hostile host would run as this page. Both now open only http(s), apart from this page. (the viewer part of 0fd78eb) 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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Three fixes to code every reminal shares:
javascript:address that would run as this page. Both now open only http(s), apart from this page.Gates (Docker): gofmt clean, go vet, go test -race ./..., six-target cross-compile.
🤖 Generated with Claude Code