Skip to content

v0.5.0

Latest

Choose a tag to compare

@github-actions github-actions released this 11 Aug 00:01
· 15 commits to master since this release
e8cbdef

Added

  • Professional packaging: pyproject.toml (version derived from the git tag via
    setuptools-scm - no drift), a global decision-log console script, zero
    runtime dependencies.
  • Installed-mode defaults guard (_default_base): pip-installed runs resolve
    default paths against the current directory; in-place copies keep resolving
    against the file's folder.
  • CI packaging job: builds the wheel, installs it into a fresh venv, and
    smoke-tests the console script + module import.
  • publish.yml: trusted publishing to PyPI, gated behind the PUBLISH_TO_PYPI
    repository variable (skipped until enabled).

Fixed

  • Typed entries: parse_entries() now returns DecisionEntry dataclasses (dict-compatible via __getitem__), full type hints on all functions, and a small exception vocabulary (AgentLogError / ValidationError / LockTimeoutError) — same behavior, same exit codes.
  • stdin reconfigured to UTF-8 on Windows: piped unicode no longer double-encodes into decisions.txt (stdout-only reconfigure bug).
  • L10: load() no longer crashes on a locked/unreadable log file (graceful OSError fallback; regression tests added).

Docs

Fixed

  • Concurrent --decide/--revise/--resolve appends no longer lose
    entries: the append is serialized by a cross-process lock file
    (<log>.lock, stdlib-only, atomic O_CREAT|O_EXCL create with 5s wait
    and stale-lock recovery) and the log is re-read inside the lock before
    writing (lost-update fix).

  • Document the PR-based push workflow in the README (branch -> PR ->
    squash merge with the (AREA: <logged decision>) marker) now that
    branch protection blocks direct pushes to master.