Skip to main content

cooldown-guard

cooldown-guard makes uv cooldown exceptions auditable, narrow, and easy to clean up.

it is built around four ideas:

  • keep global exclude-newer on
  • allow temporary package-specific exceptions for emergency fixes
  • pin the exception with constraint-dependencies
  • automatically relax the exception once the normal cooldown window catches up

what it writes

given a project like:

[tool.uv]
exclude-newer = "7 days"

an approval like:

cooldown-guard approve urllib3==2.7.0 \
  --project /path/to/repo \
  --approved-by alice \
  --reason "security fix" \
  --advisory CVE-2026-12345 \
  --introduced-via requests \
  --introduced-via types-tqdm

will update the target pyproject.toml to look like:

[tool.uv]
exclude-newer = "7 days"
exclude-newer-package = { urllib3 = "2026-05-07T16:13:18Z" }
constraint-dependencies = ["urllib3==2.7.0"]

and create a .cooldown-guard.toml ledger beside it.

commands

  • cooldown-guard approve <package>==<version>: add a narrow exception and run uv lock
  • cooldown-guard validate: verify that the ledger and pyproject.toml agree
  • cooldown-guard status: show active and cleaned exceptions
  • cooldown-guard cleanup --check: test whether an active exception can now be relaxed from == to >=
  • cooldown-guard cleanup --apply: apply that relaxation and run uv lock

ci

the repo includes:

the example workflows download the linux x86_64 release binary from github releases and verify it with a pinned sha256 checksum before running it.

release flow

for automation, prefer the github release binary over runtime resolution from pypi. pin both:

  • COOLDOWN_GUARD_VERSION
  • COOLDOWN_GUARD_SHA256

for pypi trusted publisher setup, register:

  • owner: ischemist
  • repository: cooldown-guard
  • workflow: publish-pypi.yml
  • environment: pypi

notes

  • approved_by is audit metadata, not authorization. real authorization should still come from codeowners, branch protection, and normal review policy.
  • the tool shells out to uv lock instead of reimplementing resolution.
  • v1 intentionally targets the common case where the repo-level exclude-newer is a duration like "7 days".

Metadata

Release files for cooldown-guard 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cooldown-guard 0.1.2
File Size Uploaded Provenance
cooldown_guard-0.1.2.tar.gz 46.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for cooldown-guard 0.1.2
File Interpreter ABI Platform
cooldown_guard-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 57.1 kB

Release files / cooldown_guard-0.1.2.tar.gz

Download URL cooldown_guard-0.1.2.tar.gz
Size 46.0 kB
Tags Source
SHA-256 checksum
How to use checksums
fc6391128a2e4f0058443a2f5e99ad63ca96aca9dcd1cc73d254c95887c1c87a
BLAKE2b-256 checksum
How to use checksums
789f5480242a12e40c0cbc72bea581ce432dd4a16d974becebce2095f11d113d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / cooldown_guard-0.1.2-py3-none-any.whl

Download URL cooldown_guard-0.1.2-py3-none-any.whl
Size 11.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
54df4a70abff33f5a71014a06aae2dded2fa115970ff68055eb2a37dc8995705
BLAKE2b-256 checksum
How to use checksums
5b1f1d1a62c6d42e7686738e79494cea2c6d149e9496e38a88e902251dc16bb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for cooldown-guard 0.1.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page