Running log of runaway-usage checks for this Mac. Newest entry on top. One page, appended to each pass, so a check does not mint a new deploy every time.
how to read ๐ด hot / over budget ยท ๐ watch ยท ๐ข healthy. Each entry lists what was measured and what was done about it.
Auto sweep 2026-07-25 09:00
๐ข Vercel deploys
8 today / 30 in 24h
Cap is 100/day. Gate --max-day 90 refuses past 90.
๐ Background chats
18 alive
Headless claude sessions. Over 16 is worth trimming.
๐ข Python procs
12
Steady-state daemons expected around 10 to 15.
๐ด launchd jobs
36 total / 1 failing
Non-zero last-exit means a job is crash-looping.
๐ข CPU load
1.2 avg
1-minute load average.
Generated by the daily usage_sweep.py launchd job. No action taken automatically. Red or amber signals are yours to act on.
Auto sweep 2026-07-24 09:00
๐ Vercel deploys
API unavailable
Could not reach the deployments API this run.
๐ข Background chats
4 alive
Headless claude sessions. Over 16 is worth trimming.
๐ข Python procs
10
Steady-state daemons expected around 10 to 15.
๐ด launchd jobs
36 total / 1 failing
Non-zero last-exit means a job is crash-looping.
๐ข CPU load
3.0 avg
1-minute load average.
Generated by the daily usage_sweep.py launchd job. No action taken automatically. Red or amber signals are yours to act on.
Auto sweep 2026-07-23 09:00
๐ข Vercel deploys
9 today / 29 in 24h
Cap is 100/day. Gate --max-day 90 refuses past 90.
๐ด Background chats
34 alive
Headless claude sessions. Over 16 is worth trimming.
๐ข Python procs
10
Steady-state daemons expected around 10 to 15.
๐ด launchd jobs
36 total / 1 failing
Non-zero last-exit means a job is crash-looping.
๐ข CPU load
2.8 avg
1-minute load average.
Generated by the daily usage_sweep.py launchd job. No action taken automatically. Red or amber signals are yours to act on.
Auto sweep 2026-07-22 09:00
๐ข Vercel deploys
9 today / 21 in 24h
Cap is 100/day. Gate --max-day 90 refuses past 90.
๐ Background chats
18 alive
Headless claude sessions. Over 16 is worth trimming.
๐ข Python procs
10
Steady-state daemons expected around 10 to 15.
๐ด launchd jobs
36 total / 2 failing
Non-zero last-exit means a job is crash-looping.
๐ข CPU load
1.6 avg
1-minute load average.
Generated by the daily usage_sweep.py launchd job. No action taken automatically. Red or amber signals are yours to act on.
Auto sweep 2026-07-21 09:00
๐ข Vercel deploys
9 today / 30 in 24h
Cap is 100/day. Gate --max-day 90 refuses past 90.
๐ข Background chats
14 alive
Headless claude sessions. Over 16 is worth trimming.
๐ข Python procs
10
Steady-state daemons expected around 10 to 15.
๐ด launchd jobs
36 total / 1 failing
Non-zero last-exit means a job is crash-looping.
๐ข CPU load
1.4 avg
1-minute load average.
Generated by the daily usage_sweep.py launchd job. No action taken automatically. Red or amber signals are yours to act on.
Auto sweep 2026-07-20 09:00
๐ Vercel deploys
API unavailable
Could not reach the deployments API this run.
๐ Background chats
20 alive
Headless claude sessions. Over 16 is worth trimming.
๐ข Python procs
13
Steady-state daemons expected around 10 to 15.
๐ด launchd jobs
37 total / 1 failing
Non-zero last-exit means a job is crash-looping.
๐ข CPU load
1.9 avg
1-minute load average.
Generated by the daily usage_sweep.py launchd job. No action taken automatically. Red or amber signals are yours to act on.
Auto sweep 2026-07-19 09:00
๐ Vercel deploys
15 today / 75 in 24h
Cap is 100/day. Gate --max-day 90 refuses past 90.
๐ Background chats
18 alive
Headless claude sessions. Over 16 is worth trimming.
๐ข Python procs
9
Steady-state daemons expected around 10 to 15.
๐ด launchd jobs
37 total / 1 failing
Non-zero last-exit means a job is crash-looping.
๐ข CPU load
2.6 avg
1-minute load average.
Generated by the daily usage_sweep.py launchd job. No action taken automatically. Red or amber signals are yours to act on.
Auto sweep 2026-07-18 09:30
๐ข Vercel deploys
1 today / 23 in 24h
Cap is 100/day. Gate --max-day 90 refuses past 90.
๐ข Background chats
6 alive
Headless claude sessions. Over 16 is worth trimming.
๐ข Python procs
16
Steady-state daemons expected around 10 to 15.
๐ด launchd jobs
36 total / 3 failing
Non-zero last-exit means a job is crash-looping.
๐ข CPU load
5.2 avg
1-minute load average.
Generated by the daily usage_sweep.py launchd job. No action taken automatically. Red or amber signals are yours to act on.
Auto sweep 2026-07-17 09:00
๐ข Vercel deploys
9 today / 33 in 24h
Cap is 100/day. Gate --max-day 90 refuses past 90.
๐ข Background chats
8 alive
Headless claude sessions. Over 16 is worth trimming.
๐ข Python procs
9
Steady-state daemons expected around 10 to 15.
๐ด launchd jobs
37 total / 3 failing
Non-zero last-exit means a job is crash-looping.
๐ข CPU load
3.4 avg
1-minute load average.
Generated by the daily usage_sweep.py launchd job. No action taken automatically. Red or amber signals are yours to act on.
Auto sweep 2026-07-16 09:00
๐ข Vercel deploys
12 today / 34 in 24h
Cap is 100/day. Gate --max-day 90 refuses past 90.
๐ด Background chats
44 alive
Headless claude sessions. Over 16 is worth trimming.
๐ข Python procs
10
Steady-state daemons expected around 10 to 15.
๐ข launchd jobs
37 total / 0 failing
Non-zero last-exit means a job is crash-looping.
๐ข CPU load
3.3 avg
1-minute load average.
Generated by the daily usage_sweep.py launchd job. No action taken automatically. Red or amber signals are yours to act on.
Auto sweep 2026-07-15 09:00
๐ Vercel deploys
13 today / 87 in 24h
Cap is 100/day. Gate --max-day 90 refuses past 90.
๐ด Background chats
32 alive
Headless claude sessions. Over 16 is worth trimming.
๐ข Python procs
10
Steady-state daemons expected around 10 to 15.
๐ด launchd jobs
37 total / 1 failing
Non-zero last-exit means a job is crash-looping.
๐ข CPU load
1.6 avg
1-minute load average.
Generated by the daily usage_sweep.py launchd job. No action taken automatically. Red or amber signals are yours to act on.
Auto sweep 2026-07-14 09:00
๐ Vercel deploys
9 today / 89 in 24h
Cap is 100/day. Gate --max-day 90 refuses past 90.
๐ข Background chats
8 alive
Headless claude sessions. Over 16 is worth trimming.
๐ข Python procs
10
Steady-state daemons expected around 10 to 15.
๐ข launchd jobs
36 total / 0 failing
Non-zero last-exit means a job is crash-looping.
๐ข CPU load
2.7 avg
1-minute load average.
Generated by the daily usage_sweep.py launchd job. No action taken automatically. Red or amber signals are yours to act on.
Auto sweep 2026-07-13 09:00
๐ด Vercel deploys
29 today / 100 in 24h
Cap is 100/day. Gate --max-day 90 refuses past 90.
๐ Background chats
16 alive
Headless claude sessions. Over 16 is worth trimming.
๐ข Python procs
8
Steady-state daemons expected around 10 to 15.
๐ข launchd jobs
35 total / 0 failing
Non-zero last-exit means a job is crash-looping.
๐ข CPU load
2.0 avg
1-minute load average.
Generated by the daily usage_sweep.py launchd job. No action taken automatically. Red or amber signals are yours to act on.
Auto sweep 2026-07-12 09:00
๐ด Vercel deploys
28 today / 100 in 24h
Cap is 100/day. Gate --max-day 90 refuses past 90.
๐ Background chats
18 alive
Headless claude sessions. Over 16 is worth trimming.
๐ข Python procs
8
Steady-state daemons expected around 10 to 15.
๐ด launchd jobs
34 total / 1 failing
Non-zero last-exit means a job is crash-looping.
๐ข CPU load
2.3 avg
1-minute load average.
Generated by the daily usage_sweep.py launchd job. No action taken automatically. Red or amber signals are yours to act on.
Runaway-usage sweep 2026-07-11 ยท 13:1x
๐ด Vercel deploys
20 in ~3h
~6โ7/hr pace โ 150+/day, over the 100/day Hobby cap. A 9-deploy burst clustered at the 3h mark.
๐ Background chats
34 โ 18
34 headless claude sessions alive, 13 active. Oldest ~22h45m, several still burning CPU. Trimmed the >4h stale ones.
๐ข Python
11 @ ~0%
All near-0% CPU. Normal daemons (harvest, bci-server, n8n). No loop, no leak.
๐ข launchd jobs
~35 ยท all 0
Every com.drwu.* job exit status 0. None crash-looping.
๐ CPU load
4.0 avg
Real hog is Google Chrome (pid 4089 ~29%), not the pipeline. Left running.
๐ข deploy_gate.py
present + hardened
Already had hash-skip + flock + 55m debounce. Added an interactive daily-cap ceiling.
Actions taken this pass
Killed 16 stale headless sessions (8 chats >4h old, some looping 18โ22h). Fleet 34 โ 18. This session protected.
Hardened deploy_gate.py: new --max-day ceiling (default 90, under the 100 cap). Interactive /ship now refuses past it; warns in the last 10; auto-resets at midnight; --force overrides. Syntax-checked and unit-tested.
Listed Chrome's worst tabs for manual reclaim (not force-killed โ your browser).
Built this single running-log page so future checks append here instead of spawning a fresh deploy each question.
Still watching
Deploy cadence across concurrent chats โ the gate now caps it, but the underlying fix is fewer chats each calling /ship.
Chrome pid 4089 (~29% CPU) โ reclaim or reload when convenient.