Question
Build: cut redundant devpod shell-outs on the hot paths.
list_workspaces() is uncached and called from 6+ sites (dl.py:171, 240, 686, 726, 731, 763, 1075); dl --purge runs devpod list twice back-to-back (:1075 then :240). Memoize per-invocation (single process, short-lived — a call-scoped cache or explicit pass-through is enough).
- A single
dl <ws> attach chains devpod list + devpod status + devpod context options + devpod up + devpod ssh --command sudo hostname + devpod ssh (dl.py:1093, :915, :788, :410) — the hostname SSH is a full extra round-trip before every attach. Determine which calls are droppable or mergeable without changing behavior; drop what's safe.
Acceptance: count of devpod subprocess spawns for dl --ls, dl <ws> (existing, running), and dl --purge -y before vs after.
Question
Build: cut redundant
devpodshell-outs on the hot paths.list_workspaces()is uncached and called from 6+ sites (dl.py:171, 240, 686, 726, 731, 763, 1075);dl --purgerunsdevpod listtwice back-to-back (:1075then:240). Memoize per-invocation (single process, short-lived — a call-scoped cache or explicit pass-through is enough).dl <ws>attach chainsdevpod list+devpod status+devpod context options+devpod up+devpod ssh --command sudo hostname+devpod ssh(dl.py:1093, :915, :788, :410) — the hostname SSH is a full extra round-trip before every attach. Determine which calls are droppable or mergeable without changing behavior; drop what's safe.Acceptance: count of
devpodsubprocess spawns fordl --ls,dl <ws>(existing, running), anddl --purge -ybefore vs after.