feat: add ISSLOP AI usage analysis CLI commands, game router, and politics topic

- Add `cmd_isslop_prune`, `cmd_isslop_clear`, `cmd_isslop_analyze` CLI commands for AI usage analysis job management
- Register `/game` router with `index` and `farm` endpoints for Code Farm idle game
- Add `politics` to allowed TOPICS constant replacing `signals`
- Introduce `ISSLOP_DIR`, `ISSLOP_WORKSPACES_DIR`, `ISSLOP_RUNS_DIR`, `ISSLOP_MEDIA_DIR` config paths
- Add `clear_user_stars` and `clear_user_projects_cache` calls on vote and project create/delete
- Update `make prod` to use `nproc` workers via `DEVPLACE_WEB_WORKERS` env var
- Convert `database.py` and `utils.py` to packages for modular structure
- Add `devplace apikey` and `devplace token` CLI subcommands for API key and access token management
This commit is contained in:
2026-07-06 03:57:47 +00:00
parent f1bdefd834
commit 9a8046ab2a
110 changed files with 1466 additions and 374 deletions
@@ -16,7 +16,7 @@ make dev # uvicorn --reload on port 10500
```
Open `http://localhost:10500`. The first account you register becomes the administrator.
`make prod` runs the two-worker production server on the same port.
`make prod` runs the production server with one worker per CPU core on the same port.
## Repository layout
@@ -25,8 +25,8 @@ devplacepy/ the application package
main.py mounts routers, middleware, startup/shutdown
routers/ one directory per URL domain (mirrors the endpoint tree)
templates/ Jinja2 pages; static/ holds CSS and ES6 modules
database.py SQLite via dataset; query and batch helpers
models.py Pydantic Form models schemas.py *Out JSON models
database/ SQLite via dataset; query and batch helpers
models.py Pydantic Form models schemas/ *Out JSON models
services/ background + async-job services, Devii, containers
tests/ unit / api / e2e, mirroring the route or source path
```