Show Go button on content-filtered messages (images, links, voice, etc.)
to navigate to the message in the full unfiltered chat history.
Reuses existing search Go button and openAroundItemId mechanism.
closeSearch() added onSearchValueChanged("") in d30dde5 (content filter
feature) which triggers async apiFindMessages — this clears the items
that openChat just loaded around the target and replaces them with
initial messages. Skip the reload when openAroundItemId is already set.
* ui: call button in toolbar with audio/video submenu, filter in menu on mobile
- Call button always outside three-dots menu; tapping it opens a submenu
with Audio call and Video call options (both Android/iOS and desktop)
- Desktop: two toolbar buttons — Filter + Call
- Android/iOS: call button in toolbar; filter options move into the
three-dots menu below a divider line
- Groups: filter button always in toolbar on all platforms
- Edge case: when calls are disabled/unavailable for a contact, the call
button is hidden and the filter button is shown in its place in the
toolbar instead
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* ui: call button before filter button on desktop toolbar
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
* directory: show knocking status in listings, trigger re-review on knocking change
- fix sameProfile to include memberAdmission so toggling knocking triggers re-review and regenerates the web listing JSON
- show "Knocking: enabled" in bot search results and /list output
- show "Knocking: enabled" in web directory UI
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* directory: rename "Knocking: enabled" to "Member admission: enabled"
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* directory: member admission must trigger review
* update text, refactor
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
* core: small text markdown
* ios: small markdown
* desktop, android: small markdown
* fix font size
* small markdown on website
* update ios core library
* update bot api docs
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
* core: add custom data commands, fix groups parser
- Add APISetGroupCustomData and APISetContactCustomData to ChatCommand,
with parsers (/_set custom #, /_set custom @) and processors
following the APISetChatUIThemes pattern
- Fix APIListGroups parser missing space ("/_groups" -> "/_groups ")
to align with auto-generated cmdString
- Add chatCommandsDocsData entries for APISetGroupCustomData,
APISetContactCustomData, and APISetUserAutoAcceptMemberContacts
* core: named fields for codegen, run codegen
- Use named record fields for APISetGroupCustomData,
APISetContactCustomData, APISetUserAutoAcceptMemberContacts
(required for chatCommandsDocsData field resolution)
- Fix OnOff field name to "onOff" (avoids clash with User field)
- Remove APISetUserAutoAcceptMemberContacts from undocumentedCommands
- Regenerate COMMANDS.md and commands.ts
* nodejs: add ChatApi wrappers for custom data and apiGetChat
- apiSetGroupCustomData, apiSetContactCustomData
- apiSetAutoAcceptMemberContacts
- apiGetChat (manual wrapper, APIGetChat undocumented)
* core: fix `/_groups` command
add missing space after `/_groups`. fixes#5195
* remove space in CLI commands (they would break parser)
---------
Co-authored-by: Evgeny <evgeny@poberezkin.com>
* add implementation plan
* website: remove unnecessary libsodium direct dependency from file page plan
* website: update file page plan for async encryption, tailwind, no worker
* add product plan
* update product plan based on the feedback
* remove implementation details from product plan
* update product plan
* add updated implementation plan
* website: add build infrastructure for /file route
* website: fix card click and overlay hash handling for /file page
* website: add /file page with XFTP file transfer and protocol overlay
* website: redesign /file page layout and styling
* fix(website): scope hero h1/h2 font overrides to .hero-section-1
* fix(website): fix /file overlay diagram scaling on short viewports
* style(website): match /file page top padding with /directory
* website: remove file page in navbar
* website: switch xftp-web to official one
* website: fix web.sh
* update texts
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>