Skip to content

DL-227

Tier 3 of the keymap dispatcher becomes scope-aware: a matched window-global entry runs its command only if command.scope === "global" or command.scope equals the active zone (dispatch.ts:120-129, reusing tier 2’s already-computed zone from dispatch.ts:107), turning the long-authored-but-unread Command.scope field (commands.ts:18,40) into the load-bearing tier-3 gate. Degrades conservatively under the () => null default activeZone (only scope:"global" passes). A tier-3 isGroupRelative(id) prefix-skip was rejected — it special-cases two id prefixes instead of honoring the declared scope and leaves Command.scope decorative.

Status: Active (Matt, 2026-08-22)

Record: ../../meta/compass-tier3-scope-gate/design.md#decisions