Commit graph

14146 commits

Author SHA1 Message Date
CreatixChu
c6e1914f2d Merge pull request #3207 from deepseek-harness/fix-3204-ptc-run-code-prompt
fix(tools): keep PTC SDK calls inside run_code
2026-08-27 16:13:22 +08:00
Yichen Jiang
efd816c0dd Merge pull request #3182 from deepseek-harness/worktree/web-mention-ux-polish-1bf698
feat(web): trim @ mention rows and cut their discovery cost
2026-08-27 16:12:02 +08:00
creatixchu
520bc3ce75 fix(tools): scope bash SDK example to its schema 2026-08-27 15:54:20 +08:00
Yichen Jiang
317ab06b24 Merge pull request #3176 from deepseek-harness/worktree/web-readable-ask-question-cards
fix(web): render readable ask-user transcripts
2026-08-27 15:45:58 +08:00
Yichen Jiang
adca6a8cc3 Merge pull request #3193 from deepseek-harness/perf/process-table-snapshot
fix(subprocess): read the process table once per terminal poll
2026-08-27 15:36:17 +08:00
Yichen Jiang
093048d256 Merge remote-tracking branch 'origin/master' into worktree/web-mention-ux-polish-1bf698 2026-08-27 15:35:28 +08:00
CreatixChu
c10be57913 Merge pull request #3111 from deepseek-harness/worktree/3003-instant-pending-submit
feat(web): 图片询问点击发送即回显,压缩与传输转入后台
2026-08-27 15:31:01 +08:00
Yichen Jiang
8e9da9debf refactor(session-reference): label discovery from projections alone
A title now comes from an attached session's live projection cut or a cold
one's durable checkpoint, and from nothing else. Attachment is decided by the
session store at read time, so a session that attached after the listing is no
longer answered from a checkpoint its log has moved past — the stale-title case
`api-session.list` already handles this way.

The log fold and its per-log memo are gone. Folding one title costs a whole
log, and this call sits under every keystroke; a session no projection answers
for is labeled by its id and regains its title the first time it is opened.

`lib` leaves the default exclusions: Ruby gems and many npm packages keep
sources there, and the miss would be silent and total. A traversal whose root
is unreadable now rejects instead of publishing an empty index over entries
that are still good, which is what the stale-while-revalidate path claimed but
could not do while every readdir error was swallowed. A drill marks the menu
drilled only when its edit actually reached the draft.

Refs #3154
Refs #3180
2026-08-27 15:21:08 +08:00
creatixchu
f9770e34af fix(tools): keep PTC SDK calls inside run_code 2026-08-27 15:20:03 +08:00
Yichen Jiang
9757224349 fix(subprocess): fence each signal against current process state
Review found the shared observation defeated the very fence it fed:
it carries the original PID-to-start-time pairing forward, so a
recycled PID still matches it and takes a signal meant for the process
that exited. Capturing it outside the per-member try also let one
failed read abort a whole teardown round, breaking the synchronous
host-exit contract, and an empty round paid a read for no members.

signalProcess now reads ProcessInspector.isAlive immediately before
delivering, from the narrowest per-identity source each platform
offers; signalMembers and waitForMembers return before capturing when
a round has no members. snapshot() keeps serving the readiness poll,
whose per-poll table read stays at one.

Windows enumerates Toolhelp32 lazily on the first tree question, so a
snapshot asked only for liveness — the 25 ms teardown poll — performs
no table walk at all.
2026-08-27 15:19:43 +08:00
Yichen Jiang
94d06e23d2 fix(web): preserve mixed ask-user results 2026-08-27 15:11:55 +08:00
lsdsjy
ed6ac33a88 Merge pull request #3148 from deepseek-harness/fix/websocket-heartbeat
fix(api-gateway): keep idle websocket alive
2026-08-27 15:07:11 +08:00
lsdsjy
af562d3649 fix(api-gateway): keep idle websocket alive 2026-08-27 14:48:13 +08:00
Chinesezjc
fb07d6db54 Merge pull request #2887 from deepseek-harness/fix/windows-pnpm-setup-isolation
ci: isolate pnpm setup destination per GitHub run
2026-08-27 14:30:00 +08:00
Dudu-0223
0615d17a82 Merge pull request #3020 from deepseek-harness/fix/subagent-model-switch-plugins
feat(subagent): authorize selectable child models
2026-08-27 14:12:24 +08:00
Yichen Jiang
72f1e19184 Merge pull request #3194 from deepseek-harness/perf/turn-navigator-memo
fix(client): stop rebuilding the turn rail on every chat render
2026-08-27 13:29:22 +08:00
Dudu-0223
2722c202ad fix(subagent): tolerate policy-only preset states 2026-08-27 13:25:51 +08:00
Yichen Jiang
49753b33fa fix(web): keep question card props data-only 2026-08-27 13:21:22 +08:00
Dudu-0223
a7b054b8f6 docs: refresh module dependency graph 2026-08-27 13:09:08 +08:00
Yichen Jiang
c873fc9d2e fix(client): stop rebuilding the turn rail on every chat render
TurnNavigator was an unmemoized component rendering one div and one
button per loaded Turn, so every ChatView render rebuilt the whole rail:
143 button rebuilds per commit in a 300-Turn session against 8.4 in a
4-Turn one, while a streaming answer commits dozens of times.

memo alone would not have helped, because navigateToTurn was rebuilt on
every render and broke prop identity, so it moves into useCallback.
2026-08-27 13:08:17 +08:00
Yichen Jiang
32ddfcd89c fix(subprocess): read the process table once per terminal poll
MacProcessInspector answered the descendant tree and every member's
liveness with its own `/bin/ps` fork, so one readiness poll cost N+1
full table reads for N tracked descendants. With execFileSync on that
path and a 50 ms poll interval, any command spawning two or more
children saturated the host event loop until it exited.

ProcessInspector.snapshot() now returns one ProcessSnapshot that
answers tree, session, and alive from a single observation, and
signalProcess takes the caller's observation so its PID-reuse fence
does not re-read the table per member.
2026-08-27 13:06:12 +08:00
Dudu-0223
e49e7202c1 fix: align model selection with current settings remotes 2026-08-27 12:18:05 +08:00
Yichen Jiang
db14361372 test(web): scope the aria age normalizer to the region that needs it
Collapsing every relative-time bucket to `{{age}}` reached the session-tree
goldens, where a literal age is the assertion: a fresh row reads `now` and an
older one does not. Six e2e files failed, two of them by aborting mid-scenario
and leaving their replay fixtures half-consumed.

`captureStableAria` now takes the rule as an opt-in, and only the reference
menu — whose rows are dated from the live Host list — asks for it.

Refs #3154
2026-08-27 12:10:52 +08:00
Dudu-0223
aad90d5cf3 fix(ui-settings-plugins): preserve model selection drafts 2026-08-27 12:00:02 +08:00
Dudu-0223
cbacceca4b fix(ui-settings-plugins): place Subagent after Agent loop 2026-08-27 12:00:02 +08:00
Dudu-0223
d5787b1847 test(web): expect plugin cards to collapse after save 2026-08-27 12:00:02 +08:00
Dudu-0223
4cc1f5e0ff fix(ui-settings-plugins): relax Subagent card layout 2026-08-27 12:00:02 +08:00
Dudu-0223
a7614f971e fix(subagent): omit undefined scoped fixture options 2026-08-27 12:00:02 +08:00
Dudu-0223
1c0e46870c test(subagent): keep scoped fixture config explicit 2026-08-27 12:00:02 +08:00
Dudu-0223
bf7020ade2 test(subagent): migrate model selection fixtures 2026-08-27 12:00:02 +08:00
Dudu-0223
a5cc8a2186 fix(notices): resolve current installed dependency versions 2026-08-27 12:00:02 +08:00
Dudu-0223
5a5e1b7373 test(ui-settings-plugins): cover provider model grouping 2026-08-27 12:00:02 +08:00
Dudu-0223
0b2f476071 fix(ui-settings-plugins): align Subagent configuration card 2026-08-27 12:00:02 +08:00
Dudu-0223
a130273434 test(subagent): type provider route defaults fixture 2026-08-27 12:00:02 +08:00
Dudu-0223
3a146064a4 fix: address subagent model selection review 2026-08-27 12:00:02 +08:00
Dudu-0223
9fae988691 test(sdk): expect model discovery off by default 2026-08-27 12:00:02 +08:00
Dudu-0223
f2bb5cef05 fix(snapshot): stabilize workflow prompt order 2026-08-27 12:00:02 +08:00
Dudu-0223
1ea72339fd fix(web): close model switch review gaps 2026-08-27 12:00:02 +08:00
Dudu-0223
7c626fb5d2 fix(subagent): gate model selection with explicit allowlist 2026-08-27 12:00:02 +08:00
Dudu-0223
ebe8d4db1c test(web): configure subagent model allowlist 2026-08-27 12:00:01 +08:00
Dudu-0223
aefc083be7 feat(subagent): authorize selectable child models 2026-08-27 12:00:01 +08:00
Dudu-0223
f887a8f907 fix(web): move subagent model switch to Plugins 2026-08-27 12:00:01 +08:00
Yichen Jiang
c8e8f8249f fix(web): date @ session rows by last activity, not creation
The Host session list already carries each session's `updatedAt`, which is
the number its own rows show; reading it there keeps the two surfaces from
disagreeing and avoids making a context capability depend on the BFF
assembly that owns the `sessionListMetadata` projection. A session the list
does not carry falls back to the candidate's creation time.

Refs #3154
2026-08-27 11:50:52 +08:00
CreatixChu
f1344a4077 Merge pull request #3045 from deepseek-harness/worktree/feedback-otel-enable
feat(bundle): default session telemetry to feedback-gated sharing
2026-08-27 11:47:02 +08:00
Yichen Jiang
97e0299f74 feat(web): trim @ mention rows and cut their discovery cost
Session candidates labelled from projection checkpoints instead of a full
log fold per keystroke, with the uncheckpointed remainder folded once and
memoized while its log stays cold. The file index keeps answering while an
invalidated traversal rebuilds behind the caret, and its default exclusions
now cover build outputs so deep sources stay reachable.

Rows carry only what distinguishes them: a file names its parent directory,
a session names its workspace only when that workspace is not the current
one, and a drilled listing names none because its new breadcrumb does.

Resolves #3180
Related to #3154
2026-08-27 11:42:06 +08:00
Chinesezjc
2413eab847 ci: isolate non-Windows pnpm setup per run attempt
Stacked on #3115: keep its windows-* setup-pnpm-js-<run_id>-<run_attempt>-<job>
destination, and extend the same isolation to non-Windows jobs in ci.yml
and ci-master.yml with setup-pnpm-<run_id>-<run_attempt>. This prevents
sequential self-hosted Windows jobs from tripping over a stale locked
pnpm.exe/reflink native module.
2026-08-27 11:33:27 +08:00
creatixchu
6107e10c25 test(web): refresh feedback release golden 2026-08-27 11:32:23 +08:00
Yichen Jiang
94db8e881b fix(web): render readable ask-user transcripts 2026-08-27 11:28:59 +08:00
creatixchu
25ae5ae6e0 Merge remote-tracking branch 'origin/master' into worktree/feedback-otel-enable 2026-08-27 11:19:57 +08:00
Chinesezjc
4ed5303f41 Merge pull request #3115 from deepseek-harness/fix/remove-transform-corpus
fix(ci): Windows pnpm setup isolation and spawn budget alignment
2026-08-27 11:14:03 +08:00