3 Commits

Author SHA1 Message Date
savinmax
5288282ae7 feat(example): add room support to browser chat client
Some checks failed
CI / test (push) Successful in 12s
CI / lint (push) Failing after 10s
Update example/index.html to allow users to specify a room via the UI:

- Add room name text input with '/' as default
- Add 'Join Room' button that (re)connects to the specified room
- Construct WebSocket URL using the room path (ws://host:port/room)
- Display connection status with current room name
- Derive initial room from browser URL hash (e.g., #/chat → /chat)
- Update URL hash on room change for shareable links
- Listen for hashchange events for URL-driven navigation
- Add Ctrl+Enter shortcut for sending messages
- Improve styling with flexbox layout for controls

Demo: open index.html#/chat in two tabs and index.html#/game in another.
Messages in /chat stay isolated from /game.

🤖 Assisted by the code-assist SOP
2026-06-13 13:35:26 +02:00
savinmax
905c241daa Improve reliability, testing, and documentation
Some checks failed
CI / test (push) Successful in 54s
CI / lint (push) Failing after 3m16s
- Fix metrics: change MessagesTotal, ConnectionsTotal, DisconnectionsTotal
  from Gauge to Counter with proper _total naming convention
- Fix broadcast write-error handling: failed clients now get properly
  removed with accurate metrics updates
- Add graceful shutdown: SIGINT/SIGTERM handling with 10s timeout,
  CloseGoingAway frame sent to clients before disconnect
- Add integration tests: 11 tests using real WebSocket connections
  covering connect, broadcast, disconnect, concurrency, and shutdown
- Fix example client port: changed from 8000 to 8443 to match config
- Rewrite README.md to reflect current features and usage
- Add AGENTS.md and .agents/summary/ documentation for AI assistants
2026-06-11 19:14:19 +02:00
savinmax
e4523df602 Init
Some checks failed
CI / test (push) Successful in 1m10s
CI / lint (push) Successful in 30s
Release / release (push) Failing after 31s
2025-08-02 18:33:50 +02:00