You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Build: repo hygiene sweep (template leftovers, dead code) #59
Build: repo-hygiene sweep — delete template leftovers and dead code.
Root-level leftovers (all tracked, all from the python_template origin or superseded):
PROMPT.md, ralph.yml, @fix_plan.md — Ralph-agent scaffolding, content still says "python_template"
@AGENT.md — duplicates AGENTS.md (the one CLAUDE.md links to)
WORKTREE_BACKEND_PLAN.md, WORKTREE_BACKEND_README.md — superseded by docs/worktree-backend-spec.md; backend shipped
coverage.xml — stale (Jan 2026, predates the whole worktree/ package, reports 32.5%); confirm gitignored-and-untracked or remove from tracking
Dead code (zero references from src and tests): dl.get_git_branches (dl.py:563), dl.workspace_status (dl.py:907), config.save_config (config.py:104). Test-only-referenced candidates (BranchManager.checkout_branch, create_remote_branch_via_ssh — docstring says "legacy method from dl.py", dl.get_remote_head_sha) — delete function+tests together where the docstring or history confirms legacy; keep anything genuinely load-bearing.
Also the trivially dead duplicate assignment at workspace_clone.py:217/219 (is_new_workspace = False twice).
Deletion-only PR — no behavior change; CI green is the acceptance signal.
Note added by #53 (Rust rewrite: go, with a final Python release first): both halves of this ticket still land, for different reasons.
The root-level leftovers are repo-level and outlive the rewrite — the repo persists and will host the devlaunch-core / dl cargo workspace.
The dead code deletions now do double duty: they shrink the port surface. Deleting a function is an unambiguous "do not port this", where leaving it in makes that a judgment call during the port.
Landed in #66 — deletion-only, git diff adds zero lines.
Leftovers: PROMPT.md, ralph.yml, @fix_plan.md, @AGENT.md, WORKTREE_BACKEND_PLAN.md, WORKTREE_BACKEND_README.md, plus the Ralph state block in .gitignore. @AGENT.md was verbatim python_template boilerplate with nothing AGENTS.md lacks. WORKTREE_BACKEND_README.md was wrong, not merely redundant — it documented ~/.devlaunch/repos, a [worktree] enabled key and a --backend flag, none of which exist.
Dead code: all six functions confirmed dead by grep across src, tests, completions and docs, with no dynamic dispatch anywhere in the package (sole entry point is dl = "devlaunch.dl:main"). Two needed history to judge: get_remote_head_sha had a real caller until 0d64544 rewrote create_remote_branch to a local push and left its tests orphaned; checkout_branch was grepped across every revision of branch_manager.py and was never called from production in any of them. 12 tests removed with them, 409 -> 397, and every branch of the surviving _git_ls_remote helper is still covered.
coverage.xml: already untracked and ignored (.gitignore:47). No action, as the ticket allowed.
Beyond the list, one more deletion earned its place: the README "Backend Selection" section documented dl --backend devpod and DEVLAUNCH_BACKEND, neither of which appears anywhere in devlaunch/. User-facing docs for flags that never shipped.
Fog this sharpens
Two template leftovers survive, both needing a change rather than a deletion, so neither fit this PR:
pyproject.toml declares tomli_w, now unused after save_config went. Dropping it forces a lock regeneration, which on current pixi also bumps pixi.lock v6 to v7 — that belongs in #62, where the lock is touched anyway.
pyproject.toml's dev/dev-restart tasks still ssh pythontemplate.devpod, which cannot resolve for this repo. scripts/update_from_template.sh still points at blooop/python_template.
Also noted while grepping, unrelated to this ticket: conda.recipe/recipe.yamlrun: deps list only python, iterfzf, devpod — tomli has never been declared, so the conda package has been shipping without it.
Activity
blooop commentedon Aug 7, 2026
Answer
Landed in #66 — deletion-only,
git diffadds zero lines.Leftovers:
PROMPT.md,ralph.yml,@fix_plan.md,@AGENT.md,WORKTREE_BACKEND_PLAN.md,WORKTREE_BACKEND_README.md, plus the Ralph state block in.gitignore.@AGENT.mdwas verbatim python_template boilerplate with nothingAGENTS.mdlacks.WORKTREE_BACKEND_README.mdwas wrong, not merely redundant — it documented~/.devlaunch/repos, a[worktree] enabledkey and a--backendflag, none of which exist.Dead code: all six functions confirmed dead by grep across src, tests, completions and docs, with no dynamic dispatch anywhere in the package (sole entry point is
dl = "devlaunch.dl:main"). Two needed history to judge:get_remote_head_shahad a real caller until0d64544rewrotecreate_remote_branchto a local push and left its tests orphaned;checkout_branchwas grepped across every revision ofbranch_manager.pyand was never called from production in any of them. 12 tests removed with them, 409 -> 397, and every branch of the surviving_git_ls_remotehelper is still covered.coverage.xml: already untracked and ignored (.gitignore:47). No action, as the ticket allowed.Beyond the list, one more deletion earned its place: the README "Backend Selection" section documented
dl --backend devpodandDEVLAUNCH_BACKEND, neither of which appears anywhere indevlaunch/. User-facing docs for flags that never shipped.Fog this sharpens
Two template leftovers survive, both needing a change rather than a deletion, so neither fit this PR:
pyproject.tomldeclarestomli_w, now unused aftersave_configwent. Dropping it forces a lock regeneration, which on current pixi also bumpspixi.lockv6 to v7 — that belongs in #62, where the lock is touched anyway.pyproject.toml'sdev/dev-restarttasks stillssh pythontemplate.devpod, which cannot resolve for this repo.scripts/update_from_template.shstill points atblooop/python_template.Also noted while grepping, unrelated to this ticket:
conda.recipe/recipe.yamlrun:deps list onlypython,iterfzf,devpod—tomlihas never been declared, so the conda package has been shipping without it.