Tags give the ability to mark specific points in history as being important
-
v0.1.31
protectedRelease: staircase v0.1.316fe92f32 · ·Staircase 0.1.31 Three previews after 0.1.30: emoji pack discovery, the 8 MB attachment cap removed in favour of your Blossom server's own limit (with a pre-flight ask, a named refusal and an out-of-memory send that fails like any other), and hover actions for a mouse on the web and the desktop app. Schema 23. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
-
v0.1.31-pre.3
protectedd92748c6 · ·preview: point at a message with a mouse on web or desktop and its actions appear beside it - reply, react, forward and the rest of the menu - and a chat row gets its own button. Keyboard focus reaches both. A touch screen is unchanged: a finger reveals nothing, a tap still opens a message's actions, a long press still selects its words. Nothing else moves and no schema changes.
-
v0.1.31-pre.2
protectedcb179f6a · ·preview: no size limit of the app's on an attachment - your Blossom servers decide and a refusal is quoted by name, nothing cuts a slow transfer off, and Cancel exists on a send and a download. Note for this build: on the DEFAULT server list a file over 8 MB is refused by both of ours and goes to the public fallback nostr.download, which is new by default; and a file too big for the phone to hold now fails in words instead of crash-looping.
-
v0.1.31-pre.1
protectedab833705 · ·preview: emoji packs you already use in other clients are offered on the Emoji packs screen, and adding a pack by address now finds sets published on the author's own relays.
-
v0.1.30
protectedRelease: staircase v0.1.30008de68a · ·v0.1.30 Staircase 0.1.30, released 2026-11-04 on @7cc328a0's word. Eighty-three previews since 0.1.29, all gated and walked on their own pull requests; the CHANGELOG's [0.1.30] block is the user-facing record of what is in it. Going back: the database schema is 23 and this series migrated it three times (pre.56, pre.61, pre.79). A build older than the one that migrated an account does not refuse - it sniffs, corrects the schema version down and lands at the account picker, which reads as though the account were gone. The way back from 0.1.30 is 0.1.30 or newer. No test was run on the release tree itself.
-
v0.1.30-pre.83
protected5bc1fcb7 · ·v0.1.30-pre.83 preview: Under Staircase (Pro) a conversation now fills the pane on a desktop and in a browser, as it always has under Classic and Ink & paper: the centred 820dp column the Pro desktop pack asked for is gone, and the messages and the message box run to the pane's edges under every look. Nothing moves on a phone, which never reached the column, and nothing else in the app changes. No migration: schema stays at 23, so this preview opens the same account as pre.79 and later and an older build going back still lands at the account picker.
-
v0.1.30-pre.82
protected710869fd · ·preview: the pinned message under a chat's header now reads the way the chat list reads it -- a pinned sticker says "Sticker" instead of its :shortcode:, a pinned poll "Poll: <question>", a pinned photo its named filename, and a deleted pinned message says so instead of showing the words the chat no longer shows. No schema change (still 23) and no migration, so this installs over any 0.1.30 build; going back below pre.79 still drops you at the account picker.
-
v0.1.30-pre.81
protected601d0f34 · ·v0.1.30-pre.81 preview: a reaction on a sticker sent on its own no longer covers the sender's name or the time -- the chip gets a band of its own inside the drawing, on the side each look laps onto. Nothing moves on a sticker nobody has reacted to. No schema change; installs over any 0.1.30 build.
-
v0.1.30-pre.80
protectede73b2520 · ·v0.1.30-pre.80 preview: a used letting-in link stops telling the next person that nobody has to approve them -- after five minutes the wait says nobody has let you in yet and an admin still can, and the detail sheet no longer reads the coordinator and the time the wrong way round. No schema change; installs over any 0.1.30 build.
-
v0.1.30-pre.79
protected06bb1ffb · ·preview: One chat can now be kept on a tighter storage limit than the rest, from its own page reached from its row on Settings > Storage, with the stricter of the chat's limit and the account's budget winning and "keep this chat whole" beating both; "Free up space now" is no longer dead when a chat's own limit is the only thing in force; and a stopped account session now stops its own coroutines, so removing or switching an account no longer leaves collectors querying a deleted database. MIGRATION 22 (schema 22 -> 23): an account opened by this build or newer cannot be opened by anything older. The older build does not say so -- it sniffs, corrects user_version down and lands at the account picker, which reads as though the account were gone. The way back is any build at or above the one that migrated it.
-
v0.1.30-pre.78
protected7af19b0d · ·v0.1.30-pre.78 preview: nothing a person can see changes in this one, and it is provable rather than claimed: the animated-image decode on the desktop and in the browser now takes its thread context from the session instead of naming a pool itself, and in every installable build that context is the same pool it always used. The build check that refuses a screen picking its own pool now covers every production source set in the ui module, which ends that class there. No migration: schema stays at 22 as at pre.77, so an account this build opens still needs pre.61 or newer. Going back below that drops you at the account picker as though the account were gone. Landed from pr-stetson, pull request 42792544 at tip ce9c4077, merge 7af19b0d. Fixes #1cf448aa.
-
v0.1.30-pre.77
protectedf0fd9cc3 · ·v0.1.30-pre.77 preview: nothing a person can see changes in this one. cordn-sync's jvm tests open their databases on files, 60 sites in 49 files, conformance's two with them, and the build check that refuses a new in-memory one now covers cordn-sync as well as ui and app-core. That closes the class across the repository: nothing reachable by the lost-notification mechanism is left in memory anywhere. No migration: schema stays at 22 as at pre.76, so an account this build opens still needs pre.61 or newer. Going back below that drops you at the account picker as though the account were gone. Landed from pr-pail, pull request dcdf582b at tip 4b5da039, merge f0fd9cc3. Fixes #47fcbf7a.
-
v0.1.30-pre.76
protectedec7adc0c · ·v0.1.30-pre.76 preview: nothing a person can see changes in this one, and that is provable rather than claimed: no host passes the store context at all, so in every build a person can install the four screen lines this changes already dispatched to the same object they do now. Underneath, ui's four mark-read sites go through the session's own seam instead of naming the global dispatcher, with a build check refusing the next screen that picks a pool of its own and a test that watches which side of the seam a screen's write arrives on. No migration: schema stays at 22 as at pre.75, so an account this build opens still needs pre.61 or newer. Going back below that drops you at the account picker as though the account were gone. Landed from pr-bunk, pull request 0a6d467d at tip f713466a, merge ec7adc0c. Fixes #0b6ec6d9.
-
v0.1.30-pre.75
protected49ff9e85 · ·v0.1.30-pre.75 preview: nothing a person can see changes in this one. app-core's jvm tests now open their databases on files as every host does, 28 sites in 24 files, and the build check that refuses a new in-memory one covers that module as well as ui from here on. Two sites stay on the allowlist with their reasons written on the line. No migration: schema stays at 22 as at pre.74, so an account this build opens still needs pre.61 or newer. Going back below that drops you at the account picker as though the account were gone. Landed from pr-kettle, pull request bc72d8a5 at tip 561eafdf, merge 49ff9e85. The app-core half of #47fcbf7a, which stays open for cordn-sync and conformance.
-
v0.1.30-pre.74
protected84429b1b · ·v0.1.30-pre.74 preview: turning the phone on its side no longer draws the chat list twice. On a wide screen - a phone held sideways, or a desktop window at full width - the pane beside the chat list was still being told the screen was narrow, as it had been when the app started, so it drew a second copy of the list instead of "Select a group or create one", and the Requests and Settings pages kept a back arrow a wide screen leaves off. A chat's scroll position and a half-written message still survive turning the phone, which is what that pane is held for. No migration: schema stays at 22 as at pre.73, so an account this build opens still needs pre.61 or newer. Going back below that drops you at the account picker as though the account were gone. Landed from pr-swivel, pull request 5cc4d25a at tip 09b5e8fa, merge 84429b1b. Fixes #61af0432.
-
v0.1.30-pre.73
protected7ef3e5c2 · ·v0.1.30-pre.73 preview: nothing a person can see changes in this one. Underneath it, ui's jvm tests now open their database on a file as every host does, with a build check that refuses the next test written the old way, and a cancelled session no longer runs on into a read of a database that removing an account has just deleted - a latent defect closed on the test suite's evidence, not a crash anyone has been seeing. No migration of its own: schema stays at 22 as at pre.72, so an account this build opens still needs pre.61 or newer. Going back below that drops you at the account picker as though the account were gone. Landed from pr-thimble, pull request 91628851 at tip baca8aa2, merge 7ef3e5c2. Fixes #6384ae5b.
-
v0.1.30-pre.72
protectedd9d08424 · ·v0.1.30-pre.72 preview: you can hand somebody a link to one message. A message's actions carry Copy link just under Copy text, on the phone, the desktop and the web, and opening the link lands on that chat at that message with it lit up. A message link carries no group name on purpose, so somebody who is not in the group sees the group's short id and the ordinary offer to ask to join. No schema change.
-
v0.1.30-pre.71
protected8f195e9d · ·v0.1.30-pre.71 preview: everybody on your coordinator can be found by name in Add people, not just the first few hundred. The names of the first 250 people on a coordinator were looked up and nobody else's, in the coordinator's own fixed order, so the same 250 were findable on every device and the 332 behind them - including anyone who joined recently - were findable by name nowhere at all. The whole roster is named now, and while it is being looked up the field says so instead of showing the same blank space it shows when nobody matches. No schema change.
-
v0.1.30-pre.70
protectedcf39ceb0 · ·v0.1.30-pre.70 preview: a send that failed and will not go now says what it is still holding. The details behind a red message name the file and what it weighs, beside the Discard that removes both, and Settings > Storage lists "Attachments waiting to send" as a group of its own with a row per chat that opens it. The Storage note no longer claims attachments are never kept in the database - a sent one is not, one still waiting is. Nothing is deleted by itself and no schema change.
-
v0.1.30-pre.69
protected065360d0 · ·v0.1.30-pre.69 preview: under the Staircase look the bar carrying Chats, Inbox and Settings is glass - the list, the Inbox and Settings scroll underneath it, blurred, and their last row and the New chat button clear it instead of hiding behind it - and a long press now softens the page around the message as well as darkening it, with the message you pressed left sharp. Android 8 to 11 keep the solid bar and the plain dim. It costs about nine extra missed frames per 1650 while flinging a list, measured; no schema change.