docs: restore completed sections in CLAUDE.md, fix numbering
Keep [x] items as context for future sessions. Added new done items (text selection, ChatInput capsule, visual refresh). Fixed section numbering 1-8. Updated media cache to reflect custom disk cache.
This commit is contained in:
parent
dca9cb7593
commit
e6fa8ef8a6
1 changed files with 8 additions and 2 deletions
10
CLAUDE.md
10
CLAUDE.md
|
|
@ -370,7 +370,7 @@ All committed on `main`. Compile-verified on Mac (`./gradlew :app:compileDebugKo
|
|||
|
||||
### 1. Remaining visual/UX gaps (daily-drive blockers)
|
||||
|
||||
These are what separate "prototype" from "daily-driver":
|
||||
All done:
|
||||
|
||||
- [x] **Markdown rendering during streaming** — all regex patterns pre-compiled as top-level constants, `remember(text)` memoization. Verified performant
|
||||
- [x] **Code block copy button** — tap-to-copy on fenced code blocks (clipboard + haptic feedback)
|
||||
|
|
@ -379,9 +379,15 @@ These are what separate "prototype" from "daily-driver":
|
|||
- [x] **Link rendering** — clickable via `ClickableText` + `ACTION_VIEW`, opens browser on tap
|
||||
- [x] **Strikethrough** — `~~text~~` rendered with line-through + dimmed alpha
|
||||
- [x] **Task lists** — `- [ ]` / `- [x]` with Check/Square icons in accent color
|
||||
- [x] **Text selection** — `SelectionContainer` on user + assistant messages, long-press to select/copy/share
|
||||
- [x] **Single-row ChatInput** — Gemini-style capsule (64dp, pill shape), mode pills inside card via tune icon
|
||||
- [x] **New Chat button** — PenLine icon in top bar
|
||||
- [x] **Visual refresh** — W300 typography, larger headings, message animations, richer themes/blobs, semantic colors, custom 1.0px icons, glass-lens app icon
|
||||
|
||||
### 2. Conversation management from the app
|
||||
|
||||
All done:
|
||||
|
||||
- [x] **Conversation rename/delete** from the sidebar — 3-dot menu on each chat, `PATCH`/`DELETE /api/v1/conversations/[id]`
|
||||
- [x] **Conversation pin/unpin** from the sidebar — `PATCH { pinned }`, star icon for pinned items
|
||||
- [x] **In-app unlock for locked conversations** — BiometricPrompt with CryptoObject (AES key in TEE/StrongBox), hardware-enforced biometric auth → server unlock token via `POST /api/v1/auth/unlock` → fetch messages with `X-Unlock-Token` header. Auto-lock on background. Fallback to direct unlock if biometrics unavailable
|
||||
|
|
@ -443,7 +449,7 @@ The web's call mode (`use-call-mode.ts`, `call-view.tsx`) is the reference imple
|
|||
- [ ] **Stale-check enforcement** — use `cachedAt` to trigger background refresh when older than N minutes
|
||||
- [ ] **Offline-queue for sends** — queue messages locally, send when network returns (needs conflict resolution)
|
||||
- [ ] **Incremental sync** — only fetch changed conversations (needs server-side `since` parameter)
|
||||
- [ ] **Media cache** — cache images/files locally (Coil or custom disk cache)
|
||||
- [x] **Media cache** — `NetworkImageCache` with file-based disk cache (`cacheDir/img`), 32MB size-based memory LRU, shared `KaizenApi.imageClient`
|
||||
- [ ] **Full-text search** — FTS4/FTS5 over cached messages (Room supports this natively)
|
||||
- [ ] **Attachment queries** — "show me all chats with images/PDFs" via Room DB
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue