Skip to content

Conversation

@lidel
Copy link
Member

@lidel lidel commented Jan 23, 2026

This PR fixes various papercuts around putting URIs and IPNS paths into webui/desktop app, and not getting useful error, just blank screen or infinite spinner.

Changes

  • Inspect button now resolves /ipfs/ and /ipns/ paths to their final CID before opening IPLD Explorer
  • Explore form accepts ipfs:// and ipns:// protocol URLs (auto-converted to paths)
  • Browse button preserves full paths (Files handles IPNS and subpaths natively)
  • Added path normalization for ipfs:// and ipns:// URLs
  • Uses ipfs.resolve with recursive: true for all paths on Inspect
  • Fixed grid view keyboard handler stealing focus from text inputs

Test

Good path

  1. Enter /ipns/cid.ipfs.tech/assets and click Inspect - resolves to final CID
  2. Enter ipfs://bafy... - validates and works with both buttons
  3. Grid view arrow navigation still works
  4. Can type in explore form input while in grid view

Error paths

  • Enter /ipns/cid.ipfs.tech/404 and click Browse → 404 error
  • Enter /ipns/google.com and click Browse → missing DNSLink error

Improved generic error for 404 and other error paths

Nothing was displayed on error paths before.
Added basic UI, PRs welcome to improve it, for now it looks like this:

image

lidel added 4 commits January 23, 2026 17:02
the Inspect button now resolves `/ipns/` paths to `/ipfs/` CIDs
before passing them to the IPLD explorer, which cannot parse
IPNS names directly.

shows loading state during resolution and displays error message
if resolution fails.
- add normalizeToPath helper to convert protocol URLs to paths
- update validation to accept ipfs:// and ipns:// URL inputs
- use ipfs.resolve for all paths (not just IPNS) to get final CID
- preserve full paths when browsing (Files handles IPNS natively)
- rename translation key to inspectResolveFailed for clarity
- fix grid view stealing focus from text inputs
- preserve subpaths when resolving IPNS paths (e.g., /ipns/name/subdir/file)
- catch and display IPNS resolution errors instead of crashing
- fix path mismatch causing blank page when navigating IPNS paths
- add error display on FileNotFound page
- replace generic troubleshooting tips with actionable links
- add links to DAG Explorer, Retrieval Diagnostics, and forums
- show "search the web" tip only when error message is present
- use Box component and match app styling patterns
@lidel
Copy link
Member Author

lidel commented Jan 26, 2026

Triage: land #2466 first

- add e2e tests for Browse and Inspect buttons using inlined CID
- add browseButton locator for explore form
- remove debug console.warn from FilesPage
- add i18n for error prefix in file-not-found component
- invalid CID shows validation error (client-side check, red outline)
- invalid IPNS name shows error state (daemon-side DNSLink lookup)
@lidel lidel force-pushed the feat/inspect-ipns-resolve branch from 587a299 to c82047f Compare January 26, 2026 19:21
@lidel lidel marked this pull request as ready for review January 26, 2026 19:25
@lidel lidel requested a review from a team as a code owner January 26, 2026 19:25
@lidel lidel merged commit 74a44d8 into main Jan 26, 2026
12 checks passed
@lidel lidel deleted the feat/inspect-ipns-resolve branch January 26, 2026 19:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support DNSLink resolution

2 participants