Skip to content

v2026.11.4

Latest

Choose a tag to compare

@hanzlamateen hanzlamateen released this 04 Nov 14:43
· 54 commits to main since this release
80f3462

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
  • Fix release QA gates and cross-domain imports by @mrhegemon in #3259
  • Refuse imports that link to another account, show the outage card on / and /login, re-resolve gateway upstreams by @hanzlamateen in #3267
  • Keep agent replies out of Today, add ended peers back as new links and widen photo asks by @hanzlamateen in #3266
  • Return a failed inbox import's file on discard, fail --wait on failed runs, refuse job caps above the build by @hanzlamateen in #3265
  • Give each chat thread its own tile in the sidebar by @hanzlamateen in #3264
  • Say why hub-identity leaves out the account and act on it by @hanzlamateen in #3262
  • Ask before chat writes on what a lookup returned, plus four chat follow-ups by @hanzlamateen in #3261
  • Keep picked thing dates, sightings, city lookups and event titles as the person meant them by @hanzlamateen in #3260
  • Refuse archives that cannot hide, and name untitled chats the same everywhere by @hanzlamateen in #3263
  • fix: gate mobile and macOS release secrets by @mrhegemon in #3270
  • Pin iOS Safari extension to 1.6.0 by @mrhegemon in #3272
  • Use macOS 26 for desktop release by @mrhegemon in #3273
  • Use iOS 26 SDK for App Store validation by @mrhegemon in #3275
  • Pin iOS Safari extension to v1.6.1 by @mrhegemon in #3276
  • Capture Apple notarization diagnostics by @mrhegemon in #3277
  • Fix macOS bridge notarization by @mrhegemon in #3278
  • Keep a Companion URL the person saved, internal host included by @barankyle in #3279
  • Keep Android GPS hardware optional in Play by @mrhegemon in #3281
  • Added translucent arrows to show horizontal scrolling on mobile by @barankyle in #3280
  • Bump zip from 2.4.2 to 9.0.5 in /frontend/apps/desktop/src-tauri in the cargo group across 1 directory by @dependabot[bot] in #3274
  • Background location tracking for the Play resubmission by @barankyle in #3271
  • Ask again in prose on OpenAI-compatible endpoints and key held phone numbers as stored by @hanzlamateen in #3269
  • Fix/planning scan real tasks by @mrhegemon in #3268
  • fix(api): share identifier normalization across domains by @mrhegemon in #3288
  • test(e2e): disable scheduled summaries in seeder by @mrhegemon in #3290
  • fix(deps): update vulnerable authlib and dnspython by @mrhegemon in #3292
  • Say when a name sort leaves out older rows by @hanzlamateen in #3293
  • Clear stale daily stats days and keep a thing's No on the thing it named by @hanzlamateen in #3287
  • Ask before chat reads a third-party service right after a lookup by @hanzlamateen in #3291
  • Refuse links to rows with no owner and check receipt, sighting and product links on write by @hanzlamateen in #3286
  • Refuse links to another account's rows on message, event, position and content writes by @hanzlamateen in #3294
  • Keep hub-identity's refusal in step with the session bridge by @hanzlamateen in #3283
  • Keep a discard from deleting an unpacked inbox export and tighten the inbox return by @hanzlamateen in #3284
  • Keep a photo's place from askers who may not learn places, hold Approve until hidden characters are checked and guard peer link edits by @hanzlamateen in #3285
  • Let forget delete a product and archive only what it can hide by @hanzlamateen in #3282
  • Allow pinch-zoom in the web app and both Capacitor shells (audit AA-1) by @mrhegemon in #3289
  • Size 14 more text fields at 16px+ on phones so iOS does not zoom by @mrhegemon in #3299
  • Backport deepmerge and GLib security fixes by @mrhegemon in #3301
  • fix(api): keep product forget test within memory boundary by @mrhegemon in #3302
  • fix(ci): configure scratch database admin in consent gate by @mrhegemon in #3303
  • Hiding files that have associated events from default list by @barankyle in #3304
  • A number of production mobile fixes by @barankyle in #3300
  • fix(api): include Yarn patches in Docker build context by @mrhegemon in #3305
  • fix(ios): authenticate Safari extension release fetch by @mrhegemon in #3306
  • Update uv-build requirement from <0.10,>=0.9 to >=0.9,<0.14 by @dependabot[bot] in #3323
  • Bump tauri from 2.11.5 to 2.11.6 in /frontend/apps/desktop/src-tauri by @dependabot[bot] in #3322
  • Bump tokio from 1.53.1 to 1.54.1 in /frontend/apps/desktop/src-tauri by @dependabot[bot] in #3321
  • Bump gradle-wrapper from 8.11.1 to 9.8.2 in /frontend/apps/android/android by @dependabot[bot] in #3320
  • Bump tauri-plugin-single-instance from 2.4.3 to 2.4.5 in /frontend/apps/desktop/src-tauri by @dependabot[bot] in #3319
  • Bump zstd from 0.13.3 to 0.14.3 in /frontend/apps/desktop/src-tauri by @dependabot[bot] in #3318
  • Bump @tauri-apps/cli from 2.11.4 to 2.12.4 in /frontend/apps/desktop by @dependabot[bot] in #3316
  • Bump org.json:json from 20240303 to 20260814 in /frontend/apps/android/android by @dependabot[bot] in #3317
  • Bump zip from 9.0.5 to 9.1.3 in /frontend/apps/desktop/src-tauri by @dependabot[bot] in #3315
  • Bump org.robolectric:robolectric from 4.14.1 to 4.17 in /frontend/apps/android/android by @dependabot[bot] in #3314
  • Bump alpine from 3.21 to 3.24 in /infrastructure/setup-secrets by @dependabot[bot] in #3313
  • Bump node from 22.15.1-slim to 26.12.0-slim in /backend/apps/api by @dependabot[bot] in #3312
  • Bump com.google.gms:google-services from 4.4.2 to 4.5.0 in /frontend/apps/android/android by @dependabot[bot] in #3311
  • Bump postgres from 16-alpine to 18-alpine in /infrastructure/setup-database by @dependabot[bot] in #3309
  • Bump nvidia/cuda from 12.9.2-cudnn-devel-ubuntu22.04 to 13.4.3-cudnn-devel-ubuntu22.04 in /backend/apps/hbpe by @dependabot[bot] in #3310
  • Bump python from 3.11.12-slim-bookworm to 3.15.0-slim-bookworm in /backend/apps/summary by @dependabot[bot] in #3308
  • Bump nginx from 1.28.0-bookworm to 1.29.1-bookworm in /infrastructure/gateway by @dependabot[bot] in #3307
  • fix(docker): install Corepack for Node 26 images by @mrhegemon in #3324
  • fix(summary): sync dependencies into project venv by @mrhegemon in #3325
  • test(web): cover previously untested memory views by @mrhegemon in #3326
  • fix(deps): patch vulnerable transitive dependencies by @mrhegemon in #3328
  • docs(android): refresh Play release status by @mrhegemon in #3327
  • fix(deps): resolve glob in mobile lockfiles by @mrhegemon in #3329
  • fix(ci): mask E2E test credentials in public logs by @mrhegemon in #3330
  • fix(ios): pin Safari extension 1.6.2 for next release by @mrhegemon in #3331
  • fix(ios): source Safari extension in mobile release by @mrhegemon in #3332
  • Fix iOS Memory reconnection checks by @mrhegemon in #3333
  • fix: distribute TestFlight builds to internal testers by @mrhegemon in #3334
  • fix: use supported TestFlight group lookup by @mrhegemon in #3335
  • feat: check TestFlight Apple ID group access by @mrhegemon in #3336
  • Fix Memory installs: run the summary service's Python from outside /root by @hanzlamateen in #3338
  • Make the summary image's build check cover what its services load by @hanzlamateen in #3340
  • Let Memory start with no AI engine and hold summary work until a model appears by @hanzlamateen in #3341
  • fix: safely resend pending TestFlight invitations by @mrhegemon in #3342
  • Keep shorter texts whole when an embed batch is cut by @barankyle in #3343
  • feat(auth): admit companion-atlas Portal tokens to PORTAL_OIDC_AUDIENCE by @mrhegemon in #3346
  • docs(readme): show the Companion Memory icon by @mrhegemon in #3344
  • ci: weekly grouped Dependabot and manual-only workflows by @mrhegemon in #3347
  • Stop accepting the retired Import Tools client by @mrhegemon in #3345
  • build(deps): bump the major group in /frontend/apps/ios with 12 updates by @dependabot[bot] in #3356
  • build(deps): bump the major group in /frontend/apps/android with 13 updates by @dependabot[bot] in #3357
  • build(deps): bump swatinem/rust-cache from 2.9.2 to 2.9.3 in the minor-patch group by @dependabot[bot] in #3355
  • build(deps): bump postgres from 18.4-bookworm to 18.6-bookworm in /infrastructure/database in the minor-patch group by @dependabot[bot] in #3348
  • build(deps): bump node from 26.12.0-slim to 26.13.0-slim in /backend/apps/api in the minor-patch group by @dependabot[bot] in #3349
  • build(deps): bump python from 3.11-slim-bookworm to 3.15-slim-bookworm in /backend/apps/hbpe in the minor-patch group by @dependabot[bot] in #3350
  • build(deps): bump the minor-patch group in /frontend/apps/ios with 2 updates by @dependabot[bot] in #3351
  • build(deps): bump the minor-patch group in /frontend/apps/android with 2 updates by @dependabot[bot] in #3352
  • build(deps): bump sha2 from 0.10.9 to 0.11.1 in /frontend/apps/desktop/src-tauri in the major group by @dependabot[bot] in #3354
  • build(deps): bump the minor-patch group in /frontend/apps/desktop/src-tauri with 8 updates by @dependabot[bot] in #3353
  • build(deps): bump dtolnay/rust-toolchain from 7e38f4b43b4db5c8dd498af069a4f6196df1d067 to 683b588c487a69d01f6c6ddf40f036ff682cc2c8 by @dependabot[bot] in #3359
  • build(deps): bump the major group with 12 updates by @dependabot[bot] in #3358
  • build(deps): bump the minor-patch group with 76 updates by @dependabot[bot] in #3360
  • Restyle Memory screens and fix verified UI audit findings by @mrhegemon in #3361
  • Compact PowerSync storage hourly so deleted text stops reaching new devices by @hanzlamateen in #3362
  • fix(web): make the web app build again after the Nov 2 dependency update by @hanzlamateen in #3365
  • build(deps): bump @capacitor-mlkit/barcode-scanning from 8.2.1 to 8.2.2 in /frontend/apps/ios in the minor-patch group by @dependabot[bot] in #3368
  • build(deps): bump @capacitor-mlkit/barcode-scanning from 8.2.1 to 8.2.2 in /frontend/apps/android in the minor-patch group by @dependabot[bot] in #3367
  • build(deps): bump zip from 9.1.3 to 9.2.0 in /frontend/apps/desktop/src-tauri in the minor-patch group by @dependabot[bot] in #3366
  • fix(desktop): device key in the OS keychain; web packages on Capacitor 8 by @mrhegemon in #3363
  • Wrap a long line in the embedding service test by @hanzlamateen in #3372

New Contributors

Full Changelog: v2026.10.23...v2026.11.4