{"version":"2.1.274","anchor":"internal-session-options-gain-a-shared-toolcatalog-object","canonical_anchor":"permissiontool-scoping-setup-takes-an-explicit-getallbaseto","heading":"Tool list access consolidated into a shared toolCatalog","tier":"internal","area":"Session Management","url":"https:\/\/changelogs.core-directive.com\/v\/2.1.274\/e\/internal-session-options-gain-a-shared-toolcatalog-object","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.274","markdown":"### Tool list access consolidated into a shared toolCatalog\n\nSession and permission setup now pass tool-list access (getAllBaseTools, getTools, assembleToolPool) through a shared toolCatalog object instead of calling separate global functions.\n\n**What**\n\n- The code that builds the tool permission context (which tools are allowed\/disallowed, including `--tools` narrowing) now receives `getAllBaseTools` as an explicit parameter instead of calling a fixed global function directly.\n\n- Session and agent setup (main loop, subagents, resumed sessions) now threads a shared `toolCatalog` object (`{ getAllBaseTools, getTools, assembleToolPool }`) through `options`, alongside the existing `tools` field, replacing scattered direct calls.\n\n**Why** This is an internal cleanup that makes tool-list access consistent and explicit across the codebase, reducing the chance of different code paths using mismatched or stale tool lists.\n\n- Area: Session Management\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 0\/5"}