docs: comprehensive API documentation from source code

Replace existing docs with fresh documentation built entirely from source
code analysis. OpenAPI 3.1 spec as source of truth, plus human-readable
Markdown with curl examples, response samples, and workflow guides.

- OpenAPI 3.1 spec covering all 42 endpoints (validated against source)
- 7 endpoint reference docs (auth, games, sessions, picker, stats, votes, webhooks)
- WebSocket protocol documentation (auth, subscriptions, 4 event types)
- 4 guide documents (getting started, session lifecycle, voting, webhooks)
- API README with overview, auth docs, and quick reference table
- Old docs archived to docs/archive/

Made-with: Cursor
This commit is contained in:
cottongin
2026-03-15 16:44:53 -04:00
parent 505c335d20
commit 8ba32e128c
25 changed files with 6546 additions and 0 deletions

34
docs/archive/todos.md Normal file
View File

@@ -0,0 +1,34 @@
# TODO:
## Chrome Extension
- [x] /.old-chrome-extension/ contains OLD code that needs adjusting for new game picker format. (COMPLETED: New simplified extension in /chrome-extension/)
- [x] remove clunky gamealias system, we are only tracking "thisgame++" and "thisgame--" now.
- [x] ensure the extension is watching for "thisgame++" or "thisgame--" anywhere in each chat line.
- [x] if a chat line matches capture the whole message/line, the author, and the timestamp (UTC).
- [x] ensure our JSON output matches the new format:
```json
[
{
"username": "Alice",
"message": "thisgame++",
"timestamp": "2024-10-30T20:15:00Z"
},
{
"username": "Bob",
"message": "This is fun! thisgame++",
"timestamp": "2024-10-30T20:16:30Z"
}
]
```
## Game Manager
- [x] implement favoring system (for packs and games). (COMPLETED: Full weighted selection system with visual indicators)
- [x] if a game or pack is marked favored (👍), then we bias the picking algorithm to pick those games.
- [x] if a game or pack is marked as disfavored (👎), then we bias the picking algorithm to not pick those games.
- [x] biased games/packs should be highlighted subtley somehow in *any* lists they're in elsewhere in the UI, like the Pool Viewer.
## Bug Fixes
- [x] Entire App: local timezone display still isn't working. I see UTC times. (FIXED: Created dateUtils.js to properly parse SQLite UTC timestamps)
## Other Features
- [x] Session History: export sessions to plaintext and JSON. (COMPLETED: Export buttons in History page)