* plan: UI improvements to improve LLM usage via SimpleX
* core, ui: types for chat layout
* core, ui: settings for alternative terminal-like chat layout for managing LLMs or other service bots
* plan: message priority
* fixes
* query plan
* update plans
* remove silent messages plan
* rename migrations
* implement layout
* amend
* fix
* fix
* fix
* improve
* time on the right, sender name in blue
* no avatar in direct chats
* better previews
* update, fixes
* update
* time gap
* changes
* ui: terminal layout line heights, gaps and time placement
* ui: simplify terminal meta layout, correct its docs and tests
* ui: right-to-left emoji edge in terminal rows, time placement tests
* android, desktop: raise Kotlin compiler memory to 4 GB
* ui: terminal captions as follow-up text, classic event separators
* ui: terminal media edge and overlay time, plan decisions
* ui: simplify terminal row separation, correct doc line references
* ui: keep the media time inside terminal rows, restore caption conditions
* ui: terminal heading capitals at large font scales, idle live message time
* ui: rename the classic voice-with-text flag, correct the meta copy docs
* ui: smaller terminal layout diff, sender gap and meta names
* ui: terminal row as tall as the media time
* docs: remove the chat layout section from the bots readme
* docs: shorten the terminal layout section of the chat view
* core: address settings API as on master, /auto_accept reads the stored layout
* ui: smaller terminal headings
* ui: classic sender rows and avatar rule as on master
* ui: classic reply quote text colour as on master
* ios: keep the chat layout setting with other UI settings
* ui: go-to button at the end of terminal rows, no gutter in direct chats
* ui: forwarded arrow on the header line of terminal rows, above the time
* ui: forwarded arrow centred above the time line of terminal rows
* ios: terminal chat layout, chosen per app, profile and chat
* ios: event time reserve of three spaces, app layout picker as Kotlin
* ios: spec and plan of the terminal chat layout
* ios: classic message text at 87% in dark themes, as terminal rows
* ios: terminal gaps scaled by the body size, 17/16 of Kotlin values
* ios: terminal quote sender at 13.5pt, thumbnail at the item end
* ios: product docs of the terminal layout, plans updated for iOS
* ios: chat scenes rendered to PNG by a unit test in the simulator CI
* ios: snapshots rendered by the smoke test script, workflow unchanged
* ios: terminal names at 13.5 x 17/16 pt, as the gaps
* ios: Markdown views at the 87% message colour in dark themes
* ios: terminal quote thumbnail 12pt after the quote text or the bar
* ios: terminal rule-only message widened by a wider quote or header
* ios: member avatars scaled with the text size, as in the chat list
* ios: snapshot rows at their own height, as list cells, so text wraps
* ios: member avatars back at 34pt, for the snapshot before scaling
* ios: member avatars scaled with the text size, as in the chat list
* ui: terminal quote thumbnail 12dp after the quote text or the bar
* ios: classic group bubble width follows the scaled member avatar
* ci: ios-sim README describes the snapshots rendered after the smoke test
* ios: scratch, padding variants for the I7 and I8 renders, to revert
* ios: revert the scratch padding variants after their renders
* ui: contrast of the voice message button in terminal rows
* ios: scratch, spacing variants and list margins to render, to revert
* ios: revert the scratch spacing variants after their renders
* ios: snapshots at a fixed date, in UTC and the en_US locale
* ios: snapshots drawn as 8-bit sRGB without alpha
* ci: compare iOS snapshots with the references in the repository
* ci: record and check iOS snapshot references on GitHub's runner
* ios: scratch, list margins on the remaining screens, to revert
* ios: revert the scratch list margins after their measurement
* ci: snapshot scripts executable, as the other CI scripts
* ios: scratch, voice circle variants in light themes, to revert
* ios: revert the scratch voice circle variants
* ios: one 12pt padding at the edges and after avatars in terminal rows
* ios: classic group sender name on the bubble edge
* ui: one 12dp padding at the edges and after avatars in terminal rows
* ios: one heading scale in both chat layouts
* ios: snapshot references of the chat scenes
* docs: leave the headings and classic lines of the plan to ep/classic-bubbles
* ios: declare terminal layout functions inside types
* ios: keep layout constants at file scope
* ios: keep file-scope functions, move only extension members into types
* ios: snapshot tests record row heights at first layout and the appearance layout switch
* ios: appearance preview follows the chat layout setting at once
* ios: snapshot test measures first-layout rows by SwiftUI and by cells
* ios: chat rows measured at the chat width when they first appear
* ios: snapshot test checks that chat rows keep their first height after a reload
* ios, ci: references of terminal and classic chat scenes, dark message text
* ios: message text at 95% in dark themes
* ios, ci: references with message text at 95% in dark themes
* ios: media in terminal rows end at the time's right inset
* ios, ci: references with terminal media at the time's right inset
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
* plan: UI improvements to improve LLM usage via SimpleX
* core, ui: types for chat layout
* core, ui: settings for alternative terminal-like chat layout for managing LLMs or other service bots
* plan: message priority
* fixes
* query plan
* update plans
* remove silent messages plan
* rename migrations
* implement layout
* amend
* fix
* fix
* fix
* improve
* time on the right, sender name in blue
* no avatar in direct chats
* better previews
* update, fixes
* update
* time gap
* changes
* ui: terminal layout line heights, gaps and time placement
* ui: simplify terminal meta layout, correct its docs and tests
* ui: right-to-left emoji edge in terminal rows, time placement tests
* android, desktop: raise Kotlin compiler memory to 4 GB
* ui: terminal captions as follow-up text, classic event separators
* ui: terminal media edge and overlay time, plan decisions
* ui: simplify terminal row separation, correct doc line references
* ui: keep the media time inside terminal rows, restore caption conditions
* ui: terminal heading capitals at large font scales, idle live message time
* ui: rename the classic voice-with-text flag, correct the meta copy docs
* ui: smaller terminal layout diff, sender gap and meta names
* ui: terminal row as tall as the media time
* docs: remove the chat layout section from the bots readme
* docs: shorten the terminal layout section of the chat view
* core: address settings API as on master, /auto_accept reads the stored layout
* ui: smaller terminal headings
* ui: classic sender rows and avatar rule as on master
* ui: classic reply quote text colour as on master
* ios: keep the chat layout setting with other UI settings
* ui: go-to button at the end of terminal rows, no gutter in direct chats
* ui: forwarded arrow on the header line of terminal rows, above the time
* ui: forwarded arrow centred above the time line of terminal rows
---------
Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>