Names commands will use the wallet; users do not. The commands move to
/_wallet, and the help section, its topic and the changelog entry are
removed. The tests drive the API end to end.
Comments cut to what the code does not say, dead exports removed.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rvc3HbiWBTqbAvRT45G5oX
Concurrency: the account index is incremented in SQL and read back in the
same transaction, so two profiles cannot be handed the same key. Importing
a phrase is one transaction and single_seed is UNIQUE, so a phrase cannot
be discarded in favour of a key created meanwhile, and a device cannot end
up with two keys.
Wallet commands are no longer forwarded to a remote host: the recovery
phrase must not leave the device, and the raw command is logged there.
/wallet delete removes the key, confirmed by the last word of the phrase,
so creating a key before importing your own is no longer a dead end.
/wallet now shows every profile on the key with the first two name
addresses each, to check derivation against other wallets. Hidden profiles
are left out, as they are by /users. A bad phrase no longer says which word
was wrong. /wallet export uses the profile's own key.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rvc3HbiWBTqbAvRT45G5oX
A name has to be owned by an address the client can still derive after a
restart or on a new device. This adds that key and nothing else.
/wallet create makes one BIP-39 key per device and one BIP-44 account per
chat profile under it, /wallet shows the address that would own the next
name that profile buys, /wallet import and /wallet export move the key with
its recovery phrase.
A name key sits at m/44'/60'/<profile>'/0/<name>, which is ordinary BIP-44,
so the phrase reaches the same addresses in other wallets. No signing, so
nothing can be bought or edited yet.
Split out of #7390 / #7425.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rvc3HbiWBTqbAvRT45G5oX
* cli: remove help entries for commands removed long ago
/pq and /pq @<name> were removed in #4049 (PQ encryption for contacts
is now automatic); /get stats and /reset stats were removed in #4375
(legacy agent stats). All four were left documented in CLI help, so
typing them fails. Remove the stale entries.
* plans: justify removal of outdated CLI help entries
* plans: drop //get stats mention from CLI help plan
* core: short bio/description for contact and group profiles
* use short description in commands
* fix tests
* query plans
* ios: show contact and group profile descriptions
* android, desktop: short description/bio
* ui: layout for chat info, correct copy
* comment out fields to add/edit short descriptions
* remove short description from events
* postgres schema
* core: add agreed connection version field
* fix
* progress
* use pqSupport and version to decide compression in messages
* pass version to encodeConnInfoPQ
* update pq enable/disable api
* remove TestConfig
* update nix dependencies
* update texts
* corrections
* create e2ee info items when connection switches from off to on first time
* corrections
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
* comment
* increase test timeout
---------
Co-authored-by: spaced4ndy <8711996+spaced4ndy@users.noreply.github.com>
* core: initial group member role when joining via link
* fix tests
* set role when joining group via link, enable observer test
* show group link when role changes
* amend test
* check role is member or observer when creating a link
* terminal: show version from .cabal file
* update welcome message
* terminal: helo on message quotes
* terminal: allow replies in groups without specifying a member
* core: update version to 1.3.3
* update for ConectionMode parameters
* update with CONF notification and different ConnectionRequest types
* high level flow for contact requests, add x.con to chat protocol
* store functions for user contact links and contact requests
* contact links work
* subscribe to user contact link connection
* subscribe to user contact address: messages
* send rejectContact to the agents when rejected in chat
* user contact link (address) test
* Update src/Simplex/Chat/View.hs
* Update tests/ChatTests.hs
* user address help, fix tests
* delete connection requests when contact link deleted
Co-authored-by: Efim Poberezkin <8711996+efim-poberezkin@users.noreply.github.com>
* Add /version and /v flags
* Move version info from C Chat.Help to Chat.View
* Move version string, use it in Main startup
* use "SimpleX Chat" consistently
Co-authored-by: TheTaoOfSu <TheTaoOfSu@protonmail.com>
* remove group member
* leave group, fix remove member, tests for leave group/remove member
* delete group with test
* prevent contact deletion error when it is a group member
* support inviting the group member who left or was removed
* use small retry interval in the tests
* test multiline outputs
* create group after invitation
* add group invitation to db, show sent and received group invitations
* test creating group and sending invitation
* establish group connections (WIP)
* connect user to the inviter, notification, member classification