Skip to content

feat: User-controlled session TTL — presets + custom duration #466

@OneStepAt4time

Description

@OneStepAt4time

Summary

Replace the global maxSessionAgeMs with per-session TTL chosen by the user at creation time.

Design

  • Presets: 1h, 2h (default), 4h, 8h, 24h
  • Custom: any duration via text input
  • Session reaper respects per-session expiresAt instead of global max
  • Expired sessions are archived (transcript + metadata preserved), not deleted
  • TTL countdown shown in session header bar

API Changes

  • POST /v1/sessions gains ttlMs field (optional, default 7200000)
  • Session reaper checks expiresAt = createdAt + ttlMs per session

UI

  • TTLPicker component in CreateSessionModal
  • Preset buttons + custom input field
  • TTL countdown in session header

Depends On

  • Session persistence issue (needs expiresAt field in stored sessions)

Spec

See docs/superpowers/specs/2026-03-28-dashboard-ux-p1-design.md — Section 2: User-controlled TTL

Metadata

Metadata

Labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions