mirror of
https://github.com/MoonshotAI/kimi-code.git
synced 2026-07-19 06:04:21 +00:00
Markdown local images (must-fix): - Rewrite image srcs in the SOURCE TEXT before markstream parses it, instead of patching <img> via DOM after the fact — the old way raced the browser's immediate 404 and markstream's ImageNode unmounted the <img>, leaving a permanent broken image. In-flight srcs render a 1x1 transparent GIF, then the data URL swaps in (a src change resets ImageNode); failures keep the original src - resolveImageUrl: pass length=10MiB (protocol default 1MiB silently truncated larger PNGs into broken data URLs), check result.truncated, and strip the session cwd from absolute paths (daemon only accepts relative) Sidebar / workspace: - Deleting a workspace with sessions now refuses with an explanation — the daemon DELETE is registry-only and mergedWorkspaces re-derived it from the leftover sessions, so it instantly 'revived' and looked broken - Workspace delete needs a second confirming click (menu + mobile sheet) - .ws-menu-item.del/.ghm-item.del get danger styling; ws-menu uses fixed positioning so bottom workspaces aren't clipped by the scroll container - Truncated session lists always include the active session; empty workspaces stay visible when there are zero sessions globally - SessionRow archive-confirm CSS class mismatch (del-confirm) restored; hover bg #f2f2f2 → var(--panel2) - MobileSwitcherSheet parity: two-step archive confirm, running pulse dot, per-workspace truncation + expand, workspace … menu (copy path / delete) ThinkingBlock / toasts: - Historical sessions mount thinking blocks collapsed; expanded body clicks (incl. text selection) no longer collapse — only the head row toggles, with an always-visible chevron (touch had no hover affordance) + keyboard support; mobile drops the nested max-height scroll area - WarningToasts timers are per-instance (repeated identical texts no longer killed by stale timers), cleared on manual close/unmount, pause on pointerenter with remaining-time resume, +4s on touch screens ModelPicker / Composer: - status gains modelId (raw id) — the ✓/is-current marks compared display names against ids and never matched; pickers now compare modelId exactly - ctx ring pct clamped to 0-100 and guarded for ctxMax=0 - /compact chip stays visible on mobile (only context-pressure signal); textarea min-height 44px on phones; abort hover uses var(--err) mix - removed: dead isFocused/.focused binding, unreachable mobile .perm-dropdown rule, .md-row-info CSS, orphan comments ConversationPane / ChatPane: - Empty session no longer traps users parked on tasks/todo/files (TabBar and composer both vanished) — snaps back to chat - Removed the align toggle leftovers: persisted 'left' pref no longer freezes layout (old key cleaned up), align CSS classes hardcoded center - Empty-workspace hint no longer renders 'Send in ' with no name - Copy-success timer no longer cross-cancels between turns; cleared on unmount; copy buttons always visible on touch (incl. line-turn layout) - Deleted the commented-out turn-summary code + dead CSS (git has it) Cleanup: - Code font setting fully removed (UI was deleted but the localStorage key still silently restyled the whole app with no way back): state, CSS rules, Google Fonts links (only Inter remains), old key cleared once - Dark-flash fix: inline script applies persisted color scheme pre-bundle - Dead i18n keys removed (thinking.* namespace, composer.queue, status.permissionLabel, layout.align*, sidebar.deleteConfirm, theme.codeFont*); workspace.deleteHasSessions added - recentRoots dead state/export removed; workspaceEmpty dead prop removed - Debug artifacts deleted (icon-preview.html, test-new-session.mjs, reports/latest/events-68607.jsonl); duplicate/hardcoded modern theme rules (#b91c1c, #f0f0f0) replaced with variable-based colors |
||
|---|---|---|
| .. | ||
| dynamic-html-design-research.html | ||