Commit Graph
10303 Commits
Author SHA1 Message Date
Jiaying Ding c22337a71e Update hero.expected.md 2026-08-06 17:59:42 +08:00
Jiaying Ding 9a9bfbf306 Update lifecycle-chrome.e2e.ts 2026-08-06 17:51:23 +08:00
Tianyi Cui e69eb9830e Merge pull request #1707 from deepseek-harness/feat/session-completed-dot
feat(web): done dot on sessions that finished while unviewed
2026-08-06 17:48:18 +08:00
creatixchu 84a6bae1c7 fix(web): drop the branch action from user and steering bubbles
The branch control on user and consumed-steering bubbles could enable
only when a completed turn ended with no node after the message at all,
so readers saw a permanently unavailable control whose tooltip promised
a state it could not reach. An enabled one would mislead anyway: a fork
at a message seq cuts at the containing turn/end and takes the answer
along, the opposite of the branch-to-re-ask reading a control on one's
own bubble suggests.

MessageItem loses its fork props, PendingSteeringBubble loses the
showBranch special case, and messageBranchSeqs narrows to
assistantBranchSeqs: only a completed turn's transcript tail that is
the turn's own content-text assistant may fork. A steered turn keeps
its fork point under the settled answer, because fork is a log-prefix
cut and the steer is model-visible history the child inherits.

Web aria goldens drop the user-bubble disabled-branch row and its
hidden explanation text; the nested-subagent golden also loses the one
enabled user-tail fork handle, a loss the decision note accepts.
2026-08-06 17:46:18 +08:00
Jiaying Ding 9bb0aecb92 Update hmr-live.e2e.ts 2026-08-06 17:41:54 +08:00
Jiaying Ding 6515988ec7 Update startup-auto-selection.e2e.ts 2026-08-06 17:40:48 +08:00
Turtle ab94a2f7d6 refactor(telemetry): centralize the default mode 2026-08-06 17:39:43 +08:00
Yichen Jiang e43e4f187e fix(web): satisfy provider model gates 2026-08-06 17:31:25 +08:00
Turtle ef30572e63 fix: retire leftovers of the removed $DSH_HOME/config.yaml personal overlay
The profile rework left references to the old entry modes behind. Renames
the user patch-layer API and its spec file (watchPersonalPatches ->
watchUserPatches, personal-config.spec.ts -> user-patches.spec.ts) and
retargets the prose that still named `config.yaml`, `--config`, raw-config
mode, and surface overlays: repository-plugin and mcp-memory READMEs, the
credentials-local anchor into app-boot, vendor manifest items 12-13, the
vendored include/hmr comments, and install.sh.

Restores the boot-failure guard the rework dropped with raw mode: the
built-bin case now boots `--profile web --patch <invalid>` and asserts the
settled diagnostic and exit 1, so the HMR initial-scan deadlock stays
covered; its orphaned raw fixture is renamed and the unused one deleted.
The superseded personal-config Agent Note and its superseding profile note
are now cross-linked.
2026-08-06 17:28:58 +08:00
Turtle 20acfdb71d docs: tutorial for packaging and installing a plugin bundle
Adds docs/user/develop/basic/publish.md (+ zh pair, website entry) to the
basics path: the bundle-vs-profile manifest split, dsh plugin add into a
profile, the five-layer loading order, and the GitHub-install build-script
catch — git specs ship sources, so the author owns a self-contained prepare
script and the user owns an allowBuilds allowance that is install-time code
execution; built tarballs and npm need neither.
2026-08-06 17:28:40 +08:00
Turtle 62d0f26fd6 refactor(cli)!: namespace the profile and bundle manifests under dsh.profile and dsh.bundle
A profile manifest and a bundle manifest are different kinds and shared one
flat `dsh` section: `dsh.plugins` listed bundles (not plugins) and `dsh.patch`
declared a bundle's layer. Each kind now names its role — a bundle declares
`dsh.bundle.patch`, a profile declares `dsh.profile.bundles` — so a
package.json states which role it plays and the list name matches its contents.

`DEFAULT_PROFILE_PLUGINS` becomes `DEFAULT_PROFILE_BUNDLES`, and
`DshManifestSection` splits into `DshBundleManifest`/`DshProfileManifest`.
Pre-release: no compatibility shim; turtle-ui moved with it (bd5ff10).
2026-08-06 17:28:30 +08:00
Yichen Jiang a667d2cd64 fix(web): address skill row review feedback 2026-08-06 17:21:13 +08:00
GeeeekExplorer ccc06f4e61 Merge branch 'master' into feat/session-completed-dot 2026-08-06 17:10:36 +08:00
_Kerman d0224d239c Merge remote-tracking branch 'github/master' into feat/agent-event-payload
# Conflicts:
#	docs/core-data-structures/core.i18n.yaml
2026-08-06 17:10:01 +08:00
imccyu 05f092870b Merge pull request #1776 from deepseek-harness/web-dist-chunk-layout
build(web): split the shell dist into index and vendor chunks with langs/ and fonts/ dirs
2026-08-06 17:05:11 +08:00
Yichen Jiang 66b136e6e3 Merge remote-tracking branch 'origin/master' into worktree/provider-credential-lifecycle
# Conflicts:
#	packages/client/ui-models/README.i18n.yaml
#	packages/client/ui-models/README.md
#	packages/client/ui-models/README.zh.md
#	packages/client/ui-models/src/client/ModelsSection.tsx
#	packages/client/ui-models/src/client/ProviderEditor.tsx
2026-08-06 16:54:33 +08:00
GeeeekExplorer ed3450b337 chore: refresh PR merge ref after branch rewrites 2026-08-06 16:53:34 +08:00
Yichen Jiang bce4a038c9 Merge remote-tracking branch 'origin/master' into claude/unified-environment-credentials-c8841a
# Conflicts:
#	docs/config-catalog.md
#	packages/llm/llm-pi-ai/src/config.ts
#	packages/llm/llm-pi-ai/src/index.ts
#	packages/llm/llm-pi-ai/tests/sdk-options.spec.ts
2026-08-06 16:52:19 +08:00
GeeeekExplorer 907f892094 Merge branch 'master' into feat/session-completed-dot 2026-08-06 16:52:04 +08:00
Yichen Jiang f2050bfd1e fix(web): surface provider credential status 2026-08-06 16:44:04 +08:00
creatixchu 6902b51fea fix(web): address review on the turn-tail actions gate
Correct the Agent Note's consequence: a running turn withholds the footer
below its own trigger bubble, while every earlier completed turn keeps its
seat — which the package test already asserts.

Give the running-phase barrier an explicit budget: it is armed before the
park and awaited after the stop click, so the 30s replay default left no
headroom for the marker poll, the UI polls, and two aria captures.

Number the running-turn test's boundary seqs like the log does, with each
turn/end strictly after its own nodes.
2026-08-06 16:42:41 +08:00
creatixchu 53e210348d fix(web): grant turn-tail IconActions only after the turn ends
`assistantActionsSeqs` picked the last content-text assistant of each turn
from the finalized transcript alone. That quantity is stable only once the
turn closes: while a turn is still producing steps, the narration written
before a tool call is the last content assistant so far, so copy, branch,
and the clock appeared under an intermediate sentence for as long as the
tool ran and then moved down to the next step's text.

Pass `ConversationSnapshot.turnEnds` into the derivation and grant the row
only inside a turn that has a durable `turn/end`. This is the same
completion fact the branch control and the `Ran for` label already read, so
the three parts of one row now agree; mid-turn narration owns nothing, and
the seat appears once under the settled answer.

`hasContentText` moves to chat-flow.ts so the ownership gate and
AssistantMarkdown's mount gate cannot drift apart.

apps/web/tests/turn-tail-actions.e2e.ts pins both states through the
assembled application: a hang sidecar on the second model call parks a turn
whose first step narrated before calling bash, and the two goldens hold the
parked flow and the flow after stopping.
2026-08-06 16:42:41 +08:00
Yichen Jiang 690f7ae035 Merge remote-tracking branch 'origin/master' into worktree/web-skill-tool-row 2026-08-06 16:41:57 +08:00
creatixchu 12e5fe0330 Merge master into fix/conversation-column-one-axis-scroll 2026-08-06 16:39:59 +08:00
imccyu 90f738a4c7 build(web): react-free vendor list for the incremental markdown pipeline, npmPackageOf scoped guard, chunk audit script 2026-08-06 16:38:25 +08:00
imccyu 193473dab2 doc(web): update the chunk-layout note for the react-free vendor invariant and the audit tool 2026-08-06 16:38:25 +08:00
imccyu 021074c0ee build(web): split the shell dist into index and vendor chunks with langs/ and fonts/ dirs 2026-08-06 16:38:25 +08:00
imccyu c1364a2f25 doc(web): agent note for the shell dist chunk split and directory layout 2026-08-06 16:38:25 +08:00
Yichen Jiang b13b0e2983 Merge pull request #1368 from deepseek-harness/claude/web-pi-ai-provider-form
feat(web): declare a provider and its models from the Models page
2026-08-06 16:37:14 +08:00
Hypatia May 03e509be8d Merge remote-tracking branch 'origin/master' into codex/unify-landlock-release 2026-08-06 16:36:01 +08:00
Turtle 4f595311f7 test: include feedback in Web command catalog snapshot 2026-08-06 16:32:46 +08:00
Turtle ccb0842cfc fix(telemetry): fail closed outside full mode 2026-08-06 16:27:27 +08:00
Jiaying Ding c6b581b4e8 test(ui): update hero headline expectations 2026-08-06 16:26:53 +08:00
Yichen Jiang 8eebf7dd40 test(web): pin the remaining markdown fixture's event times
Master stabilized two of the three hand-built markdown fixtures by spacing
their event times, so the stats line's LLM segment stops depending on how fast
the replay ran. `markdown-images` was left on the old shape and kept failing
for exactly that reason — a different test each run, always the same one-line
difference.

Pin it the same way and record the segment its golden now always shows. This
supersedes the normalizer that dropped those segments outright, reverted here:
pinning the fixture keeps a real part of the page in the goldens instead of
hiding it from every one of them, and master's two goldens already record it.
2026-08-06 16:24:20 +08:00
GeeeekExplorer 3b335ecc7c Merge branch 'master' into feat/session-completed-dot 2026-08-06 16:23:36 +08:00
Yichen Jiang 5e5fd977c5 Merge branch 'claude/pi-ai-model-discovery' into claude/web-pi-ai-provider-form 2026-08-06 16:18:57 +08:00
Yichen Jiang 2a790e6120 Merge branch 'claude/web-llm-pi-ai-config-385e24' into claude/pi-ai-model-discovery 2026-08-06 16:18:15 +08:00
Yichen Jiang be4c996d97 Merge remote-tracking branch 'origin/master' into claude/web-llm-pi-ai-config-385e24 2026-08-06 16:17:33 +08:00
Turtle 9db4372af8 fix: align feedback package publication files 2026-08-06 16:15:58 +08:00
Jiaying Ding c92a1da813 fix(ui): update hero headline copy 2026-08-06 16:10:18 +08:00
Turtle 928c99876e feat: add optional dsh badge skill provider 2026-08-06 16:03:29 +08:00
Turtle 7c021e705e Merge remote-tracking branch 'origin/master' into task/command-feedback-master 2026-08-06 16:02:56 +08:00
Turtle 96ac51f0c8 Merge origin/master into task/command-feedback-master 2026-08-06 16:02:25 +08:00
Turtle c21d3cfed8 Merge pull request #1772 from deepseek-harness/codex/stabilize-markdown-web-snapshots
test: stabilize markdown web snapshots
2026-08-06 15:59:31 +08:00
GeeeekExplorer ff2341a549 Merge branch 'master' into feat/session-completed-dot 2026-08-06 15:53:29 +08:00
Yichen Jiang 3e1c63b2ea test(web): stop the stats line's wall-clock segments from deciding a golden
`StatsLine` renders its LLM, tool-call, and throughput segments only while the
matching measurement exceeds zero, and all three are wall clock taken during
the replay. A machine that finishes a step inside one millisecond drops the
segment a slower one keeps, so a golden recorded what the recording machine's
speed was rather than what the page shows. Goldens across this suite already
disagreed about the LLM segment for that reason, and CI failed on whichever
test landed on a slow enough runner — a different test each run, always the
same one-line difference.

Tokenizing the values was never enough, because presence is what moves. The
normalizer now drops those segments outright, each taking one adjacent
separator so nothing is left holding a dangling separator or a doubled space,
and the recorded goldens are normalized the same way. `TTFT avg` stays: it
gates on a step count the fixture determines.
2026-08-06 15:47:42 +08:00
imccyu bc7f240cb3 Merge pull request #1753 from deepseek-harness/feat/md-incre-2
feat: markdown 增量解析
2026-08-06 15:42:54 +08:00
Turtle e24ed27f5f test: stabilize markdown web snapshots 2026-08-06 15:37:40 +08:00
Turtle b10368a8d5 refactor(telemetry): strongly type sharing mode 2026-08-06 15:34:36 +08:00
Yichen Jiang a6a0788108 Merge remote-tracking branch 'origin/master' into claude/unified-environment-credentials-c8841a 2026-08-06 15:28:40 +08:00