2026-03-31 - 2026-04-07
Overview
1 release published by 1 user
Tag
v0.1.0
144 pull requests merged by 3 users
Merged
#376 fix: fix: FORGE_TOKEN_OVERRIDE in entrypoint-llama.sh is overwritten by env.sh sourcing .env (#375)
Merged
#373 fix: fix: entrypoint-reproduce.sh ignores DISINTO_FORMULA env var — always runs reproduce formula (#356)
Merged
#372 chore: gardener housekeeping
Merged
#371 fix: fix: docker-compose.yml generated by init diverges from running stack — recreate breaks services (#354)
Merged
#370 fix: fix: dev-poll open-PR gate blocks all agents — should only block on own PRs (#369)
Merged
#368 fix: fix: install_project_crons does not set PATH — claude not found in cron jobs (#366)
Merged
#365 fix: fix: env.sh save/restore should only protect FORGE_URL, not FORGE_TOKEN (#364)
Merged
#363 fix: fix: edge entrypoint clones disinto repo without auth — fails when Forgejo requires authentication (#353)
Merged
#362 fix: fix: Forgejo API tokens rejected for git HTTP push — agents must use password auth (#361)
Merged
#360 fix: fix: dev-poll in-progress check blocks all agents — should only block on own assignments (#358)
Merged
#359 fix: fix: edge container cannot run claude — Alpine lacks glibc (#352)
Merged
#351 chore: gardener housekeeping
Merged
#350 fix: fix: entrypoint-llama.sh should reset base repo to origin/main on startup (#336)
Merged
#349 fix: feat: integrate supervisor into edge container (#344)
Merged
#348 fix: fix: supervisor code cleanup — LOG_FILE, dead files, stale tmux references (#343)
Merged
#347 fix: feat: triage formula template with generic investigation steps and best practices (#342)
Merged
#346 fix: fix: triage agent must clean up throwaway debug branch on exit/crash (#341)
Merged
#345 fix: fix: dispatcher uses old single-label names instead of bug-report combo labels (#339)
Merged
#337 fix: feat: triage agent — deep root cause analysis for reproduced bugs (#258)
Merged
#338 fix: fix: profile_write_journal passes --max-tokens which local llama claude CLI rejects (#335)
Merged
#334 chore: gardener housekeeping
Merged
#333 fix: release.sh: cd in disinto_release() permanently changes CWD of calling shell (#323)
Merged
#332 chore: gardener housekeeping
Merged
#330 fix: fix: reproduce-agent formula — primary goal is reproduction, not root cause (#320)
Merged
#329 fix: feat: add in-triage and rejected labels to disinto init (#319)
Merged
#328 fix: fix: reproduce container must mount ~/.claude.json for Claude auth (#312)
Merged
#327 fix: fix: reproduce container needs --security-opt apparmor=unconfined for LXD (#311)
Merged
#326 fix: fix: entrypoint-llama.sh install_project_crons ignores DISINTO_AGENTS — installs all agents (#310)
Merged
#325 fix: fix: dev-poll stale issue detection checks for dead tmux sessions instead of agent assignment (#324)
Merged
#322 fix: refactor: extract disinto_release() from bin/disinto into lib/release.sh (#304)
Merged
#321 fix: refactor: extract install_cron() and Woodpecker OAuth/token setup from bin/disinto into lib/ci-setup.sh (#303)
Merged
#318 fix: refactor: extract push_to_forge() and webhook setup from bin/disinto into lib/forge-push.sh (#302)
Merged
#317 fix: refactor: extract compose/Dockerfile/Caddyfile generation from bin/disinto into lib/generators.sh (#301)
Merged
#316 fix: refactor: extract setup_forge() from bin/disinto into lib/forge-setup.sh (#298)
Merged
#313 fix: refactor: extract disinto_hire_an_agent() from bin/disinto into lib/hire-agent.sh (#300)
Merged
#315 fix: fix: pr-lifecycle gives up on merge conflict (HTTP 405) instead of delegating rebase to agent (#314)
Merged
#309 fix: fix: entrypoint-llama.sh su block drops ANTHROPIC_API_KEY and CLAUDE_CONFIG_DIR (#306)
Merged
#308 chore: gardener housekeeping
Merged
#305 fix: refactor: extract setup_ops_repo() from bin/disinto into lib/ops-setup.sh (#299)
Merged
#296 fix: fix: disinto init re-run silently drops HUMAN_TOKEN when token already exists (#275)
Merged
#297 fix: fix: review/review-pr.sh uses hardcoded 'origin' for project repo fetch (#288)
Merged
#295 chore: gardener housekeeping
Merged
#294 fix: feat: gardener should enrich bug-report issues with context, reproduction plan, and verification checklist (#285)
Merged
#293 fix: chore: remove dead lib files — profile.sh, tea-helpers.sh, file-action-issue.sh, parse-deps.sh, CODEBERG_* exports (#283)
Merged
#292 fix: fix: duplicated label ID lookup — ensure_blocked_label_id vs _ilc_ensure_label_id (#282)
Merged
#290 fix: fix: gardener-run.sh uses manual worktree setup instead of formula_worktree_setup() (#281)
Merged
#291 fix: fix: agent identity resolution copy-pasted 5 times — use resolve_agent_identity() (#280)
Merged
#289 fix: fix: duplicated memory guard — memory_guard() in env.sh vs check_memory() in formula-session.sh (#279)
Merged
#286 fix: fix: agent_run swallows all Claude failures silently via || true (#277)
Merged
#287 fix: fix: cron agents (gardener, planner, architect, predictor) never set FORGE_REMOTE (#278)
Merged
#276 fix: feat: add triage workflow labels (needs-triage, reproduced, cannot-reproduce) to disinto init (#268)
Merged
#274 fix: fix: disinto init fails on re-run — admin token name collision (#266)
Merged
#273 fix: fix: disinto init change-password triggers must_change_password despite --must-change-password=false (#267)
Merged
#272 fix: fix: disinto init can produce duplicate keys in projects/*.toml (#269)
Merged
#271 fix: feat: extend edge container with Playwright and docker compose for bug reproduction (#256)
Merged
#270 fix: feat: stack lock protocol for singleton project stack access (#255)
Merged
#265 fix: chore: remove dead tmux-based session code (agent-session.sh, phase-handler.sh) (#262)
Merged
#264 fix: fix: disinto init must be fully idempotent — safe to re-run on existing factory (#239)
Merged
#263 fix: fix: agent-sdk.sh agent_run has no session lock — concurrent claude -p crashes (#261)
Merged
#259 fix: feat: disinto init should create bug-report label on Forgejo (#253)
Merged
#257 fix: feat: gardener should label issues as bug-report when they describe user-facing bugs with repro steps (#252)
Merged
#254 fix: feat: add bug report issue template with required reproduction steps (#251)
Merged
#250 fix: fix: dev-poll abandons fresh PRs — stale branch check fails on unfetched refs (#248)
Merged
#246 chore: gardener housekeeping
Merged
#247 fix: fix: setup_ops_repo should create ops repo under disinto-admin, not the authenticated bot (#240)
Merged
#245 fix: fix: hire-an-agent branch protection fails — race condition after initial push (#238)
Merged
#244 fix: fix: hire-an-agent does not generate or store FORGE_<AGENT>_TOKEN for new users (#237)
Merged
#243 fix: fix: remove hardcoded 'johba' references — use dynamic project config instead (#241)
Merged
#233 fix: fix: remove supervisor from agents container cron — cannot run without Docker access (#231)
Merged
#230 fix: fix: lib/env.sh crashes with USER unbound variable in agent container (#229)
Merged
#228 fix: feat: create prediction workflow labels during disinto init (#225)
Merged
#227 fix: fix: dev-poll does not recover stale in-progress issues — pipeline stays blocked (#224)
Merged
#226 fix: fix: architect-run.sh missing .profile integration — no lessons, no journal (#222)
Merged
#223 fix: fix: agent_run nudges unnecessarily when worktree is clean and no push expected (#219)
Merged
#221 fix: fix: hire-an-agent creates .profile repo under wrong user (dev-bot instead of target agent) (#214)
Merged
#218 fix: fix: hire-an-agent formula lookup fails for agents with run- prefix formulas (#213)
Merged
#217 fix: fix: agents container missing procps package — formula-session check_memory fails (#211)
Merged
#216 fix: fix: gardener-run.sh hardcodes LOG_FILE to read-only $SCRIPT_DIR (#210)
Merged
#215 fix: fix: hire-an-agent clone URL missing agent_name path segment (#209)
Merged
#212 fix: dispatcher.sh: || true suppresses errors in get_pr_merger / get_pr_reviews, making error handlers dead code (#189)
Merged
#208 chore: gardener housekeeping
Merged
#207 fix: fix: hire-an-agent must use Forgejo CLI for password reset — API PATCH ignores must_change_password (#206)
Merged
#205 fix: fix: hire-an-agent password reset missing must_change_password:false — clone fails (#200)
Merged
#204 fix: fix: smoke test leaks orphaned mock-forgejo.py processes (#196)
Merged
#203 fix: fix: forge_api_paginate crashes on invalid JSON response (#194)
Merged
#202 fix: feat: configurable agent roles per container via DISINTO_AGENTS env var (#197)
Merged
#201 fix: fix: entrypoint-llama.sh does not start cron daemon (#195)
Merged
#199 fix: fix: review-poll floods PRs with error comments on repeated failure (#193)
Merged
#198 fix: fix: hire-an-agent admin token fallback to FORGE_TOKEN poisons all admin operations (#192)
Merged
#191 fix: fix: hire-an-agent admin token collision, wrong repo namespace, clone auth failure (#190)
Merged
#188 fix: fix: dispatcher should verify admin approver, not merger (#186)
Merged
#187 fix: fix: hire-an-agent fails — unbound user_pass, admin auth, silent repo creation failure, unauthenticated clone (#184)
Merged
#183 fix: feat: hire-an-agent should support --local-model to auto-configure llama agents (#182)
Merged
#181 fix: fix: disinto release fails to load FORGE_OPS_REPO from project config (#180)
Merged
#179 fix: fix: WOODPECKER_HOST in docker-compose.yml overrides .env — OAuth2 redirect still mismatches (#178)
Merged
#177 fix: fix: Woodpecker token auto-generation fails — OAuth2 redirect URI mismatch (#172)
Merged
#176 fix: fix: agents entrypoint crashes — pname unbound variable in cron setup (#171)
Merged
#175 fix: fix: disinto release creates branch from dirty working tree (#168)
Merged
#174 fix: fix: disinto release writes vault TOML to vault/pending/ instead of vault/actions/ (#167)
Merged
#173 fix: feat: vault PRs should auto-merge after approval (#170)
Merged
#169 fix: fix: disinto release uses undefined PROJECT_REPO variable (#166)
Merged
#165 fix: fix: disinto init repo creation silently fails — wrong API endpoint for user namespace (#164)
Merged
#163 fix: fix: disinto init fails on re-run — admin password not persisted (#158)
Merged
#162 fix: bug: dev-bot and dev-qwen race for the same backlog issues (#160)
Merged
#161 fix: feat: disinto init should set up branch protection on Forgejo (#10)
Merged
#157 fix: docs: add factory interaction lessons to SKILL.md (#156)
Merged
#155 fix: fix: dispatcher cannot launch runner — docker compose context not available in edge container (#153)
Merged
#154 fix: fix: dispatcher admin check fails — is_admin not visible to non-admin tokens (#152)
Merged
#151 fix: bug: dispatcher grep -oP fails in Alpine — BusyBox doesn't support Perl regex (#150)
Merged
#149 fix: fix: dev-poll should abandon stale branches that are behind main (#148)
Merged
#147 fix: fix: rewrite smoke-init.sh for mock Forgejo + restore pipeline (#143)
Merged
#146 fix: bug: bin/disinto init — env_file unbound variable at line 765 (#145)
Merged
#141 fix: fix: smoke-init.sh — USER env var + docker mock + correct token names (#139)
Merged
#137 fix: feat: CI log access — disinto ci-logs + dev-agent CI failure context (#136)
Merged
#132 fix: fix: dev-agent failure cleanup should preserve remote branch and PR for debugging (#131)
Merged
#130 fix: bug: dispatcher PR lookup fails — --diff-filter=A misses merge commits (#129)
Merged
#128 fix: refactor: simplify gardener formula — remove AD check, portfolio, blocked-review, stale-PR (#127)
Merged
#125 fix: feat: Forgejo API mock server for CI smoke tests (#123)
Merged
#122 fix: bug: agents Dockerfile build fails — SOPS checksum download unreachable (#120)
Merged
#121 fix: bug: dispatcher fails in edge container — lib/env.sh not available (#119)
Merged
#118 fix: bug: dev-agent does not clean up branch/worktree on CI exhausted or block (#115)
Merged
#117 fix: bug: disinto init does not set up human user as site admin or ops repo collaborator (#113)
Merged
#116 fix: feat(20g): migrate all remaining agents to .profile + remove ops repo journal dirs (#90)
Merged
#114 fix: feat: versioned releases — vault-gated tag, image build, and deploy (#112)
Merged
#110 fix: feat(96d): architect formula — answer parsing + sub-issue filing (#102)
Merged
#109 fix: feat(96c): architect formula — sprint PR creation with questions (#101)
Merged
#108 fix: feat(96b): architect formula — research + design fork identification (#100)
Merged
#107 fix: feat(96a): architect-bot user + directory + run script scaffold (#99)
Merged
#105 fix: feat: generic journal aspect — post-session reflection + lessons-learned context injection (#97)
Merged
#104 fix: refactor: tighten planner issue filing — template-or-vision gate (#95)
Merged
#103 fix: feat(20e): formula evolution — agent proposes changes via PR to .profile (#88)
Merged
#98 fix: feat(20d): branch protection on .profile repos — admin-only formula merge (#87)
Merged
#94 fix: feat(20b): dev-agent reads formula from .profile repo (#85)
Merged
#93 fix: feat(20a): disinto hire-an-agent subcommand + retrofit dev-qwen (#84)
Merged
#92 fix: feat(20a): disinto hire-an-agent subcommand + retrofit dev-qwen (#83)
Merged
#91 fix: feat: branch protection on ops repo — require admin approval for vault PRs (#77)
Merged
#82 fix: feat: rewrite dispatcher — poll for merged vault PRs, enforce admin approval (#76)
Merged
#81 fix: feat: lib/vault.sh — helper for agents to create vault PRs on ops repo (#75)
Merged
#80 fix: feat: define vault action TOML schema for PR-based approval (#74)
Merged
#79 fix: chore: tear down old vault scripts — prepare for PR-based vault (#73)
Merged
#78 fix: chore(26c): update AGENTS.md and docs — remove action-agent references (#67)
Merged
#72 fix: chore(26a): delete action-agent.sh, action-poll.sh, and action/AGENTS.md (#65)
Merged
#71 fix: Bug: docker-compose.yml has escaped backslashes in ${HOME} variables (#62)
Merged
#70 fix: SECURITY: SOPS decryption without integrity verification (#61)
153 issues closed from 2 users
Closed
#375 fix: FORGE_TOKEN_OVERRIDE in entrypoint-llama.sh is overwritten by env.sh sourcing .env
Closed
#356 fix: entrypoint-reproduce.sh ignores DISINTO_FORMULA env var — always runs reproduce formula
Closed
#354 fix: docker-compose.yml generated by init diverges from running stack — recreate breaks services
Closed
#369 fix: dev-poll open-PR gate blocks all agents — should only block on own PRs
Closed
#366 fix: install_project_crons does not set PATH — claude not found in cron jobs
Closed
#364 fix: env.sh save/restore should only protect FORGE_URL, not FORGE_TOKEN
Closed
#353 fix: edge entrypoint clones disinto repo without auth — fails when Forgejo requires authentication
Closed
#361 fix: Forgejo API tokens rejected for git HTTP push — agents must use password auth
Closed
#358 fix: dev-poll in-progress check blocks all agents — should only block on own assignments
Closed
#352 fix: edge container cannot run claude — Alpine lacks glibc
Closed
#336 fix: entrypoint-llama.sh should reset base repo to origin/main on startup
Closed
#344 feat: integrate supervisor into edge container
Closed
#343 fix: supervisor code cleanup — LOG_FILE, dead files, stale tmux references
Closed
#342 feat: triage formula template with generic investigation steps and best practices
Closed
#341 fix: triage agent must clean up throwaway debug branch on exit/crash
Closed
#339 fix: dispatcher uses old single-label names instead of bug-report combo labels
Closed
#232 vision: supervisor agent running on host level with full system visibility
Closed
#258 feat: triage agent — deep root cause analysis for reproduced bugs
Closed
#335 fix: profile_write_journal passes --max-tokens which local llama claude CLI rejects
Closed
#284 vision: extract bin/disinto into focused lib/ modules
Closed
#323 release.sh: cd in disinto_release() permanently changes CWD of calling shell
Closed
#320 fix: reproduce-agent formula — primary goal is reproduction, not root cause
Closed
#331 reproduce-agent: backlog fix issue created without backlog label, not picked up by dev-poll
Closed
#319 feat: add in-triage and rejected labels to disinto init
Closed
#312 fix: reproduce container must mount ~/.claude.json for Claude auth
Closed
#311 fix: reproduce container needs --security-opt apparmor=unconfined for LXD
Closed
#310 fix: entrypoint-llama.sh install_project_crons ignores DISINTO_AGENTS — installs all agents
Closed
#324 fix: dev-poll stale issue detection checks for dead tmux sessions instead of agent assignment
Closed
#304 refactor: extract disinto_release() from bin/disinto into lib/release.sh
Closed
#303 refactor: extract install_cron() and Woodpecker OAuth/token setup from bin/disinto into lib/ci-setup.sh
Closed
#302 refactor: extract push_to_forge() and webhook setup from bin/disinto into lib/forge-push.sh
Closed
#301 refactor: extract compose/Dockerfile/Caddyfile generation from bin/disinto into lib/generators.sh
Closed
#298 refactor: extract setup_forge() from bin/disinto into lib/forge-setup.sh
Closed
#300 refactor: extract disinto_hire_an_agent() from bin/disinto into lib/hire-agent.sh
Closed
#314 fix: pr-lifecycle gives up on merge conflict (HTTP 405) instead of delegating rebase to agent
Closed
#306 fix: entrypoint-llama.sh su block drops ANTHROPIC_API_KEY and CLAUDE_CONFIG_DIR
Closed
#299 refactor: extract setup_ops_repo() from bin/disinto into lib/ops-setup.sh
Closed
#275 fix: disinto init re-run silently drops HUMAN_TOKEN when token already exists
Closed
#288 fix: review/review-pr.sh uses hardcoded 'origin' for project repo fetch
Closed
#285 feat: gardener should enrich bug-report issues with context, reproduction plan, and verification checklist
Closed
#283 chore: remove dead lib files — profile.sh, tea-helpers.sh, file-action-issue.sh, parse-deps.sh, CODEBERG_* exports
Closed
#282 fix: duplicated label ID lookup — ensure_blocked_label_id vs _ilc_ensure_label_id
Closed
#281 fix: gardener-run.sh uses manual worktree setup instead of formula_worktree_setup()
Closed
#280 fix: agent identity resolution copy-pasted 5 times — use resolve_agent_identity()
Closed
#279 fix: duplicated memory guard — memory_guard() in env.sh vs check_memory() in formula-session.sh
Closed
#277 fix: agent_run swallows all Claude failures silently via || true
Closed
#278 fix: cron agents (gardener, planner, architect, predictor) never set FORGE_REMOTE
Closed
#268 feat: add triage workflow labels (needs-triage, reproduced, cannot-reproduce) to disinto init
Closed
#266 fix: disinto init fails on re-run — admin token name collision
Closed
#267 fix: disinto init change-password triggers must_change_password despite --must-change-password=false
Closed
#269 fix: disinto init can produce duplicate keys in projects/*.toml
Closed
#256 feat: extend edge container with Playwright and docker compose for bug reproduction
Closed
#255 feat: stack lock protocol for singleton project stack access
Closed
#262 chore: remove dead tmux-based session code (agent-session.sh, phase-handler.sh)
Closed
#239 fix: disinto init must be fully idempotent — safe to re-run on existing factory
Closed
#261 fix: agent-sdk.sh agent_run has no session lock — concurrent claude -p crashes
Closed
#253 feat: disinto init should create bug-report label on Forgejo
Closed
#252 feat: gardener should label issues as bug-report when they describe user-facing bugs with repro steps
Closed
#251 feat: add bug report issue template with required reproduction steps
Closed
#248 fix: dev-poll abandons fresh PRs — stale branch check fails on unfetched refs
Closed
#240 fix: setup_ops_repo should create ops repo under disinto-admin, not the authenticated bot
Closed
#238 fix: hire-an-agent branch protection fails — race condition after initial push
Closed
#237 fix: hire-an-agent does not generate or store FORGE_<AGENT>_TOKEN for new users
Closed
#241 fix: remove hardcoded 'johba' references — use dynamic project config instead
Closed
#235 fix: disinto-ops repo owned by dev-bot instead of disinto-admin
Closed
#234 fix: create .profile repos for all existing bot agents via hire-an-agent
Closed
#231 fix: remove supervisor from agents container cron — cannot run without Docker access
Closed
#229 fix: lib/env.sh crashes with USER unbound variable in agent container
Closed
#220 fix: agents container missing networkx — build-graph.py structural analysis skipped
Closed
#225 feat: create prediction workflow labels during disinto init
Closed
#224 fix: dev-poll does not recover stale in-progress issues — pipeline stays blocked
Closed
#222 fix: architect-run.sh missing .profile integration — no lessons, no journal
Closed
#219 fix: agent_run nudges unnecessarily when worktree is clean and no push expected
Closed
#214 fix: hire-an-agent creates .profile repo under wrong user (dev-bot instead of target agent)
Closed
#213 fix: hire-an-agent formula lookup fails for agents with run- prefix formulas
Closed
#211 fix: agents container missing procps package — formula-session check_memory fails
Closed
#210 fix: gardener-run.sh hardcodes LOG_FILE to read-only $SCRIPT_DIR
Closed
#209 fix: hire-an-agent clone URL missing agent_name path segment
Closed
#189 dispatcher.sh: || true suppresses errors in get_pr_merger / get_pr_reviews, making error handlers dead code
Closed
#9 feat: periodic Forgejo backup to protect issue tracker data
Closed
#206 fix: hire-an-agent must use Forgejo CLI for password reset — API PATCH ignores must_change_password
Closed
#200 fix: hire-an-agent password reset missing must_change_password:false — clone fails
Closed
#196 fix: smoke test leaks orphaned mock-forgejo.py processes
Closed
#185 fix: dev-poll.sh in-progress scan falls through on waiting PRs
Closed
#194 fix: forge_api_paginate crashes on invalid JSON response
Closed
#197 feat: configurable agent roles per container via DISINTO_AGENTS env var
Closed
#195 fix: entrypoint-llama.sh does not start cron daemon
Closed
#193 fix: review-poll floods PRs with error comments on repeated failure
Closed
#192 fix: hire-an-agent admin token fallback to FORGE_TOKEN poisons all admin operations
Closed
#190 fix: hire-an-agent admin token collision, wrong repo namespace, clone auth failure
Closed
#186 fix: dispatcher should verify admin approver, not merger
Closed
#184 fix: hire-an-agent fails — unbound user_pass, admin auth, silent repo creation failure, unauthenticated clone
Closed
#182 feat: hire-an-agent should support --local-model to auto-configure llama agents
Closed
#180 fix: disinto release fails to load FORGE_OPS_REPO from project config
Closed
#178 fix: WOODPECKER_HOST in docker-compose.yml overrides .env — OAuth2 redirect still mismatches
Closed
#172 fix: Woodpecker token auto-generation fails — OAuth2 redirect URI mismatch
Closed
#171 fix: agents entrypoint crashes — pname unbound variable in cron setup
Closed
#168 fix: disinto release creates branch from dirty working tree
Closed
#167 fix: disinto release writes vault TOML to vault/pending/ instead of vault/actions/
Closed
#170 feat: vault PRs should auto-merge after approval
Closed
#166 fix: disinto release uses undefined PROJECT_REPO variable
Closed
#164 fix: disinto init repo creation silently fails — wrong API endpoint for user namespace
Closed
#158 fix: disinto init fails on re-run — admin password not persisted
Closed
#160 bug: dev-bot and dev-qwen race for the same backlog issues
Closed
#10 feat: disinto init should set up branch protection on Forgejo
Closed
#20 feat: agent .profile repo — formula snapshot + journal per agent instance
Closed
#156 docs: add factory interaction lessons to SKILL.md
Closed
#153 fix: dispatcher cannot launch runner — docker compose context not available in edge container
Closed
#152 fix: dispatcher admin check fails — is_admin not visible to non-admin tokens
Closed
#150 bug: dispatcher grep -oP fails in Alpine — BusyBox doesn't support Perl regex
Closed
#148 fix: dev-poll should abandon stale branches that are behind main
Closed
#143 fix: rewrite smoke-init.sh for mock Forgejo + restore pipeline
Closed
#145 bug: bin/disinto init — env_file unbound variable at line 765
Closed
#140 feat: restore .woodpecker/smoke-init.yml pipeline
Closed
#139 fix: smoke-init.sh — USER env var + docker mock + correct token names
Closed
#124 feat: restore smoke-init CI pipeline using mock Forgejo
Closed
#136 feat: CI log access — disinto ci-logs + dev-agent CI failure context
Closed
#131 fix: dev-agent failure cleanup should preserve remote branch and PR for debugging
Closed
#129 bug: dispatcher PR lookup fails — --diff-filter=A misses merge commits
Closed
#127 refactor: simplify gardener formula — remove AD check, portfolio, blocked-review, stale-PR
Closed
#123 feat: Forgejo API mock server for CI smoke tests
Closed
#120 bug: agents Dockerfile build fails — SOPS checksum download unreachable
Closed
#119 bug: dispatcher fails in edge container — lib/env.sh not available
Closed
#96 feat: architect agent — propose development sprints for vision issues
Closed
#115 bug: dev-agent does not clean up branch/worktree on CI exhausted or block
Closed
#113 bug: disinto init does not set up human user as site admin or ops repo collaborator
Closed
#90 feat(20g): migrate all remaining agents to .profile + remove ops repo journal dirs
Closed
#112 feat: versioned releases — vault-gated tag, image build, and deploy
Closed
#102 feat(96d): architect formula — answer parsing + sub-issue filing
Closed
#101 feat(96c): architect formula — sprint PR creation with questions
Closed
#100 feat(96b): architect formula — research + design fork identification
Closed
#99 feat(96a): architect-bot user + directory + run script scaffold
Closed
#97 feat: generic journal aspect — post-session reflection + lessons-learned context injection
Closed
#95 refactor: tighten planner issue filing — template-or-vision gate
Closed
#88 feat(20e): formula evolution — agent proposes changes via PR to .profile
Closed
#87 feat(20d): branch protection on .profile repos — admin-only formula merge
Closed
#89 feat(20f): journal digestion formula — condense old journals into lessons learned
Closed
#85 feat(20b): dev-agent reads formula from .profile repo
Closed
#86 feat(20c): journal writing — per-issue log files in .profile
Closed
#84 feat(20a): disinto hire-an-agent subcommand + retrofit dev-qwen
Closed
#83 feat(20a): disinto hire-an-agent subcommand + retrofit dev-qwen
Closed
#77 feat: branch protection on ops repo — require admin approval for vault PRs
Closed
#76 feat: rewrite dispatcher — poll for merged vault PRs, enforce admin approval
Closed
#26 chore: retire action-agent and action-poll — replaced by container dispatcher
Closed
#75 feat: lib/vault.sh — helper for agents to create vault PRs on ops repo
Closed
#74 feat: define vault action TOML schema for PR-based approval
Closed
#73 chore: tear down old vault scripts — prepare for PR-based vault
Closed
#68 chore(26d): delete action-bot Forgejo user
Closed
#67 chore(26c): update AGENTS.md and docs — remove action-agent references
Closed
#66 chore(26b): remove FORGE_ACTION_TOKEN and action-bot from config
Closed
#65 chore(26a): delete action-agent.sh, action-poll.sh, and action/AGENTS.md
Closed
#62 Bug: docker-compose.yml has escaped backslashes in ${HOME} variables
Closed
#61 SECURITY: SOPS decryption without integrity verification
150 issues created by 1 user
Opened
#73 chore: tear down old vault scripts — prepare for PR-based vault
Opened
#74 feat: define vault action TOML schema for PR-based approval
Opened
#75 feat: lib/vault.sh — helper for agents to create vault PRs on ops repo
Opened
#76 feat: rewrite dispatcher — poll for merged vault PRs, enforce admin approval
Opened
#77 feat: branch protection on ops repo — require admin approval for vault PRs
Opened
#83 feat(20a): disinto hire-an-agent subcommand + retrofit dev-qwen
Opened
#84 feat(20a): disinto hire-an-agent subcommand + retrofit dev-qwen
Opened
#85 feat(20b): dev-agent reads formula from .profile repo
Opened
#86 feat(20c): journal writing — per-issue log files in .profile
Opened
#87 feat(20d): branch protection on .profile repos — admin-only formula merge
Opened
#88 feat(20e): formula evolution — agent proposes changes via PR to .profile
Opened
#89 feat(20f): journal digestion formula — condense old journals into lessons learned
Opened
#90 feat(20g): migrate all remaining agents to .profile + remove ops repo journal dirs
Opened
#95 refactor: tighten planner issue filing — template-or-vision gate
Opened
#96 feat: architect agent — propose development sprints for vision issues
Opened
#97 feat: generic journal aspect — post-session reflection + lessons-learned context injection
Opened
#99 feat(96a): architect-bot user + directory + run script scaffold
Opened
#100 feat(96b): architect formula — research + design fork identification
Opened
#101 feat(96c): architect formula — sprint PR creation with questions
Opened
#102 feat(96d): architect formula — answer parsing + sub-issue filing
Opened
#112 feat: versioned releases — vault-gated tag, image build, and deploy
Opened
#113 bug: disinto init does not set up human user as site admin or ops repo collaborator
Opened
#115 bug: dev-agent does not clean up branch/worktree on CI exhausted or block
Opened
#119 bug: dispatcher fails in edge container — lib/env.sh not available
Opened
#120 bug: agents Dockerfile build fails — SOPS checksum download unreachable
Opened
#123 feat: Forgejo API mock server for CI smoke tests
Opened
#124 feat: restore smoke-init CI pipeline using mock Forgejo
Opened
#127 refactor: simplify gardener formula — remove AD check, portfolio, blocked-review, stale-PR
Opened
#129 bug: dispatcher PR lookup fails — --diff-filter=A misses merge commits
Opened
#131 fix: dev-agent failure cleanup should preserve remote branch and PR for debugging
Opened
#136 feat: CI log access — disinto ci-logs + dev-agent CI failure context
Opened
#139 fix: smoke-init.sh — USER env var + docker mock + correct token names
Opened
#140 feat: restore .woodpecker/smoke-init.yml pipeline
Opened
#143 fix: rewrite smoke-init.sh for mock Forgejo + restore pipeline
Opened
#145 bug: bin/disinto init — env_file unbound variable at line 765
Opened
#148 fix: dev-poll should abandon stale branches that are behind main
Opened
#150 bug: dispatcher grep -oP fails in Alpine — BusyBox doesn't support Perl regex
Opened
#152 fix: dispatcher admin check fails — is_admin not visible to non-admin tokens
Opened
#153 fix: dispatcher cannot launch runner — docker compose context not available in edge container
Opened
#156 docs: add factory interaction lessons to SKILL.md
Opened
#158 fix: disinto init fails on re-run — admin password not persisted
Opened
#160 bug: dev-bot and dev-qwen race for the same backlog issues
Opened
#164 fix: disinto init repo creation silently fails — wrong API endpoint for user namespace
Opened
#166 fix: disinto release uses undefined PROJECT_REPO variable
Opened
#167 fix: disinto release writes vault TOML to vault/pending/ instead of vault/actions/
Opened
#168 fix: disinto release creates branch from dirty working tree
Opened
#170 feat: vault PRs should auto-merge after approval
Opened
#171 fix: agents entrypoint crashes — pname unbound variable in cron setup
Opened
#172 fix: Woodpecker token auto-generation fails — OAuth2 redirect URI mismatch
Opened
#178 fix: WOODPECKER_HOST in docker-compose.yml overrides .env — OAuth2 redirect still mismatches
Opened
#180 fix: disinto release fails to load FORGE_OPS_REPO from project config
Opened
#182 feat: hire-an-agent should support --local-model to auto-configure llama agents
Opened
#184 fix: hire-an-agent fails — unbound user_pass, admin auth, silent repo creation failure, unauthenticated clone
Opened
#185 fix: dev-poll.sh in-progress scan falls through on waiting PRs
Opened
#186 fix: dispatcher should verify admin approver, not merger
Opened
#189 dispatcher.sh: || true suppresses errors in get_pr_merger / get_pr_reviews, making error handlers dead code
Opened
#190 fix: hire-an-agent admin token collision, wrong repo namespace, clone auth failure
Opened
#192 fix: hire-an-agent admin token fallback to FORGE_TOKEN poisons all admin operations
Opened
#193 fix: review-poll floods PRs with error comments on repeated failure
Opened
#194 fix: forge_api_paginate crashes on invalid JSON response
Opened
#195 fix: entrypoint-llama.sh does not start cron daemon
Opened
#196 fix: smoke test leaks orphaned mock-forgejo.py processes
Opened
#197 feat: configurable agent roles per container via DISINTO_AGENTS env var
Opened
#200 fix: hire-an-agent password reset missing must_change_password:false — clone fails
Opened
#206 fix: hire-an-agent must use Forgejo CLI for password reset — API PATCH ignores must_change_password
Opened
#209 fix: hire-an-agent clone URL missing agent_name path segment
Opened
#210 fix: gardener-run.sh hardcodes LOG_FILE to read-only $SCRIPT_DIR
Opened
#211 fix: agents container missing procps package — formula-session check_memory fails
Opened
#213 fix: hire-an-agent formula lookup fails for agents with run- prefix formulas
Opened
#214 fix: hire-an-agent creates .profile repo under wrong user (dev-bot instead of target agent)
Opened
#219 fix: agent_run nudges unnecessarily when worktree is clean and no push expected
Opened
#220 fix: agents container missing networkx — build-graph.py structural analysis skipped
Opened
#222 fix: architect-run.sh missing .profile integration — no lessons, no journal
Opened
#224 fix: dev-poll does not recover stale in-progress issues — pipeline stays blocked
Opened
#225 feat: create prediction workflow labels during disinto init
Opened
#229 fix: lib/env.sh crashes with USER unbound variable in agent container
Opened
#231 fix: remove supervisor from agents container cron — cannot run without Docker access
Opened
#232 vision: supervisor agent running on host level with full system visibility
Opened
#234 fix: create .profile repos for all existing bot agents via hire-an-agent
Opened
#235 fix: disinto-ops repo owned by dev-bot instead of disinto-admin
Opened
#237 fix: hire-an-agent does not generate or store FORGE_<AGENT>_TOKEN for new users
Opened
#238 fix: hire-an-agent branch protection fails — race condition after initial push
Opened
#239 fix: disinto init must be fully idempotent — safe to re-run on existing factory
Opened
#240 fix: setup_ops_repo should create ops repo under disinto-admin, not the authenticated bot
Opened
#241 fix: remove hardcoded 'johba' references — use dynamic project config instead
Opened
#248 fix: dev-poll abandons fresh PRs — stale branch check fails on unfetched refs
Opened
#251 feat: add bug report issue template with required reproduction steps
Opened
#252 feat: gardener should label issues as bug-report when they describe user-facing bugs with repro steps
Opened
#253 feat: disinto init should create bug-report label on Forgejo
Opened
#255 feat: stack lock protocol for singleton project stack access
Opened
#256 feat: extend edge container with Playwright and docker compose for bug reproduction
Opened
#258 feat: triage agent — deep root cause analysis for reproduced bugs
Opened
#261 fix: agent-sdk.sh agent_run has no session lock — concurrent claude -p crashes
Opened
#262 chore: remove dead tmux-based session code (agent-session.sh, phase-handler.sh)
Opened
#266 fix: disinto init fails on re-run — admin token name collision
Opened
#267 fix: disinto init change-password triggers must_change_password despite --must-change-password=false
Opened
#268 feat: add triage workflow labels (needs-triage, reproduced, cannot-reproduce) to disinto init
Opened
#269 fix: disinto init can produce duplicate keys in projects/*.toml
Opened
#275 fix: disinto init re-run silently drops HUMAN_TOKEN when token already exists
Opened
#277 fix: agent_run swallows all Claude failures silently via || true
Opened
#278 fix: cron agents (gardener, planner, architect, predictor) never set FORGE_REMOTE
Opened
#279 fix: duplicated memory guard — memory_guard() in env.sh vs check_memory() in formula-session.sh
Opened
#280 fix: agent identity resolution copy-pasted 5 times — use resolve_agent_identity()
Opened
#281 fix: gardener-run.sh uses manual worktree setup instead of formula_worktree_setup()
Opened
#282 fix: duplicated label ID lookup — ensure_blocked_label_id vs _ilc_ensure_label_id
Opened
#283 chore: remove dead lib files — profile.sh, tea-helpers.sh, file-action-issue.sh, parse-deps.sh, CODEBERG_* exports
Opened
#284 vision: extract bin/disinto into focused lib/ modules
Opened
#285 feat: gardener should enrich bug-report issues with context, reproduction plan, and verification checklist
Opened
#288 fix: review/review-pr.sh uses hardcoded 'origin' for project repo fetch
Opened
#298 refactor: extract setup_forge() from bin/disinto into lib/forge-setup.sh
Opened
#299 refactor: extract setup_ops_repo() from bin/disinto into lib/ops-setup.sh
Opened
#300 refactor: extract disinto_hire_an_agent() from bin/disinto into lib/hire-agent.sh
Opened
#301 refactor: extract compose/Dockerfile/Caddyfile generation from bin/disinto into lib/generators.sh
Opened
#302 refactor: extract push_to_forge() and webhook setup from bin/disinto into lib/forge-push.sh
Opened
#303 refactor: extract install_cron() and Woodpecker OAuth/token setup from bin/disinto into lib/ci-setup.sh
Opened
#304 refactor: extract disinto_release() from bin/disinto into lib/release.sh
Opened
#306 fix: entrypoint-llama.sh su block drops ANTHROPIC_API_KEY and CLAUDE_CONFIG_DIR
Opened
#310 fix: entrypoint-llama.sh install_project_crons ignores DISINTO_AGENTS — installs all agents
Opened
#311 fix: reproduce container needs --security-opt apparmor=unconfined for LXD
Opened
#312 fix: reproduce container must mount ~/.claude.json for Claude auth
Opened
#314 fix: pr-lifecycle gives up on merge conflict (HTTP 405) instead of delegating rebase to agent
Opened
#319 feat: add in-triage and rejected labels to disinto init
Opened
#320 fix: reproduce-agent formula — primary goal is reproduction, not root cause
Opened
#323 release.sh: cd in disinto_release() permanently changes CWD of calling shell
Opened
#324 fix: dev-poll stale issue detection checks for dead tmux sessions instead of agent assignment
Opened
#331 reproduce-agent: backlog fix issue created without backlog label, not picked up by dev-poll
Opened
#335 fix: profile_write_journal passes --max-tokens which local llama claude CLI rejects
Opened
#336 fix: entrypoint-llama.sh should reset base repo to origin/main on startup
Opened
#339 fix: dispatcher uses old single-label names instead of bug-report combo labels
Opened
#341 fix: triage agent must clean up throwaway debug branch on exit/crash
Opened
#342 feat: triage formula template with generic investigation steps and best practices
Opened
#343 fix: supervisor code cleanup — LOG_FILE, dead files, stale tmux references
Opened
#344 feat: integrate supervisor into edge container
Opened
#352 fix: edge container cannot run claude — Alpine lacks glibc
Opened
#353 fix: edge entrypoint clones disinto repo without auth — fails when Forgejo requires authentication
Opened
#354 fix: docker-compose.yml generated by init diverges from running stack — recreate breaks services
Opened
#356 fix: entrypoint-reproduce.sh ignores DISINTO_FORMULA env var — always runs reproduce formula
Opened
#358 fix: dev-poll in-progress check blocks all agents — should only block on own assignments
Opened
#361 fix: Forgejo API tokens rejected for git HTTP push — agents must use password auth
Opened
#364 fix: env.sh save/restore should only protect FORGE_URL, not FORGE_TOKEN
Opened
#366 fix: install_project_crons does not set PATH — claude not found in cron jobs
Opened
#367 fix: standardize logging across all agents — capture errors, log exit codes, consistent format
Opened
#369 fix: dev-poll open-PR gate blocks all agents — should only block on own PRs
Opened
#374 fix: dev-poll pre-lock merge scan should only merge own PRs
Opened
#375 fix: FORGE_TOKEN_OVERRIDE in entrypoint-llama.sh is overwritten by env.sh sourcing .env
Opened
#377 fix: add .dockerignore — stop baking .env and .git into agent image
Opened
#378 fix: env.sh should not source .env inside containers — compose env is the source of truth
Opened
#379 fix: replace cron with while-true loop and gosu in agents entrypoint
Opened
#380 fix: delete entrypoint-llama.sh — unify into single entrypoint with AGENT_ROLES
Opened
#381 fix: compose template should use explicit environment per container, not shared env_file