Commit Graph
105 Commits
Author SHA1 Message Date
Yichen Jiang a165e82bfc feat(ui-plan): lead the plan chip with the plan glyph and a hover close (#4710)
The composer's plan-mode chip rendered its label followed by a 12px
one-pixel cross, out of step with the sibling access-mode trigger's
glyph-then-label layout. The chip now leads with the 14px plan glyph
(the /plan command's own icon) and swaps it for a new circled close —
IconCloseCircleFill, a filled disc with the cross knocked out — while
the enabled chip is hovered or keyboard-focused, so the pending click
reads as turning plan mode off.

The pill's corners move from a 999px circular capsule to the compact
Button geometry (14px on the 28px row) under the theme's superellipse
curvature, matching every neighbouring control; the lifecycle-chrome
probe now pins that radius and the shared corner-shape.
2026-09-20 17:49:06 +08:00
Yichen Jiang ab9689b2ca fix(web): bind the right Sidebar before same-commit mount effects (#4693)
* fix(web): bind the right Sidebar before same-commit mount effects

A plan review arriving while a global panel was active crashed its opener when the user returned: the frame mounts the Conversation column ahead of the right Sidebar seat, so PlanReviewOpen's mount effect called ctx.sidebarRight.openResource before the seat's passive bindService effect had published the binding. The slot runtime retired the crashed entry for the rest of the page, removing the View full plan link and every later automatic open.

Publish the seat binding from a layout effect, which runs before any passive effect of the same commit regardless of tree order. The seat spec mounts a Conversation-column opener ahead of the seat and returns from a global panel; the plan-review Web scenario delivers a review while the Plugins panel is open and expects the preview and the link after the return. Both fail before the fix.

* fix(web): open the plan review once the Sidebar seat is mounted

Replace the layout-effect binding with an observable: ctx.sidebarRight.mounted publishes the session whose seat is on screen, undefined while a global panel replaces the Conversation. The seat keeps binding from its passive effect. PlanReviewOpen reads the source through a bound hook and opens once a seat is defined, so a review mounting ahead of the seat in the same commit no longer assumes a bound seat and never crashes its entry.

The seat spec's opener stand-in now reads `mounted` the way a slot component does; the service spec pins that only real transitions publish, and the PlanReviewOpen spec covers a review that mounts before any seat and opens once the seat binds.

* test(web): align the plan-review console tripwires and the seat term

The off-screen review case now asserts the reconnect warnings like its siblings and filters crash logs by error level as the other e2e files do. The zh README keeps 席位 for the seat throughout.

* test(plan): keep the review props cast at its baseline fingerprint

verify-no-unknown-casts counts a modified assertion as new. The two PlanReviewOpen specs now share the unchanged baseline cast through one helper and supply the seat hook as a typed value beside it.
2026-09-20 09:35:00 +00:00
Dudu-0223 17a52a8fe3 fix(subagent): retain unreadable children in migrated catalogs 2026-09-20 14:30:02 +08:00
Tianyi Cui 580bdc7258 refactor: remove redundant unknown casts 2026-09-19 20:13:58 +08:00
Tianyi Cui c3cfe83d2e merge: update the session-log-v4 integration base from master
Merge a2acc7d3eb620bb52f09f7ea3b5a3a1c23353e18 after preserving the earlier
master checkpoint and its successful CI. Carry current provider input-history
handling, UI controls, agent targeting, and runner-concurrency changes into
the integration base without changing the Session migration feature layers.

Keep durable direct-child catalog semantics alongside the upstream running /
inactive vocabulary. Resolve the snapshot description conflicts by retaining
that upstream status text and the existing descendants-only diagnostic rule;
the source and all 53 JSON tool descriptions agree. Preserve parent-session
availability handling with the upstream stale-blank and batched-history fixes.

The merged application builds, all 41 documentation gates pass, and focused
provider, tool-control, and Session Controller tests pass (98, 29, and 125).
Recorded input changes come from master: one refreshed v3 list-agents sample
and three new v3 scenarios; no migration bumps an existing snapshot generation.
2026-09-18 15:52:56 +08:00
Turtle 2099andTurtle f83800530c fix(web): recolor the plan chip and align it with the control row (#4399)
* fix(web): make the plan chip a business-accent control at row height

The chip borrowed the warn-state pair for a plain mode flag, so it read as
a warning, and its 2px vertical padding left it 4px shorter than the + and
select controls beside it. It now uses the business accent pair, takes the
row's 28px height, and carries Chinese copy; the unused chip.off.*
dictionary entries had no surface and are dropped.

* docs(web): re-record the plan chip README pair

* docs(web): state the plan chip's close glyph and drop stale copy claims

The READMEs described the chip without the × the component renders, and the
zh side still quoted the English accessibility string after this branch gave
the namespace its own Chinese one.

* test(web): pin the plan chip's accent tokens, height, and Chinese copy

The lifecycle-chrome lane asserted the chip's warn pair; it now asserts the
business pair plus the 28px row height, and a zh plan-active golden records
the 「计划」 label the chip shows under the Chinese locale.

* fix(web): color claimed command tokens with the business accent

The draft's claimed token still used the warn label color while the plan chip
moved to the business pair, so a claimed /计划 read orange above a blue chip.
The claim decoration and the tests asserting its inline style now use
state-business-primary.

* fix(web): keep the composer control row on one line at narrow widths

The fixed-width mode chips and send circle left the row's 12px gaps deciding
between a slack first line and a wrapped trailing group: beside the plan chip,
a long model name moved the model trigger and send circle to a second line
while the first line still had room. Narrow rows now use 8px gaps, which holds
the row together down to the icon-only model trigger.

* fix(web): drop the context ring in the narrow composer row

With plan mode on and a long model name, the 28px occupancy ring plus its gap
was what pushed the trailing group onto a second line. The ring yields at the
same row width that already hides the access-mode label, so the fixed controls
keep one line; the reading stays reachable from a wider window.

---------

Co-authored-by: Turtle <[email protected]>
2026-09-18 15:04:54 +08:00
Tianyi Cui 8306ddaa14 merge: refresh session-log-v4 base from master
Merge master 0fdadce5189dcf13a00c2ed8293be95b9bb29c2c into the reviewed
Session V4 integration base. Preserve its V4 persistence and direct-catalog
subagent navigation while carrying forward current UI controls, decorative
icons, Desktop signing/runtime changes, and upstream tests.

Resolve lineage conflicts by retaining interaction-time catalog authority,
known-leaf handling and row order together with the shared status icons.
Keep both Desktop shell-routing regressions and one production route; master
now includes the route repair previously carried by this integration branch.

The full build, 41 documentation gates, two Desktop shell tests and 34 focused
Client lineage tests pass. Further built Web and packaging checks precede
publication. Preserve this pinned merge checkpoint before taking a newer
master tip, and propagate it through the reorganized feature stack.
2026-09-18 13:11:25 +08:00
Yichen Jiang 732f198cf4 Merge remote-tracking branch 'origin/master' into worktree/plan-tab-text-icon
# Conflicts:
#	apps/web/tests/expected/plan-review/temporary.expected.md
#	packages/client/ui-plan/src/client/PlanPreview.tsx
#	snapshots/web/plan-review/preview.expected.md
2026-09-18 12:31:05 +08:00
winewill 831ea36f2c Merge pull request #4461 from deepseek-harness/ihsiang/unify-web-ui-visual-language
Unify the Web UI visual language
2026-09-18 11:00:11 +08:00
Tianyi Cui 64c669fc79 fix(plan): open embedded plan previews in the visible sidebar
A child conversation rendered in a parent Sidebar keeps the child Session identity for reading its plan. Routing navigation through openResourceIn(child) confused that document identity with the layout owner: a child with no adopted Sidebar store silently opened nothing, and an existing child store was invisible.

Use the mounted Sidebar navigation service for both logged and temporary plan previews. Keep the complete child Session resource address, so reads and reload still target the correct document. A real-controller regression adopts only the visible parent store and proves both child entry points populate it without creating child layout state; it fails before the fix.

All 47 ui-plan owner tests and all four built Web plan-review cases pass, along with the full build, scoped typed lint, and bilingual pairing. No Session event, stored document, fixture generation, or resource-address format changed.
2026-09-18 01:56:04 +08:00
creatixchu 6b1808f432 release(dsh): 0.1.6-alpha.2 2026-09-17 21:11:19 +08:00
Yichen Jiang 29126c0a32 fix(web): align plan preview copy controls with Markdown files 2026-09-17 19:57:18 +08:00
yixiangihsiang 4937343a5e feat(web): unify the client visual language 2026-09-17 19:14:41 +08:00
Yichen Jiang 0495ad9846 fix(web): use the plain text file icon for plan tabs 2026-09-17 17:52:08 +08:00
Yichen Jiang 3fb29e0803 fix(web): identify plan preview tabs with a plan icon 2026-09-17 17:31:34 +08:00
Yichen Jiang eae08a9745 Merge origin/master into worktree/plan-sidebar-cards 2026-09-17 16:49:40 +08:00
Yichen Jiang 46b4f94802 fix(web): preview unlogged plans and preserve subagent history addresses 2026-09-17 16:44:34 +08:00
Yichen Jiang 5d173b170d test(web): strengthen plan dismissal checks and clarify review contracts 2026-09-17 16:09:29 +08:00
Yichen Jiang 7de3757bad feat(web): show a concise plan summary in the review card 2026-09-17 15:37:13 +08:00
Yichen Jiang 577e4a036d fix(web): collect submitted plans in the final turn artifacts 2026-09-17 15:18:35 +08:00
Yichen Jiang 1e1dd43fee feat(web): open submitted plans automatically with artifact cards 2026-09-17 14:31:22 +08:00
Yichen Jiang 472ddfa7ae fix(web): align plan card borders and cover review identity 2026-09-17 14:15:51 +08:00
Yichen Jiang ab834ac667 test(web): cover plan resource cancellation and sidebar bindings 2026-09-17 13:46:41 +08:00
Yichen Jiang f6428a164e feat(web): keep submitted plans in chat and open them in sidebar 2026-09-17 13:39:31 +08:00
creatixchu ea53423b60 release(dsh): 0.1.6-alpha.1 2026-09-15 09:35:57 +08:00
Yichen Jiang 59f2e3be33 Merge release/dsh-0.1.5 version 0.1.5-rc.2 into master sync branch 2026-09-10 21:53:53 +08:00
Yichen Jiang a305303422 release(dsh): 0.1.5-rc.2 2026-09-10 21:38:20 +08:00
j-xiang 4ddf777ad8 Merge master into README proofreading branch 2026-09-10 10:42:13 +08:00
imccyu 1ef9c1fa9a release(dsh): 0.1.5-rc.1 2026-09-10 09:13:14 +08:00
j-xiang b5578ae46a Merge master into README proofreading branch 2026-09-10 01:29:37 +08:00
j-xiang 8e8fb2fc62 docs(i18n): proofread bilingual README corpus 2026-09-10 00:21:32 +08:00
imccyu dd393c1820 release(dsh): 0.1.5-alpha.2 2026-09-09 22:02:09 +08:00
imccyu 2faa751be9 release(dsh): 0.1.5-alpha.1 2026-09-08 23:06:34 +08:00
Yichen Jiang e379fa8bdd release(dsh): 0.1.3-alpha.2 2026-09-07 19:27:06 +08:00
Yichen Jiang ed67c22496 release(dsh): 0.1.3-alpha.1 2026-09-04 15:38:55 +08:00
imccyu a66e470204 release(dsh): 0.1.2-rc.1 2026-09-03 02:27:19 +08:00
imccyu db6bdc3576 release(dsh): 0.1.2-alpha.5 2026-09-02 15:48:33 +08:00
imccyu a9e185f205 release(dsh): 0.1.2-alpha.4 2026-09-01 23:19:57 +08:00
yx.zhang 7020c7e122 feat(web): superellipse corners and hairline elevation strokes
Apply global visual polish across the web client: corner-shape:
superellipse(1.5) with corner-shape: round pairing for full circles,
elevation tokens that draw 0.5px stroke outlines inside box-shadow for
floating surfaces, 0.5px hairline borders and divider lines for
neutral-token strokes, and tuned stroke contrast plus larger radii for
menus, settings panels, and cards. Stylesheet-scan specs in ui-theme
reject unpaired circles, border+shadow mixes, and 1px neutral hairlines
repo-wide.

Closes #3287
2026-09-01 18:25:20 +08:00
Turtle d68ff7e66f Merge remote-tracking branch 'origin/master' into turtle/omit-unneeded-invariants
# Conflicts:
#	docs/module-graph.i18n.yaml
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	packages/session/session-projection/src/invariant.ts
#	tsconfig.base.json
2026-09-01 11:18:11 +08:00
imccyu 14bab4422b release(dsh): 0.1.2-alpha.3 2026-08-31 23:39:37 +08:00
Turtle b8e3b32fcf Merge master into codex/omit-unneeded-invariants 2026-08-31 14:38:55 +08:00
imccyu 3f1b46a5db release(dsh): 0.1.2-alpha.2 2026-08-30 21:19:29 +08:00
imccyu a3207a758b chore: package.json update 2026-08-29 14:26:43 +08:00
imccyu 804b1ffbfc refactor(api): converge the Remote failure vocabulary and client surface
Single RemoteError with a merge-extensible, domain-prefixed code map;
owners throw at the failure point; streams surface marked failures;
clients consume ctx.remote directly with isRemoteFailure as the only
discrimination point and construct no failure instances.
2026-08-28 22:37:36 +08:00
Turtle 15f2997bcb cleanup: omit unneeded invariant companions 2026-08-28 13:12:52 +08:00
imccyu 6c705be1ce release(dsh): 0.1.2-alpha.1 2026-08-28 00:50:12 +08:00
Magolor 0b5eba0c8d docs: rebuild the documentation skill and standards (#2983) 2026-08-25 23:47:20 +08:00
Tianyi Cui 9ebda8755e Merge remote-tracking branch 'origin/master' into worktree/localize-ui-strings-gate
# Conflicts:
#	packages/client/ui-chat/src/client/chat/AssistantMarkdown.tsx
#	packages/client/ui-chat/src/client/chat/CompactionItem.tsx
#	packages/client/ui-conversation/src/client/locales.ts
#	packages/client/ui-renderer/src/client/app.tsx
#	packages/client/ui-renderer/src/client/index.ts
#	packages/client/ui-renderer/tests/ui-renderer.client.spec.tsx
#	packages/client/ui-tool/src/client/tool/models/tool-call-model.ts
#	packages/client/ui-trajectory/src/client/trajectory-record.ts
#	packages/client/ui-trajectory/src/client/trajectory-snapshot-builder.ts
#	packages/client/ui-trajectory/tests/views.client.spec.tsx
#	packages/client/ui-workspace/src/client/tree.ts
2026-08-23 18:34:42 +08:00
Tianyi Cui 3c10f5d2d3 fix(client): route UI copy through locale 2026-08-23 17:31:37 +08:00