Companion frontend: chat_web_app public homepage PR.
0034_waitlistentry depends on 0033_agentrun_agentstep. feat/33-conversation-context-rag also adds a 0034_* migration, so one of those branches will need a renumber after the other merges.
POST /api/public/waitlist/ with a valid email, then the same email again
Invalid email returns 400 and stores nothing
GET /api/public/usage/ without a token
## Summary
- `POST /api/public/waitlist/` stores an email. The same response is returned for a new or existing address. No account is created.
- `GET /api/public/usage/` returns the active, non-deleted account count, the document count, and `as_of`. No emails, names, or avatars.
- Both views are `AllowAny` with empty authentication classes, same pattern as public settings.
- Closes #74.
Companion frontend: chat_web_app public homepage PR.
`0034_waitlistentry` depends on `0033_agentrun_agentstep`. `feat/33-conversation-context-rag` also adds a `0034_*` migration, so one of those branches will need a renumber after the other merges.
## Test plan
- [x] `chat_backend.tests.test_public_marketing` — 5 passed
- [ ] `POST /api/public/waitlist/` with a valid email, then the same email again
- [ ] Invalid email returns 400 and stores nothing
- [ ] `GET /api/public/usage/` without a token
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
POST /api/public/waitlist/stores an email. The same response is returned for a new or existing address. No account is created.GET /api/public/usage/returns the active, non-deleted account count, the document count, andas_of. No emails, names, or avatars.AllowAnywith empty authentication classes, same pattern as public settings.Companion frontend: chat_web_app public homepage PR.
0034_waitlistentrydepends on0033_agentrun_agentstep.feat/33-conversation-context-ragalso adds a0034_*migration, so one of those branches will need a renumber after the other merges.Test plan
chat_backend.tests.test_public_marketing— 5 passedPOST /api/public/waitlist/with a valid email, then the same email againGET /api/public/usage/without a tokenc3fb2c23f2to3ef49d1d15