Commit graph

511 commits

Author SHA1 Message Date
johba
038581e555 Merge pull request 'fix: feat: live factory metrics dashboard on disinto.ai (#395)' (#496) from fix/issue-395 into main 2026-03-21 15:23:51 +01:00
openhands
874095b689 fix: review feedback — drop inflated X-Total-Count for PRs, remove redundant curl, use textContent
- Remove X-Total-Count header override for prs_merged_total: header counts
  all closed PRs (including unmerged/rejected), inflating the dashboard metric.
  Keep the jq-filtered count from the 50-item page instead.
- Remove redundant first curl in backlog_count that discards its response.
- Use textContent/createElement instead of innerHTML for project names.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 14:15:00 +00:00
openhands
115063f4ce fix: feat: live factory metrics dashboard on disinto.ai (#395)
Add metrics collector (site/collect-metrics.sh) and dashboard page
(site/dashboard.html) showing PRs merged, issues closed, CI pass rate,
vault decisions, and agent activity across all managed projects.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 14:08:22 +00:00
johba
12f8623a04 Merge pull request 'fix: feat: disinto init — one-command project bootstrap (#393)' (#495) from fix/issue-393 into main 2026-03-21 14:59:02 +01:00
openhands
6dfd2946ef fix: feat: disinto init — one-command project bootstrap (#393)
Add bin/disinto CLI entry point with two subcommands:

- `disinto init <repo-url>`: bootstraps a new project by cloning the
  repo, generating a projects/*.toml config, creating Codeberg labels
  (backlog, in-progress, blocked, tech-debt, underspecified, vision,
  action), generating a VISION.md template, and installing cron jobs
  for dev-poll, review-poll, and gardener.

- `disinto status`: shows active sessions, backlog depth, and open PR
  count for all configured projects.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 13:49:04 +00:00
johba
9478859ad3 Merge pull request 'fix: VISION.md Foundation milestone should note multi-project is complete (Scale bump) (#391)' (#494) from fix/issue-391 into main 2026-03-21 14:39:03 +01:00
openhands
685759197b fix: VISION.md Foundation milestone should note multi-project is complete (Scale bump) (#391)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 13:29:43 +00:00
johba
473319e420 Merge pull request 'fix: fix: gardener migration — run-gardener.toml via direct cron, remove legacy scripts (#490)' (#491) from fix/issue-490 into main 2026-03-21 14:19:03 +01:00
openhands
b630c6fcc1 fix: gardener migration — run-gardener.toml via direct cron, remove legacy scripts (#490)
Rewrite gardener-run.sh as direct cron runner (matching supervisor/planner/
predictor pattern): lock guard, memory check, worktree, tmux session with
Claude sonnet + formulas/run-gardener.toml, phase monitoring, cleanup.

- Delete gardener-poll.sh and gardener-agent.sh (superseded)
- Extract consume_escalation_reply() to lib/formula-session.sh (shared
  by gardener and supervisor, eliminates duplicate blocks)
- Update AGENTS.md, gardener/AGENTS.md, lib/AGENTS.md, CI smoke test,
  and cross-references

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 13:09:17 +00:00
johba
685ca1034a Merge pull request 'fix: action: run-gardener — periodic housekeeping (#489)' (#492) from action/issue-489 into main
Reviewed-on: https://codeberg.org/johba/disinto/pulls/492
Reviewed-by: Disinto_bot <disinto_bot@noreply.codeberg.org>
2026-03-21 13:51:20 +01:00
openhands
f480cbe5d0 chore: gardener housekeeping 2026-03-21
Progressive disclosure split of AGENTS.md (487→152 lines):
- Extracted per-directory AGENTS.md files for all 8 agents + lib/
- Root AGENTS.md now serves as a table of contents with summary table
- All watermarks updated to 16e430e

Grooming results:
- Promoted #469 (WATCH flow missing curl) and #436 (idle_pane_count bug) to backlog
- 12 dust items classified, no groups ripe for bundling yet
- No blocked issues, no AD violations
2026-03-21 12:44:23 +00:00
johba
16e430ebce Merge pull request 'fix: fix: gardener enforces AGENTS.md size limit + progressive disclosure split (#480)' (#488) from fix/issue-480 into main 2026-03-21 13:29:54 +01:00
openhands
1743438968 fix: fix: gardener enforces AGENTS.md size limit + progressive disclosure split (#480)
Update the agents-update step in run-gardener.toml to enforce the ~200-line
size limit on root AGENTS.md. When exceeded, the gardener now splits
per-directory sections into {dir}/AGENTS.md files with watermarks,
replacing verbose sections in root with a summary table of pointers.
Root keeps: overview, directory map, architecture decisions, key conventions.
Per-directory files get: role, trigger, key files, env vars, lifecycle.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 12:25:55 +00:00
johba
9eee90032f Merge pull request 'fix: file-action-issue.sh dedup check: paginate or raise limit beyond 50 (#383)' (#482) from fix/issue-383 into main 2026-03-21 13:19:03 +01:00
johba
197122f31e Merge pull request 'fix: feat: architecture decisions section in AGENTS.md + gardener alignment checks (#479)' (#484) from fix/issue-479 into main 2026-03-21 13:16:53 +01:00
openhands
3c6723bd8f fix: feat: architecture decisions section in AGENTS.md + gardener alignment checks (#479)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 11:55:15 +00:00
openhands
382228e31a chore: add issue templates (bug, feature, refactor) 2026-03-21 11:50:03 +00:00
openhands
aebda221f0 fix: file-action-issue.sh dedup check: paginate or raise limit beyond 50 (#383)
Replace codeberg_api GET with codeberg_api_all for the dedup fetch,
which paginates through all open action issues instead of capping at 50.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 11:45:03 +00:00
johba
bb8b3e92fb Merge pull request 'fix: CI fix counter can be wasted by guard hits — consider check_only mode (#377)' (#481) from fix/issue-377 into main 2026-03-21 12:39:05 +01:00
openhands
85fffd9fb7 fix: CI fix counter can be wasted by guard hits — consider check_only mode (#377)
Orphan and stuck-PR CI-failure paths in dev-poll.sh called
handle_ci_exhaustion without check_only, incrementing the fix counter on
every poll cycle even when guards (session checks, is_blocked) prevented
an actual agent launch. This could exhaust the 3-attempt budget without
any real fix attempts.

Now both paths use the same two-phase pattern as the backlog scan:
1. check_only during the scan (no counter increment)
2. Increment atomically at actual launch time

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 11:22:07 +00:00
johba
00c16d6251 Merge pull request 'fix: phase-handler.sh DELETE backlog label uses string 'backlog' not numeric ID (#375)' (#477) from fix/issue-375 into main 2026-03-21 12:14:02 +01:00
johba
2259c7d343 Merge pull request 'fix: fix: revert PR #474 — gardener must run from cron, not through action issues (#476)' (#478) from action/issue-476 into main 2026-03-21 12:09:02 +01:00
openhands
38f9b29867 Revert "Merge pull request 'fix: gardener-poll.sh needs to file action issues (not call gardener-agent.sh directly) (#367)' (#474) from fix/issue-367 into main"
This reverts commit cbd52972f3, reversing
changes made to 0dd607c1bb.
2026-03-21 11:00:48 +00:00
openhands
21489c1a17 fix: phase-handler.sh DELETE backlog label uses string 'backlog' not numeric ID (#375)
Replace string 'backlog' with $BACKLOG_LABEL_ID in the DELETE label API call
at dev-agent.sh:370. The Gitea API expects a numeric label ID in that path
segment. The variable is already resolved at the top of the script (line 46-48)
and used correctly elsewhere.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:59:46 +00:00
johba
d7ca59dd2f Merge pull request 'chore: planner run journal 2026-03-21' (#471) from chore/planner-20260321-0906 into main 2026-03-21 11:54:33 +01:00
johba
b8b92a8996 Merge pull request 'fix: Two parallel dust-bundling codepaths need consolidation (#368)' (#475) from fix/issue-368 into main 2026-03-21 11:54:02 +01:00
openhands
4c7baff05d fix: Two parallel dust-bundling codepaths need consolidation (#368)
Remove the orphaned post-session dust accumulator from gardener-agent.sh
(no longer reached after #367 moved gardener-poll.sh to action issues).
Add a dedicated dust-bundling formula step to run-gardener.toml that
handles the full lifecycle: dedup, timestamps, 30-day TTL expiry, and
bundling groups with 3+ items into backlog issues.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:41:31 +00:00
johba
cbd52972f3 Merge pull request 'fix: gardener-poll.sh needs to file action issues (not call gardener-agent.sh directly) (#367)' (#474) from fix/issue-367 into main 2026-03-21 11:29:41 +01:00
openhands
8193e7bc96 fix: extract build_formula_issue_body to eliminate duplicate code blocks
Move TOML frontmatter construction into a shared helper in
lib/file-action-issue.sh, used by both gardener-poll.sh and
gardener-run.sh. Fixes CI duplicate-detection failure.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:23:00 +00:00
openhands
1782cbd610 fix: gardener-poll.sh needs to file action issues (not call gardener-agent.sh directly) (#367)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:19:27 +00:00
johba
0dd607c1bb Merge pull request 'fix: fix: action formulas must not contain secrets in issue body (#291)' (#473) from fix/issue-291 into main 2026-03-21 11:08:54 +01:00
openhands
1c8c6a8caf fix: add AKIA and 0x private key redaction, preserve scan diagnostics
- redact_secrets now covers AWS AKIA keys and 0x-prefixed private keys,
  matching all patterns that scan_for_secrets detects
- file-action-issue.sh no longer suppresses stderr from scan_for_secrets,
  so blocked-issue diagnostics reach the caller's log

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 10:00:13 +00:00
openhands
2cc538d4fc fix: register lib/secret-scan.sh in CI smoke test function resolution
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 09:55:58 +00:00
openhands
0b453fdab0 fix: fix: action formulas must not contain secrets in issue body (#291)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 09:54:21 +00:00
johba
3793339da5 Merge pull request 'fix: fix: gardener creates investigation issues for already-closed escalations (#289)' (#472) from fix/issue-289 into main 2026-03-21 10:44:03 +01:00
openhands
082a472b9e fix: gardener creates investigation issues for already-closed escalations (#289)
Filter stale escalation entries in gardener-poll.sh before passing them
to the agent session. For each escalation reply line, extract referenced
issue numbers (#NNN) and check their current state via the API. Discard
entries where all referenced issues are already closed, preventing the
gardener from creating investigation issues for resolved problems.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 09:27:31 +00:00
johba
214b925d95 Merge pull request 'fix: feat: planner journal pattern — daily raw files + periodic summarization (#361)' (#470) from fix/issue-361 into main 2026-03-21 10:14:02 +01:00
openhands
16c41a0b03 chore: planner run 2026-03-21 2026-03-21 09:06:49 +00:00
openhands
83ec300c0e fix: feat: planner journal pattern — daily raw files + periodic summarization (#361)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 08:57:06 +00:00
johba
a698b8e540 Merge pull request 'fix: No relabeling on DISMISS: closed dismissed predictions retain prediction/unreviewed label (#360)' (#468) from fix/issue-360 into main 2026-03-21 09:49:02 +01:00
johba
ecb03ead8e Merge pull request 'chore: planner run journal 2026-03-21' (#467) from chore/planner-20260321-0833 into main
Reviewed-on: https://codeberg.org/johba/disinto/pulls/467
Reviewed-by: Disinto_bot <disinto_bot@noreply.codeberg.org>
2026-03-21 09:42:24 +01:00
openhands
d0e40ead22 chore: planner run 2026-03-21 2026-03-21 09:42:06 +01:00
openhands
33656048f8 fix: No relabeling on DISMISS: closed dismissed predictions retain prediction/unreviewed label (#360)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 08:41:30 +00:00
johba
ffabfa3984 Merge pull request 'fix: fix: action-agent runtime isolation, logging, and cleanup (#357)' (#464) from fix/issue-357 into main 2026-03-21 09:34:02 +01:00
openhands
67481fec9e fix: action-agent runtime isolation, logging, and cleanup (#357)
The action-agent now creates an isolated git worktree before each run
and destroys it unconditionally on exit. The formula must push results
before signaling done — unpushed work is lost when the worktree is nuked.

Changes:
- WORKTREE now points to /tmp/action-{issue}-{timestamp} instead of
  PROJECT_REPO_ROOT
- cleanup_worktree() properly removes the worktree + Claude session history
- cleanup() kills child processes, stops docker, then destroys the worktree
- Claude session runs inside the worktree (not FACTORY_ROOT)
- Prompt warns about push-before-done in both Path A and Path B

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 08:23:31 +00:00
johba
1ba22ca750 Merge pull request 'fix: feat: stream dev-agent Claude output to Matrix thread (extend #293 to dev-agent) (#355)' (#463) from fix/issue-355 into main 2026-03-21 09:18:22 +01:00
openhands
33a92c3fee fix: feat: stream dev-agent Claude output to Matrix thread (extend #293 to dev-agent) (#355)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 08:11:45 +00:00
johba
db325c4415 Merge pull request 'fix: fix: formula agents run in isolated git worktrees — no session collisions (#460)' (#461) from fix/issue-460 into main 2026-03-21 09:01:28 +01:00
openhands
d19160a658 ci: retrigger — push pipeline #651 flaked (PR pipeline #652 passed same commit)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 07:53:29 +00:00
openhands
a2fe3ecb83 fix: formula agents run in isolated git worktrees — no session collisions (#460)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 07:51:27 +00:00