Skip to content

Commit 79a388e

Browse files
burnpiroclaude
andcommitted
chore(security): add 7-day exclude-newer cooldown
Refuse to resolve any PyPI dependency uploaded in the last 7 days (`[tool.uv] exclude-newer = "7 days"`). Mitigates blast radius of compromised dependencies (typosquatting, account takeovers, dependency confusion). Pins `required-version = ">=0.11.1"` so older uvs fail loudly instead of silently parsing "7 days" as an RFC 3339 date and proceeding *without* the cooldown — see uv#17908. zeroband has no first-party PrimeIntellect packages in its dep closure, so no `[tool.uv.exclude-newer-package]` exemptions are needed. Add the table when that changes. Lock regenerated: uv migrated the lockfile schema from revision 2 to revision 3 (large mechanical churn — 0 packages removed, 0 versions regressed). Schema migration is independent of the cooldown change. Part 1 of 3 in a coordinated supply-chain hardening across PI repos. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent de5b931 commit 79a388e

2 files changed

Lines changed: 1538 additions & 1522 deletions

File tree

pyproject.toml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,13 @@ line-length = 120
3939

4040
[tool.uv]
4141
dev-dependencies = ["ruff>=0.5.0", "pre-commit>=3.0.0","pytest>=7.0.0", "faker"]
42+
# Enforce a uv version that supports the friendly-duration form
43+
# (`"7 days"`) in the static pyproject parser. Older uvs silently parse
44+
# the value as an RFC 3339 date, emit a TOML parse warning, and proceed
45+
# *without* the cooldown — bypassing this security policy.
46+
required-version = ">=0.11.1"
47+
# Supply-chain cooldown: new PyPI uploads must age 7 days before resolution
48+
# picks them up. zeroband has no first-party PrimeIntellect dependencies in
49+
# its closure, so no exclude-newer-package exemptions are needed yet — add a
50+
# [tool.uv.exclude-newer-package] entry when that changes.
51+
exclude-newer = "7 days"

0 commit comments

Comments
 (0)