Shunsuke Hayashi
|
5ef449d3ee
|
feat(session): add DynamoDB-based session persistence
Implement session state persistence for θ-cycle execution:
- src/session/types.ts: SessionState, SessionMetadata interfaces
- src/session/manager.ts: DynamoDB client with save/restore/query
* saveState() - Persist session with TTL (default: 1 hour)
* restoreState() - Recover session by ID
* getPendingSessions() - Query incomplete sessions
* updateStatus(), deleteSession() - State management
- src/session/recovery.ts: Fly.io/Lambda restart recovery
* recoverPendingSessions() - Auto-resume on restart
* heartbeatSession() - Keep-alive TTL extension
* completeSession(), failSession() - Lifecycle hooks
- src/session/manager.test.ts: Unit tests (skeleton)
Features:
- DynamoDB TTL auto-cleanup
- GSI for userId/guildId/status queries
- Recovery on container restart
- Multi-filter pending session queries
Co-Authored-By: Claude <noreply@anthropic.com>
|
2026-01-26 06:53:50 +09:00 |
|