Two-column Create layout with fixed slots, clearer labels, and a How it works pipeline tab
Magnus Persson
4fc023c
20 days ago
Phase 2: login, budget and rate limits, device cooldown, kill switch, admin status tab
Magnus Persson
d8ebb7a
Add access.py (workshop/admin login, password rules), limits.py (reserve/reconcile/release under one lock, cooldown, hourly cap, per-minute rate, slots, pause), admin tab, CooldownError and device id in BrowserState. Events are private to the Gradio client (EXPOSE_API lifts this for load tests). Load test now logs in, keeps the device id and detects refused Creates. 99 tests with fakes.
Phase 0 and 1: project setup, config, fakes, Create tab