100 Commits
Author SHA1 Message Date
Turtle 0b8eabaf66 fix(dockkit): record the strip offset when the strip unmounts
Reading scrollLeft in the layout cleanup also captures positions that fire no
scroll event, such as a restore the browser clamps to the current offset.

Refs #7049
2026-10-23 16:27:34 +08:00
Turtle 7623307aaf fix(dockkit): continue the tab strip from its last offset on selection changes
Each tab host draws its own strip while selected, so every open, close, or
selection mounted a strip at offset 0 that then glided across the whole row
to the active chip. Record each pane's chip-box offset in TabLayout, jump a
new strip to it, and glide only the remaining distance; a first placement
with no recorded offset jumps.

Refs #7049
2026-10-23 15:33:11 +08:00
Turtle 09c74eca30 Merge pull request #7018 from deepseek-harness/turtle/docs/unify-plugin-lists-b09478de437d
docs(official-bundles): state the util data-list exception and list contracts
2026-10-23 13:14:44 +08:00
Turtle b11d3ac198 docs(official-bundles): limit the protected-list contract to its own refusal 2026-10-23 12:56:17 +08:00
Turtle 2d130c7e61 Merge pull request #5610 from deepseek-harness/turtle/image-cache-stale-0a243f674e12
fix(client): reload overwritten local Markdown images in new renders
2026-10-23 12:44:17 +08:00
Turtle 3264972ac3 docs(official-bundles): state the util data-list exception and list contracts
Group READMEs no longer place the bundle lists under boot/, util/ names its
data-only exception, PROTECTED_PLUGINS states what removing a name allows,
EXTENSION_BUNDLES is described as a ranking, and the package README records
the browser inlining constraint.
2026-10-23 12:42:11 +08:00
Turtle b6380c865b Merge pull request #7012 from deepseek-harness/turtle/unify-plugin-lists-b09478de437d
refactor(util): collect hardcoded official plugin lists in dsh-official-bundles
2026-10-23 12:31:19 +08:00
Turtle 7f324909a9 docs(official-bundles): describe the plugin manager lists precisely 2026-10-23 12:12:38 +08:00
Turtle 9b4aacb41a refactor(util): collect hardcoded official plugin lists in dsh-official-bundles
Move @deepseek-ai/dsh-official-bundles from packages/boot to packages/util
and move the plugin manager's protected plugin list and the Web plugin
page's hidden, ordered, and experimental bundle lists into it, so editing
any of these lists no longer touches app-boot or either plugin manager
package.
2026-10-23 12:12:38 +08:00
Turtle b3189f6fad Merge pull request #6804 from deepseek-harness/turtle/subagent-picker-row-align-5fdaf8a5d12d
fix(web): align subagent switcher rows without a sidebar button
2026-10-23 10:31:22 +08:00
Turtle 918c01c1bf Merge pull request #6889 from deepseek-harness/turtle/menu-trigger-gap-a6ac85a85cd9
fix(ui-primitives): keep header menus next to their trigger on macOS desktop
2026-10-23 10:31:07 +08:00
Turtle 153b760fe8 Merge branch 'master' into turtle/subagent-picker-row-align-5fdaf8a5d12d 2026-10-23 10:19:27 +08:00
Turtle a0cbe9331c Merge pull request #6887 from deepseek-harness/turtle/trace-tab-indicator-clip-bede5ab93d0f
fix(ui-conversation): keep the active tab bar visible over Trajectory and widen tab targets
2026-10-23 10:14:02 +08:00
Turtle af5ab40ac5 Merge remote-tracking branch 'origin/master' into turtle/menu-trigger-gap-a6ac85a85cd9
# Conflicts:
#	packages/client/ui-primitives/README.i18n.yaml
#	packages/client/ui-primitives/README.md
#	packages/client/ui-primitives/README.zh.md
2026-10-23 10:01:13 +08:00
Turtle 424cde1de2 Merge pull request #6950 from deepseek-harness/turtle/preview-codemirror-slow-e4bae59874fa
fix(web): speed up lazy bundle loads in the Web preview
2026-10-23 09:56:19 +08:00
Turtle 06f960d705 Merge pull request #6984 from deepseek-harness/turtle/hover-truncated-text-e74d638a44b5
feat(ui-chat): show cut-off composer statistics in a tooltip
2026-10-23 08:40:51 +08:00
TurtleandTianyi Cui 747cbf13b6 Describe the ask approval policy by its meaning
Replace the literal "Approval policy: ask." runtime-context sentence
with a statement parallel to the never-policy sentence, and refresh the
current-generation fixtures that persist it.

Co-authored-by: Tianyi Cui <53024+tianyicui@users.noreply.github.com>
2026-10-22 23:13:19 +08:00
TurtleandTianyi Cui 43149cd905 Sync approval switch notice snapshot and docs
Update the Web permission-policy snapshot, the config catalog line
reference and README text for the new switch notice; pin both switch
directions in the unit test.

Co-authored-by: Tianyi Cui <53024+tianyicui@users.noreply.github.com>
2026-10-22 23:13:19 +08:00
TurtleandTianyi Cui c29cda3777 Clarify approval policy switch notice wording
Name each policy by its meaning in the model-visible switch notice so a
bare "never" is not read as "approval is never granted".

Refs #6496

Co-authored-by: Tianyi Cui <53024+tianyicui@users.noreply.github.com>
2026-10-22 23:13:19 +08:00
TurtleandZiyaZhang 701c0a41c5 refactor(ui-primitives): measure tooltip clipping when the bubble shows
Co-authored-by: ZiyaZhang <199893125+ZiyaZhang@users.noreply.github.com>
2026-10-22 21:18:15 +08:00
Turtle d10f417f13 Merge pull request #6979 from deepseek-harness/turtle/rename-plugin-index-again-2424dbab6ad1
fix(plugin-market): present custom plugin markets as custom plugin indexes
2026-10-22 21:10:29 +08:00
Turtle 77b2d919c4 docs(plugin-market): fix index wording left by the rename 2026-10-22 20:42:15 +08:00
TurtleandZiyaZhang 9ede8f237d feat(ui-chat): show cut-off composer statistics in a tooltip
Co-authored-by: ZiyaZhang <199893125+ZiyaZhang@users.noreply.github.com>
2026-10-22 20:40:28 +08:00
Turtle 6c07e02afa fix(plugin-market): finish the plugin index wording and restore generated docs 2026-10-22 20:20:02 +08:00
Turtle 5b0e089f40 fix(plugin-market): present custom plugin markets as custom plugin indexes 2026-10-22 20:19:30 +08:00
Turtle 644eb3158e Merge pull request #6838 from deepseek-harness/turtle/market-install-allowbuilds-8b6f87a8284b
fix(plugin-manager): offer script approval for git-hosted packages
2026-10-22 15:52:14 +08:00
Turtle ca28551037 Merge remote-tracking branch 'origin/master' into turtle/preview-codemirror-slow-e4bae59874fa 2026-10-22 15:44:16 +08:00
Turtle b70735089d docs(plugin-manager): keep pendingBuilds JSDoc on one line 2026-10-22 15:38:14 +08:00
Turtle a8bf3e7600 fix(plugin-manager): harden git allowBuilds key parsing
Capture git keys that contain spaces, skip keys whose git URL carries a
credential, and isolate Git configuration for the real pnpm test.
2026-10-22 15:38:14 +08:00
Turtle 220301c614 fix(plugin-manager): offer script approval for git-hosted packages
pnpm 11 refuses to prepare a git-hosted dependency with
ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED instead of reporting ignored build
scripts. Classify that error as build-blocked and record the allowBuilds
key pnpm suggests, so the existing approval-and-retry flow applies.

Fixes #6837
2026-10-22 15:37:59 +08:00
Turtle 7df9a5a93b Merge pull request #6943 from deepseek-harness/turtle/git-https-source-auth-b46e6aff6136
fix(plugin-manager): install self-hosted Git plugins over SSH when only SSH can read them
2026-10-22 15:26:48 +08:00
Turtle f313e7911b Merge pull request #6564 from deepseek-harness/turtle/plugin-sticky-header-29bfdb179e18
feat(plugin-manager): pin the Plugins page title bar while scrolling
2026-10-22 15:15:12 +08:00
Turtle 39d973322b test(web): compare the worker Buffer with an unmodified Node reference
Vitest resolves the shim's `buffer` import to Node's built-in module, so
the differential spec patched and then compared the same implementation.
Mock node:buffer with the npm package the Worker bundle uses. Also keep the
UTF-8 encoding check symmetric, call the package methods directly, and
document that the patch applies to every Buffer user in the Worker.
2026-10-22 15:13:05 +08:00
Turtle b908e13271 Merge remote-tracking branch 'origin/master' into turtle/image-cache-stale-0a243f674e12
# Conflicts:
#	packages/api/session-controller/README.i18n.yaml
#	packages/api/session-controller/README.md
#	packages/api/session-controller/README.zh.md
#	packages/client/ui-primitives/README.i18n.yaml
2026-10-22 14:57:42 +08:00
Turtle f837cdbfbf Merge remote-tracking branch 'origin/master' into turtle/plugin-sticky-header-29bfdb179e18
# Conflicts:
#	packages/client/ui-primitives/README.i18n.yaml
2026-10-22 14:50:11 +08:00
Turtle c063b70b85 Merge pull request #6891 from deepseek-harness/turtle/sidebar-first-open-flash-c291a96690d1
fix(ui-sidebar-right): slide the panel in on its first open
2026-10-22 14:33:13 +08:00
Turtle 4b1d4c814e fix(web): speed up lazy bundle loads in the Web preview
The Web preview Worker converted multi-megabyte combo scripts and source
maps with the buffer package's JavaScript UTF-8 codec, and the page
re-encoded each source map to Base64 in JavaScript before running the
bundle. Use TextEncoder/TextDecoder for whole-buffer UTF-8 conversions
and FileReader for the inline source-map data URL.
2026-10-22 14:32:35 +08:00
Turtle f228c3ffa6 Merge pull request #6064 from deepseek-harness/turtle/async-notice-efficiency
feat(jobs): deliver job output in completion notices and drop repeated notice text
2026-10-22 14:30:55 +08:00
turtle1999 6f4ce88207 Merge remote-tracking branch 'origin/master' into turtle/async-notice-efficiency
# Conflicts:
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
2026-10-22 14:12:42 +08:00
Turtle cce67394c9 docs(config-catalog): regenerate after merging master 2026-10-22 14:11:15 +08:00
Turtle 8255ebe3cc Merge remote-tracking branch 'origin/master' into turtle/git-https-source-auth-b46e6aff6136 2026-10-22 14:09:45 +08:00
Turtle 420a7797f6 fix(plugin-manager): harden Git transport probe prompts, fragments and attribution
Refs #6938
2026-10-22 14:07:10 +08:00
Turtle 1b7923db9d refactor(ui-sidebar-right): start the first-open slide with @starting-style
Replace the layout effect that forced a closed style with an opening marker derived during render. A @starting-style rule under the marker starts items mounted by the opening at the closed position. The marker clears when a transition ends, the panel closes, or the panel leaves the screen.
2026-10-22 14:07:05 +08:00
Turtle f59f0dfc67 fix(plugin-manager): install self-hosted Git plugins over SSH when only SSH can read them
Refs #6938
2026-10-22 13:42:56 +08:00
Turtleandimccyu 140496c750 Credit review by @imccyu
Co-authored-by: imccyu <276526105+imccyu@users.noreply.github.com>
2026-10-22 13:37:32 +08:00
Turtle 5f77d80555 Merge remote-tracking branch 'origin/master' into turtle/icon-tokens/icons-plugin-tokens-e20dec90761c
# Conflicts:
#	packages/client/ui-primitives/README.i18n.yaml
2026-10-22 13:24:28 +08:00
Turtle 2e0ce8d448 Merge pull request #6924 from deepseek-harness/turtle/extract-bundle-lists-349637056285
refactor(boot): move official bundle lists out of app-boot
2026-10-22 13:16:20 +08:00
Turtle bde671f984 test(web): ignore scroll-driven animations when waiting for settled layout
The model selector's clipped-text fade runs on a scroll timeline, which
never finishes, so document-wide waits never settled.
2026-10-22 12:48:28 +08:00
Turtle f0ced1aa47 docs(boot): state which bundle lists app-boot applies 2026-10-22 12:44:00 +08:00
Turtle f60cbc909b docs(boot): point remaining bundle-list references at official-bundles
Move the template value assertions into the official-bundles tests so a
template edit leaves app-boot tests untouched.
2026-10-22 12:05:04 +08:00
Turtle e0e37bfd3d refactor(boot): move official bundle lists out of app-boot
Profile templates and the default, optional, on-demand, retired, and
installation-owned bundle lists move to the new data-only package
@deepseek-ai/dsh-official-bundles, so editing a bundle list no longer
touches app-boot.
2026-10-22 11:56:47 +08:00
Turtle 3e5deca05d Merge remote-tracking branch 'origin/master' into turtle/plugin-sticky-header-29bfdb179e18
# Conflicts:
#	packages/client/ui-primitives/README.i18n.yaml
2026-10-22 11:37:26 +08:00
Turtle 9009edb7c2 Merge remote-tracking branch 'origin/master' into turtle/icon-tokens/icons-plugin-tokens-e20dec90761c
# Conflicts:
#	packages/client/ui-primitives/src/icons/index.tsx
2026-10-22 01:13:40 +08:00
Turtle f58b6c41bb chore(extensions): regenerate the Cordis inspect catalog for icon replacements 2026-10-22 01:00:52 +08:00
Turtle 6470b39557 fix(client): harden theme icon replacements and add a real-composition test
Store a frozen copy of ThemeDefinition.icons, treat null as absent,
require replacement element ids under the symbol id, document the trust
level and ignored root attributes, and boot a theme plugin through the
Loader to check the sprite swaps and restores icons.
2026-10-22 00:59:21 +08:00
Turtle c422eac3b9 chore(extensions): regenerate the Cordis inspect catalog for theme icons 2026-10-22 00:46:06 +08:00
Turtle e3490f371a test(client): drop an unneeded cast in the icon sprite spec 2026-10-22 00:34:57 +08:00
Turtle c3eead771d feat(client): let themes replace product icons through an SVG sprite
Product icons drew fixed inline paths, so a theme could only recolor them.
Each glyph weight is now a dsw-icon-<glyph>-<weight> symbol: ui-primitives
keeps the default SVG documents and icons render one <use> of their symbol,
while ui-theme keeps a document sprite filled from the active theme's
ThemeDefinition.icons replacements or the defaults. Replacements may be
multi-color and paint with currentColor or --dsw-* tokens.

Refs #6894
2026-10-22 00:21:07 +08:00
Turtle a55c9c5ddf fix(ui-sidebar-right): keep the panel still on open for reduced motion
The reduced-motion rule only matched the closed selectors, so the more specific open rule kept its slide. Match the open selectors too.
2026-10-22 00:10:29 +08:00
Turtle 36f0bae72e fix(ui-primitives): document the top-strip cap for hover cards
Name the Menu anchor gap once, describe the HoverCard exception in the
README and JSDoc, and cover a top-side menu from an anchor in the strip.
2026-10-21 23:45:37 +08:00
Turtle f2a52f6f3c test(ui-sidebar-right): pin the settling slide styles
Check that the slide rules list the same docked items as the opening effect and that the settling rule overrides the open rule. Name the shared selector list on both sides and describe the opening step in the module header.
2026-10-21 23:32:12 +08:00
TurtleandShigma 4f7ebe8d34 test(web): cover conversation view tab hit testing in the browser
Co-authored-by: Shigma <33423008+shigma@users.noreply.github.com>
2026-10-21 23:15:02 +08:00
Turtle 3acbd08867 fix(ui-sidebar-right): slide the panel in on its first open
The first expansion of an empty column mounts the seeded tab already open, so it appeared in place instead of sliding in like later opens and every close.
2026-10-21 22:59:34 +08:00
Turtle d343cd2162 fix(ui-primitives): keep header menus next to their trigger on macOS desktop
The desktop top clearance pushed every portalled overlay at least 68px from
the viewport top, so menus opened from Conversation header controls inside
that strip landed about 30px below their trigger. Cap the clearance at the
position directly below a visible anchor.

Refs #6886
2026-10-21 22:51:47 +08:00
TurtleandShigma d229d1cf75 docs(ui-conversation): state the tab press target comments exactly
Co-authored-by: Shigma <33423008+shigma@users.noreply.github.com>
2026-10-21 22:48:12 +08:00
TurtleandShigma 11e1580b82 fix(ui-conversation): keep the active tab bar visible over Trajectory and widen tab targets
Co-authored-by: Shigma <33423008+shigma@users.noreply.github.com>
2026-10-21 22:45:28 +08:00
turtle1999 0d3beda4d2 test(snapshots): refresh background-wait-steer for the inline completion notice 2026-10-21 22:08:04 +08:00
turtle1999 389b729ac8 Merge remote-tracking branch 'origin/master' into turtle/async-notice-efficiency
- tool-jobs: inline a completion notice only when the complete text fits inlineOutputBytes and the producer cap; otherwise point at job_output, whose result the spill policy bounds
- subagent: drop toolCallsThisStep; omit the closing text while the child's last logged tool call is its message to the parent
2026-10-21 21:44:47 +08:00
Turtle 1203a3151e Merge remote-tracking branch 'origin/master' into turtle/plugin-sticky-header-29bfdb179e18
# Conflicts:
#	packages/client/ui-plugin-manager/src/client/index.ts
2026-10-21 19:21:21 +08:00
Turtle e19de3b6e5 Merge remote-tracking branch 'origin/master' into turtle/focus-click-rename-9a2d9fb21ffb 2026-10-21 19:20:54 +08:00
Turtle c408ae1390 test(plugin-manager): pin the title-only header motion away from font-dependent widths
Linux CI lays the title-only header at 470px with the actions beside the
title, while macOS wraps them, so that width depends on the platform
font. The title-only case now records 1280, 600, and 390px; the tabs case
keeps all four widths.
2026-10-21 18:59:23 +08:00
Turtle a3b26c896b Merge remote-tracking branch 'origin/master' into turtle/plugin-sticky-header-29bfdb179e18 2026-10-21 18:21:31 +08:00
Turtle 16cf3316e6 Merge remote-tracking branch 'origin/master' into turtle/image-cache-stale-0a243f674e12
# Conflicts:
#	packages/api/session-controller/README.i18n.yaml
#	packages/client/ui-primitives/README.i18n.yaml
2026-10-21 17:58:20 +08:00
Turtle c1eb1dac80 test(plugin-manager): drive merged header tests with real pointer movement
Master's tooltips react to pointer events. Locator hover scrolls its
target into view, and scrolling this list moves the header controls
from under the pointer, so the narrow-width tooltip checks now point
at each control once the resized header settles. After Tab moves focus
to the icon-only Add plugin button, the touch case expects that
button's focus tooltip to stay and checks that the hovered ones leave.
2026-10-21 17:13:32 +08:00
Turtle da7a582491 Merge remote-tracking branch 'origin/master' into turtle/plugin-sticky-header-29bfdb179e18
# Conflicts:
#	apps/web/tests/plugin-manager.e2e.ts
#	apps/web/tsconfig.json
#	packages/client/ui-plugin-manager/README.i18n.yaml
#	packages/client/ui-plugin-manager/README.md
#	packages/client/ui-plugin-manager/README.zh.md
#	packages/client/ui-plugin-manager/src/client/PluginManagerPage.module.css
#	packages/client/ui-plugin-manager/src/client/PluginManagerPage.tsx
#	packages/client/ui-plugin-manager/tests/components.client.spec.tsx
#	packages/client/ui-primitives/README.i18n.yaml
#	tsconfig.host.json
2026-10-21 16:44:06 +08:00
Turtle 1e0553ef70 fix(web): register the rename disarm listener only on press
Also pin the second press of a real double-click in tests and correct the README and JSDoc.
2026-10-21 16:04:27 +08:00
Turtle ee95ae7ced Merge pull request #6724 from deepseek-harness/turtle/dark-hover-missing-33b8a5d72c4b
fix(client): show settings nav hover in dark theme
2026-10-21 15:36:06 +08:00
Turtle 2a871c2201 fix(web): ignore window-activating click in session title double-click rename
Refs #6835
2026-10-21 15:32:38 +08:00
Turtle ce403d850c Merge pull request #6815 from deepseek-harness/turtle/plugin-market-entry-8303d8c92886
feat(web): list custom plugin markets on the main experimental list
2026-10-21 15:32:32 +08:00
Turtle be43f4d846 Merge remote-tracking branch 'origin/master' into turtle/dark-hover-missing-33b8a5d72c4b
# Conflicts:
#	packages/client/ui-settings-general/src/client/SettingsRoot.module.css
2026-10-21 15:19:21 +08:00
Turtle 589790d6e9 Merge remote-tracking branch 'origin/master' into turtle/plugin-market-entry-8303d8c92886
# Conflicts:
#	apps/web/tests/inspector-late-enable.e2e.ts
#	packages/experimental/inspector-profile/README.i18n.yaml
#	packages/experimental/inspector-profile/README.md
2026-10-21 15:12:43 +08:00
Turtle 94092349ab fix(scripts): clean links into removed packages and skip external node_modules
Links whose target this clean removes, or whose target loops or passes through a file, are residue. A node_modules directory resolving outside the repository is not scanned.
2026-10-21 14:40:16 +08:00
Turtle 81ee28eebb fix(scripts): remove dangling pnpm links in clean
pnpm install keeps hoisted links to deleted workspace packages, and the Desktop development build fails reading their package.json.

Fixes #6823
2026-10-21 14:22:12 +08:00
Turtle b1a0c733ab test(web): assert enabled Developer Tools returns to the main list 2026-10-21 14:11:15 +08:00
Turtle 2839c53971 Merge pull request #6791 from deepseek-harness/turtle/plugin-sentence-case-299acab3ee89
fix(plugins): use sentence case for built-in plugin English copy
2026-10-21 13:53:27 +08:00
Turtle 11589ed104 feat(web): list custom plugin markets on the main experimental list
Developer Tools moves to the More page.
2026-10-21 13:34:13 +08:00
Turtle c7be617437 Merge remote-tracking branch 'origin/master' into turtle/plugin-sentence-case-299acab3ee89
# Conflicts:
#	packages/experimental/cua/src/application-access.ts
2026-10-21 13:28:18 +08:00
Turtle 4cb08ffb7a fix(web): match subagent switcher placeholder height to the sidebar button
Refs #6803
2026-10-21 13:11:16 +08:00
Turtle edde4a0667 Merge pull request #6795 from deepseek-harness/turtle/standard-plugin-manager-a5c4c80ab718
feat(preset): enable plugin_manager in standard mode
2026-10-21 13:09:08 +08:00
Turtle ca8cc62319 fix(web): align subagent switcher rows without a sidebar button
Refs #6803
2026-10-21 12:40:13 +08:00
Turtle f7a69f8421 docs(preset): describe plugin management in Standard mode 2026-10-21 12:36:18 +08:00
Turtle 5a66e46c4f Merge pull request #6598 from deepseek-harness/persistence-schema-digest-keys
refactor(scripts): key persistence schema nodes by subgraph digest
2026-10-21 12:28:01 +08:00
TurtleandMagolor 472f0c8258 docs: formalize sentence case for English UI copy
Record the sentence-case rule for English UI copy and plugin titles, sync remaining README label references, and keep the session-inspector Chinese dictionary unchanged.

Refs #6790

Co-authored-by: Magolor <25860372+Magolor@users.noreply.github.com>
2026-10-21 12:06:49 +08:00
turtle1999 5b23990a0e Merge remote-tracking branch 'origin/master' into persistence-schema-digest-keys
# Conflicts:
#	docs/persistence-schema.json
2026-10-21 12:06:20 +08:00
Turtle f9ec718a48 feat(preset): enable plugin_manager in standard mode 2026-10-21 11:47:26 +08:00
Turtle b9d049d041 fix(plugins): use sentence case for built-in plugin English copy
Refs #6790
2026-10-21 11:28:26 +08:00
Turtle 358ce64945 Merge pull request #6738 from deepseek-harness/revert-6418-worktree/session-agent-controller-refactor-ff892d
Revert "feat(agent): admit Web prompts through the agent controller"
2026-10-20 19:28:42 +08:00
Turtle e1a11ef09c Merge pull request #6222 from deepseek-harness/turtle/auto-review-cache-ffc00f27f914
fix(auto-review): keep review requests cacheable across calls
2026-10-20 18:05:26 +08:00
Turtle 450e81bbf3 Merge remote-tracking branch 'origin/master' into turtle/image-cache-stale-0a243f674e12
# Conflicts:
#	packages/client/ui-primitives/README.i18n.yaml
#	packages/client/ui-primitives/README.md
#	packages/client/ui-primitives/README.zh.md
#	packages/client/ui-primitives/tests/markdown-path-images.client.spec.tsx
2026-10-20 18:00:57 +08:00
Turtle 681cf9b6ad fix(client): show settings nav hover in dark theme
The sidebar nav-item hover token resolved to the dark settings panel fill, so hovering a settings tab changed nothing. Use the interactive hover overlay that the main sidebar rows use and drop the now-unused token.

Refs #6717
2026-10-20 17:54:18 +08:00