1. ArtifactPanel textarea: use local state with onChange/onBlur instead of empty onChange handler that made the editor unwritable 2. Artifact emission: move store.addArtifact from render body into a dedicated ArtifactEmitter component using useEffect 3. searchText for new threads: write searchText during generateTitle so post-migration threads are searchable by content 4. PromptLibrarySheet: wire onInsertPrompt with clipboard fallback and toast notification; handle prompt() cancel (null) as abort 5. download.ts: defer URL.revokeObjectURL with setTimeout to avoid failed downloads on Firefox 6. DB migration: replace serial for-of await loop with Promise.all to prevent transaction timeout on large databases; skip empty text 7. handleDeleteFolder: use Dexie transaction with .modify() for atomic unfile-then-delete; use undefined instead of "" for unfiled folderId 8. Keyboard shortcuts: remove Cmd+Shift+F from help dialog since the handler is not wired Also: - Remove unused aui hook, SearchIcon import, and prompt-library imports - Fix stale artifactPanelOpen closure in command palette toggle - Fix JSONL export: remove non-standard feedback field from message objects; use application/x-ndjson MIME type - Fix nested button in ArtifactTab: use div with role="tab" - Use static db import instead of redundant dynamic import in adapter - Log memory injection errors instead of silent catch - Add cancelled flag to feedback useEffect to prevent stale setState - Use functional setState in handleFeedback to avoid stale closure - Add .catch() on feedback DB write |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .gitignore | ||
| .gitkeep | ||
| biome.json | ||
| bun.lock | ||
| components.json | ||
| data-designer.openapi (1).yaml | ||
| eslint.config.js | ||
| index.html | ||
| package.json | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||