27 Commits

Author SHA1 Message Date
cottongin
4188ae29af chore: cleanup repo 2026-04-05 06:06:36 -04:00
cottongin
54dd9dc999 chore: add LICENSE and AI warning 2026-04-05 05:58:34 -04:00
cottongin
d533bd5f3e Anchor binary patterns in .gitignore to repo root
Prefix binary names with / so they only match compiled binaries at the
repo root, not cmd/ source directories of the same name (e.g. test-kosmi
was hiding cmd/test-kosmi/). Also add get-kosmi-token binary entry.

Made-with: Cursor
2026-04-05 05:51:30 -04:00
cottongin
d314193540 Fix stale cmd/ scripts, export LoginWithChromedp, clean up vet warnings
Update 5 cmd/ test utilities that referenced APIs that drifted after
bridge refactors (NewBrowserAuthManager, bridge.NewConfig, changed
function signatures). Rewrite test-kosmi and test-native to use
NewGraphQLWSClient directly. Export LoginWithChromedp for use by cmd
scripts. Fix redundant-newline vet warnings across 5 cmd/ files.
Remove unreachable code and replace deprecated ioutil calls in
bridge/helper/lottie_convert.go.

Made-with: Cursor
2026-04-05 05:49:26 -04:00
cottongin
4fc7f08b24 Add connection resilience and reconnect commands for Kosmi and Jackbox
Kosmi WebSocket would silently die after hours/days with no reconnection.
Jackbox WebSocket failed to reconnect after API server restarts (stale JWT)
and leaked heartbeat goroutines on each reconnect cycle.

Kosmi changes:
- Add WebSocket ping/pong keepalive (30s ping, 90s read deadline)
- Send EventFailure on unexpected disconnect to trigger gateway reconnectBridge()
- Add intentionalDisconnect flag to prevent false failure events on clean shutdown
- Fix Disconnect() to be safe for reconnect cycles

Jackbox changes:
- Add read deadline (90s) to detect stale connections
- Fix heartbeat goroutine leak via per-connection listenDone channel
- Re-authenticate for fresh JWT before each reconnect attempt
- Add Manager.Reconnect() for on-demand teardown and rebuild

IRC commands:
- !kreconnect - reconnect Kosmi bridge
- !jreconnect - reconnect Jackbox WebSocket
- !reconnect  - reconnect all services (Kosmi + Jackbox)

Made-with: Cursor
2026-04-05 05:30:39 -04:00
cottongin
bec3615d2b Add ticker symbol voting (e.g. QPL3++, TMP2--)
Extend vote detection to recognize game ticker symbols alongside the
existing thisgame++/-- syntax. Each symbol maps to a specific game so
users can vote for any game by its stock-style ticker. The matched
ticker is sent to the API via a new optional `ticker` field in the
vote request.

Made-with: Cursor
2026-04-05 04:54:05 -04:00
cottongin
88cc140087 Add !votes command, fix vote tally timing, and improve Kosmi stability
- Add !votes command (IRC + Kosmi) showing per-session and all-time vote
  breakdowns for the current game via new Jackbox API endpoints
  (GET sessions/{id}/games, sessions/{id}/votes, games/{id})
- Fix vote tally broadcasting: remove debounce timer, announce tallies
  only at game transitions or session end instead of after every vote
- Add !kreconnect IRC command to manually trigger Kosmi reconnection
- Add WebSocket ping/pong keepalive and write mutex to Kosmi client
  for connection stability
- Add watchConnection() auto-reconnect on unexpected Kosmi disconnects
- Remove old 2025-10-31 chat summaries; add votes command design doc

Made-with: Cursor
2026-03-16 20:56:18 -04:00
cottongin
1831b0e923 Remove compiled binaries from tracking
Untrack 12 Mach-O binaries that were committed to the repo and add
them to .gitignore. These can be rebuilt from source with go build.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 13:53:08 -05:00
cottongin
8eeefcc81c Move PROJECT_STATUS.txt to docs/
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 13:46:40 -05:00
cottongin
78accf403d Remove test artifacts from tracking
Untrack har_operations_full.txt, roomcode GIFs, and test_upload.gif.
Add them to .gitignore.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 13:45:54 -05:00
cottongin
db284d0677 Move troubleshooting and implementation docs to docs/
Relocate 30 non-essential .md files (investigation notes, fix summaries,
implementation details, status reports) from the project root into docs/
to reduce clutter. Core operational docs (README, quickstart guides,
configuration references) remain in the root.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 13:40:46 -05:00
cottongin
3b7a139606 Remove sensitive files from tracking and add example config
Add matterbridge.toml, test configs, HAR captures, and JWT-containing
debug files to .gitignore. Provide matterbridge.toml.example with
placeholder values for safe onboarding.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-07 13:35:51 -05:00
cottongin
fd42ac0e7c working state 2026-02-07 12:37:21 -05:00
cottongin
1e0cb63b1c tweaks to websocket 2026-02-07 00:06:20 -05:00
cottongin
673c8025ee nailed it 2.0 2025-11-02 16:49:12 -05:00
cottongin
9262ae79dd nailed it 2025-11-02 16:48:18 -05:00
cottongin
f764519a30 nailed it 2025-11-02 16:04:03 -05:00
cottongin
1cad3cb47f simple-auth working on test client, about to implement in main client 2025-11-02 15:39:49 -05:00
cottongin
dd398c9a8c sync 2025-11-01 21:00:16 -04:00
cottongin
bd9513b86c wow that took awhile 2025-11-01 10:40:53 -04:00
cottongin
9143a0bc60 here goes 2025-10-31 23:56:16 -04:00
cottongin
3116721256 minor tweak 2025-10-31 21:41:27 -04:00
cottongin
c63c29efc9 proof-of-concept worked. rolling into main 2025-10-31 20:38:38 -04:00
cottongin
020daea391 working v1 2025-10-31 16:17:04 -04:00
cottongin
e41402a963 for real for real 2025-10-30 23:15:59 -04:00
cottongin
188f306c12 initial commit for real 2025-10-30 23:15:29 -04:00
cottongin
62ce14b5b2 initial commit 2025-10-30 23:14:49 -04:00