Skip to content

Releases

1.8.0

Choose a tag to compare

@github-actions github-actions released this 03 Nov 15:37
89f115c

What's Changed

Added

  • Added Plugins (Beta) on Android, iOS, native macOS, and Desktop. Extend Flare with additional services, install .fpp packages or the latest stable version from a public GitHub repository, review permissions, and check for updates without restarting the app. Available features depend on each plugin. Plugins are not available on Web.
  • Added the ability to create and update local plugins with the built-in Agent. Plugin source and revisions are saved independently of the conversation, with validation progress and errors available in Settings → Plugins.
  • Added plugin account and lifecycle management, including recovery after runtime failures and cleanup of associated accounts, credentials, and local account data when a plugin is uninstalled.
  • Added image translation to native media viewers, with Tencent Cloud, OpenAI Images compatible services, Gemini, and Qwen-MT-Image providers. Configure a service in Translation settings, switch between the original and translated image, translate again, and save or share the result. Supported providers offer model discovery, and OpenAI Images compatible services can reuse the basic AI configuration.
  • Added reply selection when sharing a post as an image on native clients. Choose replies and supported nested replies to include in a long image. Export waits for included media to load and reports unavailable media or oversized output.
  • Added global and per-account proxy settings on native clients, supporting HTTPS and SOCKS5 proxies, connection testing, and per-account inheritance or direct connections. Account media follows the account's route; native in-app webviews use the global setting. Nostr continues to use system routing. Plain HTTP proxies and proxy authentication are not supported.
  • Added read-only Weibo group timelines, plus Friends Circle and Private Following feeds, with native sidebar shortcuts and support for adding them as timeline tabs.
  • Added Weibo post visibility selection for new posts and reposts: Public, Friends, and Only me.
  • Added Limit single attachment height to native timeline appearance settings, including per-timeline overrides. Enabled by default, it keeps expanded single visual attachments within half the viewport height, up to 420 dp/pt. Videos retain their aspect ratio; very tall image previews may be cropped. Audio, multiple attachments, and fullscreen viewing are unaffected.

Improved

  • Added independent Agent AI configuration while retaining the option to follow the basic AI settings used for translation and summaries. Expanded reasoning-effort choices and added a configurable model context window.
  • Agent conversations now show completed assistant replies while a run continues. Replies use a more open layout, with improved Markdown image loading, supporting cards, and scrolling for short conversations on Apple platforms.
  • Improved long-running Agent conversations with automatic context summaries and saved checkpoints while retaining the original history. Runs approaching their step limit finish with a summary of completed work and next steps.
  • Added clearer Agent error categories and retry controls. Supported failed model requests resume from saved boundaries with completed tool results retained.
  • Notifications and Discover now remember the last manually selected account. Discover also retains the submitted search when switching accounts, and deleted accounts are removed from saved selections.
  • Simplified Bluesky handles throughout posts, profiles, account pickers, and messages by removing the redundant server suffix from their display.
  • Added clearer empty states across Android and iOS pages and sheets, including search, Discover, accounts, lists, RSS, media, and tab selection. Loading and failed requests remain distinct from an empty result.
  • Restored SwiftUI-based Discover and search lists on iOS.
  • Aligned Apple-platform post-action colors, spacing, count widths, and alignment options with Android. Improved stretched hit areas, right-to-left layouts, larger text sizes, and menu reuse.
  • Added iOS post-action icon and count animations that preserve view identity and row height during updates.
  • Reworked iOS media dismissal with a Photos-style interactive drag: media follows the finger, scales during the gesture, and settles according to drag distance and velocity. Horizontal paging, zooming, and scrolling tall images coordinate with dismissal more consistently.
  • Improved iOS profile layouts for folded screens and system-reserved dividers on supported system versions, including right-to-left layouts and consistent two-column backgrounds.
  • Improved the iOS compose account picker's sizing so it can use the available sheet space.

Fixed

  • Fixed timelines excluded from mixed feeds becoming unavailable when opened on their own. Excluded group children remain available for editing, and standalone tabs remain accessible on Web.
  • Fixed recommendation feeds being treated as chronological gaps in time-merged Home timelines. Older posts fetched during a refresh remain buffered for ordinary pagination instead of being inserted into the wrong history segment.
  • Improved reading-position preservation when loading missing posts on Android, iOS, macOS, and Desktop. Gap fills anchor to the following post where possible and retain the anchor through intermediate paging updates.
  • Fixed platform-provided translations disappearing or flickering during refresh, including compatibility with previously cached translations.
  • Fixed notification entries being incorrectly collapsed as ordinary reply chains.
  • Fixed composer visibility falling back to Public when the saved choice is unsupported by the selected platform. New posts, account changes, and restored drafts now resolve visibility against the available platform choices.
  • Fixed Android image loads repeatedly failing on incomplete or malformed cached files. On Android 9 and later, corrupt entries are removed and eligible requests retry from the network.
  • Fixed media-grid crashes when the available width or height is smaller than the requested spacing or layout constraints.
  • Fixed Android gallery bookmark actions losing their original URI routing.
  • Fixed embedded FANBOX article links bypassing in-app link handling on Android.
  • Fixed Weibo session renewal by following the trusted SSO redirect chain and carrying updated cookies between steps. Refreshes run more frequently while the app is in use, and expired sessions correctly require signing in again.
  • Fixed Weibo Live Photos being displayed only as still images when a playable video is available.
  • Restored Weibo IP location labels in post and comment author subtitles, with the source label as a fallback.
  • Fixed Nostr QR login cancellation and stale-session errors, and improved compatibility with bunker responses containing explicit null fields.
  • Fixed Pixiv Ugoira media failing to appear in the iOS gallery detail view.
  • Fixed successful iOS re-login dismissing the underlying navigation page or crashing when no page was available to pop.
  • Fixed iOS timeline jumps during refresh completion and navigation-bar collapse. Loaded avatars and media remain visible when refreshed posts are prepended, and single-media geometry stays stable as system bars change size.
  • Fixed Apple image previews flashing or clearing during cache retrieval and resizing. Existing previews remain visible while replacement image sizes load.
  • Fixed iOS Liquid Glass edge seams and press feedback in affected timeline and profile controls.
  • Fixed media-viewer controls and the post card hiding or appearing out of sync, and corrected iOS post-summary measurement when reopening the card.
  • Fixed Apple-platform shared screenshots losing padding when rendered outside a window's safe area.
  • Fixed video playback crashes when returning to the foreground on Android and Desktop after suspended playback entries have been released.
  • Fixed ALT buttons, playback badges, and sensitive-content controls being clipped or becoming inaccessible on narrow media previews.
  • Improved the iOS latest-posts prompt transition by fading it together with its movement.

Performance and Internal Changes

  • Reduced Apple-platform image decoding and memory work by downsampling previews to their displayed size. Animated images retain animation, and zoomable media viewers continue to load original-resolution images.
  • Reduced iOS timeline layout work by reusing layout plans, applying height changes incrementally across columns, and preparing row heights before display.
  • Reduced duplicate rich-text measurement, especially for short posts and previews, and skipped unnecessary preview measurement for unlimited text.
  • Created optional iOS timeline media views and video overlays on demand, and reused post-action colors, icons, and measurements.
  • Reduced repeated mixed-timeline cursor decoding and reused continuation state while keeping database changes visible to subsequent loads.
  • Migrated Nostr from the Rust SDK to Quartz 2.13.0, retaining compatibility with legacy cached events and existing signer modes.
  • Added platform-specific plugin JavaScript runtimes: Android JavaScript sandboxing, JavaScriptCore on Apple platforms, and QuickJS on Desktop. Added recovery for Android sandbox startup failures and forward-compatible handling of unknown additive plugin extensions.
  • Added a TypeScript plugin SDK with project initialization, typed templates, manifest JSON Schema, packaging tools, examples, and an AI authoring guide. Desktop and native macOS also support local-directory development, validation diagnostics, and reloading while retaining the last working version after invalid edits.
  • Expanded regression coverage for plugins, proxy routing, image translation and export, reply sharing, remembered account selections, timeline gap anchoring...
Read more

1.7.8

Choose a tag to compare

@github-actions github-actions released this 21 Oct 12:14
86f8799

What's Changed

Added

  • Added an optional Remember Home reading position setting on Android, iOS, macOS, and Desktop. When enabled, Flare restores your last Home tab and reading position after reopening and keeps your place when refreshing. This setting is disabled by default.
  • Added Load missing posts controls between newly refreshed posts and retained Home history, with loading and retry states. A View latest posts button lets you jump to new content when you are ready.
  • Added image paste and drag-and-drop support to the composer on Android and iOS, including image input from supported Android keyboards. Imports preserve attachment order and animated GIF files, retain independent text, and wait for pending imports before sending or saving a draft.
  • Added automatic RSS opening-mode recommendations when adding feeds. Flare checks recent articles to recommend webpage full text, feed content, or opening in a browser. Discovered feeds can have separate choices, and manual selections are preserved.
  • Added missing Pixiv artwork sharing controls on Android phones, iPad, macOS, and Desktop.

Improved

  • Corrected Bluesky character counting for combined emoji and combining characters, and added validation of its UTF-8 byte limit.
  • Improved Mastodon character counting for content warnings, shortened URLs, and remote mentions. URL weights now follow instance configuration, and legacy instance character-limit responses are supported.
  • Misskey now reads the instance’s configured post length limit, counts Unicode code points, and validates content warnings separately.
  • Improved X character counting with Unicode normalization and more accurate emoji-sequence and URL handling.
  • Replaced Nostr’s fixed composer character cap with checks against each relay’s advertised content and message-size limits. Publishing excludes relays whose declared limits would reject the event while retaining the required success threshold.
  • Unified final text validation across regular posting, saved drafts, cross-posting, and agent-assisted posting. Invalid text is rejected before platform media uploads begin, and cross-posting retains the restrictions of every selected account.
  • Improved mixed-timeline pagination so buffered posts survive reopening and successful sources remain usable when another source fails. Failed continuations remain available for retry.
  • Improved RSS content handling by preferring usable embedded full content from RSS and RDF feeds and selecting article links correctly in Atom feeds.
  • Renamed RSS reading choices to Webpage full text and Feed content to make their behavior clearer.
  • Applied Home refresh settings consistently to Deck timeline columns on Android, iOS, and Desktop.

Fixed

  • Fixed RSS feed and article URLs being forcibly rewritten from HTTP to HTTPS.
  • Fixed RSS articles failing to display when webpage extraction fails or times out despite usable content being available in the feed. Relative article resources are resolved against the final URL after redirects.
  • Fixed the native macOS RSS list ignoring the selected reading mode. Feed content and browser-opening choices are now respected.
  • Enabled selecting and copying RSS article titles on Android and iOS.
  • Fixed profiles opened by handle failing to resolve when the server returns different canonical casing. Profile loading also avoids transient “Data is null” errors while waiting for cached data.
  • Fixed X profile links containing full-width @ mentions opening an incorrect username.
  • Fixed empty custom-emoji responses being treated as missing data.
  • Fixed Bluesky custom feeds sharing cached timeline state between different accounts.
  • Fixed reaction-list crashes on Android and Desktop when reactions are removed or the list becomes empty.
  • Fixed Android media-saving crashes when MediaStore cannot create or publish a file. Incomplete output is cleaned up when saving fails or is cancelled.
  • Fixed unintended rounded clipping on stationary Android pages and in split-screen or windowed layouts. Device-corner clipping is now limited to navigation transitions.
  • Reworked Android predictive-back animations to follow vertical finger movement, respond to release velocity, and recover smoothly from cancelled or overlapping gestures.
  • Fixed short videos freezing during repeated playback on Apple platforms while preserving pause and seek behavior.
  • Fixed iOS GIF playback for image URLs with query parameters or uppercase file extensions.
  • Fixed the iOS media viewer briefly displaying another image before the selected image appears.
  • Fixed clipped final lines in collapsed Apple-platform post previews, including CJK text, links, quotes, and larger accessibility text sizes.
  • Fixed quoted-post media escaping rounded card boundaries on iOS.
  • Fixed iOS timeline flicker and reading-position jumps during refresh completion, large batches of incoming posts, and delayed cell-height updates. Gallery timelines also preserve their position more consistently during updates.
  • Fixed iOS media post-details sheets expanding into a full-screen presentation in landscape.
  • Fixed media-viewer post actions ignoring the Hide post actions setting on Android and iOS.
  • Fixed disabled content warnings still being included in native posts.
  • Fixed send and draft-save preparation failures leaving completion callbacks unresolved. Failures now release the pending operation and report the error.
  • Removed an incorrect subtitle from the iOS link account picker.

Performance and Internal Changes

  • Reduced iOS collapsed-post rendering work by laying out the required preview text and loading only the inline images needed for that preview.
  • Reduced timeline database decoding by reusing unchanged cached posts and batching scattered updates. Cached Home startup avoids loading large stored pagination payloads.
  • Improved iOS cell-height caching by batching measurements and discarding outdated results before updating layout.
  • Added regression coverage for persistent reading positions, timeline gaps, mixed-source failures, image paste and drop, draft preparation, text limits, RSS fallback and recommendations, predictive back, media saving, video looping, and rich-text clipping.
  • Updated Kotlin to 2.4.20, Compose Multiplatform to 1.12.2, Material 3 to 1.5.0-beta01, Navigation 3 to 1.3.0-alpha02, Paging to 3.5.3, DataStore to 1.3.0-rc01, and AndroidX SQLite to 2.7.1.
  • Updated Sentry to 8.61.0, Firebase BoM to 35.0.2, CrashKiOS to 0.10.1, SKIE to 0.10.15, and Bluesky lexicons to 2026.10.15.
  • Updated Apple dependencies, including Kingfisher 8.13.0 and ChatLayout 2.5.2, and upgraded Gradle to 9.8.1.
  • Updated the Web toolchain to SvelteKit 3.0.1, Svelte 5.57.2, Vite 8.3.4, and pnpm 12.11.2, with corresponding configuration and dependency updates.

Full Changelog: 1.7.7...1.7.8

1.7.7

Choose a tag to compare

@github-actions github-actions released this 30 Sep 08:40
87adc21

What's Changed

Added

  • Added native Pixiv Ugoira animation playback in timelines, artwork details, and media viewers on Android, iOS, macOS, and Desktop, with coordinated autoplay, loading progress, and retry controls.
  • Added Pixiv Ugoira export as MP4 on Android, iOS, and macOS. Exports preserve the original frame timing and include progress, cancellation, and an option to export at a smaller resolution when the device cannot encode the original size.
  • Added a draggable post-details panel to the media viewer on Android and iOS. Drag up to read the full post, view quoted posts, and use post actions without leaving the viewer. A new appearance setting controls whether post details are shown.
  • Added Bluesky uploads for MP4 and MOV videos and animated GIFs, including media attached to quote posts. GIF uploads retain their animated presentation.

Improved

  • Bluesky home timelines now hide replies to accounts you do not follow while keeping self-replies and replies to your own posts.
  • Unified adaptive native lists across iOS timelines, profiles, search, discovery, local history, and user lists. Column counts now follow the available width, while standard post-detail screens remain centered in a single column.
  • Improved initial timeline loading and native pull-to-refresh on iOS. Initial content no longer waits for the refresh indicator to finish appearing, loading placeholders avoid unnecessary insertion animations, and refresh completion stays coordinated with content updates.
  • Reduced memory use for large media uploads and draft attachments by streaming file data. Animated GIFs bypass still-image compression, and upload filenames and MIME types are normalized from the actual file contents where recognized.
  • Improved media imports on iOS and macOS by retaining file-backed attachments until draft saving finishes. The iOS photo picker preserves original GIF and video files, shows video attachment tiles, and prevents sending before selected media has finished loading.
  • Improved upload validation and error handling, including Mastodon instance media limits and explicit failures when a service does not return a media ID. X and Bluesky video uploads wait for processing to finish before publishing the post.
  • Improved posting visibility selection and validation when accounts or posting targets change. Saved visibility choices fall back to supported options, and multi-account posting uses the options shared by its targets.
  • Improved login platform discovery with concurrent server probes and timeouts while preserving the priority of native service detection over compatibility fallbacks.
  • Made long-post and quote folding consistent across Android, iOS, macOS, Desktop, and Web. Folding follows rendered content height, and the expand control appears only when content actually exceeds the folding threshold.
  • Aligned icons more consistently in stretched post-action bars, keeping their spacing stable as counters change.
  • Included Pixiv animation files in cache clearing, with Ugoira cache sizes included in Android and Desktop storage totals.

Fixed

  • Fixed notification and mention feeds losing or merging entries through automatic reply-chain collapsing. Separate notifications about the same post now retain their own identities and notification timestamps while sharing updated post content.
  • Fixed X notifications omitting posts contained in timeline modules and losing quote or repost presentation in referenced posts.
  • Fixed overlapping timeline pages moving already loaded posts to the bottom when loading older content. Existing posts can update without changing their reading position.
  • Fixed duplicate timeline and media keys causing crashes on Android and Desktop, including repeated attachments and item identity collisions across accounts.
  • Fixed opening or returning from a media viewer selecting the wrong attachment when the same media appears more than once on Android and Desktop. Carousel selection now follows the attachment's position rather than its URL.
  • Fixed crashes when adding list members whose profiles were not cached. Concurrent additions are deduplicated, and existing memberships remain recognized even when their profile data is missing.
  • Fixed cancelled sends leaving drafts stuck in a sending state. Unsent destinations remain retryable, and destinations that already published successfully are removed before cancellation can cause them to be retried.
  • Fixed Bluesky video saving by resolving downloadable video blobs instead of saving HLS playlists, including videos in quoted posts. Downloaded files also use the correct media filename and extension.
  • Fixed X Article images appearing in the wrong order and embedded videos rendering as still images instead of playable video blocks.
  • Fixed HTML entities such as & appearing undecoded in translations supplied by X.
  • Fixed relative links in Mastodon posts and profiles, Pixiv captions, FANBOX articles, and Android RSS content by resolving them against the source page.
  • Fixed iOS timeline jumps during pagination, refreshes, incoming posts, and changes to measured cell heights. Reading positions also survive temporary loading placeholders, rotation, and window resizing more reliably.
  • Fixed iOS timelines carrying a previous list's scroll position into a different list or account. Search results also keep separate list state when the query or account changes.
  • Fixed late-loading post headers and top sections remaining offscreen when an iOS list is at the top, including during pull-to-refresh, while preserving the reading position when already scrolled down.
  • Fixed iOS media carousels retaining outdated item dimensions after rotation or resizing.
  • Fixed an Apple-platform video playback crash when a previous looping video was still loading as the shared player was reused.
  • Fixed iPad tab-bar crashes when rotating or resizing between sidebar and compact layouts.
  • Fixed iOS media swipe-to-dismiss gestures failing with embedded pager views, and media failing to return to its original position after a cancelled dismissal drag. Post-sheet interactions no longer trigger the viewer's dismissal gesture.
  • Fixed clipped or inconsistently sized iOS media summaries by showing profile names and handles on separate lines and measuring the summary together with its media controls.
  • Fixed extra horizontal padding in plain-style Weibo detail headers on iOS.
  • Fixed custom post-action layouts inserting disabled placeholders for unavailable actions. Unsupported actions are omitted, and empty action bars no longer leave unnecessary spacing.
  • Fixed Android crashes when opening malformed links or links without an available handler. Failed link launches now show an error instead of crashing.
  • Fixed Android media-grid crashes when an attachment list shrinks during an update.
  • Made file-based media replacement on macOS preserve the existing destination until the new export has been copied successfully.

Performance and Internal Changes

  • Reduced redundant ancestor processing when collapsing long reply chains, improving large-thread and mixed-timeline loading performance.
  • Reduced unnecessary iOS timeline snapshot rebuilds and offscreen measurements. Visible cells refine cached heights, and rapid content updates are coalesced before reaching the collection view.
  • Added regression coverage for iOS reading positions, refresh and resize behavior, media-sheet gestures, Pixiv playback and MP4 encoding, streaming uploads, draft cancellation, notification identities, list membership, duplicate media selection, HTML links, and invalid Android links.
  • Updated Compose Multiplatform to 1.12.1, Material 3 to 1.5.0-alpha29, Coil to 3.6.3, Ktor to 3.6.0, Media3 to 1.11.1, Sentry to 8.58.0, AndroidX Core to 1.19.1, CrashKiOS to 0.10.0, QRose to 1.3.0, ColorPicker Compose to 1.3.0, Desktop Navigation 3 to 1.1.2, and Bluesky lexicons to 2026.09.22.
  • Updated Android Gradle Plugin to 9.4.1, Gradle to 9.8.0, the BuildConfig plugin to 6.1.1, and the dependency-updates plugin to 0.64.0.

Full Changelog: 1.7.6...1.7.7

1.7.6

Choose a tag to compare

@github-actions github-actions released this 18 Sep 06:00
91b8f86

What's Changed

Added

  • Reworked timeline video playback on Android, iOS, macOS, and Desktop. Playback is now coordinated across the timeline so only the most relevant video plays, with the video closest to the viewport center prioritized after scrolling stops.
  • Video playback position and carousel selection are now preserved when moving between a timeline and the media viewer, allowing playback to resume from the previous position.
  • Added automatic navigation-bar minimization while scrolling timelines on iOS 27.
  • Migrated VVO post and comment detail screens on iOS to the native UIKit timeline implementation.

Improved

  • Significantly improved accessibility across Android, iOS, macOS, and Desktop, including clearer screen-reader labels and action states, media descriptions and missing-alt-text fallbacks, accessible compose controls, timeline announcements, and improved keyboard interaction where supported.
  • Improved post-detail refresh and paging for Bluesky, Mastodon, Misskey, Nostr, and X. Cached ancestors and replies remain visible during refreshes, reply paging resumes correctly, and stale responses can no longer overwrite newer content.
  • Improved the presentation cache for reposts, quotes, and inline parent posts, preserving nested quotes and cached presentation details across refreshes and timeline updates.
  • Modernized SwiftUI state observation and update handling across Apple platforms, reducing unnecessary view updates and improving timeline, video, text-layout, and settings performance.
  • Improved iOS timeline behavior by preserving post-detail scroll positions, resuming reply paging, retaining replies after refresh, and animating tab-refresh scrolling more reliably.
  • Added missing translations and expanded localization coverage for the new accessibility and media-control text.

Fixed

  • Fixed Bluesky sessions being lost during transient network, rate-limit, or authorization failures. OAuth refreshes now stay on the authorization server, DPoP nonce challenges are handled separately from token expiry, and stale responses cannot restore rotated credentials.
  • Fixed X timelines failing when the server returns newly introduced or otherwise unknown timeline instructions.
  • Fixed duplicate conversation threads appearing in chronological mixed feeds when an inline parent had already been displayed.
  • Fixed quoted and reposted posts losing their configured action layout, including standalone quote posts.
  • Fixed unavailable actions disappearing from custom post-action layouts. Configured actions now remain visible in a disabled state when the current service or post does not support them.
  • Fixed nested quotes and repost presentation being lost for inline parent posts, including on Web.
  • Fixed common Pixiv artwork and profile links not opening in Flare, including URLs without www, localized /en URLs, and URLs with trailing slashes.
  • Fixed oversized media in profile galleries exceeding the intended item height.
  • Fixed bilingual post text on iOS occasionally reusing a translated value as the original text after changing translation settings.
  • Fixed iOS media viewers ignoring safe-area insets.
  • Fixed iOS video gestures intercepting player controls and restricted long-press playback acceleration to the intended double-speed gesture.
  • Fixed iOS translation indicators not relaying out after their state changed.
  • Fixed initial loading on iOS profiles, post details, and galleries incorrectly displaying refresh indicators.
  • Fixed standalone iOS timelines not honoring their configured appearance.
  • Fixed an Android media-dismissal scrim remaining visible after the viewer closed.
  • Fixed Android paging crashes caused by item counts, keys, and content being read from different paging snapshots.
  • Fixed the Android “new posts” banner continuing to observe an outdated paging snapshot after refreshes.
  • Updated Android search bars, sliders, media controls, and related Material components for compatibility with the latest APIs.

Performance and Internal Changes

  • Added extensive regression coverage for coordinated video playback, centered-video selection, media-viewer handoff and resume, post-detail context loading, paging snapshot publication, the Android new-posts banner, Bluesky OAuth recovery, X timeline decoding, Pixiv deep links, post-action layouts, translation caching, and accessibility semantics.
  • Updated Apple dependencies including ChatLayout to 2.4.3, Firebase to 12.19.1, Kingfisher to 8.12.0, SwiftUI-Flow to 3.5.1, and swiftui-introspect to 27.0.0.
  • Updated Kotlin to 2.4.20, Compose BOM to 2026.09.00, Navigation 3 to 1.2.0-rc01, Material 3 to 1.5.0-alpha28, Adaptive Navigation 3 to 1.3.0-rc01, Room to 3.0.3, Coil to 3.6.2, Sentry to 8.56.0, Firebase BoM to 34.19.0, Koin Compiler Plugin to 1.2.1, DataStore to 1.3.0-alpha11, Robolectric to 4.17, Okio to 3.18.2, KSP to 2.3.12, QRose to 1.2.1, and Koog to 1.2.0-SNAPSHOT.
  • Improved Apple build compatibility, Android CI configuration, paging test reliability, and packaged Desktop runtime support.

Full Changelog: 1.7.5...1.7.6

Full Changelog: 1.7.5...1.7.6

1.7.5

Choose a tag to compare

@github-actions github-actions released this 04 Sep 12:40
e1c4662

What's Changed

Added

  • Profile tabs now load asynchronously on Android, iOS, macOS, Desktop, and Web, with dedicated loading placeholders, error states, and retry actions.
  • X profiles now include a Reposts tab. Highlights and Articles are shown dynamically when available for that profile.
  • Added a global and per-timeline Show emoji reactions appearance option on Android, iOS, macOS, and Desktop.
  • Added bidirectional vertical swipe-to-dismiss to the iOS media viewer. The gesture coordinates with zoomed and extra-tall images, follows the release direction, fades the viewer background, and restores the previous position when cancelled.

Improved

  • Reworked iOS profile navigation with horizontally swipeable timelines, a shared collapsing header, tab indicators that follow swipe progress, per-tab scroll-position preservation, and a waterfall media gallery.
  • Made Apple profile tab bars horizontally scrollable so larger and dynamically generated tab sets remain usable.
  • Improved profile loading placeholders, page reuse, media transitions, scroll indicators, iPad safe-area handling, and empty-timeline refresh behavior.
  • Updated emoji reactions on Apple platforms to wrap into two rows in timelines with an expandable Show more action. Custom emoji now preserve their aspect ratio, static and animated assets render more consistently, and selected reactions are easier to distinguish.
  • Improved FANBOX article rendering for current and legacy post formats, including formatted text, explicit links, URL and provider embeds, legacy video posts, and HTML entry posts.
  • Standardized English terminology, capitalization, notifications, error and empty states, and accessibility labels across Android, Apple platforms, Desktop, and Web.

Fixed

  • Fixed Bluesky OAuth API requests being sent to the authorization issuer instead of the account’s actual PDS. New and existing OAuth credentials now resolve and validate the DID-advertised PDS, persist the verified endpoint, and retain it across token refreshes.
  • Fixed FANBOX creator timelines failing to decode the current nested posts and pageUrls response shapes.
  • Fixed Misskey status detail showing only partial context. It now loads the ancestor chain and nested replies around the selected note.
  • Fixed iOS profiles jumping after timeline updates, losing tab scroll positions, or becoming unstable during page and layout transitions.
  • Fixed iOS media previews changing layout while the full-resolution image loads, especially for extra-tall images, and stabilized the initially selected media item.
  • Fixed iOS video controls reappearing during temporary speed-up playback.
  • Fixed media carousel settings not being applied to quoted posts and inline reply parents.
  • Fixed legacy twitter.com/{user}/status/{id} links being matched as profiles instead of posts.
  • Fixed fast Android predictive-back gestures skipping the post-commit animation.
  • Fixed long image alt text being clipped instead of scrollable on Android.
  • Improved packaged Desktop CPU compatibility by disabling the architecture-sensitive AOT cache.

Performance and Internal Changes

  • Added regression coverage for dynamic X profile tabs, X deep links, Bluesky OAuth PDS validation and credential migration, FANBOX response formats and article mapping, Misskey nested conversations, iOS media dismissal and image layout, Android predictive back and alt-text scrolling, appearance patches, paging refresh, and Web localization consistency.
  • Updated Gradle to 9.7.1, Android Gradle Plugin to 9.3.2, Compose Multiplatform to 1.12.0, Navigation 3 to 1.2.0-beta01, Material 3 to 1.5.0-alpha27, Lifecycle ViewModel Compose to 2.11.0, Room to 3.0.2, Coil to 3.6.0, Compose MediaPlayer to 0.11.4, MaterialKolor to 5.0.1, Sentry to 8.54.0, Firebase BoM to 34.18.0, Crashlytics to 3.0.8, kotlinx.collections.immutable to 0.5.2, Compose lint checks to 1.6.0, the Twitter parser to 0.5.11, the MFM parser to 0.2.8, and XMLUtil to 1.0.2.1.
  • Updated the Web stack, including Svelte to 5.56.10, SvelteKit to 2.70.3, Vite to 8.2.2, Tailwind CSS to 4.3.3, daisyUI to 5.7.22, Firebase JS to 12.18.0, Font Awesome to 7.3.1, js-joda to 6.1.0, and SQLite WASM to 3.53.0.
  • Added a tested GitHub Actions safeguard for preserving issue content when an issue title or body is erased.

Full Changelog: 1.7.4...1.7.5

1.7.4

Choose a tag to compare

@github-actions github-actions released this 19 Aug 07:42
cf2e135

What's Changed

Full Changelog: 1.7.3...1.7.4

1.7.3

Choose a tag to compare

@github-actions github-actions released this 18 Aug 15:47
80411a4

Added

  • Added an optional carousel layout for posts with multiple media items on Android, iOS, macOS, and Desktop. It can be selected globally or overridden per timeline; Grid remains the default.
  • Added Bluesky Gallery authoring and rendering. Posts can now contain up to 10 images, direct and quoted Gallery embeds are rendered without dropping items, and images can be attached alongside a quoted post. Bluesky image uploads now support up to 2 MB and 4000 × 4000 pixels after compression.
  • Added automatic link previews for Bluesky posts containing a link but no media or quoted post, including a title, description, and optional thumbnail. Preview failures fall back to a normal link without blocking publishing.
  • Added server-provided X Discover topic timelines to the list of timelines that can be pinned as home tabs, with cursor-based pagination.
  • Added Card and Content layouts to screenshot sharing on Android, iOS, macOS, and Desktop, alongside the existing light and dark themes.
  • Added post action menus to Gallery mode. Actions are available through long press on Android and iOS, and right click on macOS and Desktop.
  • Added native-style Android page transitions and predictive-back motion. Edge-swipe progress, cancellation, and completion now produce a continuous transition that respects layout direction, device corners, and light or dark appearance.
  • Added double-tap refresh for the Home and Notifications tabs on iOS. Refresh is triggered only when the selected timeline is already at the top and idle, with haptic feedback and duplicate-refresh protection.

Improved

  • Stabilized carousel measurement and post layout across clients. iOS now uses reusable collection cells, while Apple clients limit autoplay and player allocation to the active carousel media.
  • Restored the collapsible sidebar and sidebar toggle on macOS, and added Command–Return for publishing. Desktop Ctrl–Return handling now triggers reliably on key-down and ignores unintended modifier combinations.
  • The Web composer now obtains media compression limits from the selected platforms instead of maintaining a separate hard-coded table. Cross-posts use the strictest limits of all selected accounts.

Fixed

  • Fixed X notifications for the normalized Timeline API and legacy device-follow data. Notification cursors, users, target posts, timestamps, icons, mentions, click targets, and blue verification are now resolved from the current response format.
  • Fixed Mastodon Discover stopping after the first request. Trending statuses now paginate using limit and offset and stop only when the server returns a short page.
  • Fixed Bluesky and Nostr repost activity ordering. Feeds now use the time of the repost instead of the original post’s publication time.
  • Fixed Nostr profiles losing their cached handle and display name when fresh relay metadata is unavailable.
  • Fixed bare domains in Bluesky posts being serialized as invalid link facets. Values such as example.com are now normalized to an absolute HTTPS URL.
  • Fixed RSS video iframes on iOS and macOS being intercepted as top-level navigation and redirected to an external browser.
  • Fixed incorrect Gallery tile height calculation on iOS, especially for posts containing original and translated text.
  • Fixed Android home links retaining an outdated URI handler, which could cause incorrect in-app browser behavior.
  • Fixed Compose profile menus inheriting customized post-action layouts and consequently hiding or rearranging expected menu actions.

Performance and Internal Changes

  • Replaced the closed platform-type enum with an extensible ID-based platform registry covering metadata, capabilities, login providers, platform detection, deep links, compose behavior, and data-source registration.
  • Added an app database migration from version 11 to 12 that preserves all existing account and credential fields. The cache database advances to version 46 and is rebuilt once after upgrading; account records are not removed.
  • Hardened Bluesky link-card fetching with strict proxy URL validation, disabled redirects, response size and content-type checks, timeouts, and bounded thumbnail compression.
  • Added regression coverage for platform registration and database migration, X notifications and topic timelines, Bluesky facets, link cards and Gallery embeds, Mastodon Discover pagination, Nostr profile fallback and repost ordering, and cache reconstruction.
  • Moved build instructions into CONTRIBUTING.md, documented the Apple and Web project structure and XcodeGen setup, and removed the obsolete .env.sample.
  • Updated the Gradle wrapper to 9.7.0, Compose BOM to 2026.08.00, Material 3 to 1.5.0-alpha26, Navigation 3 to 1.2.0-alpha07, Adaptive Navigation 3 to 1.3.0, Paging to 3.5.1, Media3 to 1.11.0, Ktor to 3.5.2, Sentry to 8.53.0, AndroidX WebKit to 1.17.0, Firebase BoM to 34.17.0, Nostr SDK KMP to 0.44.8, KSP to 2.3.11, XMLUtil to 1.0.2, Compose lint checks to 1.5.4, and the Versions plugin to 0.61.0.

Full Changelog: 1.7.2...1.7.3

1.7.2

Choose a tag to compare

@github-actions github-actions released this 31 Jul 11:39
a48d3bf

Added

  • Added opt-in MXGA filtering on Android, iOS, macOS, and Desktop. It hides matching X posts using MXGA's public account list and text rules, caches the rules locally, checks for updates every 24 hours, and supports manual refresh.
  • Added home timeline refresh settings on Android, iOS, macOS, and Desktop. Users can disable launch-time refresh or automatically refresh the currently selected home timeline every 1, 5, 15, 30, or 60 minutes while the app is active.
  • Expanded X's built-in timelines: renamed Featured to For You, added Popular and Liked, and changed the default X tab set to X, For You, and Popular. The new timelines are also available through shortcuts and tab editing.
  • Added a paginated Highlights tab to X profiles.
  • Added “Prefer platform translations.” When X supplies a complete translation matching the app language, auto-translate can cache and display it without calling the configured translation provider.
  • Added “Show original with translation” across Android, iOS, macOS, Desktop, and Web, including post text, content warnings, and quoted posts.

Improved

  • Reworked translated post rendering so original and translated content remain separate, translated links retain their targets, and text expansion correctly accounts for bilingual content.
  • Improved long-post composing on Android with a scrollable editor that keeps account, media, poll, and referenced-post controls accessible.
  • Referenced posts shown inside native composers are no longer clickable, preventing accidental navigation away while writing.

Fixed

  • Fixed X character counting across Android, iOS, macOS, Desktop, and Web. Remaining length and send eligibility now follow X's weighted rules for CJK text, URLs, and common emoji sequences such as joined families, skin tones, flags, and keycaps.
  • Fixed strict chronological mixed timelines placing an older buffered item ahead of a newer item from another source. Paging state is now persisted so ordering and deduplication also survive retries and mediator recreation.
  • Fixed blocking or muting users when an account had a large cached timeline, and ensured matching cached posts beyond the first cleanup page are removed.
  • Fixed Android posts created from shared media losing URI access after the composer closed. Attachments are now persisted before the UI is dismissed and restored from the saved draft for upload.
  • Fixed individual media downloads from the same post overwriting one another on Android, iOS, and Desktop. Generated filenames now include stable media indexes such as _01 and _02.
  • Fixed reply and quote composer state being reloaded as the selected account initialized, which could reset typed text on Android.
  • Fixed OAuth login on iOS and macOS remaining in a loading state after the external authentication window was canceled or dismissed; non-cancellation errors are now surfaced to the login flow.
  • Fixed iOS multiline composer keyboard and cursor behavior by using a dedicated text editor, and corrected the home tab selection indicator's bottom inset.
  • Fixed iOS inline parent and quoted-post actions failing to refresh after their counts or state changed.
  • Fixed favicon discovery for tabs and RSS sources by preferring standard favicons while retaining Apple touch and mask icons as fallbacks.
  • Fixed nested type mismatches inside nullable API fields causing an entire response to fail. Flare now discards only the incompatible nullable branch while keeping non-nullable decoding strict.

Performance and Internal Changes

  • Moved strict-time mixed timeline staging from volatile memory to the database, reducing repeated requests and preserving buffered pages across loader recreation.
  • Added regression coverage for platform translations, bilingual display, MXGA rules, launch and automatic refresh behavior, X timelines and character counting, mixed timeline ordering, large-cache blocking, shared attachments, media filenames, favicon selection, and nested nullable payloads.
  • Updated Android Gradle Plugin to 9.3.1, Kotlin to 2.4.10, Koin compiler plugin to 1.1.0, Material 3 to 1.5.0-alpha25, DataStore to 1.3.0-alpha10, Room to 3.0.1, Navigation 3 to 1.1.5, Okio to 3.18.1, Sentry to 8.51.0, Nostr SDK KMP to 0.44.6, SKIE to 0.10.14, and ML Kit GenAI Prompt to 1.0.0-beta4.

Full Changelog: 1.7.1...1.7.2

1.7.1

Choose a tag to compare

@github-actions github-actions released this 16 Jul 07:42
5f5bb2b

What's Changed

This release adds screenshot-based cross-posting, comments for X and FANBOX articles, an Open in Flare Safari action, new timeline appearance controls, and a substantially improved macOS workflow. It also improves Mastodon server compatibility and fixes important issues in media viewing, navigation, sharing, and post actions.

Added

  • Added screenshot-based cross-posting on Android, iOS, macOS, and Desktop. Flare renders the source post as an image, attaches it to a new post, includes the original link, and leaves the cursor ready for additional commentary.
  • Added paginated comments to X and FANBOX article detail screens across the native apps, including loading, retry, and pagination states. FANBOX comment replies retain their nested presentation.
  • Added an “Open in Flare” Safari action extension on iOS for sending the current HTTP or HTTPS page directly to Flare.
  • Added global and per-timeline appearance settings to limit media grids to nine items and keep action buttons with counts at a consistent width.
  • Added pull-to-refresh to VVO post details on Android and iOS, refreshing the currently selected Comments or Reposts section.
  • Added automatic iOS media cache maintenance. The image cache is limited to 250 MiB with a 14-day expiration, while the video cache is checked daily and cleared after reaching 512 MiB.

Improved

  • Expanded the macOS app menus with quick access to new posts, home timelines, notification accounts, account-specific sections, Discover, local history, RSS management, and Agent.
  • Reworked macOS post and article sharing into contextual menus with cross-posting, link sharing, screenshot sharing, FxEmbed and FixVX links, copy link, and open-in-browser actions.
  • Added post action context menus on macOS and improved compose windows so they resize as content warnings, media, polls, and referenced posts are added or removed.
  • Added an explicit Edit button for AI configuration fields on macOS.
  • Improved Android home navigation: accounts with more than ten home tabs now use a compact dropdown instead of an oversized scrolling tab row.
  • Mastodon composers now use each instance’s advertised character limit. Flare checks both the v2 and v1 instance APIs, caches the result per server, falls back to 500 characters, and uses the strictest limit when posting to multiple accounts.
  • Improved link-opening defaults on iOS with clearer account menus and canonical handles.
  • Changed “Save as default” in the link account picker to an explicit opt-in, preventing an account or browser choice from being saved unintentionally.
  • Updated Pixiv terminology and presentation from bookmarks to favourites, including heart icons, action colors, private favourites, and timeline labels.
  • Standardized compose input behavior across Android, iOS, and Web with text keyboard hints and sentence capitalization for posts, content warnings, alt text, and poll options.
  • Updated the iOS media download and preparation notification icon.

Fixed

  • Fixed Mastodon mention notification filtering and serialized notification types using the lowercase values expected by Mastodon-compatible servers.
  • Fixed Pleroma compatibility by retaining the supported exclusion-based notification query format.
  • Fixed Misskey reaction totals being replaced with an incorrect count immediately after reacting.
  • Fixed Misskey favourite actions when the local state was stale by checking the server state before creating or deleting a favourite.
  • Updated X API mutation identifiers for creating posts, reposting, and removing reposts, and added handling for newer preview and unavailable response variants.
  • Fixed VVO endpoints returning HTML page being treated as JSON failures instead of empty results.
  • Fixed Android media viewer orientation handling so the original screen orientation is preserved and restored correctly.
  • Fixed freezes caused by sheet and secondary-tab navigation on iOS 17.
  • Fixed iOS home tab identity so tab selection and account-specific icons remain correct when tabs are reordered or updated.
  • Fixed iOS shared post images using the wrong appearance or a transparent background; exported images now respect the selected theme and use an opaque system background.
  • Fixed unchanged account updates repeatedly re-emitting composer account-selection state.

Performance and Internal Changes

  • Regenerated the X API bindings for the current schema, including newer tweet, user, community, notification, media, and content-disclosure payloads.
  • Added regression coverage for article comments, FANBOX comment pagination, Mastodon character limits and notification queries, Misskey reactions, Pixiv favourites, VVO empty responses, X mutation identifiers, appearance overrides, and composer account selection.
  • Updated Material 3 to 1.5.0-alpha24, MaterialKolor to 5.0.0, Firebase BoM to 34.16.0, Sentry to 8.48.0, KSP to 2.3.10, XMLUtil to 1.0.1, and Compose Lint checks to 1.5.3.

Full Changelog: 1.7.0...1.7.1

1.7.0

Choose a tag to compare

@github-actions github-actions released this 07 Jul 10:01
ec1cf6f

1.7.0

This release adds FANBOX support, a native macOS app, a generic article detail experience, and major improvements to media saving, deep links, and expired-login recovery.

Added

  • Added FANBOX platform support, including login, home timeline, discovery, creator profiles, article details, search, following creators, and supported creator timelines.
  • Added FANBOX article rendering with cover images, text blocks, images, videos, files, embeds, links, and subscription-gated content notices.
  • Added a native macOS app with timelines, sidebar navigation, compose, drafts, media viewer, direct messages, Agent, RSS, settings, notifications, and relogin support.
  • Added a generic article detail screen, replacing the previous X/Twitter-specific article screen and allowing other platforms such as FANBOX and RSS to reuse it.
  • Added configurable media save locations: default Downloads folder, custom folder, or ask every time.
  • Added long-press media actions in timelines: download, download all, share image, and copy link.
  • Added targeted relogin for expired sessions, allowing users to reauthenticate a specific expired account.
  • Added per-site link opening defaults: ask every time, open in browser, or open with a selected account.

Improved

  • Reworked the media viewer with raw media support, article media support, page slider, save all, image sharing, copy link, and better large-screen and landscape layouts.
  • Improved media downloads with cache reuse, custom request headers, safer filenames, article file downloads, and better failure cleanup.
  • Improved Pixiv timelines by adjusting Home and Discover sources, adding private following and private bookmark timelines, and fixing original image selection for single-image posts.
  • Improved Pixiv artwork details with better orientation handling, metadata, author display, content, bookmark state, and related content.
  • Improved AI Agent with paged chat history, conversation deletion, loading placeholders, and hidden entry points when no model is configured.
  • Improved Bluesky authentication and proxy handling, including token refresh, DPoP nonce handling, and Tranquil permission repair.
  • Improved Web timeline rendering, login links, build behavior, and favicon handling.
  • Reworked the Apple app structure so iOS and macOS share more SwiftUI components and resources.

Fixed

  • Fixed expired-login handling across multiple platforms, including Pixiv, Bluesky, XQT, and VVO.
  • Fixed VVO cookie refresh and login persistence issues, including better handling of expired cookies.
  • Fixed RSS detail, rich text, link, and favicon behavior.
  • Fixed several Mastodon, Misskey, XQT, and Nostr rendering, login, report, and detail-screen issues.
  • Fixed timeline rendering consistency around reposts, quotes, parent posts, and post body caching.
  • Fixed edge cases in media download success messages, save destinations, and sharing behavior.

Performance and Internal Changes

  • Reworked timeline caching to separate post content from presentation references, reducing duplicated nested data and improving refresh behavior.
  • Optimized database paging cache invalidation so fewer timeline pages need to be reloaded.
  • Reduced memory and logging overhead by only enabling detailed network logs in debug or explicit logging modes.
  • Enabled Android release resource shrinking to reduce app size.
  • Updated major dependencies including Kotlin, Gradle, Ktor, Room, SQLite, Compose, Sentry, and Firebase.
  • Updated CI, translations, README, and Apple project structure.

Full Changelog: 1.6.0...1.7.0