Skip to content

Desktop 0.1.1 (Windows, Linux)

Choose a tag to compare

@github-actions github-actions released this 28 Oct 21:33
· 225 commits to main since this release

Platforms in this release:

  • macOS — NOT INCLUDED (no release-macos artifact; macOS job result: success. Usual cause: the APPLE_* signing secrets are unprovisioned, which makes every build/sign/notarize step skip.)
  • Windows — signed .msi and setup .exe
  • Linux — unsigned .deb and .rpm

What's Changed

  • More mobile work. by @barankyle in #3070
  • Find photos by the place they were taken at by @hanzlamateen in #3154
  • Repair mail filed as sent by you, and stop leaving stale sender links by @hanzlamateen in #3159
  • Let chat look something up and then act on it in the same turn by @hanzlamateen in #3158
  • Let web GraphQL codegen run again by building one test's documents with parse() by @hanzlamateen in #3157
  • Add remembered facts to the existing person, place or concept instead of a copy by @hanzlamateen in #3156
  • Tell the Today action chat which action it is about by @hanzlamateen in #3155
  • Stop memory compaction from storing names that are not in the notes by @hanzlamateen in #3153
  • Make photo asks match photos, not the word "photos" by @hanzlamateen in #3152
  • Take a sighting off Review sightings after "Not a thing" by @hanzlamateen in #3148
  • Find receipts by part of the merchant name by @hanzlamateen in #3150
  • Turn thinking off for background jobs on Ollama's OpenAI endpoint by @hanzlamateen in #3151
  • Show a thing's Acquired date on the day you picked, west of UTC too by @hanzlamateen in #3147
  • Show the dossier formatted and family by role on Self by @hanzlamateen in #3143
  • Put the cursor in the first field of forms opened from + by @hanzlamateen in #3145
  • Show as many Connections cards as fit the row by @hanzlamateen in #3142
  • Make Describe images follow a chat-model switch right away by @hanzlamateen in #3146
  • Stop the event drawer printing the place's internal record by @hanzlamateen in #3138
  • List imports under the importer that made them in Stats by @hanzlamateen in #3149
  • Keep forgotten people out of search, the relationship picker and note links by @hanzlamateen in #3144
  • Don't fill an event's coordinates when Look up only finds the surrounding area by @hanzlamateen in #3141
  • Make Surface Texture previews and the page texture follow the theme by @hanzlamateen in #3140
  • Make Name (A–Z) without search text sorted and complete by @hanzlamateen in #3139
  • Show the owner when hidden characters were removed from an ask by @hanzlamateen in #3137
  • Don't file mail from someone using your display name as sent by you by @hanzlamateen in #3136
  • Clear the stale password mismatch message by @hanzlamateen in #3135
  • Leave chat threads out of a When filter with search text by @hanzlamateen in #3134
  • Make the splash page's theme button clickable by @hanzlamateen in #3133
  • Stop sign-in hanging for a minute when the api is down by @hanzlamateen in #3132
  • Stop Change History recording event renames that never happened by @hanzlamateen in #3131
  • Make From and To in a saved search replace a stored Last month by @hanzlamateen in #3130
  • Don't send a signed-in person to Log In when Memory is briefly unreachable by @hanzlamateen in #3129
  • Show untitled chat threads as Untitled chat instead of blank rows by @hanzlamateen in #3128
  • Show hand edits, hand-made people and places, and new connections in Change History by @hanzlamateen in #3127
  • Stop a typed end date from dragging the start date along by @hanzlamateen in #3126
  • Show Log In, not 404, for signed-out links to Self, Chat and Jobs by @hanzlamateen in #3125
  • Keep the explorer list's scroll position on Back from a full page by @hanzlamateen in #3124
  • Let an account import its own export by @hanzlamateen in #3119
  • Explain the 1 to 64 range when a job concurrency is out of range by @hanzlamateen in #3116
  • Let Try again recover a view whose code failed to download by @hanzlamateen in #3120
  • Keep the admin handover only when the account delete succeeds by @hanzlamateen in #3115
  • Open the right-click menu on the map's side-panel cards by @hanzlamateen in #3117
  • Check ci import's --timeout before starting the import by @hanzlamateen in #3114
  • Keep the server's stack trace out of tool errors by @hanzlamateen in #3113
  • Stream chat replies, and allow Stop, through the Hub's public address by @hanzlamateen in #3108
  • Let the 30-day account purge delete old location data by @hanzlamateen in #3111
  • Give bulk ingest rejections a usable reason instead of the raw database error by @hanzlamateen in #3112
  • Make Timeline's Try again work after the script failed to load by @hanzlamateen in #3118
  • Let Slack and Signal be connected (accept any UUID shape in route ids) by @hanzlamateen in #3103
  • Fix POST /users/me/delete failing with a 500 by @hanzlamateen in #3105
  • Open Memory from the Hub at your memory, not the splash page by @hanzlamateen in #3106
  • Ring the Hub at the address it gives apps, so Dispatch wakes OpenClaw by @hanzlamateen in #3107
  • Read the Hub's installed apps from Companion Portal with the device key by @hanzlamateen in #3109
  • Show errors on a service's connect page by @hanzlamateen in #3099
  • Store what you say to an agent as your own words by @hanzlamateen in #3083
  • Make Enter and the list buttons work in notes by @hanzlamateen in #3086
  • Save new notes from the web again by @hanzlamateen in #3082
  • Explain why a place near another can't be added, and hide merged places by @hanzlamateen in #3088
  • Make picked photos one import instead of one per file by @hanzlamateen in #3095
  • Show the unknown-source warning in a visible colour by @hanzlamateen in #3097
  • Keep [[ people links in notes after a reload by @hanzlamateen in https://github.com//pull/3093
  • Open a graph dot's info card on the first click by @hanzlamateen in #3122
  • Keep the account record out of memory search results by @hanzlamateen in #3096
  • Bring a revoked peer link back when you add them again by @hanzlamateen in #3094
  • Let the media-dimensions backfill finish when one image can't be read by @hanzlamateen in #3110
  • Refuse BlueBubbles webhook deliveries while BlueBubbles is off by @hanzlamateen in #3104
  • Show a small map area's two ends apart in the Where filter by @hanzlamateen in #3098
  • Show Summary not found for a summary link with a bad id by @hanzlamateen in #3091
  • Let a failed import's leftover steps stop blocking discard and cleanup by @hanzlamateen in #3087
  • Show the location-history caption above the playback bar by @hanzlamateen in #3100
  • Give the chat box focus back after a reply by @hanzlamateen in #3089
  • Stop ci doctor failing on every Hub with a connected agent by @hanzlamateen in #3085
  • Open a file instead of Memory's 404 page by @hanzlamateen in #3102
  • Tell people a note isn't saved while Memory isn't answering by @hanzlamateen in #3101
  • Clear the delete and import dialogs on Cancel by @hanzlamateen in #3121
  • Start web chat on the Hub's default model when no model was picked by @hanzlamateen in #3084
  • Show a contact's nickname, birthday, website, note and name parts after a vCard import by @hanzlamateen in #3123
  • Let an event's description and a message's subject be cleared by @hanzlamateen in #3092
  • Show the phase a failed import step stopped in by @hanzlamateen in #3090
  • Make the iOS app build from main again and let its local search read the replica by @mrhegemon in #3169
  • Get main's tests and lint green again by @mrhegemon in #3168
  • chore(deps): fix 242 of 244 open Dependabot alerts by @FzzySwtr in #3160
  • Count a message's attached files under the importer that made them in Stats by @mrhegemon in #3162
  • Show "Can't reach Memory" when Memory accepts the request and never answers by @mrhegemon in #3164
  • Stop Change History noise and refresh it after Edit Person saves by @mrhegemon in #3165
  • Create the owner's own Person before an import pushes anything by @mrhegemon in #3166
  • Keep an existing embedding when a created event or content row is re-indexed by @mrhegemon in #3167
  • Stop iOS autocorrecting the email typed at sign-in and sign-up by @mrhegemon in #3163
  • Read a legacy UTC-midnight thing date as the day it names by @mrhegemon in #3161
  • Adopt an unpointed self Person and leave one is_self row after an onboarding race by @mrhegemon in #3174
  • Send phones the corrected direction of agent-turn messages by @hanzlamateen in #3170
  • Delete the files, imports and pipeline records an immediate account delete left behind by @hanzlamateen in #3172
  • Take the Hub-bridge-on-retry change back out of the session check by @mrhegemon in #3173
  • Give the chat box focus back after a file upload too by @hanzlamateen in #3171
  • Keep the password hash out of browser visit records by @hanzlamateen in #3175
  • Format the files Prettier rejects on main by @hanzlamateen in #3179
  • Expect the hand-edit flag in the contact-conflicts database test by @hanzlamateen in #3177
  • Keep appliance settings and finish dense compressed chunks in the 30-day account purge by @hanzlamateen in #3176
  • Keep the chat's working dots up through the stream's keep-alives by @hanzlamateen in #3191
  • Show a Today action once on phones and put the cursor in its chat by @hanzlamateen in #3190
  • Clear the change-email form's old error when you edit it by @hanzlamateen in #3189
  • Show a failed import's message inside the dialog by @hanzlamateen in #3188
  • Give up on Portal's device app list after 5 seconds by @hanzlamateen in #3178
  • Import your own export after edited messages, tags, HBPE clusters and receipts by @hanzlamateen in #3187
  • Revoke a peer's old grants when its ended link is added back by @hanzlamateen in #3186
  • Stop offering chat tools after a write, and spot repeats by tool and arguments by @hanzlamateen in #3185
  • Match remembered names exactly and link new entities in the same call by @hanzlamateen in #3180
  • Find photos at a place by the name you gave it, and only measured ones by @hanzlamateen in #3183
  • Strip bidi controls from asks so a block grant still applies by @hanzlamateen in #3184
  • Never leave Memory without an administrator when an immediate account delete fails by @hanzlamateen in #3181
  • Close the gaps left in the photo ask fix by @hanzlamateen in #3182
  • Drop the prompt's example from compaction even when a note names it by @hanzlamateen in #3192
  • Keep sync stamps out of Change History and record null clears by @hanzlamateen in #3215
  • Show connect errors during onboarding and at the top on phones by @hanzlamateen in #3214
  • When > Custom: an Escaped date no longer comes back and applies itself by @hanzlamateen in #3217
  • Check the BlueBubbles webhook secret before looking at the delivery by @hanzlamateen in #3216
  • Saved searches: repair rows that kept Last month next to picked dates by @hanzlamateen in #3213
  • Show Can't reach Memory, not Log In, when a gated page is reloaded during an outage by @hanzlamateen in #3193
  • Store onboarding's parents and children the right way round by @hanzlamateen in #3194
  • Keep the Conway texture's board when the theme changes by @hanzlamateen in #3201
  • Keep failed imports from blocking retention and stop promising a cleanup that never comes by @hanzlamateen in #3203
  • Keep forgotten places and concepts out of search, and forgotten people out of chat search by @hanzlamateen in #3205
  • Treat a blank description or subject as cleared and skip no-op clears by @hanzlamateen in #3208
  • Show a running import step's phase instead of a stale "acquiring" by @hanzlamateen in #3206
  • Drop a place lookup's answer once the event form has moved on by @hanzlamateen in #3207
  • Stop a picked file with a repeated name from failing the whole import by @hanzlamateen in #3210
  • Close the races left around Describe images after a model switch by @hanzlamateen in #3195
  • Retry a refused reasoning_effort per call, and let the refusal expire by @hanzlamateen in #3199
  • Show the place's coordinates in the event drawer when the event has none by @hanzlamateen in #3202
  • Keep "Not a thing" when the same photo is captured again by @hanzlamateen in #3218
  • Keep blank form fields and person merges from claiming hand edits by @hanzlamateen in #3212
  • When filter: also set aside tasks, actions, raw messages and GPS fixes by @hanzlamateen in #3211
  • Name sort: order receipts, answers and excerpts by the title their row shows by @hanzlamateen in #3209
  • Put the splash theme button below the iPhone status bar by @hanzlamateen in #3200
  • Give the object store and phone sync the same 5 s gateway connect timeout by @hanzlamateen in #3198
  • Keep planned blocks out of the imports on Stats by @hanzlamateen in #3197
  • Keep the outage card for an expired sign-in and for a page already on screen by @hanzlamateen in #3196
  • Map controls: a right press no longer holds map dragging off by @hanzlamateen in #3233
  • List scroll restore: save the position the list really has by @hanzlamateen in #3232
  • Say which job concurrency box was refused, in plain words by @hanzlamateen in #3231
  • Graph: open the card for every dot clicked, not just the first by @hanzlamateen in #3230
  • Check the CLI's number options before a command does anything by @hanzlamateen in #3229
  • Timeline: refetch the stylesheet too when Try again follows a failed load by @hanzlamateen in #3228
  • Keep database error text out of bulk upload and maintenance replies by @hanzlamateen in #3222
  • Point a place conflict at the right place and stop offering merged places by @hanzlamateen in #3204
  • Keep database errors and internal addresses out of tool and MCP replies by @hanzlamateen in #3227
  • Keep the owner's Sent mail from an unknown address the owner's by @hanzlamateen in #3226
  • Let the media-dimensions backfill pick up photos an older version gave up on by @hanzlamateen in #3219
  • Trace status: sit above the playback bar at whatever height it is by @hanzlamateen in #3220
  • Record only what moved when a thing, file, message or event is saved by @hanzlamateen in #3221
  • Unknown source: say why it is flagged, on hover and keyboard focus by @hanzlamateen in #3223
  • [fix-migrations] Reissue the owner-sent mail repair without moving the owner's own messages by @hanzlamateen in #3224
  • Map area label: wrap world-copy longitudes and steady the decimals by @hanzlamateen in #3225
  • View retry: reload when a view's stylesheet failed to download too by @hanzlamateen in #3234
  • feat(peers): support KERI AID verification in HTTP message signatures by @mrhegemon in #3235
  • Refuse a confirmation-gated call whose input could never run, instead of queueing it by @mrhegemon in #3237
  • Retry failed note saves, ask before leaving unsaved notes, keep first-save edits by @hanzlamateen in #3236
  • feat(keri): expand KERI / ToIP usage across Companion Memory (forward-auth, sovereign asks, and audit SAIDs) by @mrhegemon in #3238
  • Accept the peer link id createPeerLink returns when creating a peer grant by @mrhegemon in #3250
  • Refuse a position whose coordinates are off the globe instead of storing it wrapped by @mrhegemon in #3249
  • Strip every default-ignorable character from ask classes, so a hidden one cannot slip past a block by @mrhegemon in #3248
  • Trust only Google's own X-Gmail-Labels, so a forged Sent label cannot make a stranger the owner by @mrhegemon in #3247
  • Bump rustls from 0.23.45 to 0.23.46 in /frontend/apps/desktop/src-tauri in the cargo group across 1 directory by @dependabot[bot] in #3246
  • fix(e2e,gates): runnable yarn e2e under PnP, current-UX specs, green lint:canon + root typecheck, QA doc drift by @mrhegemon in #3245
  • fix(web): MCP test result + catalog badge, graph retry, phone drawer tab order, rail aria-current, Scan focus by @mrhegemon in #3244
  • Let a discard take a failed upload run's scratch tree, so the run can be collected by @mrhegemon in #3243
  • Truncate the search index tables in one statement so the reset and index truncate run by @mrhegemon in #3242
  • Make POST /users/me/delete one transaction, and take the account out of ask records by @mrhegemon in #3241
  • Answer a GraphQL variable that does not coerce as a 400, not a masked 500 by @mrhegemon in #3240
  • Even more mobile work by @barankyle in #3239
  • Stop the unsigned Hub AID header from choosing or binding an account; repair the KERI build break by @mrhegemon in #3251
  • feat(icons): ship the new Companion Memory icon in the iOS, Android and desktop apps by @mrhegemon in #3252
  • Replace the Companion Memory logo on web, docs, listing and video surfaces by @mrhegemon in #3253
  • End the account in a short transaction and purge it in batches on POST /users/me/delete by @mrhegemon in #3254
  • Fix import order and Prettier formatting on main by @mrhegemon in #3256
  • Close share links and peer links when an account ends, and stop purges sticking silently by @mrhegemon in #3257
  • docs(qa): baseline for the 2026-10-27 release by @mrhegemon in #3258
  • docs: align README with Companion Hub layout by @mrhegemon in #3255

New Contributors

Full Changelog: v2026.10.23...desktop-v0.1.1