Commit Graph
25 Commits
Author SHA1 Message Date
Turtle 2099andTurtle 3eab1714bc feat(web): add chat link opening preference (#4671)
* feat(web): add chat link opening preference

* docs(web): clarify preference-controlled link routing

* fix(web): hide link preference without a browser

* fix(web): make the built-in browser opt-in

* test(web): honor profile-aware browser availability

---------

Co-authored-by: Turtle <[email protected]>
2026-09-20 17:00:03 +08:00
Tianyi Cui 580bdc7258 refactor: remove redundant unknown casts 2026-09-19 20:13:58 +08:00
_KermanandTianyi Cui f4a32dbd0a refactor(llm): flatten tool results and validate native V4 sessions
Represent tool results as tool-role messages and migrate released wrappers
without losing outer own JSON fields, call identity, error state, or writer
field order. Refuse nested or wrapper-only information that has no lossless
current representation before successor publication.

Validate current event relationships directly instead of projecting V4 data
back into V3. Keep lifecycle, PTC, title/command, compaction, system-field and
retired-syntax checks on catalog restoration and ordinary JSONL opens. The
Worker JSON equality helper must inspect own keys so it cannot admit PTC
arguments that Node rejects.

Keep the source role change, required native admission and consumer fixture
updates in one complete review layer. Explain shared-type changes in the
persistence record and the native reader rationale in its existing note.
Use checked branded fixture identities and discriminant narrowing instead
of unknown double casts; fixture values and assertions remain intact.

This recomposes the original tool-role work by _Kerman with the independently
validated migration and admission repairs by Tianyi Cui. Frozen generations
and snapshot input version selection are retained.

Co-authored-by: Tianyi Cui <[email protected]>
2026-09-18 19:05:32 +08:00
imccyu 1e42aec10e feat(web): ship Sidebar Browser 2026-09-17 15:14:10 +08:00
imccyu 6d3b5d4526 test(client): migrate Session reference coverage 2026-09-17 05:28:19 +08:00
creatixchu c48f4203d9 feat(workspace-changes): summarize file-tool edits outside a git repository
A working directory outside any repository, or a Host without git, no
longer loses the card: the recorder skips the snapshots and builds the
summary from the hunks the file tools persisted, with the working
directory as the workspace, so shell edits are the only gap. The
sidebar e2e scopes its chip clicks to the prose mention now that the
card offers the same open, and the present-svg and permission-policy
scenarios gain the card their write calls earn.
2026-09-15 15:44:11 +08:00
creatixchu 1ea80b7b69 Merge remote-tracking branch 'origin/master' into worktree/code-diff-card
# Conflicts:
#	packages/client/ui-deliverables/package.json
#	snapshots/web/present-svg/ui.expected.md
2026-09-15 15:11:02 +08:00
Yichen Jiang b25c5ad82e feat(web): restore sidebar layouts and reclaim unattended terminals 2026-09-15 10:27:44 +08:00
creatixchu dce58eaf4e Merge remote-tracking branch 'origin/master' into worktree/code-diff-card
# Conflicts:
#	apps/web/package.json
2026-09-14 14:15:04 +08:00
creatixchu 904e589573 test(web): keep the sentence the right-Sidebar scenario waits for 2026-09-14 12:39:59 +08:00
creatixchu 86a1bf1e80 fix(workspace-changes): resolve canonical paths lazily and make the tests portable
The packed worker deployment offers no realpathSync.native at plugin load, so
the home and temporary roots are now canonicalized asynchronously when a
Session first locates its repository. Windows-neutral tests replace chmod
and POSIX-only path expectations, and the right-Sidebar scenario enters
through the closing prose's file mention.
2026-09-14 12:37:22 +08:00
Yichen Jiang 12d3be3514 Merge remote-tracking branch 'origin/master' into worktree/web-sidebar-terminal
# Conflicts:
#	packages/client/ui-sidebar-right/README.i18n.yaml
#	packages/client/ui-sidebar-right/README.md
#	packages/client/ui-sidebar-right/README.zh.md
2026-09-10 10:48:47 +08:00
imccyu 3435dbd690 fix(web): address sidebar and stats review feedback 2026-09-10 03:20:55 +08:00
Yichen Jiang 6e945def2f Merge origin/master into worktree/web-sidebar-terminal 2026-09-09 18:21:21 +08:00
imccyu d7dcc5f5af test(web): update sidebar preview expectations 2026-09-09 17:29:38 +08:00
Yichen Jiang e15a9b1bec feat(web): add interactive sidebar terminals 2026-09-09 16:40:58 +08:00
imccyu 2f2831f033 test(web): align sidebar interaction expectations 2026-09-09 12:15:00 +08:00
imccyu ff3ccb4d7c test(web): use supported sidebar visibility assertion 2026-09-09 12:15:00 +08:00
imccyu 3481d4043e fix(client): align sidebar checks after rebase 2026-09-09 12:15:00 +08:00
Yif c76e371874 fix(sidebar): address review feedback on aria names, touch hits, and fullscreen close
- Split toggle aria-labels from their tooltips: the sidebar expand/collapse
  buttons announce "Open/Collapse right sidebar" so the two sidebars stay
  distinguishable, and the wrap toggle keeps an invariant "Line wrap" name
  beside aria-pressed while the tooltip keeps the action wording.
- A hidden tab close also takes no pointer events, so a touch press on the
  chip's trailing edge activates the tab instead of closing it; e2e closes
  hover the chip first, the way a reader would.
- Closing the last docked tab in fullscreen hands the mode back to push, so
  the next expand does not give the whole window to the start page.
- The drop scrim mixes from bg-base, not bg-layer-2, which dark mode binds
  to a lighter bluish step than the column beneath it.
- Document the menuitem probe in TabMenuExtras and the strip fade's known
  gap; match the open-in-app split-button comment to the 28px control row.
2026-09-09 12:14:59 +08:00
Yif f4c1e31ba8 feat(sidebar): last-tab close rules and collapsed expand button
The lone guide tab withholds its close and menu, any other lone tab closes
together with the column, and the expand button renders only while collapsed
so the corner seat costs the header nothing.
2026-09-09 12:14:58 +08:00
imccyu 4321766ead feat(client): add extensible document previews and sidebar defaults 2026-09-09 10:12:38 +08:00
imccyu 4a60189a63 fix(layout): prepare destination widths before fullscreen retreat 2026-09-07 23:00:56 +08:00
imccyu 77690644b5 fix(sidebar): show full file paths and refine split and fullscreen controls 2026-09-07 22:37:45 +08:00
imccyu fe5aee7e71 test(web): cover Sidebar interactions and refresh recorded UI expectations 2026-09-07 21:29:42 +08:00