Releases: moduloTech/autodev
Releases · moduloTech/autodev
v0.8.3
v0.8.2
v0.8.1
Added
- Comprehensive config validation at startup
- Localized GitLab issue comments (French/English auto-detection)
- JSON Lines structured log files (
.jsonl) for LLM consumption - Minitest suite with 278 tests
Changed
- Full RuboCop Metrics compliance: decompose all modules into focused sub-modules
- Reuse GitLab client across retried issues in the same poll tick
- Deduplicate error retry branches
Fixed
- Write context files to
/tmpinstead of the git work tree so they cannot be accidentally committed by danger-claude - Use process groups for subprocess timeout cleanup (prevent orphaned Docker containers)
- Fix
cleanup_labelsprivate method error in MrFixer - Fix issues stuck on
label_doingafter error retry - Fix issues with existing MRs restarting from scratch after error retry
v0.8.0
Added
- Label-driven workflow: new per-project config fields
labels_todo(array),label_doing,label_mr,label_done,label_blockedreplacelabels_to_remove/label_to_addwith a full lifecycle. Labels are set/removed at each state transition. - Resume from over: issues in
overstate can be re-activated via labels. Adding alabels_todolabel triggers full re-processing.label_mrwith unresolved discussions triggers automatic fix. New events:resume_todo!,resume_mr!. - Context file: issue context and MR discussions written to a markdown file at clone root instead of inline in prompts.
- Post-completion hook: per-project
post_completioncommand runs after pipeline green, beforeover. Non-fatal. Env vars:AUTODEV_ISSUE_IID,AUTODEV_MR_IID,AUTODEV_BRANCH_NAME. - Issue assignment: autodev assigns itself on start, reassigns author on completion.
- Code-conventions skill: language-agnostic rules for comments and commits, injected into all projects.
- Explicit skill listing in all prompts.
--version/-vflag and version tag in GitLab comments.
Changed
needs_clarificationsetslabels_todolabel for re-processing on human response.question_answeredremoveslabel_doingwithout adding a label — human decides next step.- Crash recovery resets active processing states to
pendingon startup. rails-conventionsskill no longer contains code comments / commit message rules (moved tocode-conventions).
Deprecated
labels_to_removeandlabel_to_addconfig fields. Use new label workflow fields instead.
v0.7.0
Added
- Question/investigation ticket handling: autodev now recognizes tickets that ask questions about existing behavior (not implementation requests), investigates the codebase, and posts an answer as a GitLab comment instead of attempting code changes. New state
answering_questionwith eventsquestion_detectedandquestion_answered.
Changed
- Spec check now instructs Claude to resolve app URLs from tickets by looking up the route in
config/routes.rb, reading the controller and view code, and using that context to self-answer questions before requesting clarification. --errorsnow includes blocked issues in addition to errored ones, with distinct color coding (yellow for blocked, red for error).- New
modelandeffortconfig keys (global and per-project) forwarded todanger-claudeas--modeland--effort. Project-level overrides global. rails-conventionsskill now requires code comments in English covering WHAT, WHY, and HOW, and commit messages in English using Conventional Commits format.- Pipeline auto-retrigger is now conditional on pre-triage verdict —
:codefailures go straight to the fix phase, saving a full pipeline cycle.
Fixed
- Worker pool now deduplicates enqueue calls, fixing a race condition where the polling loop could enqueue the same task twice.
- Image download errors now include the exception class and message instead of a generic "download failed".
- Skills are now injected as subdirectories with
SKILL.mdfiles matching the Claude Code skill format. - Jobs with
allow_failure: trueare now excluded from pipeline failure analysis and fix attempts. - API rate limit errors no longer burn retry attempts. Issues are parked until the reset time without incrementing
retry_count. - Deploy jobs are now classified as infra in pre-triage and skipped during pipeline fix.
v0.6.3
Added
--statusnow shows the worker assigned to each active issue (e.g.[worker-3]), matching the poll status summary. Worker assignments are persisted to~/.autodev/workers.jsonby the running instance.--errors [IID]shows error details (message, stderr) for issues in error state. Without IID, shows all; with IID, shows a specific issue.--reset [IID]resets errored issues to pending (retry_count zeroed). Without IID, resets all; with IID, resets a specific issue.
Fixed
- Fix
datetime('now')anddatetime('now', '+N seconds')stored as literal strings instead of being evaluated by SQLite forstarted_at,finished_at, andnext_retry_atfields. This broke automatic error retries sincenext_retry_atcomparisons never matched.
v0.6.2
Added
- Poll status summary: compact status of active issues printed after each poll cycle, with worker assignments.
Changed
- Dashboard (
--status) hides completed issues by default. Use--status --allto show all.
Fixed
- Fix branch checkout on shallow clones: explicit refspec to bypass
--single-branchrestriction. - Fix
Could not process imageAPI error: validate Content-Type before passing images to Claude. - Fix Ctrl+C marking issues as errored: detect SIGINT on subprocess and re-raise
Interrupt. - Fix garbled stdout: truncate multiline log messages on console, close stdin on subprocesses.
v0.6.1
v0.6.0
Added
- Dashboard:
autodev --statusdisplays a table of all tracked issues with their state, project, MR link, and contextual comments. Color-coded by status with a summary line.
Fixed
- Fix clarification detection: compare timestamps as parsed
Timeobjects instead of raw strings. SQLite'sdatetime('now')format and GitLab's ISO 8601 format were compared lexicographically, causingneeds_clarificationissues to never detect human replies. - Fix
clarification_requested_atstored as literal string"datetime('now')"instead of evaluated timestamp.Sequel.lit()is not interpreted by Sequel::Model#update — use dataset-level update instead. - Fix GitLab image download failing with 302: follow HTTP redirects (up to 3 hops) when downloading issue attachments. GitLab redirects authenticated upload URLs, and
Net::HTTPdoes not follow redirects automatically.
v0.5.1
Fixed
- Add
loggergem to inline Gemfile for Ruby 4.0 compatibility (loggerwas removed from default gems). - Fix AASM + Sequel compatibility on Ruby 4.0: name the Issue class via
const_setbeforeinclude AASMso that AASM'sStateMachineStoreregisters under the correct key ("Issue"instead of the anonymous class name).