The time.Sleep(100ms) after OpenTelemetry shutdown was removed as it's
not necessary for proper log writing. Zerolog automatically flushes logs
on program exit, and the remaining 1-second sleep for readiness
propagation is sufficient.
Tested that all shutdown logs are properly written without the sleep.
- Add scripts/build.sh to compile binaries into bin/ directory
- Move all zerolog setup logic from cmd/server/main.go to pkg/config
- Add log level configuration support (trace, debug, info, warn, error, fatal, panic)
- Simplify cmd/server/main.go from 57 to 27 lines (53% reduction)
- Update .gitignore to use bin/ directory instead of individual files
- Document build process and bin directory in AGENTS.md
- Maintain backward compatibility with all existing functionality
- Simplify cmd/server/main.go from 158 to 57 lines (64% reduction)
- Move HTTP server creation, graceful shutdown, and context management to pkg/server
- Add Run() method to encapsulate server lifecycle management
- Maintain all existing functionality and OpenTelemetry integration
- Improve separation of concerns and code organization
This refactoring makes cmd/server/main.go a thin entrypoint while moving all server implementation details to the pkg/server package, following Go best practices for package organization.
Add server and greet binaries to .gitignore