12410 Commits

Author SHA1 Message Date
Yichen Jiang
9ff7eb84f0 docs: propose API key format validation 2026-08-06 20:35:02 +08:00
Yichen Jiang
b5600e9376 Merge remote-tracking branch 'origin/master' into worktree/align-core-web-rl-prompt
# Conflicts:
#	apps/cli/reference/README.i18n.yaml
#	apps/cli/reference/README.md
#	apps/cli/reference/README.zh.md
#	apps/cli/src/app-cli-entry.ts
#	apps/cli/src/dump-config.ts
#	apps/cli/src/web.ts
#	apps/cli/tests/built-bin.e2e.ts
#	apps/cli/tests/web-prompt-context.spec.ts
#	apps/web/tests/scaffold.ts
2026-08-06 20:34:57 +08:00
pku-xht
6f2317e578 fix(schedule): reuse same-turn time context 2026-08-06 20:32:06 +08:00
Yichen Jiang
dd473870dd fix(web): persist theme preference in settings 2026-08-06 20:28:15 +08:00
Yichen Jiang
2426be893a fix(scripts): let the documentation site carry its own images
An image the manifest does not publish was rewritten to a raw.githubusercontent
URL, which serves a private repository to nobody: raw answers 404 unauthenticated,
and a github.com session does not authenticate it. Every image on the site was
broken for every reader, and no gate could say so — link checking asks whether
the file exists in the repository, not whether a site reader can fetch it.

The projector now copies a referenced image into the generated tree beside the
page and points the reference at it, so Vite bundles it like any other site
asset and repository visibility cannot reach the published page. The copy lands
beside the page so one relative URL is right from both locale trees and a page's
assets leave with the page; two sources projecting onto one path throw rather
than letting the last copy win.

Canonical Markdown keeps writing ordinary repository-relative paths, so the same
file still renders when read in the repository.

The guide this was found through is renamed to its subject: 配置模型.
2026-08-06 20:21:17 +08:00
fz
2b82225543 test(workspace-context): align source form metadata 2026-08-06 20:21:15 +08:00
fz
6030af63fd Merge branch 'codex/fix-compact-agents-reinjection' into codex/fix-resume-baseline-dedup
# Conflicts:
#	examples/acp-agent/tests/snapshots/code-mode-workspace-context/session.jsonl
#	examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
2026-08-06 20:17:41 +08:00
Turtle
6a32047e77 Merge pull request #1720 from deepseek-harness/feat/profile-plugin-management
feat(cli)!: profile-based plugin management for dsh
2026-08-06 20:17:02 +08:00
fz
3acdf4a333 Merge remote-tracking branch 'origin/master' into codex/fix-compact-agents-reinjection
# Conflicts:
#	docs/architecture.i18n.yaml
#	examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
2026-08-06 20:13:04 +08:00
Yichen Jiang
50c46be948 fix(cli): isolate Web runtime context from headless 2026-08-06 20:11:44 +08:00
pku-xht
32c6866adf fix(time-context): preserve empty pre-step decisions 2026-08-06 20:09:06 +08:00
Turtle
a51b88d2aa Merge remote-tracking branch 'origin/master' into feat/profile-plugin-management
# Conflicts:
#	apps/cli/src/headless.ts
#	docs/event-producer-consumer.md
#	packages/host/apiproxy/README.i18n.yaml
2026-08-06 20:03:22 +08:00
Yichen Jiang
a231b56eba docs(user): show the Models page in the provider guide
The page told a reader to open Settings → Models and named the two buttons,
which is thin help for someone who has never seen the page. Two screenshots
per language carry it instead: the Models page with its provider card and both
add actions, and the custom-provider form with the fields it asks for.

They are the first images under docs/. The projector rewrites a
repository-relative image to a raw.githubusercontent URL pinned at the built
commit, so nothing is copied into the site bundle, and the pairing gate takes
no signature from image nodes — which is what lets each language carry its own
localized capture.
2026-08-06 19:58:31 +08:00
Yichen Jiang
0cf1ba7f87 fix(web): align core profile with RL prompt 2026-08-06 19:52:16 +08:00
creatixchu
59c1b9c5ac Merge master into fix/conversation-column-one-axis-scroll 2026-08-06 19:49:11 +08:00
creatixchu
7c338cc3b9 Merge remote-tracking branch 'origin/master' into worktree/turn-tail-actions 2026-08-06 19:47:08 +08:00
ZiyaZhang
3742214226 Merge remote-tracking branch 'upstream/master' into feat/web-workspace-file-links
# Conflicts:
#	apps/web/tsconfig.json
#	packages/client/connection/README.i18n.yaml
#	packages/client/connection/README.zh.md
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-conversation/src/client/chat/AssistantMarkdown.tsx
#	packages/client/ui-conversation/src/client/chat/ChatView.tsx
#	packages/client/ui-conversation/src/client/chat/ToolRow.module.css
#	packages/client/ui-conversation/src/client/chat/chat-flow.ts
#	packages/client/ui-conversation/tests/chat-view.spec.tsx
#	packages/host/apiproxy/src/native-path-opener.ts
#	tsconfig.host.json
2026-08-06 04:44:13 -07:00
imccyu
6afca00a77 Merge pull request #1801 from deepseek-harness/worktree-projerr
fix(token-meter): fold unpriced surface replacements neutrally instead of throwing
2026-08-06 19:43:51 +08:00
imccyu
ed8431cdd0 fix: projection error 2026-08-06 19:36:15 +08:00
pku-xht
cd59acd6f6 refactor(schedule): simplify request zone authority 2026-08-06 19:33:19 +08:00
ZiyaZhang
87d0fc6fc4 cleanup: drop leftovers from the retired HTTP-serving revision 2026-08-06 04:31:34 -07:00
Turtle
b9f81dcd5d Merge latest feedback base into telemetry stack
# Conflicts:
#	packages/telemetry/session-telemetry/src/coordinator.ts
2026-08-06 19:24:55 +08:00
Turtle
4d241d37e4 Merge pull request #1599 from deepseek-harness/codex/web-slash-fuzzy-search
feat(web): add fuzzy slash command discovery
2026-08-06 19:21:47 +08:00
Yichen Jiang
318142ebe9 docs(user): add a model-provider configuration guide
The guide tier said how to compose plugins with `cordis.yml` but never how to
reach a provider other than DeepSeek, so the two things a person actually does
— give a catalog provider its key from the Models page, and declare a gateway
the installed catalog does not ship — had no home outside package READMEs.

The new page covers both entry points and the relationship between them: the
Models page and `$DSH_HOME/settings.yaml` write one document, over a
`llm-pi-ai` adapter that mounts dormant until that document names routes. It
carries the settings shape, catalog replacement and its capacity fallbacks,
credential references, and the four failures a misconfigured route produces,
and links the generated config catalog for exhaustive fields.

It sits between Quick start and Configuration in the guide sidebar, which is
where a reader hits the question.
2026-08-06 19:21:04 +08:00
Turtle
f10b354c80 Merge remote-tracking branch 'origin/master' into codex/dsh-badge-plugin
# Conflicts:
#	docs/event-producer-consumer.md
2026-08-06 18:58:51 +08:00
Turtle
4dede454ed fix: address dsh badge review feedback 2026-08-06 18:54:53 +08:00
Turtle
da732cad72 Merge remote-tracking branch 'origin/master' into task/command-feedback-master 2026-08-06 18:38:35 +08:00
Jiaying Ding
2e943a1643 Update details-session-lifecycle.e2e.ts 2026-08-06 18:31:44 +08:00
_Kerman
5393ccd2ee Merge pull request #1738 from deepseek-harness/feat/agent-event-payload
refactor(agent): unify agent-scoped event signatures as payload objects
2026-08-06 18:13:24 +08:00
creatixchu
e116b34d08 Merge remote-tracking branch 'origin/master' into worktree/turn-tail-actions
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-08-06 18:11:05 +08:00
Turtle
f8c3d3fff4 Merge updated feedback base into telemetry stack
# Conflicts:
#	.agents/notes/implemented/feature/2026-07-23-session-telemetry-otel-revival.i18n.yaml
#	.agents/notes/implemented/feature/2026-07-23-session-telemetry-otel-revival.zh.md
#	.agents/notes/implemented/feature/2026-07-28-feedback-command.i18n.yaml
#	docs/config-catalog.md
#	docs/event-producer-consumer.md
#	docs/module-graph.md
#	examples/package.json
#	packages/feedback/command-feedback/README.i18n.yaml
#	packages/telemetry/README.i18n.yaml
#	packages/telemetry/README.md
#	packages/telemetry/README.zh.md
#	packages/telemetry/session-telemetry-otel/README.i18n.yaml
#	packages/telemetry/session-telemetry-otel/README.md
#	packages/telemetry/session-telemetry-otel/README.zh.md
#	packages/telemetry/session-telemetry-otel/package.json
#	packages/telemetry/session-telemetry-otel/src/index.ts
#	packages/telemetry/session-telemetry-otel/tests/otel.spec.ts
#	packages/telemetry/session-telemetry/README.i18n.yaml
#	packages/telemetry/session-telemetry/README.zh.md
#	pnpm-lock.yaml
2026-08-06 18:08:45 +08:00
_Kerman
b6b643c378 Merge branch 'master' into feat/agent-event-payload 2026-08-06 18:07:13 +08:00
imccyu
0c719179ae Merge pull request #1793 from deepseek-harness/fix/hero-workspace-stable-tree
fix(ui): preserve Hero tree when selecting a Workspace
2026-08-06 18:07:03 +08:00
Jiaying Ding
342229dc14 Update plan-active.expected.md 2026-08-06 18:02:23 +08:00
imccyu
f9f72e2f09 fix(ui): preserve Hero tree when selecting a Workspace 2026-08-06 18:01:11 +08:00
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
ZiyaZhang
fe2703b641 fix(workspace-context): restore the no-unrepresented-commit gate after master merge
The master merge rewrote reconcileInstructionContext and dropped this
branch's gate: when no transition survives rendering (tiny budgets
produce notice-only text), emit nothing and commit nothing so the next
pass retries. Restore it, align the inbox one-byte test with that
contract (an unrepresentable change is held back, not committed at 1
byte), and move the nested-retry test's probe assertions to sync time
where reconciliation now runs. Also restore master's markdown spec
casts lost in an earlier merge.
2026-08-06 02:13:43 -07: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