{"version":"2.1.75","anchor":"bug-fixes","canonical_anchor":"bug-fixes","heading":"","tier":null,"area":null,"scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.75\/e\/bug-fixes","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.75","markdown":"- Fixed `readFileState` being recomputed from messages on every turn \u2014 the main session class now caches and reuses it, improving performance (search for `\"readFileState\"`)\n- Removed redundant `existsSync` checks before `readFileSync` and `unlinkSync` calls, fixing potential race conditions (search for `unlinkSync`)\n- Fixed the tag-clearing behavior: setting an empty tag now correctly clears it (`tag || void 0`) instead of keeping the empty string (search for `\"currentSessionTag\"`)\n- Voice-enabled checks now additionally gate on `$I()`, preventing voice features from activating when conditions aren't fully met (search for `voiceEnabled`)\n- The `user:file_upload` OAuth scope is now requested for first-party authenticated sessions (search for `\"user:file_upload\"`)\n- Fixed async hook response rendering: previously only showed for PreToolUse\/PostToolUse when tool hooks were enabled; now also shows for SessionStart and other hook types when session hooks are enabled (search for `\"async_hook_response\"`)"}