* bots, nodejs: document chat, connection, member contact and network commands, typed commands in library
* bots, nodejs: restore apiConnect, wrap domain once, test all connect responses
* nodejs: JSDoc for new methods
* docs: plan for bot API commands and typed Node library methods
* tests: channel prepared with a domain has a verified SimpleX name
* docs: apply review fixes to the plan for bot API commands
* docs: apply second review pass to the plan for bot API commands
* docs: refer the bot API plan to the rewritten test commit
* docs: record decisions in the plan for bot API commands
* docs: plan tests of the generated Python command strings
* python: test the generated strings of the documented commands
* docs: plan for files, /leave and library methods in the MCP server
* docs: wait at stop in the MCP plan
* docs: library methods and /leave mechanics in the MCP plan
* mcp: typed library methods for chat commands
* docs: plan the message information command for bots
* mcp: /leave CHAT owner command to leave a chat at once
* docs: file servers, GIF and video choices decided in the MCP plan
* docs: file mechanics in the MCP plan
* mcp: files of received messages
* bots, nodejs: message information with the file servers for bots
* docs: plan the relay approval option of receiving files in Node
* mcp: download of received files with owner approval
* docs: name the xftp-server test helper in the files plan
* nodejs: receive files without approving unknown relays
* docs: plan the user servers command for bots
* bots, nodejs: user servers and relays by operator for bots
* nodejs: document the message information method
* docs: plan the file upload progress event for bots
* mcp: send files with owner approval, refusing private keys
* bots: file upload progress event for bots
* mcp: /leave template in the agent control chat menu
* docs: sent copies are deleted for contacts too, at sndFileCompleteXFTP
* bots: drop the file upload progress event
* docs: drop the upload progress event plan
* nodejs: document user servers and relay approval of received files
* mcp: download cards name unknown file servers after the upload
* docs: record the wait for the file description in the files plan
* mcp: fixed wait at stop for cancelled cards, without /sql
* docs: record decision C4, a fixed wait at stop, in the files plan
* ci: test the MCP server package on pull requests
* ci: state when the MCP workflow can be dispatched
* ci: run the MCP server tests when its libraries change
* mcp: log the errors of image previews and resizing
* mcp: keep files in transfer in the data folder
* mcp: restrict sent files by the real paths of refused folders
* mcp: validate the file at the send by its inode and change time
* mcp: limit ffmpeg and ffprobe to local files and no input commands
* mcp: ask the owner for unknown file servers; read approvals at creation
* mcp: name downloaded files by their ID; return paths of downloads only
* mcp: end each download with a result for the agent and the card
* mcp: show files above their sender's size limit as failed
* mcp: refuse empty files, as without file and captions too long to send
* mcp: tell the owner about failed uploads and unposted received files
* mcp: delete resized copies left by the last run at start
* mcp: name downloads and leaving in the help and greeting, align docs
* mcp: compute the download path for received files only
* mcp: send a /receive file to the owner under its name
* mcp: keep files received without a download in the chat's folder
* mcp: keep a left chat's files and delete them with /delete CHAT files
* mcp: test that sent images are resized by the core
* mcp: wait 30 minutes for a download's progress before cancelling it
* mcp: end a download as deleted only when its message is not found
* mcp: delete the copy of a /receive file whose post fails
* mcp: count the quoted content in a message's length, as the core sends it
* mcp: name received bytes, unknown-server downloads and left chat files plainly
* mcp: test refused folders, file changes and download approvals
* docs: align MCP server docs with refused folders, leaves and download waits
* mcp: move received files only in full, delete partials only of downloads
* mcp: report a received file missing from its folder as failed
* mcp: move received files of a group's member chats into its folder
* mcp: read a video's preview and duration as an MP4 or QuickTime file
* mcp: 0.2.0 on simplex-chat 7.1.0-beta.10.1
* mcp: file folders by chat type, /delete cancels downloads, files reply
* docs: MCP server specs and plan for 0.2.0
* mcp: /receive gives the agent a file, /forward sends it to the owner
* docs: MCP server specs for /receive and /forward of download cards
* docs: MCP plan records the temp folder command as a library exception
* mcp: /delete cancels resumed downloads; /forward quote fits the limit
* docs: MCP specs and plans for /forward quotes and resumed downloads
* docs: MCP specs name the source commit they are checked against
* docs: MCP PLAN states the /forward quote and move rules
* mcp: a download moves its completed file whatever its size
* mcp: /receive N all covers its card and later files, not pending ones
* docs: MCP files approval scope, reply text and README server wording
* mcp: a download approves relays only for a card naming unknown servers
* mcp: files in member chats of a group are tracked as in the main chat
* docs: MCP relay approval of downloads and files in member chats
* mcp: a rejected file gets a card again under the files approval
* docs: MCP rejected files under the files approval, README scope
* mcp: an offered file without a description gets no card or action
* docs: MCP a file without a description is not downloaded
* mcp: 0.2.0 on simplex-chat 7.1.0-beta.10.2
* ci: test the MCP server as a scope of build-linux
* core: ignore introductions of own member and from non-announcing members
* core: check member introduction in the same transaction
* core: reject introductions of removed members
* tests: describe the channel introduction test by what it checks
* ui: references of the flat layout names, italic and paragraphs
* ui: what's new references with the crowdfunding link
* core, ui: report reason with rule text, ios gaps as in plain text
* ui: references of report reason, ios gaps and right-to-left text
* android, desktop: do not throw when a deleted group item was sent by the user
* android, desktop: update the open support chat when its reports are deleted
* plans: moderated report stays active in the open support chat
* plans: correct the trigger and the exception location
* plans: correct statements found by fact-checking
* plans: align with the verified behaviour of the iOS handler
* plans: correct statements found by a second fact-check
* plans: correct statements found by a third fact-check
* plans: record the Android verification
* ui: fix the first chat profile's avatar stored as its description
Profile is (displayName, fullName, shortDescr, description, image, ...),
so passing image as the fourth positional argument stored it in
description and the avatar was dropped; #7256 inserted description
before image and this call was not updated. Pass it by name.
The bio typed on the same screen was never passed on this path; pass it
as shortDescr, as createProfileInProfiles does.
* plans: first chat profile's avatar stored as its description
* plans: profile with no active local profile: wording, alternatives
* plans: profile with no active local profile: routes, navigation
* plans: profile with no active local profile: line refs, title
* plans: profile with no active local profile: trace, flag wording
* plans: profile with no active local profile: tested routes
* ui: markdown messages show the empty lines that were typed
* ui: snapshot references of messages with empty lines
* ui: terminal layout spacing by one paragraph unit, names at text size
* ui: terminal gap below reactions, same empty lines in both apps
* ui: flat layout references with the paragraph unit
* core, ui: text with empty lines as paragraphs, ios bubbles fit text
* core, ui: move text with empty lines as paragraphs to a follow-up
* ui: ios references with bubbles that fit their text
* ui: other senders' names in the flat layout in the secondary colour
* core, ui: text with empty lines as paragraphs
* core, ui: single-star text italic, reports drawn without core prefix
* ui: what's new crowdfunding card opens the crowdfunding page, with ask SimpleX team
* ui: what's new references with the crowdfunding card
* ui: keep the what's new card texts, only open the crowdfunding page from it
* docs: user guide for the 7.1 apps
* docs, website: guide order, badge benefits, message expiry; soft line breaks on the site
* docs: guide videos for the first profile, invitations, joining and the address
* docs: guide screens with the iPhone status bar
* docs: guide shows full and cut screens only
* docs: guide pages corrected in place, keeping master's structure
* docs: group chat and SimpleX address pictures in the iPhone frame
* docs: plainer wording in the guide
* docs: guide checked against how SimpleX explains its features
* docs: guide answers on profiles, channel privacy, SOCKS and names
* docs: android guide picture from the emulator in the pixel 7 frame
* core: use the member key sent by the channel owner on role change
* core: check the member key on role change in one branch, rename test
* core: describe the role change test by what it checks
* android: fix the Invest banner showing briefly at start outside the US
* android: show the Invest banner's country condition at its call sites
* android: chat list docs say the Invest banner waits for the Play country
* android: chat list spec says the Invest banner condition's order matters
* android: docs map the Invest banner's conditions and note What's New's
* android: show crowdfunding in Play builds only once the country is known
---------
Co-authored-by: spacedandy-agents-simplex <342056592+spacedandy-agents-simplex@users.noreply.github.com>
* android, desktop: right margin for images in the terminal chat layout
* android, desktop: right margin for quoted images in the terminal layout
---------
Co-authored-by: spacedandy-agents-simplex <342056592+spacedandy-agents-simplex@users.noreply.github.com>
* ios: guide screens rendered with the status bar; group invitation and contact preferences previews
* ios: record the full-screen snapshots with the status bar
* ios: keep the accepted group invitation preview
* android, desktop: what's new in v7.1, get a supporter badge, Flat layout
* android, desktop: what's new image opens Wefunder, sections get icons
* android, desktop: crowdfunding image without the stripe at its left edge
* android, desktop: Support SimpleX in settings, badge benefits shown
* android, desktop: more space under the what's new crowdfunding image
* ci: desktop references of v7.1 what's new and the settings badge row
* android, desktop: crowdfunding page without contact button, badge texts
* ci: desktop references of what's new with one rocket
* ui: what's new in v7.1, badge links and benefits, investor offer in store
* ui: localized crowdfunding texts on iOS, badge button kept in place
* ci: iOS references of v7.1 what's new, badge row and store screens
* ui: badge instead of the phone picture in what's new
* ui: what's new crowdfunding section without the investor count
* ui: what's new badges section without a picture
* ci: what's new references without the picture and investor count
* ui: investor offer on badge store screens in every country
* ui: shorter subscription terms and store notes on badge screens
* ios: subscription terms without the cancellation window
* ios: subscription terms worded as on Google Play
* ui: shorter badge errors and subscription notes
* ui: translations of the shorter badge texts; shorter purchases alert on iOS
* ui: shorter link, channel signing and badge texts, with translations
* ui: Your badge for every badge except legend in settings
* android, desktop: badge button at one height on the store screens; crowdfunding texts translatable
* android, desktop: smaller crowdfunding image
* android, desktop: what's new references with the smaller crowdfunding image
* docs: update privacy policy for supporter badges
* docs: badge requests hide the IP address, crypto paid to company addresses
* docs: the store service never receives the IP address of app requests
* docs: cryptocurrency payments accepted directly
* docs: the store service has no user accounts
* docs: a badge proof discloses the store service's public key
* docs: a badge proof discloses the number of a preset signing key
* docs: one signing key for all users, rotated periodically
* docs: plan resized profile images from files
* core: crop and resize profile images set from files
* docs: profile image from a file in the chat relay docs
* core: faster crop of profile images
* android, desktop: exact alignment and spacing
* android, desktop: previews of the views changed for alignment and spacing
* ci: desktop references of exact alignment and spacing
* android, desktop: preview of chat rows with unread messages, mentions and muted chats
* android, desktop: deleted text, What's new and app version keep master's layout; link strip follows iOS
* ci: desktop references of the review round and of chat rows with unread messages
* android, desktop: previews of the private routing and downgrade pickers and of the migration network step
* ci: desktop references of the private routing and downgrade pickers and the migration network step
* android, desktop: channel text aligned; master row date, strips, icons
* ci: desktop references of reverted views and the aligned channel icon
* android, desktop: the pull request holds only the agreed changes; new chat sheet and previews of reverted changes as on master
* ios: exact alignment and spacing
* ios: previews of the views changed for alignment and spacing
* ci: iOS references of exact alignment and spacing
* ios: single check and the time under a received emoji keep their places
* ios: deleted text, link strip text, What's new, app version, QR cards and onion hosts keep master's layout; info headers get more space above the avatar; chat row preview with contact requests
* ci: iOS references of the review round and of chat rows with contact requests
* ios: keep master's tags, requests, group icon, footers, compose strips
* ci: iOS references of the views back on master's layout
* ios: the pull request holds only the agreed changes, without previews of reverted ones
* ios: contact request view as on master