Universal File Mesh: Every File, One Surface
Cross-section file operations with poly:// URIs, fan-out queries, and bidirectional IDB-to-PostgreSQL sync.
The Universal File Mesh is live. Every file in every section of Poly — chat attachments, research reports, office documents, studio assets, code snippets — is now addressable through a single URI scheme: poly://v1/{section}/{storeName}/{id}.
One URI for everything
This isn't just a naming convention. The mesh comes with a fan-out query engine that can search across all your files in a single call, normalizers that convert section-specific formats into a unified descriptor, and a bidirectional sync engine that keeps your local IndexedDB in sync with PostgreSQL on the backend.
Query files across sections in a single call:
import { fanOutQueryV2 } from "@/lib/storage";
const { results } = await fanOutQueryV2({
storeNames: ["documents", "reports", "assets"],
limit: 50,
});
// results[].normalized contains UnifiedFileDescriptor[]
Cross-section bundles
Bundles let you group files from different sections into named collections. A research report, a financial spreadsheet, and a presentation — bundled together as deliverables for a client project. The link graph tracks relationships between files so you can trace dependencies and discover connections.
Sync engine
The sync engine uses a last-writer-wins conflict resolution strategy with health gates — if the backend is unhealthy, writes queue locally and flush when the connection recovers. WebSocket push keeps everything real-time when you're online. Offline edits sync automatically when you reconnect.
Three prerequisites are already implemented on the backend for efficient sync:
GET /api/storage/unified/list?updated_after={timestamp}— incremental pullPOST /api/storage/unified/batch-put— batch push- Full-text search across all 9 sections via
unified_storagefallback
The mesh is live for all users starting today. No configuration required — every file you've ever stored in Poly is already addressable.
More from Poly