{"name":"tengu_violin_purfling","slug":"tengu-violin-purfling","family":"flag","title":"Feature flags","noun":"feature flag","description":"A forwarded shell command that writes your machine's Claude Code settings files is blocked or sent to you for approval","description_source":"entry","described_by":{"version":"2.1.283","anchor":"shell-commands-that-write-the-hosts-claude-code-settings-ar"},"presence":{"first_seen":"2.1.283","removed_in":null,"in_current_build":true,"newest_mined":"2.1.283","builds":1,"mined_builds":126,"first_cited":{"version":"2.1.283","released_at":"2026-09-25 18:46:11","spans":1}},"aliases":[],"entries":[{"version":"2.1.283","anchor":"shell-commands-that-write-the-hosts-claude-code-settings-ar","heading":"Cloud sessions cannot rewrite your Claude Code settings through shell commands","line":"A forwarded shell command that writes your machine's Claude Code settings files is blocked or sent to you for approval","released_at":"2026-09-25 18:46:11","reason":"gate cited by this entry"},{"version":"2.1.283","anchor":"tengu-violin-purfling-is-read-with-two-different-fallbacks","heading":"Shell commands from a remote session that change Claude Code settings can be held for review","line":"Two new safeguards against a remote session changing Claude Code's settings files through shell commands","released_at":"2026-09-25 18:46:11","reason":"gate cited by this entry"}],"entries_total":2,"docs":[],"docs_total":0,"gates":[{"version":"2.1.283","state":"on-in-code","account":true,"baseline":true,"code_default":null}],"related":[{"name":"tengu_violin_","slug":"tengu-violin","description":"Remote sessions started from the desktop app now need a second flag as well."},{"name":"tengu_violin_amati","slug":"tengu-violin-amati","description":"Settings pushed from the control channel are checked before they can change plugin forwarding, and refusals are logged."},{"name":"tengu_violin_bassbar","slug":"tengu-violin-bassbar","description":"`CLAUDE_CODE_REMOTE_TOOLS_SPECULATIVE_CLASSIFIER` is now read, but the code around it always gives the same answer, so setting it changes nothing"},{"name":"tengu_violin_bridgepin","slug":"tengu-violin-bridgepin","description":"New display styles for background tool results and for repository-trust folder-wait refusals"},{"name":"tengu_violin_chinrest","slug":"tengu-violin-chinrest","description":"Notices for shared\/served folders are now deduplicated and capped instead of fired one by one"},{"name":"tengu_violin_fingerboard","slug":"tengu-violin-fingerboard","description":"Device-bound cloud session creation can now send a repositories_trusted field, retrying without it if the server refuses"},{"name":"tengu_violin_fret","slug":"tengu-violin-fret","description":"Headless and desktop cloud sessions in auto or bypass mode now ask once whether Claude may act unattended, and the answer is saved."},{"name":"tengu_violin_lining","slug":"tengu-violin-lining","description":"Tool calls forwarded from a cloud session are blocked from reading or changing your machine's keychains and credential files"},{"name":"tengu_violin_mute","slug":"tengu-violin-mute","description":"Scaffolding to mute and unmute served tools has landed, with state labels and a periodic timer, but nothing calls it."},{"name":"tengu_violin_peg","slug":"tengu-violin-peg","description":"New sandbox and approval flow for project hooks run read-only during cloud\/remote sessions"}],"url":"https:\/\/changelogs.core-directive.com\/reference\/flag\/tengu-violin-purfling","family_url":"https:\/\/changelogs.core-directive.com\/reference\/flag.json"}