feat: link Signet contacts, with word checks and local blocks - #202
Draft
TheCryptoDonkey wants to merge 4 commits into
Draft
TheCryptoDonkey wants to merge 4 commits into
TheCryptoDonkey wants to merge 4 commits into
Conversation
Takes the contacts half of feat/signet-ownership-attestations and puts it on today's main. The ownership half is left out: main bounded ownership proofs to thirty days on 22 September, and the branch took a different answer. What a person gets: - Link Signet contacts from the room sheet. Names, keys and blocks are asked for; tiers and check records are optional and chosen in Signet. - A word check that both people take part in, over the contacts SDK's commit and reveal profile, in place of the fixed words. - A block made in Signet filters this device's roster, chat and invitations and closes its media peers. It is local: nobody is removed from the room and no key is revoked. - A check chip that says where a check came from. Changed from the branch: - An approval is not a pairing until the person confirms the pairing code in Signet. A QR can be photographed, and the first approval to arrive does not say who sent it. Nothing is saved or fetched before that. - The wait for an approval is the SDK's own, not two minutes. - A projection carrying a field beyond its scopes is refused whole, as the SDK now does. The test that expected the covered fields to survive is rewritten to say so. - @forgesworn/signet-contacts is pinned to a commit of its public repository in place of a path on one machine. docs/decisions.md has the reasoning. Claude-Session: https://claude.ai/code/session_01H76NN8NDdN4TGw32qi7E18
Checks are kept under the identity that made them, and the chip asked for that store with whatever identity the room on screen had. A docked call's tiles outlive their room, so the chip could be painted with none. The store refused, inside a paint that swallows what its callers throw, and the rest of the paint went with it: the room title stayed "Room" after a switch to another room. test/call-dock.spec.ts:23 failed on CI and three times in three here. It passes three in three with this. Claude-Session: https://claude.ai/code/session_01H76NN8NDdN4TGw32qi7E18
…cked A pairing named the first read and write relay in settings whether or not it was up. With that relay returning 502, Signet could not answer and the panel said nothing. The panel now asks every read and write relay at once and names the first that answers, or says that none did. Signet's approval screen ticks names and keys alone. An approval without blocks linked nothing and the message did not say what to do. The panel now says before the pairing which boxes to tick and afterwards which was left. Found by pairing this branch with the Signet web app over public relays. Claude-Session: https://claude.ai/code/session_01H76NN8NDdN4TGw32qi7E18
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.
Draft. Three decisions below are the owner's, and this should not merge before them. It is not part of desktop 0.1.26.
What this is
The contacts half of
feat/signet-ownership-attestations, put on today's main. That branch was 240 commits behind and mixed two things. Only the first is here.signet-protocolas a dependencyOwnership is left out because main bounded ownership proofs to thirty days on 22 September (#140) and the branch took a different answer. Which one holds is a decision of its own.
What changed from the branch
docs/decisions.mdhas the reasoning, in the entry of 28 September.Decisions for the owner
What it does not do
A block is local. It filters this device's roster, chat and invitations and closes its media peers. Nobody is removed from the room, no key is revoked, and no other member's view changes. Tier gated admission and returning a check to Signet are separate work, set out in
docs/signet-contact-admission.md.Tested
npm run typecheck: clean.src/chat.test.ts"opening an old room" andsrc/voice-effects.test.ts"keeps the level". The first fails the same way on main's checkout under the same load, and is the test that failed on release: publish Android 0.6.22 #187.test/verification.spec.tsandtest/nostr-rooms.spec.ts, 15 of 15, including the pairing with a confirmed code, a block, and a revocation.🤖 Generated with Claude Code
https://claude.ai/code/session_01H76NN8NDdN4TGw32qi7E18