mirror of
https://github.com/nexu-io/open-design.git
synced 2026-06-01 03:14:35 +07:00
Users can type a prompt in a conversation, reload the app, and expect that unsent text to remain tied to the same conversation. Store only the active conversation's composer draft under a project+conversation localStorage key and clear it once the draft is submitted or queued. Constraint: The composer already remounts by activeConversationId, so persistence can stay local to ChatPane/ChatComposer without changing daemon contracts. Rejected: Persist draft text in SQLite messages | unsent drafts are local UI state and should not appear in conversation history. Confidence: high Scope-risk: narrow Directive: Keep initialDraft higher priority than stored drafts so seeded workflows are not overwritten by stale local text. Tested: pnpm --filter @open-design/web test tests/components/ChatComposer.send-key.test.tsx tests/components/ChatComposer.queue-button.test.tsx Tested: pnpm --filter @open-design/web typecheck Co-authored-by: nicejames <nicejames@gmail.com> |
||
|---|---|---|
| .. | ||
| analytics | ||
| artifacts | ||
| components | ||
| edit-mode | ||
| helpers | ||
| hooks | ||
| i18n | ||
| lib | ||
| observability | ||
| providers | ||
| runtime | ||
| state | ||
| styles | ||
| utils | ||
| analytics-app-version.test.tsx | ||
| analytics-configure-globals.test.ts | ||
| analytics-identity.test.ts | ||
| analytics-scrub.test.ts | ||
| api-attachment-context.test.ts | ||
| App.test.ts | ||
| comments.test.ts | ||
| host-boundary.test.ts | ||
| quickSwitcherRecents.test.ts | ||
| router-marketplace.test.ts | ||
| router.test.ts | ||
| sidecar-proxy.test.ts | ||