Skip to content

[bug] pyproject.toml exclude-newer = "7 days" blocks dependency resolution for stable packages #19043

Description

@xiaqii

Describe the bug

The exclude-newer = "7 days" setting in [tool.uv] (pyproject.toml, line 176) causes uv pip install to fail when resolving dependencies for packages that haven't had a release within the last 7 days. This affects both the build system (setuptools>=61.0) and optional extras (vercel>=0.5.7,<0.6.0).

Since hermes update runs uv pip install -e ".[all]" (or falls back to individual extras) after pulling new commits, this setting silently blocks dependency updates whenever the PyPI upload window excludes critical packages.

To Reproduce

cd hermes-agent
# With exclude-newer = "7 days" in pyproject.toml
uv pip install -e ".[all]"

Expected: All dependencies resolve and install successfully.

Actual:

  × Failed to build `hermes-agent @ file:///...`
  ├─▶ Failed to resolve requirements from `build-system.requires`
  ├─▶ No solution found when resolving: `setuptools>=61.0`
  ╰─▶ Because there are no versions of setuptools and you require
      setuptools>=61.0, we can conclude that your requirements are unsatisfiable.
      hint: `setuptools` was filtered by `exclude-newer` to only include
      packages uploaded before 2026-04-26T...

Same failure for the vercel extra:

  × No solution found when resolving dependencies:
  ╰─▶ Because there are no versions of vercel and hermes-agent[all]==0.12.0
      depends on vercel>=0.5.7,<0.6.0, we can conclude that
      hermes-agent[all]==0.12.0 cannot be used.

Environment

  • Hermes Agent: v0.12.0 (2026.4.30)
  • Python: 3.11.15
  • uv: 0.11.6
  • OS: Linux (Debian-based)

Suggested fix

Remove exclude-newer = "7 days" from [tool.uv] in pyproject.toml, or use exclude-newer-package to target only specific packages if reproducibility is the concern:

[tool.uv]
# Option 1: Remove entirely (recommended — pyproject lock files or requirements.txt handle reproducibility)
# Option 2: Scope to specific packages only
exclude-newer-package = ["some-package=false"]

Impact

Any user running hermes update when there are new commits will hit this dependency resolution failure during the "Updating Python dependencies..." step. The update appears to succeed on the git side ("Already up to date" when no new commits), but silent dependency failures leave the environment with stale or broken packages.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium — degraded but workaround existsarea/configConfig system, migrations, profilestype/bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions