{"version":"2.1.299","anchor":"project-tool-originalversion-options-and-if-version-guard","canonical_anchor":"project-tool-originalversion-options-and-if-version-guard","heading":"Project tool can read original uploads and refuse stale writes","tier":"notice","area":"Projects","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299\/e\/project-tool-originalversion-options-and-if-version-guard","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.299","markdown":"### Project tool can read original uploads and refuse stale writes\n\nproject_read can return an upload's original file and project_write can take if_version to refuse a stale write, both behind tengu_mossy_wirth\n\n**Unclear.** What switches on the original and document-version options is not stated.\n\n**What**\n\nThe project tool lets Claude read and write the documents in an attached claude.ai Project. It gains two options.\n\n- `project_read` with `original: true` saves the original file of an uploaded document, such as a PDF or docx, to a local file and returns its path instead of the extracted text. The option is ignored for text docs and other uploads.\n\n- `project_write` accepts `if_version`, the 64-character version hash (SHA-256) that came with the copy Claude worked from, and returns a new `version`. If the doc has changed since, the write fails with `project_doc_stale`.\n\n- A badly formed `if_version` is rejected with: \"Nothing was changed. if_version must be the 64-character `version` that came with the copy you worked from, copied exactly. If you do not have it, project_read the doc. Omit it for a new doc.\"\n\n- The tool description gains matching passages, shown only when the options apply. Tool names in the text are now filled in automatically, and the tool gains `coerceInput` handling.\n\n- The file-not-found error now says that synced sources, such as GitHub and Google Drive, are not listed.\n\nBoth options depend on the gate `tengu_mossy_wirth`, which falls back to false. `original` also needs a non-zero session file limit. When an option is not available, it is removed from the tool's input, and a call that includes it gets a note such as \"Note: `original` is not available in this session and was ignored.\" or \"Note: `if_version` is not available in this session and was ignored: this call did not check whether the doc had changed.\" For `tengu_mossy_wirth`, the flag server returned off for this site's account and for the anonymous baseline, and no reading has been taken under this release yet.\n\n**Why**\n\nWhere the options are available, Claude cannot overwrite a project doc that someone else changed after Claude read it. Claude can also work with the real PDF or docx instead of only its extracted text.\n\n- Area: Projects\n- Names: `if_version`\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 3\/5\n- Scope: individual\n- Heads-up: no"}