Skip to content

v2.90.0

Latest

Choose a tag to compare

@vilenarios vilenarios released this 21 Oct 19:45
9cc6ffc

What's new

Snapshots are now drive state artifacts, on in production. Create snapshot publishes a drive's state as one SQLite file, and a sync reads a drive's newest one before replaying its history: one discovery query per drive, and any failure falls back to the normal sync. Snapshots made by CLI 5.0.0 and core-js are readable here too. Staging has run it since 2026-10-16. configVersion goes 3 → 4 so every install picks the switches up; that reset also puts a user's chosen gateway and their auto-sync, thumbnail and snapshot-sync toggles back to the defaults, as the bump in #2200 did. (#2187, #2188, #2197, #2264, #2268, #2270, #2271, #2281, #2296, #2303, #2306, #2324, #2335)

A faster, sturdier database in the browser. The web app's local database moves from sql.js to SQLite on the browser's private file system (OPFS), run in a background worker. Each user's existing data is copied over once, on the first load after the upgrade. Reopening takes 0.08 s instead of 3.5 s, and large writes no longer freeze the page. One tab owns the database at a time, so two tabs no longer overwrite each other's saves. Browsers without OPFS fall back to IndexedDB. The old store is left in place, untouched, as the way back. Schema 29 → 30 adds one nullable column. (#2197)

Open a drive without logging in. A link on the sign-in screen takes a drive link or a drive ID, asks for the drive key if the drive is private (filled in when the link carried it), and one press opens the explorer and syncs the drive. Browsing, previews, downloads and share links work as for a shared link; anything that needs a wallet is not offered. Logging in from the top bar keeps the drive, and a private drive opened this way keeps its key after login. A typed drive key never reaches the address bar, so a reload asks for it once. A visitor's New menu says "Open another drive"; "Attach drive" stays the signed-in word. (#2333, #2337)

Previews that show their progress. A preview downloads once and streams, instead of once per refresh. It says how far it has got ("18.2 MB of 47 MB", then "Decrypting…"), and a failed download offers Try again. PDFs, private media and images over 25 MiB wait for a Preview press; public video and audio still play straight away. Closing a preview stops its download. A playing private video no longer restarts when the drive syncs. (#2238, #2242, #2243)

Search as you type. Results drop down while you type, with keyboard navigation. Search says which drives it couldn't search because they aren't synced on this device, and offers to sync them. It no longer sticks on "Searching…" or opens a folder from another drive at its root. (#2287)

A shorter upload dialog. Cost and payment come first; thumbnails, license and deployment options sit behind Options. Counts and sizes match between the confirm and progress steps, and cost reads in credits everywhere. The license step is readable, and Creative Commons no longer preselects CC0. (#2283, #2291, #2314)

Wallet-paid (AR) uploads finish. Chunks a gateway rejects are retried, and Re-Upload resends the same signed transaction rather than paying again. The app warns you to keep the tab open while a wallet-paid upload runs. Turbo uploads are unchanged. (#2266)

Shared links open where they point. A folder link opens that folder for someone who doesn't have the drive. A drive or folder link pasted into a tab already running ArDrive opens what it names, and Back and Forward follow. The private folder share dialog says the link opens the whole drive. (#2289, #2294)

Your permanence. A new panel on the profile card shows how much you have preserved, what you have spent in credits and AR, what it would cost today (to the cent under $100), and a shareable image card. Its figures are kept for the session rather than fetched on every open. (#2244, #2326, #2329, #2330)

Manifests are now "deployments". Every place a user sees the word, in all six languages; "Import from manifest" keeps its name. New deployment opens in the folder you're viewing, leaves hidden folders out, and no longer drops a file whose path collides with another. Import from manifest works through gateways that refuse its query, and its results count imported and failed files correctly. (#2317, #2313, #2265, #2237, #2319)

First syncs of older drives are much faster. GraphQL queries go out with their fragments written out. turbo-gateway took about 8 s per query over old block ranges and now takes about 0.35 s. (#2267)

Smaller things

  • File table: rows-per-page picker, numbered pages, and your page and scroll kept per folder (#2284)
  • Plain wording and sentence case across the app (#2240, #2292); dates in one time zone with an offset (#2290)
  • Your drives: one sync button that changes with the page (Sync all drives, Sync N selected, Stop syncing), and ticking drives turns the heading into the selection without moving the list (#2327); "Not synced on this device", a first sync that says what it read, and the "nothing synced yet" card names the drives (#2288, #2301); checkboxes and sorting kept on narrower screens (#2320)
  • "Deep resync" is now "Full resync", described in the menu and confirmed before it runs (#2312)
  • Details panel: shortened IDs with copy buttons, version history, and a new version's size shown at once (#2298)
  • An unsynced drive's Activity tab shows its history; "Date created" is the drive's real creation date (#2304)
  • Private drives show a lock in the breadcrumb, and their upload dialog says files are encrypted on this device (#2316)
  • Long file names end with an ellipsis and show the full name on hover (#2321)
  • No "brand new drive" flash while a drive's first sync lands (#2295)
  • /view/{txId} uses the shared file page's layout (#2241)
  • The empty drive page states the free upload rule the uploader applies (#2282)
  • Copy buttons say when the browser refuses a copy (#2300)
  • The phone menu's drive list scrolls (#2299)
  • Wallet addresses in the login dialogs open ViewBlock (#2302)
  • New File Pin waits for the ID lookup before calling it invalid (#2307)
  • Screen readers: the New button is announced as "New", and a drive's menu button names itself once (#2315, #2322, #2323)

Fixes

  • Cancelling the attach dialog a drive link opened lands on Your drives, or sign in for a visitor, instead of a blank page (#2325)
  • Login no longer hangs when the wallet balance request hangs: it waits 5 s, then carries on and fills the balance in when it arrives (#2318)
  • Snapshots are read as UTF-8; names they garbled (accents, dashes, CJK, emoji) are repaired once, at the next sync (#2259)
  • A drive renamed and hidden in one block no longer comes back under its old name (#2277)
  • A renamed drive shows its new name in the breadcrumb, in zips and in the Move dialog (#2279)
  • The Move dialog's conflict message lists the conflicting items (#2311)
  • The details panel no longer goes stale after opening another folder, and column sort survives refreshes (#2293)
  • A sync interrupted part way no longer leaves a drive marked as fully synced (#2197)
  • Upload cost estimates time out a stuck price or tip request instead of hanging (#2197)
  • The sync indicator leaves when its result does (#2239); a repeated sync result is shown (#2269)
  • The older snapshot dialog's success message reads correctly (#2278)

Behaviour changes worth knowing

  • A second tab works on a copy. Only the first tab saves to the database. Another tab opened at the same time works on an in-memory copy, and what it stores locally (sync results) is dropped when it closes. Nothing on Arweave is affected. The second tab doesn't yet say so.
  • Large previews wait to be asked. See above.
  • A failed balance fetch reads as 0 AR until the next successful refresh, rather than blocking login. AR payment is unavailable during that time.
  • Logout clears drive keys and the preview cache from memory. Keys from shared private drives used to outlive logout.
  • A visitor's drives do not outlive their visit. Drives opened without logging in are cleared from this browser the next time the app starts with no profile, so they never show for the next person, or for whoever logs in next. Logging in during the visit keeps them. (#2333)
  • "Log in" for a visitor no longer logs out first. It used to clear the drive being viewed and land on the drives list; it now keeps the drive. (#2333)

Known issues, not fixed here

  • A visitor's private drive key lives only in memory. A reload asks for it again, but the start-up sync fails on that drive first and shows "Sync incomplete" until the key is entered (#2333)
  • A new revision arriving while a preview is open isn't loaded until it's reopened (#2238)
  • Import from manifest imports only one of two paths that point at the same data (#2319)
  • New strings in Spanish, Hindi, Japanese and Chinese show in English until translated; the deployment translations want a native-speaker check (#2292, #2317)
  • Found in the release e2e, all minor: with the Your drives sync menu open, Esc clears the selection but leaves the menu open; the Move dialog's footer and the permanence panel's share button are clipped at the bottom; screen readers hear table headings twice; an upload the Turbo guard refused shows as pending until a later sync marks it failed