Meter editor containers through reserve/commit, fix terminal input, and list running containers

Container starts now hold compute.editor seconds with reserveUsage (the session cap or what's left of
the month's hard cap, 402 when nothing usable is left) and every stop path (user, idle, cap, quota,
exited, restarted, admin) commits the exact seconds run; failed boots release the hold. The dead
setContainerMeterHook and EDITOR_CONTAINER_MONTHLY_MINUTES go away in favour of the plan's allowance.

The terminal WebSocket moves to the hibernation API: with accept()+addEventListener the dev proxy
delivered frames as Blobs, so stdin writes were empty and nothing echoed. Refusals (container not
running, too many terminals) are now sent over the socket so the terminal shows them.

Adds /settings/containers, /orgs/:org/containers and <repo>/settings/containers listing running and
recent sessions (repo/branch, started, idle, minutes, month usage vs quota) with Stop, backed by
src/fns/containers.ts.
taigrrcommitted parent 81f0fc834b3271aebad5f2ca0fc4457191d926c4c1e35a3Browse files
20 files changed+901−171

1 large file(s) are not rendered: worker-configuration.d.ts

Rendering diff…