# Dependencies deliberately held below latest stable, and why. # # THIS IS THE FLEET-WIDE FILE. Every repo inherits it; a repo's own # dependency-freshness.allowlist.yaml adds to it, and an entry there for the # same ecosystem:package overrides the one here. A blocker like "typescript-eslint # does not support TS 7" holds in every repo that pins typescript, and copying # it into eight of them would give eight entries that rot independently. # # Two entry classes, and the distinction is load-bearing: # # blocked_by: transitive:@ # A PREDICATE. The gate re-evaluates the blocker on every run and the # entry clears itself the moment upstream moves. It must NOT carry # `expires` -- a calendar date nobody can act on only turns the gate red # for a reason no commit can fix. # # anything else # Discretionary. Requires `expires`, capped at 90 days, and fails once # past. # # Every entry prints loudly on every gate run and at session start. An # exception nobody sees any more is a suppression. exceptions: - ecosystem: npm package: typescript pinned: "6.0.3" latest_known: "7.0.2" reason: >- typescript-eslint 8.71.0 -- itself the latest release -- declares `typescript: ">=4.8.4 <6.1.0"` and throws "typescript-eslint does not support TS 7.0" when eslint loads its config. No 9.x exists. Taking TS 7 would mean dropping every type-aware lint rule from every repo that pins it, so the compiler waits for the linter. Held fleet-wide: this blocks ts_core, web_ui, konbini-67, iron-and-anvil, awesome-mcp-explorer, europe-county-map and every other repo pinning typescript, which is exactly why the entry lives here and not in eight separate files. blocked_by: "transitive:typescript-eslint@8.71.0"