5 Commits
Author SHA1 Message Date
Jason 2e03d8ce06 fix(sessions): merge Windows project groups that differ only in path case
On Windows, Claude Code can record the same working directory with a
different drive-letter case (D:\projects\demo vs d:\projects\demo),
depending on how the terminal or editor was launched. The session
manager grouped sessions by the raw projectDir string, so one project
showed up as two groups with its history split between them.

Group by a normalized key instead: trailing separators are dropped for
every path, and Windows paths (drive letter or UNC prefix) are also
case-folded with "/" unified to "\". POSIX paths stay case-sensitive.
The group still displays the original path of its first session; the
stored session data is untouched.

Refs #8233
2026-10-16 19:29:24 +08:00
736622b324 feat(sessions): redesign the session reader with structured transcripts (#7825)
Rebuild the session page around structured transcripts.

- Session list: project groups start collapsed and remember the ones
  expanded by hand; unchanged session files reuse their parsed metadata.
- Backend: all nine agents' transcripts parse into structured blocks
  (text, thinking, tool call / result, image, event, step); the Codex
  rollout parser is rewritten. New commands stream transcripts over a
  Channel, serve full block content, image bytes and Finder reveal behind
  validated content refs, and export a session as a Markdown file; a
  transcript cache (8 entries / 96 MB) keyed by source fingerprints.
  open_external now only allows http, https and mailto.
- Reader: turns laid out as prompt -> execution steps -> final reply, with
  steps folded into a one-line summary, failures always shown, each
  agent's native symbols and verbs, all / conversation / changes filters,
  a conversation outline, in-session find, Markdown rendering (ported
  from #6332), image lightbox and copy / export as Markdown.
- Review follow-ups: clippy, Codex 0.119-0.128 duplicate steps and late
  failure status, Grok Build in-progress refresh, full arguments for long
  shell commands, and shared block helpers across the parsers.

Co-authored-by: bigben446 <bigben446@users.noreply.github.com>
Co-authored-by: Jason <farion1231@gmail.com>
2026-10-03 23:29:00 +08:00
Jason b999b07bec feat(ui): rebuild the global pages and finish the v7 visual pass
Pages (phase 4):
- Usage: v7 layout (filter row, four metrics with more on demand,
  switchable trend, request log / provider / model / pricing tabs, data
  sources sheet). Latency becomes output speed: output / (duration -
  first token), shown only for requests with at least 100 output tokens;
  provider totals sum output and generation time instead of averaging.
- Sessions: single-column list grouped by project or time, drilling into
  a reader with resume, find, question jump and copy actions.
- MCP and Skills share one app matrix (neutral checks, retry on failed
  writes, column bulk actions with undo); MCP add/edit moves into a
  drawer with form/JSON modes; Skills merges installed and discover and
  always shows a Pi column.
- Prompts: one page for eight apps including Hermes SOUL.md, enable and
  disable as buttons, delete with undo instead of a confirm, copy to
  other apps, import existing files; app pages show the active prompt.
- Add provider is two steps: pick a preset (always-on search including
  Chinese names and domains, categories inferred for display, sorted by
  name with no promoted entries), then fill the form. Edit pages name
  the provider and warn when it is the one in use.
- App page menu links to that app's usage.

Visual pass (phase 6):
- Secondary pages cover only the content area so the sidebar stays.
- Cmd/Ctrl+K jumps to apps, pages and settings sections.
- Legacy button variants, primary color, dialogs, toasts and sheets
  follow v7 tokens; hard-coded palette classes and 10px text across
  the remaining components are replaced with tokens.
2026-10-03 23:28:58 +08:00
Nothing 251b13e5d2 feat(sessions): 新增会话分类视图与分组管理 (#4776)
* feat(sessions): 新增会话分类查看方式

* test(sessions): 补充会话分类视图覆盖

* feat(sessions): 适配分类视图批量管理

* test(sessions): 补充分类批量选择覆盖

* feat(sessions): 新增分类视图收起状态控制

* test(sessions): 补充分类收起状态覆盖
2026-07-01 12:23:46 +08:00
ayxwiandJason 6716a4c408 [codex] Fix VS Code session previews (#3593)
* Fix Codex VS Code session previews

* fix(codex): use last IDE request heading for session previews

A markdown heading inside the active selection / open file could precede the real injected request, so matching the first "## My request for Codex:" heading picked selection content instead of the user prompt. Scan for the last matching heading (the IDE injects the real request as the final section) on both the Rust title path and the frontend TOC preview path.

Add regression tests for the selection-heading case, and pin the known best-effort limitation when the request body itself repeats the heading.

---------

Co-authored-by: Jason <farion1231@gmail.com>
2026-06-07 19:23:24 +08:00