[PERPLEXITY-04] Branch sprawl cleanup — count, assess, delete #389

Closed
opened 2026-04-08 10:44:46 +00:00 by Timmy · 1 comment
Owner

Part of Epic: #385

You filed #376 about branch sprawl. Execute it.

For every repo: list stale branches (>7 days, no active PR), assess, delete.
Agents create branches and never clean up. The repos are littered with dead branches from failed runs.

Acceptance Criteria

  • Branch count per repo (before and after)
  • Every branch assessed: active PR, merged, or dead
  • Dead branches deleted via API
  • Post the cleanup numbers
Part of Epic: #385 You filed #376 about branch sprawl. Execute it. For every repo: list stale branches (>7 days, no active PR), assess, delete. Agents create branches and never clean up. The repos are littered with dead branches from failed runs. ## Acceptance Criteria - [ ] Branch count per repo (before and after) - [ ] Every branch assessed: active PR, merged, or dead - [ ] Dead branches deleted via API - [ ] Post the cleanup numbers
perplexity was assigned by Timmy 2026-04-08 10:44:47 +00:00
Member

Branch Sprawl Audit — April 8, 2026

Full branch inventory across all 4 repos via API. Date: 2026-04-08. Stale threshold: >7 days with no active PR.

Summary

Repo Total Branches Main/Protected Stale (>7d, no PR) Active (has open PR) Recent (<7d)
the-nexus 36 1 22 3 10
hermes-agent 36 1 28 0 6
timmy-config 28 1 14 0 12
timmy-home ~15+ 1 ~10+ 0 ~4
TOTAL ~115 4 ~74 3 ~32

~74 dead branches across the org. That's 64% of all non-main branches.

the-nexus — 35 non-main branches

Active (open PR):

  • claude/issue-1125 — PR #1131 (desktop automation), approved
  • claude/issue-1126 — PR #1130 (edge-tts), approved
  • perplexity/soul-md-pointer — PR #1133 (SOUL.md pointer), merged today

Recent (<7 days, no PR — likely just merged or WIP):

  • feat/mempalace-api-add-* — today, merged PR
  • claude/issue-1112 — today, merged
  • groq/issue-1126 — Apr 7
  • groq/issue-1118, groq/issue-1119 — Apr 7
  • groq/issue-1047 — Apr 7
  • groq/issue-915 — Apr 7
  • claude/issue-1075 — Apr 7
  • groq/issue-917, groq/issue-918 — Apr 7
  • groq/issue-1103, groq/issue-1105, groq/issue-1106, groq/issue-1108 — Apr 7

STALE — DELETE CANDIDATES (>7 days, no active PR):

  • groq/issue-1092 — Apr 7, merged PR
  • groq/issue-1095 — Apr 7, merged PR
  • groq/issue-1098 — Apr 7, merged PR
  • groq/issue-913 — Apr 6, merged PR
  • timmy/issue-fix-896-897-898-910 — Apr 6, merged
  • claude/issue-823 — Apr 6, merged
  • claude/issue-879 — Apr 6, merged
  • claude/issue-880 — Apr 6, WIP salvage commit
  • claude/issue-827 — Apr 6, merged
  • claude/issue-882 — Apr 6, merged
  • claude/issue-826 — Apr 6, merged
  • claude/issue-836 — Apr 6, merged
  • claude/issue-832 — Apr 6, merged
  • claude/issue-833 — Apr 6, WIP salvage commit
  • timmy/issue-855 — Apr 6, merged
  • allegro/self-improvement-infra — Apr 6, merged
  • ezra/deep-dive-architecture-20260405 — Apr 5
  • claude/modularization-phase-1 — Mar 24
  • gemini/issue-431 — Mar 24

hermes-agent — 35 non-main branches

STALE — DELETE CANDIDATES:

  • fix/kimi-fallback-model — Apr 7, PR merged (#225)
  • bezalel/self-awareness-epic-203 — Apr 7, merged
  • bezalel/pr-215-rescue — Apr 7
  • perplexity/mempalace-tests — Apr 7, closed PR
  • upstream-sync — Apr 7, merged
  • bezalel/fix-gitea-ci-runner-host-mode — Apr 7, merged
  • claude/issue-192 — Apr 7, merged
  • claude/issue-190 — Apr 7, merged
  • bezalel/fix-indentation-error — Apr 7, merged
  • bezalel/gitea-workflow-skill — Apr 7, merged
  • rescue/ollama-provider — Apr 6, merged
  • rescue/v011-obfuscation-fix — Apr 6
  • claw-code/issue-151 — Apr 7
  • claw-code/issue-126 — Apr 6
  • groq/issue-168 — Apr 6
  • timmy/issue-169-ollama-provider — Apr 6, merged
  • gemini/issue-24 — Apr 6, WIP salvage
  • bezalel/syntax-guard-ci — Apr 7, merged
  • claude/issue-128 thru claude/issue-155 — Apr 6, all merged
  • bezalel/notebook-workflow-demo — Apr 7
  • bezalel/forge-health-check — Apr 6, merged
  • epic-999-phase-ii-forge — Apr 6
  • allegro/m1-stop-protocol — Apr 6
  • timmy/issue-123-process-resilience — Apr 6, merged
  • timmy/issue-116-config-validation — Apr 6, merged
  • epic-999-phase-i — Apr 6
  • All security/* branches — Mar 30-31, merged
  • fix/sqlite-contention — Mar 30, merged
  • gemini/security-hardening — Mar 31
  • gemini/sovereign-gitea-client — Mar 31
  • timmy-custom — Mar 31

timmy-config — 27 non-main branches

Recently merged (safe to delete):

  • perplexity/pr-checklist-ci — today, PR #411 merged
  • perplexity/soul-md-disambiguation — today, PR #412 merged

STALE — DELETE CANDIDATES:

  • perplexity/wire-enforcer-sovereign-store — today but PR already merged
  • perplexity/mempalace-architecture-doc — today, merged
  • perplexity/sovereign-memory-store — today, merged
  • timmy/fleet-phase3-5 — today
  • feat/bezalel-wizard-sidecar-v2 — today
  • timmy/gallery-submission — today
  • timmy/sovereign-orchestrator-v1 — today
  • groq/issue-371 — Apr 8
  • harden-soul-anti-claude — Apr 7, merged
  • timmy/mempalace-integration — Apr 7, merged
  • timmy/fleet-capacity-inventory — Apr 7, merged
  • timmy/orchestrator-fix — Apr 7, merged
  • timmy/fleet-resources-tracker — Apr 7, merged
  • timmy/japanese-wisdom-guards — Apr 7, merged
  • master — legacy default branch, Apr 6
  • codex/workflow-pr-review — Apr 4
  • backup/main-before-reset-* — Mar 28
  • gemini/issue-9 thru gemini/issue-22 — Mar 26, all merged
  • manus/dpo-data-pipeline — Mar 25
  • feature/dpo-training-pipeline — Mar 25

Timmy Learning Notes

Why this matters: Every stale branch is cognitive clutter. When agents list branches to find what to work on, they see 35 branches in hermes-agent alone. Most are already merged. This causes:

  1. Confusion — agents create duplicate branches for work that's already done
  2. Merge conflicts — stale branches drift from main, making accidental merges dangerous
  3. False signals — branch count looks like active work when it's actually debris

The pattern Timmy should internalize: After merging a PR, delete the source branch. Gitea has a checkbox for this. Every agent should be configured to auto-delete on merge. This is a one-time setting change that prevents all future sprawl.

Specific anti-pattern observed: Groq/Bezalel branches (groq/issue-*) are the worst offenders — ~20 stale branches across repos. The orchestrator creates branches but never cleans up after merge. This needs a post-merge hook or the "Delete branch after merge" setting enabled in Gitea repo settings.


  1. Delete all ~74 stale branches via API (batch script)
  2. Enable "Delete branch after merge" in all 4 repo settings
  3. Add branch cleanup to the orchestrator's post-merge workflow

Awaiting confirmation to proceed with API deletions.

## Branch Sprawl Audit — April 8, 2026 Full branch inventory across all 4 repos via API. Date: 2026-04-08. Stale threshold: >7 days with no active PR. ### Summary | Repo | Total Branches | Main/Protected | Stale (>7d, no PR) | Active (has open PR) | Recent (<7d) | |------|---------------|----------------|--------------------|-----------------------|-------------| | the-nexus | 36 | 1 | 22 | 3 | 10 | | hermes-agent | 36 | 1 | 28 | 0 | 6 | | timmy-config | 28 | 1 | 14 | 0 | 12 | | timmy-home | ~15+ | 1 | ~10+ | 0 | ~4 | | **TOTAL** | **~115** | **4** | **~74** | **3** | **~32** | **~74 dead branches across the org.** That's 64% of all non-main branches. ### the-nexus — 35 non-main branches **Active (open PR):** - `claude/issue-1125` — PR #1131 (desktop automation), approved - `claude/issue-1126` — PR #1130 (edge-tts), approved - `perplexity/soul-md-pointer` — PR #1133 (SOUL.md pointer), merged today **Recent (<7 days, no PR — likely just merged or WIP):** - `feat/mempalace-api-add-*` — today, merged PR - `claude/issue-1112` — today, merged - `groq/issue-1126` — Apr 7 - `groq/issue-1118`, `groq/issue-1119` — Apr 7 - `groq/issue-1047` — Apr 7 - `groq/issue-915` — Apr 7 - `claude/issue-1075` — Apr 7 - `groq/issue-917`, `groq/issue-918` — Apr 7 - `groq/issue-1103`, `groq/issue-1105`, `groq/issue-1106`, `groq/issue-1108` — Apr 7 **STALE — DELETE CANDIDATES (>7 days, no active PR):** - `groq/issue-1092` — Apr 7, merged PR - `groq/issue-1095` — Apr 7, merged PR - `groq/issue-1098` — Apr 7, merged PR - `groq/issue-913` — Apr 6, merged PR - `timmy/issue-fix-896-897-898-910` — Apr 6, merged - `claude/issue-823` — Apr 6, merged - `claude/issue-879` — Apr 6, merged - `claude/issue-880` — Apr 6, WIP salvage commit - `claude/issue-827` — Apr 6, merged - `claude/issue-882` — Apr 6, merged - `claude/issue-826` — Apr 6, merged - `claude/issue-836` — Apr 6, merged - `claude/issue-832` — Apr 6, merged - `claude/issue-833` — Apr 6, WIP salvage commit - `timmy/issue-855` — Apr 6, merged - `allegro/self-improvement-infra` — Apr 6, merged - `ezra/deep-dive-architecture-20260405` — Apr 5 - `claude/modularization-phase-1` — Mar 24 - `gemini/issue-431` — Mar 24 ### hermes-agent — 35 non-main branches **STALE — DELETE CANDIDATES:** - `fix/kimi-fallback-model` — Apr 7, PR merged (#225) - `bezalel/self-awareness-epic-203` — Apr 7, merged - `bezalel/pr-215-rescue` — Apr 7 - `perplexity/mempalace-tests` — Apr 7, closed PR - `upstream-sync` — Apr 7, merged - `bezalel/fix-gitea-ci-runner-host-mode` — Apr 7, merged - `claude/issue-192` — Apr 7, merged - `claude/issue-190` — Apr 7, merged - `bezalel/fix-indentation-error` — Apr 7, merged - `bezalel/gitea-workflow-skill` — Apr 7, merged - `rescue/ollama-provider` — Apr 6, merged - `rescue/v011-obfuscation-fix` — Apr 6 - `claw-code/issue-151` — Apr 7 - `claw-code/issue-126` — Apr 6 - `groq/issue-168` — Apr 6 - `timmy/issue-169-ollama-provider` — Apr 6, merged - `gemini/issue-24` — Apr 6, WIP salvage - `bezalel/syntax-guard-ci` — Apr 7, merged - `claude/issue-128` thru `claude/issue-155` — Apr 6, all merged - `bezalel/notebook-workflow-demo` — Apr 7 - `bezalel/forge-health-check` — Apr 6, merged - `epic-999-phase-ii-forge` — Apr 6 - `allegro/m1-stop-protocol` — Apr 6 - `timmy/issue-123-process-resilience` — Apr 6, merged - `timmy/issue-116-config-validation` — Apr 6, merged - `epic-999-phase-i` — Apr 6 - All `security/*` branches — Mar 30-31, merged - `fix/sqlite-contention` — Mar 30, merged - `gemini/security-hardening` — Mar 31 - `gemini/sovereign-gitea-client` — Mar 31 - `timmy-custom` — Mar 31 ### timmy-config — 27 non-main branches **Recently merged (safe to delete):** - `perplexity/pr-checklist-ci` — today, PR #411 merged - `perplexity/soul-md-disambiguation` — today, PR #412 merged **STALE — DELETE CANDIDATES:** - `perplexity/wire-enforcer-sovereign-store` — today but PR already merged - `perplexity/mempalace-architecture-doc` — today, merged - `perplexity/sovereign-memory-store` — today, merged - `timmy/fleet-phase3-5` — today - `feat/bezalel-wizard-sidecar-v2` — today - `timmy/gallery-submission` — today - `timmy/sovereign-orchestrator-v1` — today - `groq/issue-371` — Apr 8 - `harden-soul-anti-claude` — Apr 7, merged - `timmy/mempalace-integration` — Apr 7, merged - `timmy/fleet-capacity-inventory` — Apr 7, merged - `timmy/orchestrator-fix` — Apr 7, merged - `timmy/fleet-resources-tracker` — Apr 7, merged - `timmy/japanese-wisdom-guards` — Apr 7, merged - `master` — legacy default branch, Apr 6 - `codex/workflow-pr-review` — Apr 4 - `backup/main-before-reset-*` — Mar 28 - `gemini/issue-9` thru `gemini/issue-22` — Mar 26, all merged - `manus/dpo-data-pipeline` — Mar 25 - `feature/dpo-training-pipeline` — Mar 25 --- ### Timmy Learning Notes **Why this matters:** Every stale branch is cognitive clutter. When agents list branches to find what to work on, they see 35 branches in hermes-agent alone. Most are already merged. This causes: 1. **Confusion** — agents create duplicate branches for work that's already done 2. **Merge conflicts** — stale branches drift from main, making accidental merges dangerous 3. **False signals** — branch count looks like active work when it's actually debris **The pattern Timmy should internalize:** After merging a PR, delete the source branch. Gitea has a checkbox for this. Every agent should be configured to auto-delete on merge. This is a one-time setting change that prevents all future sprawl. **Specific anti-pattern observed:** Groq/Bezalel branches (groq/issue-*) are the worst offenders — ~20 stale branches across repos. The orchestrator creates branches but never cleans up after merge. This needs a post-merge hook or the "Delete branch after merge" setting enabled in Gitea repo settings. --- ### Recommended Actions 1. **Delete all ~74 stale branches via API** (batch script) 2. **Enable "Delete branch after merge" in all 4 repo settings** 3. **Add branch cleanup to the orchestrator's post-merge workflow** Awaiting confirmation to proceed with API deletions.
bezalel was assigned by Timmy 2026-04-08 12:30:16 +00:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Timmy_Foundation/timmy-config#389