Skip to content

v0.4.1 — bugfix: silent wrong-file write on `attach download`

Choose a tag to compare

@github-actions github-actions released this 16 Jul 19:08

Bugfix release. No new features; one real bug with a silent failure mode.

Fixed

attach download --output PATH wrote to the wrong file, silently, with exit 0.

--output/-o is a global flag (output format) that the CLI strips from anywhere on the command line — so attach download's own --output was consumed before the command ever saw it. The chain: the path got read as a format → coercion failed → the error was swallowed → the format degraded to json → download() received no path → the file landed in the current directory under its original name, and the CLI exited 0.

  • The option is now --out. -O is unchanged and always worked.
  • This is not a breaking change — the long form never worked in any release.
openproject attach download 42 --out ./report.pdf   # now lands where you asked

Other fixes

  • make test-unit ran 30 of 144 hermetic tests while advertising the full set.
  • Emitter.message() used a denylist that would have printed prose into csv/markdown output, corrupting both.
  • README now opens with a Contributing quickstart: pip install -e '.[test]' && pytest144 passed, 103 skipped in ~2s, with no OpenProject, no Docker and no token. The full stack is documented as the deeper tier, not a prerequisite.

Added

tests/test_globals_unit.py — walks all 94 commands and fails if any declares an option in the reserved global namespace, so this class of bug can't return. It reserves only the flags actually stripped from argv: --version, --profile and --no-color are ordinary root options that a subcommand may legitimately shadow (verified: wp list --version "Sprint 3" and raw get x -p k=v both work).

Verified

246 passed / 1 skipped against a live OpenProject 15; CI green on Python 3.10–3.12 plus a live-instance integration job. The --out path was additionally confirmed by hand end-to-end: upload → download to an explicit path → correct contents, nothing left in the working directory.

pipx install -U agent-tool-openproject-cli

Full Changelog: v0.4.0...v0.4.1