Commit graph

500 commits

Author SHA1 Message Date
qer
75aa63ae70 feat(kimi-web): defer session creation until first message
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.
2026-06-11 15:29:11 +08:00
qer
cef4664e35 fix(web): adapt steer/session-url tests and stub daemon to snapshot sync
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.
2026-06-11 14:49:21 +08:00
qer
b3161a08ad Merge remote-tracking branch 'origin/feat/web' into feat/web 2026-06-11 13:52:21 +08:00
qer
47de235ebe Merge remote-tracking branch 'origin/feat/web' into feat/web 2026-06-11 13:51:20 +08:00
qer
7d58865f8d feat(web): improve media previews 2026-06-11 13:43:32 +08:00
haozhe.yang
c6eb581f47 feat(session): broadcast session.created event to all live connections
- 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
2026-06-11 13:39:11 +08:00
haozhe.yang
694d137f84 feat(prompt): add prompt.submitted event for cross-client visibility
- 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
2026-06-11 13:23:46 +08:00
qer
536d967db0 feat(web): restore 9e97773 thinking presentation; full text opens in a side drawer
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).
2026-06-11 13:00:19 +08:00
haozhe.yang
517433454c feat(sync): add snapshot-based session resync
- 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
2026-06-11 12:31:16 +08:00
qer
ef236a8900 feat: add web file preview panel 2026-06-11 12:12:10 +08:00
qer
9e9777382b feat(web): show todo progress in tab and remove align toggle 2026-06-11 10:14:48 +08:00
qer
09113dc0e1 feat(kimi-web): temporarily hide turn-summary
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.
2026-06-11 10:14:48 +08:00
qer
8e3c452a93 feat(kimi-web): add smooth expand/collapse animation to ThinkingBlock
Use CSS grid-template-rows 1fr/0fr transition for smooth height animation
when toggling between full thinking content and last-paragraph teaser.
2026-06-11 10:14:48 +08:00
qer
7100ea2ac2 feat(kimi-web): truncate session list per workspace with expand-more
- 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
2026-06-11 10:14:48 +08:00
qer
87aec8877e feat(kimi-web): rename session delete to archive in UI
- i18n: add archiveConfirm and archive keys (zh/en)
- SessionRow: change delete confirm overlay and menu button to archive
- MobileSwitcherSheet: change delete button to archive
- Keep workspace delete as-is (separate from session archive)
2026-06-11 10:14:48 +08:00
qer
5a31aeb065 feat(kimi-web): add empty-state UI for tasks and todo tabs
- 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
2026-06-11 10:14:48 +08:00
qer
4394e13976 feat(kimi-web): temporarily hide files tab
Comment out the files tab from TabBar until the feature is ready.
Keep the code and badge logic intact with TODO markers.
2026-06-11 10:14:48 +08:00
qer
422cdb27a3 feat(kimi-web): polish chat UI components
- 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
2026-06-11 10:14:48 +08:00
qer
92101595cb style(kimi-web): simplify input focus styling 2026-06-11 10:14:48 +08:00
qer
3c48c51482 fix(kimi-web): stabilize conversation pane interactions 2026-06-11 10:14:48 +08:00
qer
d4f52da7fa feat(kimi-web): remove font settings and add dark mode support 2026-06-11 10:14:48 +08:00
qer
fd95db6ddd fix(web): workspace add button should trigger createInWorkspace instead of selectWorkspace 2026-06-11 10:14:48 +08:00
qer
34882923fd feat(web): move workspace more-menu icon before add button and add delete workspace option 2026-06-11 10:14:48 +08:00
qer
45d2cb1ed3 feat(cli): detect build-mismatched daemon and add --restart to kimi web/daemon
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.
2026-06-11 10:14:48 +08:00
qer
7448a225a7 feat(web): sidebar polish, workspace more menu, and fold animation
- 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
2026-06-11 10:14:48 +08:00
qer
2448ded214 refactor(kimi-web): remove ago timestamp from sidebar session rows 2026-06-11 10:14:48 +08:00
qer
054c08ea75 feat(kimi-web): show empty-workspace hint in sidebar and centred quick-start input in chat 2026-06-11 10:14:48 +08:00
qer
0574a43faf refactor(kimi-web): set new session icon stroke-width to 1.5 2026-06-11 10:14:48 +08:00
qer
1c68db11a0 refactor(kimi-web): thin down plus and image icons 2026-06-11 10:14:48 +08:00
qer
f1a5ced295 refactor(kimi-web): use clean plus-cross icon for new session button 2026-06-11 10:14:48 +08:00
qer
334200ea2f refactor(kimi-web): use large bubble-plus icon for new session button 2026-06-11 10:14:48 +08:00
qer
f6270d9423 refactor(kimi-web): use plus-square SVG for new session button 2026-06-11 10:14:48 +08:00
qer
8d2ebeb50b refactor(kimi-web): replace + with pencil SVG for new session button 2026-06-11 10:14:48 +08:00
qer
f63ae2c964 refactor(kimi-web): add smooth height transition to fold-body expansion 2026-06-11 10:14:48 +08:00
qer
0823c00341 refactor(kimi-web): remove fold label bottom margin 2026-06-11 10:14:48 +08:00
qer
040dd77d2c refactor(kimi-web): align fold label font size with body text 2026-06-11 10:14:47 +08:00
qer
b0dd981dd5 refactor(kimi-web): rename tasks to '后台任务', add todo as tab, fix fold expand direction 2026-06-11 10:14:47 +08:00
qer
6ea5ecc6da refactor(kimi-web): increase sidebar default width by 50px 2026-06-11 10:14:47 +08:00
qer
b5080c7c90 refactor(kimi-web): polish ThinkingBlock transition, font size and context ring theme 2026-06-11 10:14:47 +08:00
haozhe.yang
680e6230bd feat(cli): add daemon startup reporter for daemon and web commands
- add optional DaemonStartupReporter callback to ensureDaemonRunning\n- report startup progress in daemon and web CLI commands\n- update unit tests to cover reporter output
2026-06-11 10:14:47 +08:00
qer
a53df07159 feat(web): place process fold toggle after summary so it expands downward 2026-06-11 10:14:47 +08:00
qer
b0af9f309a feat(web): simplify process summary, remove fold chevron, fix context ring color, enlarge abort icon 2026-06-11 10:14:47 +08:00
qer
c71b05b9eb feat(web): show copy button only after turn completes, fix vertical alignment 2026-06-11 10:14:47 +08:00
qer
c64558cf84 feat(web): friendly process summary in fold toggle 2026-06-11 10:14:47 +08:00
qer
117e7bea53 feat(web): fold process blocks behind toggle when summary follows 2026-06-11 10:14:47 +08:00
qer
02a4e11b25 feat(web): increase spacing around thinking blocks and tool cards 2026-06-11 10:14:47 +08:00
qer
3dc02d345c feat(web): auto-dismiss toasts, morph send into abort, streamline thinking blocks 2026-06-11 10:14:47 +08:00
qer
ab29cf9e31 feat(web): remove SVG icon from plan pill to match permission style
- Both permission and plan pills are now clean text-only pills
- Ensures consistent visual appearance across toolbar controls
2026-06-11 10:14:47 +08:00
qer
183cc2c302 feat(web): remove SVG icons from permission pill and dropdown
- Keep permission pill text-only for a cleaner look
- Remove unused .pd-icon CSS rule
2026-06-11 10:14:47 +08:00
qer
4f490a1575 feat(web): unify toolbar pills, add SVG icons, circular ctx ring, improve model display
- 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)
2026-06-11 10:14:47 +08:00