Clicking '+' now clears activeSessionId instead of eagerly creating a backend session. The onboarding composer is shown immediately.
Sending a message without an active session creates it and submits the prompt in one flow via startSessionAndSendPrompt.
createSession and createSessionInWorkspace now upsert sessions to avoid duplicates from WebSocket broadcasts.
The snapshot-based session resync (51743345) replaced listMessages with
GET /sessions/{id}/snapshot as the initial sync path. Update the two
test suites that predate it (mock getSessionSnapshot + seedSnapshot,
assert on the snapshot call) and teach the dev stub daemon the
/snapshot route so pnpm dev:stub keeps working.
- add SessionCreatedEvent to protocol event schema\n- publish event.session.created from SessionService on creation\n- broadcast global session events to all connections in WSBroadcastService\n- update tests to cover broadcast and event validation
- define prompt.submitted schema and type in protocol\n- publish prompt.submitted from PromptService on submit and queue\n- project prompt.submitted into user messages in kimi-web\n- add unit and e2e tests for event propagation
In-transcript look is back to 9e97773 exactly: a live 9-line scrolling
window while the block streams, folding into the last-paragraph teaser
(grey, no chevron, hover brightens) when the stream moves past it.
What changed vs 9e97773: there is no inline expand any more. Clicking a
thinking block opens the FULL text in the right-side panel — the same
slot as the file preview (one occupant at a time, opening either closes
the other). Clicking the same block again toggles the drawer closed.
The panel resolves its text reactively from the transcript, so a block
that is still streaming keeps growing in the drawer and follows the
bottom unless the reader scrolls up; a compaction reload that drops the
turn auto-hides it. Session switches close it like the file preview.
The drawer slides in/out with a 0.28s transform; on leave it floats
fixed over the content (the grid column is already collapsed) so it can
slide away without re-entering the grid. Transition uses an explicit
:duration so a hidden tab (which swallows transitionend) still cleans
up the leaving element by timer.
Re-adds the thinking i18n namespace (panelTitle/close).
- add session snapshot API and protocol schemas with epoch-aware cursors\n- track in-flight turn state and volatile delta offsets for exact rebuild\n- update web client and tests to seed snapshots before subscribing
Comment out turnSummary display in both mobile and desktop templates,
along with helper functions (countToolsAndFiles, extractFilePath).
Keep the code intact with TODO markers for restoration.
- Show union of (first 5 sessions) and (sessions updated within 5 days) by default
- Add '展开更多' / 'Show more' button when sessions are hidden
- Clicking expands all sessions for that workspace
- Collapsing then re-expanding a workspace resets to default truncated view
- Add updatedAt to Session type for recency filtering
- TasksPane: show '暂无后台任务' / 'No background tasks running' when empty
- TodoCard: always render header, show empty state when no todos
- i18n: add emptyTasks and emptyTodo keys for zh/en
- ThinkingBlock: foldable last-paragraph teaser, hover-only indicator,
auto-collapse when streaming ends, line-height aligned with content
- ChatPane: static turn-summary at end of assistant turns
- Composer: perm-pill background matches toggle-pill
- SessionRow: kebab button moved before timestamp
- ToolCall: replace text chevron with SVG
The daemon lock now records the host CLI version and entry path. When
kimi web / kimi daemon finds a healthy daemon started by a different
build (e.g. an older pkg.pr.new install), it warns that the running
daemon lags the invoked CLI instead of silently reusing it; the new
--restart flag stops the managed daemon and starts a fresh one with the
current build. A daemon whose lock does not match the requested port
(foreign process on the port) is never stopped.
- Simplify session timestamps: drop 'ago' suffix (1h ago → 1h)
- Replace running status text with a non-intrusive pulse dot on session title
- Add hover-triggered kebab menu for workspaces (copy path, rename)
- Speed up fold expand/collapse animation (0.28s → 0.12s)
- Quick-start input for empty workspaces in conversation pane
- add optional DaemonStartupReporter callback to ensureDaemonRunning\n- report startup progress in daemon and web CLI commands\n- update unit tests to cover reporter output
- Replace emoji with inline SVG icons for attach/permission/plan buttons
- Unify attach-btn, perm-pill, toggle-pill styles (same padding/radius/font)
- Add SVG icons in permission dropdown rows
- Convert context bar from horizontal bar to circular SVG ring
- Strip provider prefix from model display name; fall back to models list lookup
- Load models eagerly on app init for friendly name resolution
- Increase toolbar and dropdown font sizes
- Increase textarea default height from 40px to 56px
- Remove plan/permission/ctx from model dropdown (keep only models + thinking)
- Fix ctx number spacing (remove spaces around slash)