From f38f2b4c59b636e009505c3e8680bb66f5e0ed60 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Sat, 26 Jul 2025 16:45:53 -0500 Subject: [PATCH] Add CHANGELOG.md and update documentation process - Create comprehensive CHANGELOG.md with all recent changes - Add mandatory instruction in CLAUDE.md to update changelog - Follow Keep a Changelog format for consistency - Document all changes from v0.1.0 to current v0.2.0 Co-Authored-By: Claude --- CHANGELOG.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++ CLAUDE.md | 11 ++++++++--- 2 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..6ab4d61 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,55 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [0.2.0] - 2025-07-26 + +### Added +- Redis-based distributed PubSub for real-time updates across replicas +- PgBouncer connection pooling for efficient database connections +- Distributed caching with Redis (query, device, symbol caches) +- Distributed rate limiting with Redis using sliding window algorithm +- Graceful shutdown handling with connection draining +- PodDisruptionBudget for zero-downtime deployments +- Signal handler for proper SIGTERM handling +- Comprehensive health checks for Kubernetes probes +- Docker build optimizations with better layer caching +- Concurrency control in CI/CD pipeline + +### Changed +- Moved from ETS to Redis for caching when REDIS_URL is available +- Updated Kubernetes deployment to use StatefulSet with stable networking +- Simplified Dockerfile by removing Node.js dependencies +- Improved CI/CD to not wait for rollout completion +- Enhanced shutdown process to be silent (no user notifications) +- Optimized Docker image size (removed ~150MB) + +### Fixed +- PgBouncer database connection issues with SKIP_DB_CREATE +- Redis connection errors by removing invalid pool_size option +- Compilation warnings by grouping handle_info clauses +- ShutdownHandler interfering with application startup +- DeviceCache startup timing issues with Redis +- Docker permission errors with non-root user + +### Removed +- Node.js and npm from Docker image (using standalone ESBuild/Tailwind) +- Complex BuildKit features that were slowing builds +- Multi-platform Docker builds (simplified to amd64 only) + +## [0.1.0] - 2023-12-17 + +### Added +- Initial release +- APRS-IS network connection with reconnection logic +- Real-time packet processing with GenStage pipeline +- Phoenix LiveView map interface +- PostGIS geographic data storage +- Background job processing with Oban +- ETS-based local caching +- Basic rate limiting \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md index 8501169..df45aa0 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -116,9 +116,14 @@ Tests use comprehensive mocking to prevent external connections: ## Important Documentation Updates -- **MANDATORY**: Whenever you implement improvements or changes to the system, update `/docs/improvement-todos.md` with: - - Mark completed items as done with the implementation date - - Add any new improvements discovered during implementation +- **MANDATORY**: Whenever you implement improvements or changes to the system: + 1. Update `/CHANGELOG.md` with: + - Add new entries under `[Unreleased]` section + - Use categories: Added, Changed, Fixed, Removed + - Be specific and user-focused in descriptions + 2. Update `/docs/improvement-todos.md` with: + - Mark completed items as done with the implementation date + - Add any new improvements discovered during implementation - Update priority levels based on new insights - Document any technical decisions or trade-offs made - This ensures continuity across sessions and helps track progress on system improvements