Commit Graph
4635 Commits
Author SHA1 Message Date
Yichen Jiang 8a5cd2fb63 test(forge): align confined reference and recommendation fixtures 2026-10-26 19:34:55 +08:00
Yichen Jiang f74e15ba08 Merge branch 'worktree/forge-bindings-stack-sync' into worktree/forge-pr-worktree-panel
# Conflicts:
#	docs/module-graph.md
#	docs/module-graph.zh.md
#	packages/experimental/README.i18n.yaml
#	packages/preset/agent-preset/skills/cordis-composition-reference/references/packages.md
2026-10-26 18:39:10 +08:00
Yichen Jiang 04db213ad9 fix(forge-panel): pin merge confirmation to the reviewed head 2026-10-26 17:57:09 +08:00
1cc040b535 fix(client): clarify mobile native-open feedback (#6660)
* feat(ui-open-in-app): announce settled open outcomes app-wide

The shared file and directory opener reported a nullable failure, so it could
not tell a handoff the Host acknowledged from a gesture an adapter deliberately
dropped — a duplicate already in flight, or a controller disposed before the
gesture ran. Its notice also lived inside the control that asked for the open,
so it died with the panel, tab, or card the gesture started in.

Replace that with a discriminated outcome on both controllers and adapters, and
report each settled gesture into one `shell.overlay` entry that renders the
app-wide Toast: the Session-header command, the files-tab and Session-header
buttons, both document-preview controls, and both delivery-card controls.
`{ kind: 'skipped' }` announces nothing, because no handoff happened, so card
status and the toast never disagree about what settled.

Name the action for what it does on every surface — "Open on your computer" —
instead of after whichever application would take the handoff. The application
stays supplementary, in the tooltip beside the shortcut it runs under, which is
what the accessible name, visible text, and command label now share.

* fix(client): unify open-in-app feedback

* fix(client): report native open outcomes accurately

* fix(client): tighten open feedback outcomes and lifecycle tests

* test(ptc): synchronize hot-loop log capture

Observe a synchronous child marker before cancellation so the console retention assertion does not depend on completing Node startup within one second.

* test(bench): interleave scaling samples

* fix(client): scope native-open feedback to mobile

Explain native opens on another device for mobile and PWA clients while keeping desktop success silent. Preserve failure feedback after the initiating surface closes and ignore skipped requests.

Remove unrelated benchmark and PTC test changes and retain existing button labels.

Refs #6097

---------

Co-authored-by: EricMoin <[email protected]>
Co-authored-by: EricMoin <[email protected]>
2026-10-26 17:16:44 +08:00
Turtle 93fefc4fbd Merge pull request #7153 from deepseek-harness/turtle/resume-blocked-goal-f1301e734784
fix(ui-goal): offer resume for a blocked goal
2026-10-26 16:12:15 +08:00
Yichen Jiang df4f3fd0c1 fix(forge-session): bind numeric PR references with explicit repositories 2026-10-26 16:10:51 +08:00
Turtle 699cecb83d Merge pull request #4719 from deepseek-harness/fix/toolcall-unused-args
fix(tools): tolerate unambiguous optional arguments
2026-10-26 16:06:45 +08:00
Xu Hanxiang 037ffa43d9 Merge pull request #6639 from deepseek-harness/worktree/experimental-client-ui-perf
feat(experimental): add client-ui-stats conversation view plugin
2026-10-26 15:48:06 +08:00
mektpoy d729145a9c test(experimental): refresh web snapshots for Developer tools metadata 2026-10-26 15:29:15 +08:00
mektpoy b7f14d3108 refactor(experimental): rename client-ui-perf to client-ui-stats 2026-10-26 14:30:51 +08:00
Yichen Jiang 64c81cb3e3 Merge branch 'worktree/forge-bindings-stack-sync' into worktree/forge-pr-worktree-panel 2026-10-26 13:30:55 +08:00
Yichen Jiang b0e41f74ad Merge remote-tracking branch 'origin/master' into worktree/composer-host-confirmed-echo
# Conflicts:
#	packages/api/session-controller/README.i18n.yaml
#	packages/api/session-controller/src/client/sessions/session.ts
#	packages/client/ui-conversation/README.i18n.yaml
2026-10-26 13:29:33 +08:00
mektpoy 310e943fe7 feat(experimental): ship the Statistics view through Developer tools and rename its tab 2026-10-26 13:26:10 +08:00
mektpoy d284f67c54 fix(experimental): keep event and step trigger text vertically centered 2026-10-26 13:25:52 +08:00
mektpoy 8a26b3b06f feat(experimental): total the whole session from host projections 2026-10-26 13:25:52 +08:00
mektpoy 6df1a2c1e3 fix(experimental): dock the perf controls above the composer 2026-10-26 13:25:51 +08:00
mektpoy 1a931813ec style(experimental): wrap perf headers and drop per-turn step counts 2026-10-26 13:25:51 +08:00
mektpoy e5ff00cc3e fix(experimental): frame team and subagent wake badges with readable senders 2026-10-26 13:25:51 +08:00
mektpoy 878b93f58a feat(experimental): rebalance perf columns and attribute wake senders 2026-10-26 13:25:51 +08:00
mektpoy 5ebedd8e36 test(web): measure real timing columns in the panel golden 2026-10-26 13:25:51 +08:00
mektpoy c286ec70fa test(web): cover the opt-in Performance view in a real browser 2026-10-26 13:25:51 +08:00
Turtle e409f6a7f8 Merge remote-tracking branch 'origin/master' into turtle/take-over-4719-fa0c7f5f8327
# Conflicts:
#	packages/fs/tool-fs-search/tests/integration.spec.ts
2026-10-26 12:56:58 +08:00
creatixchu 886df319bc Merge origin/master into feat/cua-bundle-id-consent 2026-10-26 12:31:36 +08:00
Turtle 63a67f9ef1 Merge remote-tracking branch 'origin/master' into turtle/take-over-4719-fa0c7f5f8327 2026-10-26 12:31:19 +08:00
_Kerman e3805406c4 Merge pull request #6763 from deepseek-harness/xtr/ptc-vm-script
feat(ptc-runtime-node): add VM Script execution with optional state retention
2026-10-26 11:52:18 +08:00
Turtle da3055de3e Merge pull request #7048 from deepseek-harness/turtle/plugin-detail-pages-5c09dd3d0a33
docs(experimental): move plugin detail text into descriptions
2026-10-26 11:39:55 +08:00
_Kerman 315a1c7e47 style(test): align merged CUA scaffold options 2026-10-26 11:36:55 +08:00
_Kerman 271a6143a1 Merge origin/master into xtr/ptc-vm-script 2026-10-26 11:34:32 +08:00
Turtle a9fe502214 Merge remote-tracking branch 'origin/master' into turtle/plugin-detail-pages-5c09dd3d0a33
# Conflicts:
#	snapshots/web/plugin-recommendations/session.v4.jsonl
2026-10-26 11:22:27 +08:00
yudshj 85812a9777 fix(ui-dockkit): settle float review findings on bodies and edge cases
- Move TabBody to its own module and draw DockSurface's docked bodies
  through it too, so divider and tab drags no longer re-render bodies.
- State in TabRenderer when the kit calls renderTab again and reuses a
  body.
- A corner press during a return ends it at the recorded rectangle; only
  a grip press picks the panel up where it is drawn.
- The resistance and its inverse keep the legal size, a resize origin
  stays inside a viewport that shrank mid-gesture, and a Windows root
  without a published caption height keeps the 20px floor.
- The Web e2e waits for the resting style before checking the clamp.
- Tests say "does not re-render" and also show that a new renderer
  re-renders the bodies.
2026-10-26 09:04:23 +08:00
yudshj 22ea16f2e9 fix(ui-dockkit): clamp a resting panel's size into the viewport too
The resting .float rule now caps width at 100vw and height at the
viewport below the caption floor, so a stale viewport reading cannot
leave an oversized panel's header controls or resize corner off screen.
Vertical limits use 100dvh, which follows window.innerHeight as the
gesture hook does. The Web e2e publishes a far-off, oversized resting
rectangle and checks that the stylesheet alone draws it over the viewport.
2026-10-26 09:04:23 +08:00
yudshj 38c1b9b835 fix(ui-dockkit): bound the edge return and keep clicks on projected panels
- A release that reaches the press's legal rectangle only raises, so a
  click on a panel drawn projected no longer records a move or resize.
- The return starts at the drawn panel's speed, and launchVelocity caps
  its outward part so the whole trajectory stays within 120 px.
- A panel larger than the viewport draws at the viewport's size, keeping
  its header controls and resize corner reachable.
- A return ends on an undo, dock or close of its panel, and at its target
  when another panel is pressed; a gesture uses the bounds of a window
  resized mid-gesture; drawn samples outside the velocity window drop.
- Gestures and returns may draw above the top floor; at rest the .float
  rule clamps every panel into the viewport and below the caption floor.
- Web e2e drags a Sidebar float past the right and bottom edges.
- The note is renamed to spring-based edge recovery, compressed, and
  cross-linked to the docking and retained-layout notes.
2026-10-26 09:04:23 +08:00
Yichen Jiang 04b3164a27 Merge pull request #7211 from deepseek-harness/fix/model-collapse-preferred-width
fix(web): restore the composer model seat icon collapse
2026-10-25 20:26:49 +08:00
imccyu ca4c00de46 Merge pull request #7154 from deepseek-harness/session-stream-snapshot
refactor(session): separate history, state and Web follow implementations
2026-10-25 20:08:12 +08:00
creatixchu d8c9ac6a0f Merge master into feat/cua-permission-onboarding 2026-10-25 19:36:49 +08:00
imccyu 99a6c14527 test(session): cover the split controllers and passive follow
Move the facade, listener, state, wait and history tests onto the new
controllers, and cover passive activation, omitted cursors and the
event subscription frames.
2026-10-25 18:14:28 +08:00
creatixchu f7b2be051a fix(cua): recheck bundle metadata before launching approved apps 2026-10-25 17:51:48 +08:00
CreatixChu 7bc30c4cba fix(attachments): 复用完整图片引用,取消 Session 历史扫描 (#7021)
* test(api): measure historical image read costs

* fix(test): resolve image benchmark paths from its config

* fix(attachments): read stored images without scanning sessions

* test(attachments): complete by-id fixtures and access assertions

* fix(docs): implement image-id read on catalog fixture

* docs(attachments): refresh generated read contracts

* test(web): verify stored images across history and forks

* docs(api): clarify image read metadata and permission scope

* test(api): type benchmark instrumentation without unsafe returns

* test(api): retire unknown-cast allowances with removed history fixtures

* test(attachments): isolate browser cases and document store-wide access

* test(web): intercept the by-id thumbnail read path

* docs(perf): run generated diagnostic from its owning package

* refactor(attachments): reuse reference reads for conversation images

* docs(api): refresh complete image reference client contract

* test(ui-chat): assert complete image reference forwarding

* test(perf): measure image reads against current Session observations
2026-10-25 09:40:53 +00:00
creatixchu 57f2832347 revert(plugins): defer navigation scroll behavior 2026-10-25 16:01:24 +08:00
Yichen Jiang bc5c2d4142 fix(web): cap the composer model seat at its preferred width
The composer collapses the model seat to its Models icon when the expanded
controls cannot share a row, but the seat's row-relative 45cqw cap made its
measured demand shrink with the row. The measured expanded state therefore
always fit and a narrow composer ellipsized the name instead of showing the
icon. Cap the seat at its 360px content width so the measurement sees the
demand, document the contract, and cover the collapse without the Plan chip.
2026-10-25 15:16:47 +08:00
creatixchu fc6e370457 Merge master after platform support landed 2026-10-25 13:41:24 +08:00
creatixchu cf65ee6e01 Merge master into bundle Host platform support 2026-10-25 11:58:20 +08:00
Yichen Jiang 3a52eb1993 Merge commit '861f5200ded' into worktree/forge-pr-worktree-panel
Master replaced the creation and plugin recommendation bundles with one
personalized recommendations bundle.

- The CLI manifest keeps master's bundle and the forge bundle.
- The plugin page expectation ranks the forge bundle before the held-back
  personalized recommendations bundle.
- The experimental README pairing is recorded again.
2026-10-24 21:45:41 +08:00
Yichen Jiang 3764b60205 Merge commit '3dd445fe163' into worktree/composer-host-confirmed-echo
The session-controller README pairing is recorded again for the merged
sections.
2026-10-24 21:39:51 +08:00
Turtle 685b4fc5b3 test(ui-goal): pin the blocked goal strip and simplify resume visibility 2026-10-24 18:01:29 +08:00
Turtle 83644b6b37 fix(ui-goal): offer resume for a blocked goal
The goal service and /goal resume accept blocked goals, and editing keeps
the phase blocked, but the Web goal bar showed only edit and clear, so a
Web user could not continue a blocked goal after editing it.

Refs #1425
2026-10-24 17:26:02 +08:00
CreatixChu 17b13383af fix(plugins): 默认隐藏 CUA 并保留已启用用户的管理入口 (#7068)
* fix(plugins): temporarily hide the CUA bundle

* test(plugins): update expectations for hidden CUA

* fix(cua): preserve management for enabled bundles

* test(cua): cover default-hidden activation and retained details

* test(cua): verify installed state survives disabling

* test(cua): use the native provider display name
2026-10-23 22:54:03 +08:00
Turtle b268c91066 docs(experimental): keep plugin descriptions to high-level behavior
Shorten the experimental plugin descriptions to what each plugin does and
how to use it, and keep the official-plugin catalogs unchanged.
2026-10-23 20:59:10 +08:00
Turtle faba7faa92 Merge remote-tracking branch 'origin/master' into turtle/plugin-detail-pages-5c09dd3d0a33 2026-10-23 20:49:27 +08:00
imccyu 22ddee3792 Merge pull request #7075 from deepseek-harness/worktree-chatgap
feat(chat): tighten the process-row gap to 4px
2026-10-23 19:48:59 +08:00