{"version":"2.1.323","anchor":"new-env-var-claude-code-project-doc-look-timeout-ms-bounds-a","canonical_anchor":"new-env-var-claude-code-project-doc-look-timeout-ms-bounds-a","heading":"Projects tool: search can return images, write switches split, and project document reads are tracked","tier":"use","area":"Environment Variables","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.323\/e\/new-env-var-claude-code-project-doc-look-timeout-ms-bounds-a","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.323","markdown":"### Projects tool: search can return images, write switches split, and project document reads are tracked\n\nThe claude.ai Projects tool's search can return images, its two write switches now gate separate paths, and project document reads are tracked with a timeout\n\n**Unclear.** The lookup also depends on two further internal checks whose names are not known, so it is unclear whether it runs at all.\n\n**What**\n\nThe Projects tool lets Claude search and write documents in a claude.ai Project. Several parts of it changed:\n\n- `project_search` results can now include images, as image blocks next to the text. Before, results were text only. Images are removed when a result is stored and put back when the result is remapped (`restoreTransientForRemap`).\n\n- `project_search` now takes a number from the switch `tengu_pebble_harbor`, held between 0 and 4. Before, it took only `n`. Nothing has been read about this switch.\n\n- `tengu_lovely_rain` alone now gates writing into the document in view, and `tengu_lucky_nebula` only gates the variant that writes by file path. Before, writing needed both. `tengu_toasty_owl` is unchanged. For both `tengu_lovely_rain` and `tengu_lucky_nebula`, the flag server returned off for this site's account and for the anonymous baseline, and no reading has been taken under this release.\n\n- Writes and deletes go through a new approval check.\n\n- Stream events gain an internal optional `owed_rows` field. It lists the IDs of `project_doc_reads` rows, which record Claude Code reading a claude.ai Project's documents.\n\n- After a turn whose attachments include `project_doc_reads`, Claude Code starts a lookup of hashes (fingerprints) of those documents. The environment variable `CLAUDE_CODE_PROJECT_DOC_LOOK_TIMEOUT_MS` sets how long the lookup may take, and on a timeout it gives up for the rest of the session. In headless mode (running without the interactive screen) the ID of the `project_doc_reads` attachment is also collected into a list.\n\n**Why**\n\nClaude can now get pictures, not just text, back from a project search. Whether each kind of write is available depends on a different server switch than before. If the document lookup slows you down, `CLAUDE_CODE_PROJECT_DOC_LOOK_TIMEOUT_MS` bounds it.\n\n- Area: Environment Variables\n- Tier: Use it now\n- Useful: 4\/5\n- Signal: 3\/5\n- Scope: individual\n- Heads-up: no"}