feat(files): unified download dialog, public-upload fix, and upload UX polish#180
Merged
Merged
Conversation
…X polish Download: - Merge "Download by Address" and "Download by Datamap" into one Download dialog with a smart input that auto-detects a hex address, an autonomi:// link, a local .datamap path, or an http(s) .datamap URL, plus a drop zone and an auto-filled save-as name. - Require a full 64-hex address (was >=8 chars, which enabled the button then failed in the backend). - Parse autonomi:// links for name / filename+filetype. - Fetch a datamap from an http(s) URL (read_datamap_url; reqwest with a 15s timeout and a 5 MiB streamed cap). Upload: - Fix: public uploads in direct-key mode (devnet / imported key) were silently stored private — wallet_upload now takes visibility and returns public_address, so the PUBLIC badge and shareable address show. - Already-on-network files no longer auto-dismiss the confirm dialog; the private (get datamap) vs public (publish) choice is preserved, the approve gate counts them, and the button reads "Get Datamap" for already-stored + private. - Remove the redundant "Already stored" badge that crowded the filename. Table: - Address column truncates to the column width (full address when it fits) and never truncates the PUBLIC tag. - Vertically centre the status column. i18n: new/updated download and upload strings across all 18 locales (machine-generated best guess for non-English; will refine with feedback). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Nic-dorman
force-pushed
the
feat/upload-download-improvements
branch
from
July 14, 2026 12:00
64f8090 to
b9a5eaa
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Splits a batch of upload/download improvements out of a testing session. (Sibling PR for LAN devnet Developer Options is separate — the two touch different regions of
lib.rs/en.jsonand don't conflict.)Download
0x…/ 64 hex) →download_publicautonomi://link →download_public(parsesname/filename+filetypefor the save-as name).datamappath orfile://URI →download_filehttp(s).datamapURL → fetch thendownload_file.datamapfile, and an auto-filled save-as name.{8,}check enabled the button then failed in the backend (which requires exactly 32 bytes).read_datamap_url(reqwest, 15s timeout, 5 MiB streamed cap; parsed via ant-core's format sniffer). The file data still comes from Autonomi, so a hostile URL can't substitute content.Upload
wallet_uploadnow takesvisibilityand calls the public variant, returningpublic_address— so thePUBLICbadge and shareable address show. This affected Sepolia and Arbitrum One imported-key uploads too, not just devnet.Uploads table
i18n
New/updated download+upload strings across all 18 locales. Non-English is machine-generated best guess — will refine with community feedback.
Both this and the sibling branch build clean (
tauri dev) and were exercised against a local devnet.🤖 Generated with Claude Code