feat: git hygiene (branch/preview reaping + cleanup sweep) and panel charts; work sessions under Git (#548)

* feat(panel): session-start, 7d overview spend, and 30d business spend charts

* feat(panel): surface work sessions as a Git page tab (route was orphaned)

* feat(git): reap spent task branches and render previews at lifecycle chokepoints; guarded stale-branch sweep

* feat(panel): stale-branch cleanup button on the Git page

* fix(git,panel): cursor-resumable sweep, force-delete spent refs, local filter state

* docs(map,rag): branch/preview reaping, cleanup sweep, git-tab work sessions, wave-2 charts

---------

Co-authored-by: Renn F <rennf93@users.noreply.github.com>
This commit is contained in:
Renzo F
2026-07-18 00:44:48 +02:00
committed by GitHub
co-authored by Renn F
parent 885d6bbe83
commit 496c24d186
39 changed files with 1841 additions and 222 deletions
@@ -75,7 +75,7 @@ async def test_complete_removes_assignee_worktree_best_effort() -> None:
result = await svc.complete(task.id)
assert result is task
remove.assert_awaited_once_with(task, "roboco-api")
remove.assert_awaited_once_with(task, "roboco-api", force_branch_delete=True)
@pytest.mark.asyncio
@@ -149,7 +149,7 @@ async def test_ceo_approve_removes_assignee_worktree_best_effort() -> None:
result = await svc.ceo_approve(task.id)
assert result is task
remove.assert_awaited_once_with(task, "roboco-api")
remove.assert_awaited_once_with(task, "roboco-api", force_branch_delete=True)
@pytest.mark.asyncio