Skip to content

feat(vault): open any CID from a link or paste, with trustless-gateway fallback - #83

Merged
Winter-Soren merged 3 commits into
QMeshPy:mainfrom
ishikabhoyar:feat/vault-cid-trustless-gateway
Oct 23, 2026
Merged

Winter-Soren merged 3 commits into
QMeshPy:mainfrom
ishikabhoyar:feat/vault-cid-trustless-gateway

Conversation

@ishikabhoyar

@ishikabhoyar ishikabhoyar commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Add /vault/cid and /vault/cid/[cid] to resolve shared vault content that is not in the local Helia blockstore.
  • Configure trustless HTTP gateways (NEXT_PUBLIC_IPFS_TRUSTLESS_GATEWAYS, Pinata-first defaults), verify fetched blocks against the CID, then cache them locally.
  • Distinct errors for invalid CIDs vs unreachable gateways; Zod schema checks for circuit/run records.
  • After pinning, copy a share link using the gateway CID (Pinata may differ from the local Helia CID).
  • Docs: frontend/src/features/ipfs/README.md. Tests: bun test:vault-cid.

Closes #54. Part of #43.

Test plan

  • bun test:vault-cid (mocked gateways) — 11 pass
  • Manual: paste a Pinata-pinned vault CID on a fresh browser profile → loads with Verified against CID · fetched via gateway
  • Optional: invalid CID (not-a-cid) shows Invalid CID message

Demo

issue54.mp4

@Winter-Soren

Copy link
Copy Markdown
Member

LGTM!
Awesome work @ishikabhoyar!

@Winter-Soren
Winter-Soren merged commit 9b588ad into QMeshPy:main Oct 23, 2026
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.

feat(vault): open any CID from a link or paste, with trustless-gateway fallback

2 participants