You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
client: persist interactive conversation state across navigation and restarts #154
The new AiQuestion and part-action APIs enable interactive conversations, but host apps must retain accepted answers and pending state when transcript rows are evicted, screens are recreated, or the process restarts. A reliable recipe and explicit lifecycle contracts are needed beyond the happy path.
Proposed solution
Demonstrate durable restoration of messages, question answers, and pending actions using a pluggable application-owned store. Design correlated approval requests/responses as a separate, reviewable engine slice where needed. Coordinate in-flight reconnect with #98 rather than introduce another reconnect mechanism.
Acceptance criteria
Define ownership and serialization of settled answers and pending/failed actions, including migration/versioning expectations for stored application state.
Demonstrate restoring AiQuestion answers after lazy-list eviction, navigation, and process recreation without re-submitting accepted actions.
Define action identity and how the current message ID + original part index contract remains valid across restoration; do not silently rely on reordered parts keeping the same identity.
Specify pending/approved/denied/expired approval behavior, correlated responses, and retry handling before implementing public engine changes.
Cover duplicate responses, stale/late events, superseded turns, denial, disconnection, foreground/background transitions and explicit stop with lifecycle tests.
Coordinate server-side deduplication for side effects; document that client persistence alone cannot guarantee exactly-once execution.
Provide a runnable persistence recipe and document which restoration works offline versus requires a resumable backend.
Dependencies / boundaries
Build on the hosted-agent adapter #153 for remote run/session identities. Extend the reconnect design in #98. Keep the durable store pluggable and preserve current saved-message compatibility unless an explicit migration is designed.
Problem / motivation
The new AiQuestion and part-action APIs enable interactive conversations, but host apps must retain accepted answers and pending state when transcript rows are evicted, screens are recreated, or the process restarts. A reliable recipe and explicit lifecycle contracts are needed beyond the happy path.
Proposed solution
Demonstrate durable restoration of messages, question answers, and pending actions using a pluggable application-owned store. Design correlated approval requests/responses as a separate, reviewable engine slice where needed. Coordinate in-flight reconnect with #98 rather than introduce another reconnect mechanism.
Acceptance criteria
Dependencies / boundaries
Build on the hosted-agent adapter #153 for remote run/session identities. Extend the reconnect design in #98. Keep the durable store pluggable and preserve current saved-message compatibility unless an explicit migration is designed.
Background
October 3 library review and interactive foundation release PR #152.