Skip to content

v1.18.0

Latest

Choose a tag to compare

@emmpaul emmpaul released this 29 Jul 13:26
7911383

1.18.0 (2026-07-29)

Features

  • dot the reminders glyph while reminders are pending (#977) (f2340d5)
  • filter search results to messages with attachments (has:file facet) (#975) (70076e1)
  • focus the notification rail with F6 (#1010) (1c5bf7f)
  • keep composer uploads running when you leave a channel (#1050) (e8d7ba6)
  • pin navigation destinations to a desktop rail and a mobile tab bar (#947) (c10f318)
  • prompt a newly registered user to create a passkey (#923) (cd54d22)
  • prune security events and purge expired data-export archives (#918) (a26a7d0)
  • raise the composer tray and banner controls to 44pt on touch (#1011) (4058380)
  • redesign toasts as a shared ink-slab rail (#1004) (24416a1)
  • reminders as a pinned destination with grouped rows and inline done (#961) (3e287c5)
  • replace the landing page mockup with captures of the real shell (#1014) (df27a78)
  • retry queued sends from the failure toast (#1007) (5e5d25c)
  • search as a pinned destination in the dock panel (#966) (0b0db58)
  • the You destination as a rail popover, a mobile tab, and one shared menu (#967) (0a735ee)
  • threads as a pinned destination with an unread filter and mark all read (#960) (90649d7)
  • undo a forward from its confirmation toast (#1008) (2b81802)
  • whitelabel the instance name, mark, icons and manifest (#1012) (d05e067)
  • workspace sheet, + New menu, and cross-workspace unread on the rail (#958) (91bdc2d)

Bug Fixes

  • allow the vite dev server as a font source in hot mode (#929) (e0fec4e)
  • build queue-broadcasts from source instead of pulling it from GHCR (#1045) (ee2ed7f)
  • format the bots rack's last-post stamp against the locale, not the zone (#1041) (207ad7f)
  • four pre-existing composer defects surfaced by the #981 split (#1038) (5daa057)
  • hold the pins panel row together at any label width (#1036) (7b2c802)
  • keep a client-side URL write from being swallowed by a concurrent response (#997) (3597f07)
  • keep a team reachable when its name slugs to nothing (#925) (a439e99)
  • keep the paused card readable when its pill label runs long (#933) (5d78f96)
  • keep the teams pages still when a validation error appears (#922) (4813cb6)
  • keep the toast rail off the composer under the dev server (#1054) (73f6ae0)
  • keep the worktree bootstrap's output off stdout (#1048) (6c2809c)
  • make the search facet pickers proper comboboxes (#945) (52e58f1)
  • name the workspace settings page's icon-only controls (#1039) (b07ce44)
  • paint the reminder nudge from the slab's own colour tokens (#1037) (39d0b66)
  • patch the OS packages the published image inherits from its base (#973) (f4d6f86)
  • reject private and reserved hosts as web push endpoints (#926) (b3a73b9)
  • restore a thread root's follow and unread state when the reply fails (#1046) (2d174b0)
  • return focus to the control that opened a dialog when it closes (#935) (e9adf1c)
  • schedule the workspace audit-log retention sweep (#934) (b131be1)
  • stop the browser suite's in-process server dropping assets on a reused connection (#953) (cff1a89)
  • survive an unreachable apt mirror during the worktree Playwright install (#1044) (3e94c99)

Performance

  • run the browser suite in parallel with a capped worker count (#951) (ab7bb84)

Code Refactoring

  • drop terminal full stops from toast copy (#1002) (983b447)
  • extract the composer's surfaces out of MessageComposer.vue (#1017) (4e67e78)
  • extract the conversation list out of MainLayout.vue (#996) (5c5ce25)
  • route every toast through a useToast composable (#1000) (83469fc)
  • split ChannelMasthead.vue (#1028) (5524fe0)
  • split MessageList.vue (#1018) (4bb6260)
  • split QuickSwitcher.vue (#1031) (a79c6d4)
  • split the audit exports page (pages/teams/AuditExports.vue) (#1032) (995c73a)
  • split the bot integration page into racks and dialogs (#1025) (6cd2a5a)
  • split the channel page (pages/channels/Show.vue) (#1024) (a4da616)
  • split the integrations index page (#1022) (e97483e)
  • split the user groups page (pages/teams/Groups.vue) (#1030) (a5dfcaf)
  • split the workspace analytics page into sections (#1029) (e3db019)
  • split the workspace settings page into sections (#1020) (1eed152)
  • split useAttachmentUploads.test.ts (#1034) (887b2c7)
  • split useMessageActions into one composable per action group (#1027) (bc968f5)
  • split UserStatusDialog.vue (#1033) (e05800b)

This PR was generated with Release Please. See documentation.


📦 Docker image

This release is published to the GitHub Container Registry:

ghcr.io/deskhq/the-desk:1.18.0

Pin by digest for a reference that cannot move, and verify the image was built by this repository:

ghcr.io/deskhq/the-desk@sha256:7a361a03ce6711f5be04358c9fab5c796e4b7025268e32e31ea631516a67f38b

gh attestation verify oci://ghcr.io/deskhq/the-desk@sha256:7a361a03ce6711f5be04358c9fab5c796e4b7025268e32e31ea631516a67f38b --repo deskhq/the-desk

Pull it directly or browse the package page. See the upgrade guide for self-hosting steps.