Commit Graph

1 Commits

Author SHA1 Message Date
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