5 Commits

Author SHA1 Message Date
savinmax
3d14b7fcb8 feat(logging): add configurable log output and log level support
Add a 'logging' section to config.yaml supporting:
- output: stderr (default), stdout, or a file path
- level: debug, info, warn, error (default: info)

Implementation:
- New internal/logging package with Setup() for output destination
  and Logger struct with level-aware Debug/Info/Warn/Error methods
- Config struct extended with Logging section (output + level fields)
- Hub refactored to accept *logging.Logger via constructor injection
- main.go initializes logging early after config load

The leveled logger suppresses messages below the configured threshold
while maintaining the stdlib log format. File output uses append mode
with 0644 permissions for safe log rotation.

🤖 Assisted by the code-assist SOP
2026-06-11 19:21:20 +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
f69355d69d small fix
All checks were successful
CI / test (push) Successful in 10s
CI / lint (push) Successful in 11s
2025-08-04 11:11:10 +02:00
savinmax
9ad38190a5 adding config-file arg
All checks were successful
Release / release (push) Successful in 19s
CI / test (push) Successful in 9s
CI / lint (push) Successful in 12s
2025-08-02 21:31:35 +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