qwen-code/packages/web-shell/client/utils
ytahdn 2ab3681157
fix(web-shell): preserve token and base path in session URLs (#7926)
* fix(web-shell): preserve session URL context

* fix(web-shell): keep daemon token out of the session URL (#7926)

Restore the daemon token stripping that was dropped alongside the
base-path fix: removeDaemonTokenFromUrl() on startup and the ?token=
delete in replaceStandaloneSessionUrl. The ?token= query path is still
supported for backward compatibility, so without stripping it leaks into
the address bar, history, access logs, and Referer headers.

Also extract the session pathname building into buildSessionPathname()
with unit tests covering root/sub-path deployments, the no-session case,
trailing slashes, and id encoding.

* fix(web-shell): anchor session URL parser to agree with writer (#7926)

Extract parseSessionId() next to buildSessionPathname() and anchor it to the last /session/<id> segment so the parser agrees with the greedy writer. Previously a base path ending in a session segment produced /app/session/session/<id>, which the first-match parser read back as the literal id "session". Add round-trip and trailing-slash coverage.

* test(web-shell): cover parseSessionId malformed-encoding catch branch (#7926)

* fix(web-shell): preserve base path in split-view URL (#7926)

---------

Co-authored-by: 钉萁 <dingqi.jww@alibaba-inc.com>
Co-authored-by: qwen-code-dev-bot <qwen-code-dev@service.alibaba.com>
Co-authored-by: Shaojin Wen <shaojin.wensj@alibaba-inc.com>
2026-07-29 06:12:37 +00:00
..
ansi.test.ts fix(web-shell): parse 256-color and truecolor SGR sequences in parseAnsi (#7620) 2026-07-26 02:25:20 +00:00
ansi.ts fix(web-shell): parse 256-color and truecolor SGR sequences in parseAnsi (#7620) 2026-07-26 02:25:20 +00:00
askUserPermission.test.ts feat(tui): Ctrl+O frozen transcript view and unified tool output rendering (#5666) 2026-07-09 23:40:29 +00:00
askUserPermission.ts feat(web-shell): add Session Overview panel and in-window split view (#6400) 2026-07-07 02:44:18 +00:00
commandDisplay.ts feat(daemon): merge daemon-mode feature batch into main (#4490) 2026-06-12 00:34:49 +08:00
composerInputState.test.ts fix(web-shell): optionally restart SSE after prompt admission (#7080) 2026-07-17 16:13:39 +00:00
composerInputState.ts fix(web-shell): optionally restart SSE after prompt admission (#7080) 2026-07-17 16:13:39 +00:00
composerModels.ts feat(web-shell): restore the full composer in split-view panes (#6510) 2026-07-08 07:01:36 +00:00
composerTag.test.ts fix(web-shell): restore context tags in queued and recalled prompts (#7312) 2026-07-21 12:59:29 +00:00
composerTag.ts fix(web-shell): restore context tags in queued and recalled prompts (#7312) 2026-07-21 12:59:29 +00:00
composerTasks.test.ts fix(web-shell): sync background agent status (#7561) 2026-07-23 06:35:04 +00:00
composerTasks.ts fix(web-shell): sync background agent status (#7561) 2026-07-23 06:35:04 +00:00
copyCommand.test.ts fix(web-shell): make /copy with a bare index work (#7789) 2026-07-28 05:35:58 +00:00
copyCommand.ts fix(web-shell): make /copy with a bare index work (#7789) 2026-07-28 05:35:58 +00:00
cssUrlVar.test.ts feat(web-shell): support icon chips for mention tags (#6337) 2026-07-05 13:25:32 +00:00
cssUrlVar.ts feat(web-shell): support icon chips for mention tags (#6337) 2026-07-05 13:25:32 +00:00
dialogLabels.ts refactor(web-shell): restructure chat UI (#5775) 2026-06-23 22:43:19 +08:00
dom.ts feat(daemon): merge daemon-mode feature batch into main (#4490) 2026-06-12 00:34:49 +08:00
errorDetail.ts feat(serve): add workspace MCP management (#6954) 2026-07-16 02:24:07 +00:00
escapeIntent.test.ts feat(web-shell): friendlier Esc interruption + queued-prompt UX (#6025) 2026-06-30 01:27:16 +00:00
escapeIntent.ts feat(web-shell): friendlier Esc interruption + queued-prompt UX (#6025) 2026-06-30 01:27:16 +00:00
formatRelativeTime.ts feat(daemon): merge daemon-mode feature batch into main (#4490) 2026-06-12 00:34:49 +08:00
formatRuntime.ts feat(daemon): merge daemon-mode feature batch into main (#4490) 2026-06-12 00:34:49 +08:00
formatTokenCount.ts feat(web-shell): add token-usage analytics dashboard to Daemon Status (#6388) 2026-07-06 13:43:41 +00:00
goalCondition.test.ts feat(web-shell): add a workspace Goals page, and stop losing /goal on daemon resume (#6561) 2026-07-18 08:52:07 +00:00
goalCondition.ts feat(web-shell): add a workspace Goals page, and stop losing /goal on daemon resume (#6561) 2026-07-18 08:52:07 +00:00
localCommandQueue.test.ts feat(web-shell): queue prompts while turns are running (#6005) 2026-06-30 14:51:28 +00:00
localCommandQueue.ts feat(web-shell): queue prompts while turns are running (#6005) 2026-06-30 14:51:28 +00:00
modelDisplay.ts feat(web-shell): polish chat UI (#5893) 2026-06-26 15:38:23 +00:00
modelEncoding.test.ts fix(web-shell): encode vision model picker selection & polish dispatch (#6236) 2026-07-03 13:51:47 +00:00
modelEncoding.ts fix(web-shell): encode vision model picker selection & polish dispatch (#6236) 2026-07-03 13:51:47 +00:00
modelSwitchMessages.test.ts feat(web-shell): polish chat UI (#5893) 2026-06-26 15:38:23 +00:00
modelSwitchMessages.ts feat(web-shell): polish chat UI (#5893) 2026-06-26 15:38:23 +00:00
monitorTasks.test.ts feat(web-shell): add monitor task details (#7817) 2026-07-27 12:30:17 +00:00
monitorTasks.ts feat(web-shell): add monitor task details (#7817) 2026-07-27 12:30:17 +00:00
queueDrain.test.ts feat(web-shell): friendlier Esc interruption + queued-prompt UX (#6025) 2026-06-30 01:27:16 +00:00
queueDrain.ts feat(web-shell): friendlier Esc interruption + queued-prompt UX (#6025) 2026-06-30 01:27:16 +00:00
sentinelMessage.ts feat(daemon): merge daemon-mode feature batch into main (#4490) 2026-06-12 00:34:49 +08:00
sessionPath.test.ts fix(web-shell): preserve token and base path in session URLs (#7926) 2026-07-29 06:12:37 +00:00
sessionPath.ts fix(web-shell): preserve token and base path in session URLs (#7926) 2026-07-29 06:12:37 +00:00
sessionPreparation.test.ts feat(web-shell): add git mode selector for new session creation (#7471) 2026-07-24 03:48:43 +00:00
sessionPreparation.ts feat(web-shell): add git mode selector for new session creation (#7471) 2026-07-24 03:48:43 +00:00
slash-command-action.ts feat(web-shell): support custom slash command actions (#7267) 2026-07-20 11:23:55 +00:00
slashSectionPlan.test.ts feat(web-shell): improve slash command discovery (taller menu, group counts, fuzzy search) (#6267) 2026-07-03 14:56:06 +00:00
slashSectionPlan.ts feat(web-shell): improve slash command discovery (taller menu, group counts, fuzzy search) (#6267) 2026-07-03 14:56:06 +00:00
splitUrl.test.ts fix(web-shell): preserve token and base path in session URLs (#7926) 2026-07-29 06:12:37 +00:00
splitUrl.ts fix(web-shell): preserve token and base path in session URLs (#7926) 2026-07-29 06:12:37 +00:00
systemInfo.ts feat(daemon): merge daemon-mode feature batch into main (#4490) 2026-06-12 00:34:49 +08:00
timeAgo.test.ts feat(web-shell): add read-only GitHub pull requests panel (#7683) 2026-07-25 02:44:50 +00:00
timeAgo.ts feat(web-shell): add read-only GitHub pull requests panel (#7683) 2026-07-25 02:44:50 +00:00
todos.test.ts fix(web-shell): clear stale floating todos (#6425) 2026-07-07 08:59:53 +00:00
todos.ts fix(web-shell): clear stale floating todos (#6425) 2026-07-07 08:59:53 +00:00
workspace.test.ts feat: support workspace display names (#7179) 2026-07-20 15:16:44 +00:00
workspace.ts feat: support workspace display names (#7179) 2026-07-20 15:16:44 +00:00
workspaceColor.test.ts feat(web-shell): color-code each split pane by workspace (#6971) 2026-07-16 02:38:58 +00:00
workspaceColor.ts feat(web-shell): color-code each split pane by workspace (#6971) 2026-07-16 02:38:58 +00:00