Repository navigation
Releases: wlfghdr/agentic-dev
Release list
v0.5.0
Automated daily release for wlfghdr/agentic-dev as v0.5.0.
Version taken from the version repository contract.
[0.5.0] — 2026-10-14
Releases v0.3.0–v0.4.2 were tagged by the daily release job without matching
VERSION/CHANGELOG updates; their changes are included in this section.
Added
-
Review round cap —
review.shkeeps a per-PR ledger of reviewed head SHAs (state/review-rounds/). A head is reviewed at most once (also enforced indetect.py), and aneeds-fixverdict afterlimits.max_review_rounds(default 3) hands the PR back to the human asblockedinstead of starting another engineer↔review round. Previously one PR could burn 100+ reviews and 70+ fix runs. -
Failed release evaluations count for the day —
release.shrecords deterministic version-contract failures (exit 3–6) in its daily state, sodetect.pystops re-dispatching the same failing release every ~20 minutes. -
No-progress fix handoff — an engineer fix iteration that pushes no new commit now labels the PR
blockedand hands it to the human instead of clearingchanges-requested, which re-reviewed the same revision and looped. -
CLI cooldowns in
cli_dispatch.sh— usage-limit, login, and missing-binary failures park the CLI (honoring "try again at …" reset times), parked CLIs are skipped in chains, andtick.shno longer dispatches engineer/review work while the whole chain is parked. Previously every queued item re-ran its full failing chain every 20 minutes. -
Worktree GC (
gc_worktrees.sh) — removes worktrees and agent branches of closed issues and merged/closed PRs every 6 hours. -
Workflow labels reference in
README.md— documented the full label model the loop coordinates through (do-not-work,blocked,in-progress,needs-review,changes-requested,approved), separating the two human control points from agent-managed state, and how the three review verdicts (merge-ready/needs-fix/blocked) map onto labels. Thedo-not-workandblockedcontrol points were previously only discoverable indetect.pysource.
Changed
- Cheaper detection —
detect.pyuses one open-PR listing per repository instead of per-detector listings, per-PRgh pr view, and per-issue search API calls; negative release checks are cached for an hour; history snapshots are written only when detected work changes. - Tick logs — idle ticks no longer create a log file per minute;
logs/is pruned after 14 days.
Fixed
-
Reviews bound to immutable PR revisions in
scripts/review.shandscripts/merge.sh— the reviewed head and base commits are captured once, used for checkout, metadata, and diff evidence, and revalidated at the approval and merge boundaries together with CI, mergeability, PR state, and human stop labels. Formal reviews are now submitted pinned to the reviewed commit, andapprovedis rolled back when publication or eligibility fails. Previously a review could approve or merge a revision it never inspected if the PR moved mid-review. -
agydefault invocation —--printtakes the prompt as its value, so the built-in definition now passes the prompt as the final argument with a 60-minute print timeout. -
Review verdict / dispatch wording consistency in
README.md— the flow diagram now lists all three review verdicts (merge-ready/needs-fix/blocked); the third (blocked) was implemented inreview.shbut missing from the docs. Also standardized "spawns" → "dispatches" so the README matches the "dispatch" vocabulary used throughout the scripts. -
Default deployment path consistency in
install.sh— the defaultTRIAGE_DIRnow resolves to/srv/agentic-dev, matching the in-repo script defaults (tick.sh,review.sh,merge.sh), the systemd unitExecStart, thesedsubstitution token, the README, andinstall.sh's own header comments. Previously the installer relocated to a brand-specific/srv/wulfai/triage, which contradicted every other reference and leaked a vendor name into a vendor-neutral default. Override with theTRIAGE_DIRenvironment variable as before.
v0.4.2
Automated daily release for wlfghdr/agentic-dev.
Semver bump: patch.
Changes:
- Merge pull request #33 from wlfghdr/agentic-dev/issue-28 (1ddf060)
- Merge pull request #32 from wlfghdr/agentic-dev/issue-29 (47b4712)
- fix: preserve safe issue handoffs (21b083c)
- fix(release): address review feedback (806203e)
- fix: preserve closing issue repository handoffs (de7b61f)
- fix(release): enforce repository version contracts (d84eec4)
v0.4.1
v0.4.0
Automated daily release for wlfghdr/agentic-dev.
Semver bump: minor.
Changes:
- Merge pull request #24 from wlfghdr/fix/triage-runtime-paths (2b868c0)
- Merge pull request #21 from wlfghdr/dependabot/github_actions/actions/setup-python-7 (d653874)
- chore: ignore python bytecode artifacts (d996cde)
- fix: resolve merge conflict in validate.yml - include all test steps (f3a9f00)
- merge: resolve conflicts with origin/main (5196e94)
- Merge pull request #26 from wlfghdr/agentic-dev/issue-25 (ee419ba)
- fix: make GitHub release creation idempotent (1163550)
- fix: fail detection on github api errors (8dd789b)
- fix: hand off red dependabot PRs (5889ad7)
- fix: drop locks for skipped dependabot PRs (c60993c)
- fix: block dependabot workflow-scope merge failures (d7c5359)
- fix: accept dependabot app author in merge worker (870014d)
- fix: require boolean maintenance config flags (d518b6a)
- fix: ignore draft releases for release baseline (a2689b2)
- fix: enforce maintenance kill switches in workers (c736869)
- docs: document maintenance safety controls (71734ee)
- fix: fail closed when dependabot config is missing (0b3d9e4)
- fix: fallback when cli native binary is missing (27b491e)
- fix: derive release bumps from merge commit bodies (72ab557)
- fix: validate release base version (386e4eb)
- fix: require per-repo release maintenance opt-in (ea47382)
- fix: require successful ci before dependabot merge (2a5695c)
- fix: make maintenance opt-in and align release baseline (54835f8)
- fix: require explicit maintenance opt-in (159fbfe)
- feat: add deterministic dependabot and release maintenance (5954cc6)
- ci: bump actions/setup-python from 6 to 7 (20a6780)
v0.3.0
Automated daily release for wlfghdr/agentic-dev.
Semver bump: minor.
Changes:
- Merge pull request #22 from wlfghdr/agentic-dev/issue-19 (94ce4dd)
- fix: pin production triage workspace roots (0482b0d)
- Merge pull request #20 from wlfghdr/fix/triage-runtime-paths (6360faa)
- fix: preserve systemd quoted path values (92be4f9)
- fix: require exact review verdicts (f1902e7)
- fix: scope systemd path escaping (b329c54)
- fix: handle invalid review verdict output (4e7904d)
- fix: handle runtime path and credit edge cases (82bd3fa)
- fix: refresh review checkouts from PR head (29a86a7)
- test: avoid eval in install rendering coverage (7042541)
- fix: quote rendered systemd environment paths (787ed82)
- test: cover triage install template rendering (8f79776)
- fix: parameterize triage runtime paths (180a013)
- fix: narrow CLI authentication fallback detection (9f8bab5)
- fix: align triage runtime dispatch configuration (b21fe49)
- Merge pull request #18 from wlfghdr/dependabot/github_actions/actions/checkout-7 (0bedbe6)
- ci: bump actions/checkout from 6 to 7 (dccb191)
- Merge pull request #17 from wlfghdr/claude/great-bardeen-p9tb6y (153cc84)
- fix: align install path and document workflow labels/verdicts (2bb40ea)
- ci: bump actions/checkout from 4 to 6 (#16) (e1ffcf9)
- ci: bump actions/setup-python from 5 to 6 (#15) (b0b4e43)
- chore: unify repository governance and templates (25b9e0d)
- chore(release): cut 0.2.0 — document macOS/python3.8 fixes and CI/visual updates (0ca076d)
- fix: support macOS local testing, Python 3.8 compatibility, and install.sh substitutions (#14) (be60bbc)
- ci: add validate workflow to execute regression tests (9062d66)
- chore: implement TOML parser fallback and zsh/bash 3.2 compatibility, add scroll-reveal to index.html (82f2577)
- ci: add tag-triggered release workflow (suite-consistent) (15e1aa8)
- chore: add LICENSE/VERSION/CHANGELOG, fix placeholder links, align suite cross-references (b5d536e)
- Merge pull request #12 from wlfghdr/agentic-dev/issue-5 (e9b60aa)
- feat: support configurable agent CLI dispatch (079642b)
- Merge pull request #11 from wlfghdr/fix/dispatch-paths-9-unbound (8c907c2)
- fix: Remove unbound variables from systemd-run call in tick.sh (f491c5f)
- Merge pull request #10 from wlfghdr/fix/dispatch-paths-9 (14fd65d)
- fix: Forward TRIAGE paths to transient systemd-run dispatchers (ccda447)
- Merge pull request #8 from wlfghdr/wlfg-agent/fix-scripts-install-paths (854a57d)
- fix: dynamically substitute paths in scripts during install (fb1ec97)
- Merge pull request #7 from wlfghdr/wlfg-agent/fix-install-paths (0861a63)
- fix: support dynamic path substitutions in install.sh (4115deb)
- Merge pull request #1 from wlfghdr/wlfg-agent/issue-78 (775585c)
- fix: remove unallowed global local keyword declarations in review.sh and engineer.sh (50fa5e9)
- fix: implement lock backoff on failure, reduce TTL to 2h, and warn on stale lock reaping (7f4f5ea)
- fix missing review comments via robust awk extraction and use gh pr review, and request review from human + assign originating issues on handover (0e09e5f)
- generalize triage loop, translate comments to english, and add documentation (54ceb12)
- feat: generalize triage loop, extract configs and CLI chain to triage.toml (d6c3e5a)
v0.2.0
Added
- TOML parser fallback (
scripts/parse_toml.py) — pure Python parser fallback to support environments withouttomllib(like macOS Python 3.9). - CI validation (
.github/workflows/validate.yml) — runs regression tests automatically on push and pull requests. - Scroll reveal in
index.html— added smooth scroll animations to the landing page.
Fixed
- Python 3.8 compatibility in
scripts/cli_dispatch.sh— replaced dict union operator|with.copy()+.update()to prevent TypeError crashes on older environments. - macOS compatibility in
scripts/tick.sh— addedget_lock_mtimeto portably handlestatdifferences between Linux and macOS, and added a graceful fallback whenflockis not installed. - Path substitutions in
install.sh— updated default deployment directory to/srv/wulfai/triageand enabled compilation of path substitutions inside systemd drop-in configuration files. - Zsh/Bash 3.2 compatibility in scripts — converted
mapfilecalls to portablewhile readloops to support macOS default shell settings.
v0.1.0
First versioned release of the deterministic engineering triage loop.
Added
- Deterministic triage scanner (
scripts/detect.py) — scans watched repos for assigned issues, PRs needing review, and PRs falling behind. No LLM calls during detection. - Orchestrator tick (
scripts/tick.sh) — lock acquisition, concurrency limits, and dispatch to transientsystemd-rununits for parallel execution. - Shared CLI-chain dispatch (
scripts/cli_dispatch.sh) — configurable multi-agent fallback chains (codex,claude,kiro,agy, plus custom[cli_tools.NAME]entries) withstdin/argprompt modes (#5, #9, #10, #11). - Engineer / review / merge runners (
scripts/engineer.sh,scripts/review.sh,scripts/merge.sh) — worktree isolation, reviewer verdicts, and opt-in automerge. - Systemd units (
systemd/) — 60-second near-realtime timer, service, and dispatch drop-in override. - Log rotation (
logrotate/agentic-triage) andinstall.shfor VPS installation. - Regression tests (
tests/test_cli_dispatch.sh). - Release automation — new
.github/workflows/release.yml: pushing av*tag creates the matching GitHub release with notes extracted from the changelog. Same workflow ships across agentic-enterprise, agentic-kb, and agentic-dev for a consistent suite release process. - LICENSE (Apache-2.0),
VERSION, and this changelog. - Website (
index.html) — GitHub Pages one-pager positioning agentic-dev as the execution layer of the agentic-* suite, with cross-references to agentic-enterprise and agentic-kb.