-
Release 1.0.0-rc.5: Critical Production Fixes
released this
2025-11-25 04:20:56 +01:00 | 85 commits to main since this releaseRELEASE CANDIDATE 5 - CRITICAL HOTFIX
Architect Rating: EXCELLENT - Approved for immediate deploymentThis release contains two critical production fixes that resolve
container deployment issues and IndieAuth specification compliance.CRITICAL FIXES
-
Migration Race Condition (CRITICAL)
- Fixed database migration failures with multiple gunicorn workers
- Implemented SQLite BEGIN IMMEDIATE transaction locking
- Added exponential backoff retry logic (10 attempts, 120s max)
- Workers now coordinate properly during migration
- Graduated logging (DEBUG -> INFO -> WARNING) based on retries
- Resolves container startup crashes in production
-
IndieAuth Endpoint Discovery (CRITICAL)
- Fixed hardcoded endpoint configuration (violated W3C spec)
- Implemented dynamic endpoint discovery from profile URL
- Compliant with W3C IndieAuth Specification Section 4.2
- Supports HTTP Link headers and HTML link elements
- Smart caching with 1-hour TTL for endpoints
- Graceful fallback to expired cache on network failures
BREAKING CHANGES
- Removed TOKEN_ENDPOINT configuration variable
- Endpoints now auto-discovered from ADMIN_ME profile
- Deprecation warning if TOKEN_ENDPOINT still in environment
- Migration guide: docs/migration/fix-hardcoded-endpoints.md
TECHNICAL IMPLEMENTATION
Migration Race Condition:
- Database-level locking prevents concurrent migrations
- Exponential backoff: 1s, 2s, 4s, 8s, 16s, 32s, 60s (max)
- Total retry window: up to 120 seconds
- New connection per retry to prevent state issues
- See: ADR-022, migration-race-condition-fix-implementation.md
IndieAuth Endpoint Discovery:
- Discovers authorization_endpoint and token_endpoint
- Validates endpoints (HTTPS in production, localhost in debug)
- Token verification cached (5 min TTL, SHA-256 token hash)
- URL normalization for secure comparison
- Retry logic with exponential backoff for network errors
- See: ADR-030-CORRECTED, ADR-031, indieauth-endpoint-discovery.md
ARCHITECTURE DOCUMENTATION
New ADRs:
- ADR-022: Migration Race Condition Fix
- ADR-030-CORRECTED: IndieAuth Endpoint Discovery Decision
- ADR-031: Endpoint Discovery Implementation
New Documentation:
- docs/architecture/indieauth-endpoint-discovery.md
- docs/architecture/migration-race-condition-answers.md
- docs/architecture/migration-fix-quick-reference.md
- docs/migration/fix-hardcoded-endpoints.md
- docs/security/indieauth-endpoint-discovery-security.md
Implementation Reports:
- docs/reports/2025-11-24-v1.0.0-rc.5-implementation.md
- docs/reports/migration-race-condition-fix-implementation.md
- docs/reports/2025-11-24-endpoint-discovery-analysis.md
TESTING
New Test Coverage:
- tests/test_migration_race_condition.py (race condition simulation)
- tests/test_auth_external.py (endpoint discovery and caching)
All tests passing with comprehensive coverage of:
- Concurrent migration attempts
- Lock acquisition and release
- Endpoint discovery from various sources
- Caching behavior and TTL
- Error handling and fallback scenarios
DEPLOYMENT NOTES
This release is safe to deploy immediately:
- Migration system handles worker coordination automatically
- TOKEN_ENDPOINT removal is backward compatible (shows warning)
- Endpoint discovery is automatic from existing ADMIN_ME config
- No database schema changes required
- All existing functionality preserved
For upgrade instructions, see:
- docs/migration/fix-hardcoded-endpoints.md
WHAT'S NEXT
This RC5 addresses critical production issues discovered during
deployment testing. The fixes ensure reliable container deployments
and full IndieAuth specification compliance.Next steps toward v1.0.0:
- Production deployment validation
- Performance monitoring of endpoint discovery caching
- Final integration testing
Release: v1.0.0-rc.5
Date: 2025-11-24
Type: Hotfix (Critical)
Commits: 4 (from hotfix/migration-race-condition)
Files Changed: 22 files, +7704/-185 lines
Architect Approval: EXCELLENTDownloads
-