Version 3.0
Files and the Project VFS

Files and the Project VFS

Upload the documents and folders your Project needs to reason over, then reference them from chat and the Runbook by name. Files live in a per-Project virtual file system tied to the Project's volume.

Audience: builders

Find the Files section

Open your Project. Click the Context tab. The Files section sits at the top: a count ("18 files"), a search field, and three actions on the right: Upload files, Upload folder, New folder.

The list groups top-level folders first, then loose files at the root. Each row shows name, size, and last modified.

Upload files and folders

You have four ways to put files in:

Pick files

Click Upload files and choose one or more files. They land in the currently selected directory (root if nothing is selected).

Pick a folder

Click Upload folder. The browser uses webkitdirectory, so it preserves subpaths. Every file under the picked folder uploads with its relative path intact.

Drag and drop

Drop files or a folder anywhere on the Files surface. The drop zone highlights while you drag.

Reference from chat

Drop a file directly into the composer to attach it to a single message, or upload it through Files first to keep it available across turns.

What gets filtered on upload. Folder uploads run through a junk filter: node_modules, .git, .venv, __pycache__, dist, build, .next, .DS_Store, Thumbs.db, and a handful of build caches never reach the volume. When the filter trims anything, or when you upload more than five files at once, a confirm dialog shows the cleaned count before the upload runs.

The .blockparty/ system path

The workspace view hides anything under .blockparty/. That prefix is where the platform stores Skill drafts, schema files, memory documents, thread links, and other system artifacts. Your uploads never land there: agents cannot write into system paths, and the file browser filters them out so the view stays focused on your own content.

If you ever need to inspect a system path, use the API directly. Day to day, treat .blockparty/ as platform-managed.

Reference a file from chat or the Runbook

  • From chat. Press @ in the composer and pick the file from the reference picker. The picker searches across Files, Memories, Skills, and integrations.
  • From the Runbook. Cite the file by its path, for example proposals/Q3-cutoff-memo.pdf. The runbook resolves it against the Project volume at run time.

When an agent reads a file, the read shows up in the Audit ledger with the path, the volume snapshot, and the run that opened it.

Organize with folders

Click New folder to create one in the currently selected directory. Folder names cannot contain / or \. Use folders to group source documents the way your team thinks about them: vendors/, policies/, samples/, Q3/.

Deleting a folder removes every file under it. The Delete action opens an inline confirm in the row footer naming the folder and the count it would remove, so you have one last look before the deletion runs.

Versioning by snapshot

Every save creates a new snapshot of the volume. Replacing a file does not overwrite the old bytes: the prior snapshot still holds them, and runs that started against an earlier snapshot keep reading the version they began with. The current snapshot is what new conversations and runs pick up.

You will not see a per-file history panel today: snapshots are at the volume level, surfaced through the Audit ledger when you need to ask "what did this run actually see?".

How to think about files

Files are how you give your Project source material to reason over: contract templates, vendor lists, policy PDFs, the spreadsheet your team always reaches for. Keep the set tight. Quality and recency matter more than volume.