Skip to content

Releases: vartiainen1/agent-error-log

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 11 Aug 00:01
303c71b

Added

  • Professional packaging: pyproject.toml (version derived from the git tag via
    setuptools-scm - no drift), a global error-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).

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 10 Aug 21:14
63e77b3

Fixed

  • Typed entries: parse_entries() now returns ErrorEntry 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 the log (stdout-only reconfigure bug).

  • L10: load() no longer crashes on a locked/unreadable log file (graceful OSError fallback; regression tests added).

  • Concurrent --add appends no longer lose entries: the append is
    now 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).

  • _extract_area() marker semantics documented and pinned by tests:
    the CI gate and the shell hooks agree on the marker (first matching
    line, last AREA:/LOG: on it — the hooks' grep -m1 + greedy sed).

  • status_token() strips the en-dash as well as the em-dash (OPEN– ->
    OPEN).

  • start.py active_errors() delegates to check_errors.parse_entries()
    (the canonical parser) instead of re-implementing entry splitting, so
    the boot briefing can never drift from the tool's format.

  • load() reads with utf-8-sig so a BOM-prefixed log is parsed, not
    silently ignored.

Added

  • Robustness tests: 100-entry fuzz, BOM / invalid UTF-8, en-dash
    statuses, an empty section-5-only log, and multi-marker precedence in
    --check-commit (last marker on the first matching line).

Docs

  • Add a permanent visitor badge to the README (GitHub traffic stats
    only keep 14 days).
  • README: document the lessons-clustering chain limitation, the parser's
    worst-case O(n²) on pathological logs, and LOGNAME repo-root-relative
    paths.

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 09 Aug 02:42
7b2c1cd

Docs

  • Add CODE_OF_CONDUCT.md (Contributor Covenant 2.1) to complete the
    community-standards checklist.

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 09 Aug 01:36
e0cf5be

Docs

  • README: fix stale test count in the file listing (90 -> 117).
  • Add issue templates (bug report, feature request), a pull-request
    template that enforces the (AREA: ...) log-before-fix marker, and a
    SECURITY.md policy.

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 09 Aug 01:14
76f1abf

Added

  • One-command adoptioncheck_errors.py --init [--target DIR]
    scaffolds errors.txt / rules.txt / notes.txt (never overwriting
    existing files), installs the commit-msg gate (backup-safe),
    health-checks the log, and runs the unit-test suite. Built-in
    minimal scaffolds kick in when only check_errors.py was copied.

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 09 Aug 00:35
404744e

Docs

  • README: document the PR-based shipping workflow (branch → PR →
    squash merge with the (AREA: …) marker in the title) — direct
    pushes to master are blocked by branch protection.

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 09 Aug 00:08

Added

  • Server-side commit-message gatecheck_errors.py --check-commit
    re-runs the log-before-fix rule on a commit-message file, and the new
    commit-gate CI job applies it to every pushed commit — so a
    --no-verify bypass is caught at the server, where the flag cannot reach.
  • hooks/install.sh — one-command setup for every --no-verify blocker
    (commit-msg gate, git wrapper alias, Claude Code + VS Code hooks).
    Idempotent; backs up files before changing them; self-tests the Python
    interpreter (Windows Store stubs are detected and skipped).

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 08 Aug 23:25

Added

  • hooks/ — harness-level --no-verify blockers — close the documented
    bypass of the commit gate at the layer where agents run:
    • block-no-verify.sh — git alias wrapper rejecting git commit --no-verify / -n.
    • block-no-verify-hook.sh + claude-code-settings.json — Claude Code
      PreToolUse hook blocking the command (exit 2, reason shown to the
      model).
    • block-no-verify-hook.sh + vscode-agent-hooks.json — VS Code agent
      hook with the same guard, self-filtering on tool_name (VS Code does
      not apply matchers).
  • CI — the hook syntax check now covers every hook script
    (git-commitmsg-hook.sh and hooks/*.sh).
  • LICENSE — copyright holder set.
  • check_errors.py --lessons — distills recurring CAUSE keywords
    from the error log into a LESSONS LEARNED section (preview by default;
    --apply writes it into rules.txt). The agent's memory now
    compounds on its own.

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 08 Aug 22:33

Initial release — a model-agnostic error-log and log-before-fix system for
AI coding agents.

Added

  • Three-file systemrules.txt, errors.txt, notes.txt templates
    with placeholders for any project, plus example data that works out of the
    box (python start.py boots a fully working demo).
  • check_errors.py tooling (stdlib only) — linter (template fields +
    canonical statuses FIXED | PARTIAL | OPEN | MITIGATED | WORKAROUND),
    --add scaffolder, --has-entry mechanical gate, --archive-days
    archiver (idempotent, dry-run by default), --log for any file.
  • start.py session bootstrap — STEP 0 error-log health check, reading
    order, open errors, latest session note; configurable filenames.
  • git-commitmsg-hook.sh — the log-before-fix git gate: blocks code
    commits whose message lacks an AREA: <text> marker matching a logged
    entry, lints the log when it is staged, and exposes env-var overrides
    (LOGNAME, PYTHON, AGENT_ERROR_LOG_DIR).
  • _test_errors.py — 64 unit tests (parsing, validation, gate, add,
    archive, idempotency).
  • CI — GitHub Actions workflow running the tests, linter, and hook
    syntax check on Linux and Windows across Python 3.9–3.12.
  • Docs — README, AGENTS.md, CONTRIBUTING.md, MIT license.

Known limitations

  • git commit --no-verify bypasses the local hook; documented with
    practical workarounds in the README.