Tags

Tags give the ability to mark specific points in history as being important
  • v0.1.31

    protected
    6fe92f32 · Release 0.1.31 ·
    Release: staircase v0.1.31
    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

    protected
    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

    protected
    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

    protected
    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

    protected
    008de68a · Release 0.1.30 ·
    Release: staircase v0.1.30
    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

    protected
    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

    protected
    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

    protected
    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

    protected
    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

    protected
    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

    protected
    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

    protected
    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

    protected
    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

    protected
    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

    protected
    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

    protected
    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

    protected
    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

    protected
    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

    protected
    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

    protected
    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.