Commit graph

14068 commits

Author SHA1 Message Date
Yichen Jiang
49753b33fa fix(web): keep question card props data-only 2026-08-27 13:21:22 +08:00
Yichen Jiang
94db8e881b fix(web): render readable ask-user transcripts 2026-08-27 11:28:59 +08:00
Yichen Jiang
a24c71127f Merge pull request #3155 from deepseek-harness/feat/web-input-trigger-menu-polish
feat(web): 输入触发菜单(/ 与 @)呈现打磨
2026-08-27 10:12:39 +08:00
imccyu
e290fb1dc7 Merge pull request #3085 from deepseek-harness/worktree-apire-c
refactor(apiproxy): credentials and settings to Remote
2026-08-27 04:16:33 +08:00
imccyu
f3e16c9bcc docs(api): refresh configuration type records 2026-08-27 03:28:30 +08:00
imccyu
08176e6626 test(api): type heterogeneous provider calls 2026-08-27 03:12:36 +08:00
imccyu
f19c25123d style(apiproxy): remove stale spacing 2026-08-27 03:08:53 +08:00
imccyu
9fdbec00ee fix(web): reuse the preview Remote helper 2026-08-27 03:06:59 +08:00
imccyu
fcba3bbacb test(api): avoid mixed Remote result inference 2026-08-27 03:06:58 +08:00
imccyu
fd7f2065b2 refactor(apiproxy)!: remove settings and credentials RPCs 2026-08-27 03:01:29 +08:00
imccyu
5918dd205e refactor(client): use settings Remote namespaces 2026-08-27 03:01:02 +08:00
imccyu
dd70c0c88d feat(api): serve settings through Remote controllers 2026-08-27 03:00:49 +08:00
imccyu
0a9a9ee686 docs(api): record settings Remote migration 2026-08-27 03:00:25 +08:00
imccyu
fc5224b389 Merge pull request #3086 from deepseek-harness/worktree-apire-d2
refactor(apiproxy): directory-picker to Remote
2026-08-27 02:42:12 +08:00
imccyu
54d77eff00 docs(directory-picker): record the Remote transport 2026-08-27 02:20:40 +08:00
imccyu
6e4087626d refactor(apiproxy)!: remove directory-picker RPCs 2026-08-27 02:20:39 +08:00
imccyu
011d53862d refactor(client): use directory-picker Remote 2026-08-27 02:20:38 +08:00
imccyu
76dedd4862 feat(workspace-controller): expose directory picking through Remote 2026-08-27 02:20:38 +08:00
imccyu
3007864cfe refactor(directory-picker): expose client-safe listing types 2026-08-27 01:44:15 +08:00
Yif
36dd657c7e test(ui-input-trigger): cover the onHover slot wiring; restore master's notices
The merge resolution had reverted THIRD_PARTY_NOTICES.md to the SDK 0.3.220
rows; the lockfile pins 0.3.241, so CI regenerated a mismatch. The apply spec
now drives the injected onHover face, closing the per-file coverage gap on
src/client/index.ts.
2026-08-26 22:10:58 +08:00
Yif
9ec543c943 Merge remote-tracking branch 'origin/master' into feat/web-input-trigger-menu-polish
# Conflicts:
#	apps/web/tests/agent-preset-selection.e2e.ts
2026-08-26 21:35:21 +08:00
Yif
0114dc1f81 feat(web): polish the input trigger menu presentation
Candidate rows lead with domain icons instead of localized text
prefixes; pointer and keyboard share one reducer-owned highlight (last
input wins); drillable folder rows reveal a localized Browse-folder +
Tab keycap hint with the library chevron; pending sources render
skeleton bars; the menu spans the composer card. The editable @dir/
text decorates color-only — the domain icon now belongs exclusively to
the settled reference chip. Composer placeholders advertise / and @,
and the zh copy for commands is unified to 指令.
2026-08-26 21:17:46 +08:00
ihsiang
bc1f515b04 Merge pull request #3145 from deepseek-harness/ihsiangzhang/secondary-font-tier
feat(ui): unify the flow-row secondary font tier and scale tables
2026-08-26 20:50:23 +08:00
yx.zhang
9e33469913 fix(review): correct the secondary-tier floor claim and pin engine-resolved sizes
The Agent Note (both languages), the PR prose, and the commit message
claimed a 13px floor for the table variants; the formula has none —
max(13px, setting − 2px) selects the −1 branch at low settings rather
than clamping the result, so the tier bottoms out at 11px at the 12px
setting, matching think text. Rewrite the claim, say so in the axis
comment, and split the README sentence that lumped body-pair and
secondary-pair consumers together.

Assert the engine-resolved secondary size in the settings-chrome e2e
(13px at the default, 13px at the 15px boundary, 14px at 16px,
unchanged across reload), sync the StatsLine and workflow-panel spec
headers with the tier they now pin, and note why memberLabel stays at
the body size.
2026-08-26 19:28:04 +08:00
yx.zhang
a77e23a975 feat(ui): unify the flow-row secondary font tier and scale tables
Derive --dsh-content-font-size-secondary (setting -1 at <=14, setting -2
above; 13px at the default) with --dsh-content-font-delta-secondary in
gradient-shadow-text.css, and move every one-step-under-the-body text
onto it: think text and reasoning summaries, the shared DisclosureRow
title, ToolRow and bash-row summaries and file links, compaction/
context/command/retry/error rows, StatsLine, the workflow-run panel
tiers, reference summaries, the turn-status clock, and the feedback
note trigger. The markdown table variants join the same tier instead of
staying fixed; its 13px floor keeps them legible at the 12px setting.

At the default setting the flow-row titles and summaries render at 13px
(previously 14px) so they match think text at every setting instead of
sitting 2px above it.
2026-08-26 19:28:04 +08:00
Chinesezjc
91379e8de6 ci(build-exe): drop pull_request label trigger to avoid skipped checks (#3049)
* ci(build-exe): drop pull_request label trigger to avoid skipped checks

* docs(build-exe): sync agent note and pin event set in workflow spec

* test(ci): type-safe event key assertion for build-exe workflow

* ci(build-exe): use present-tense trigger comment and drop label-run note
2026-08-26 17:52:34 +08:00
Yichen Jiang
4ecebeb54f Merge pull request #3138 from deepseek-harness/feat/models-provider-card-slots
feat(ui-settings-models): open provider-card and footer extension slots
2026-08-26 17:25:48 +08:00
Yichen Jiang
bf0db65bb0 fix(ui-settings-models): address review — derived key fact, required render seat, spec sync
The provider-card seat's keyConfigured now derives from the reference the
page would use — the profile's apiKeyEnv, or the page's derived
<ROUTE>_API_KEY while the profile names none — so the add-provider draft
agrees with its own editor about an existing conventional credential (the
store joins the derived describe in the same batched call, as
ProviderRow.derivedCredential). ModelsSectionProps makes the renderSlot seat
required so a direct render that forgets it fails to compile; the one such
render in provider-form.client.spec regained a real mount and the test
boilerplate collapsed to renderSlot={() => null}. The extension-slots Agent
Note now states the keyed cell's real override rule (same priority throws,
a different priority shadows), and docs/subsystems/slots.md carries the two
new seats in its hierarchy, both languages.
2026-08-26 17:12:58 +08:00
Yichen Jiang
21a2a38a2f Merge pull request #3125 from deepseek-harness/worktree/composer-editable-gate
test(web): gate composer gestures on the editable attribute
2026-08-26 16:54:37 +08:00
Yichen Jiang
b5c3cc897c fix(llm-pi-ai): store the JSON image of a grant payload
pi-ai credentials carry optional members as explicit undefined (a github.com
Copilot grant holds enterpriseUrl: undefined), and the store bridge committed
the object verbatim, so the credential store's strict validator refused the
write and sign-in failed after the provider had already authorized it.
toRecord now drops explicitly-undefined members and renders undefined array
entries null, exactly as JSON.stringify would; everything else passes through
untouched so genuinely unstorable values still fail loud at the store.
2026-08-26 16:37:49 +08:00
Yichen Jiang
21e5ee9071 test(web): derive the editable gate from the gesture target
Review follow-ups: wait on the caller's own locator instead of assuming
it is the page's first composer, describe the actual read-only window
(submit adjudication and locked states — a running turn stays editable
for queueing), drop the pre-Lexical narration from the JSDoc, and record
the gesture-semantics trap as an Agent Note.
2026-08-26 16:35:49 +08:00
Yichen Jiang
10d1c603be Merge remote-tracking branch 'origin/master' into worktree/composer-editable-gate
# Conflicts:
#	apps/web/tests/permission-policy-context.e2e.ts
2026-08-26 16:11:32 +08:00
Yichen Jiang
5661b7a972 Merge pull request #3110 from deepseek-harness/worktree/fix-question-drafts-session-switch
fix(web): preserve ask_user_question drafts across Sessions
2026-08-26 16:10:37 +08:00
Magolor
df76bc695b feat(session): reduce persistence storage size (#3048) 2026-08-26 08:01:07 +00:00
Yichen Jiang
e5d39b6076 Merge origin/master into worktree/fix-question-drafts-session-switch 2026-08-26 15:51:15 +08:00
imccyu
1e2d2b7b47 Merge pull request #3107 from deepseek-harness/worktree-workerfix3
fix(webworker): retain createRequire dependencies in preview images
2026-08-26 15:28:44 +08:00
Chinesezjc
ac36c6b975 test(web): drain trajectory scroll timer before teardown
Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
2026-08-26 15:09:49 +08:00
imccyu
b72f5879c8 fix(webworker): scope createRequire dependency discovery 2026-08-26 15:09:49 +08:00
imccyu
437ab3cefe docs(webworker): define createRequire reachability limits 2026-08-26 15:09:48 +08:00
imccyu
f2cc573eb3 test(webworker): keep dependency coverage generic 2026-08-26 15:09:48 +08:00
imccyu
1429737a52 perf(hmr): poll client bundles only 2026-08-26 15:09:48 +08:00
imccyu
8f88a6f207 fix(webworker): expose Node process identity 2026-08-26 15:09:48 +08:00
imccyu
ba54d722a1 docs(web): clarify worker globals and HMR polling 2026-08-26 15:09:48 +08:00
imccyu
d54c2795cc fix(webworker): retain createRequire dependencies 2026-08-26 15:09:48 +08:00
imccyu
b588cdc478 docs(webworker): define createRequire reachability 2026-08-26 15:09:48 +08:00
Yichen Jiang
855461c2e8 feat(ui-settings-models): open provider-card and footer extension slots
The Models section now declares two SlotMap seats for out-of-tree plugins:
settings.models.provider-card (keyed by the row's settingsNs, dispatched on
saved cards, the first-run setup posture, and the add-provider draft, with
the row view, configured join, and confirmed api-key state as owner props)
and settings.models.footer (ordered list after the rows and add controls).
Without registrants both seats render nothing. First consumer: the
llm-pi-ai-oauth companion plugin's sign-in surface.
2026-08-26 15:09:30 +08:00
imccyu
5dba32bb48 Merge pull request #3083 from deepseek-harness/worktree-apire-b
refactor(apiproxy): subagent control to Remote
2026-08-26 15:08:59 +08:00
Chinesezjc
41591aa57f Merge branch 'master' into worktree/composer-editable-gate 2026-08-26 15:00:57 +08:00
Yichen Jiang
74fa4a00d7 Merge pull request #3123 from deepseek-harness/worktree/wizardly-maxwell-194a2a
fix(agent-presets): report unresolvable rows and refused switches
2026-08-26 14:57:09 +08:00
Yichen Jiang
605e33a2f5 fix(web): address question draft review feedback 2026-08-26 14:53:37 +08:00