Commit Graph
10018 Commits
Author SHA1 Message Date
Yichen Jiang 5e892aa6dc Merge branch 'stack/agent-profiles-3-wire' into stack/agent-profiles-5-web-ui
# Conflicts:
#	packages/host/apiproxy/tests/api-proxy-agent-preset.spec.ts
2026-08-08 15:54:16 +08:00
Yichen Jiang a21644af59 fix(web-app,agent-presets): keep the goal service on the host plane
The Gateway serves the goal domain as Remote endpoints, and a Remote method
picks its receiver Service from a generated descriptor — `clear(agent, ref)`
takes its agent as a PARAMETER, so the invocation is direct and the receiver
resolves on the host. Behind the preset's entry-local realm there was nothing
to resolve, and every browser goal call answered `service-unavailable`: the
composer's Clear goal button left the bar on screen.

That is the `bash-env` criterion read from the other side. Injection is not the
only host relationship a Service can have; being READ from a host row is one
too. The registry is keyed by session, so one host instance serves every
session exactly as it did before presets. The preset keeps the model-facing
tool, which is the choice a preset is for.

Also reverts the cold-transcript presenter resolve: resuming an agent to reach
its presenters made the context meter drop its cache and token counts on every
cold-opened session, trading one silent degradation for another. The card
degradation it addressed is diagnosed and still open.
2026-08-08 15:53:39 +08:00
Yichen Jiang 43b2673b69 Merge branch 'stack/agent-profiles-3-wire' into stack/agent-profiles-5-web-ui
# Conflicts:
#	packages/host/apiproxy/tests/api-proxy-agent-preset.spec.ts
2026-08-08 15:28:41 +08:00
Yichen Jiang 1c80023b12 fix(apiproxy): give a cold transcript read the agent its presenters live in
A preset registers its tools into the agent's OWN layer, so `session.history`
served while no agent exists found no presenter at all and every card degraded
to the generic renderer — silently, because a viewless entry is also what a
tool with no presenter produces. The web client opens a session by reading its
transcript, so this was the ordinary path, not an edge: the write row lost its
diff card, and with it the `locations` the produced-files row derives from.

The read now resolves the agent through the same deduplicated resume every
other session method takes, but only when a roster is composed: a deployment
without presets keeps its tools on the host layer, which needs no agent to
address, and keeps the storage-only read unchanged. A resolution failure stays
a successful read.
2026-08-08 15:27:57 +08:00
Yichen Jiang beec364e04 Merge branch 'stack/agent-profiles-3-wire' into stack/agent-profiles-5-web-ui
The Client API carrier's `agentPresets` member was the one member of its class
without an `IApiClient[...]` annotation. Inferring it inlined `AgentPresetEntry`
into the emitted declaration by the specifier TS picks — the host `index.ts` —
dragging the whole gateway, and with it the host `Context` merges, into every
Client program importing the carrier. Annotated like its siblings.

`ApiRemoteAgentOptions.setup` now takes the inspected session rather than its
header alone: this layer resolves a resumed session's preset from the LOG,
because a session that switched while blank ran its turns under the newer
composition and the header is written once at creation.

Conflicts:
	apps/web/tests/snapshots/*/*.expected.md
	packages/client/ui-conversation/src/client/skeleton/InputBar.tsx
	packages/host/apiproxy/src/api-proxy.ts
	scripts/doc-budgets.manifest.json
2026-08-08 15:00:31 +08:00
Yichen Jiang c5ca12eabd Merge branch 'stack/agent-profiles-1-seam' into stack/agent-profiles-3-wire
master extracted this layer's inline cold-resume resolver into
@deepseek-ai/dsh-api-remotes, whose `setup` was a fixed AgentSetup. A resumed
session composes the preset ITS header recorded, so the option becomes a
function of that header; the resolver builds the setup before the published
re-checks so those stay adjacent to `resume`.

Conflicts:
	docs/cordis-catalog/services.md
	docs/module-graph.md
	packages/host/apiproxy/package.json
	packages/host/apiproxy/src/api-proxy.ts
	pnpm-lock.yaml
2026-08-08 14:26:38 +08:00
Yichen Jiang 2afdc68fab chore(docs): regenerate the graphs and re-record the pairings after the master merge 2026-08-08 14:04:53 +08:00
Yichen Jiang f517d29723 Merge remote-tracking branch 'origin/master' into stack/agent-profiles-1-seam
# Conflicts:
#	docs/capability-seams.md
#	docs/event-producer-consumer.md
#	packages/README.i18n.yaml
#	packages/ui/app-boot/README.i18n.yaml
#	packages/ui/app-boot/src/index.ts
#	scripts/doc-budgets.manifest.json
2026-08-08 14:00:34 +08:00
imccyu 0284e9c0b6 Merge pull request #1997 from deepseek-harness/feat/tsbuild2
build: order Host-generated Remote contracts before Client compilation
2026-08-08 12:53:01 +08:00
imccyu 8fc9032d71 test: refresh translation prompt snapshot 2026-08-08 12:36:50 +08:00
imccyu 863abcb427 build: enforce split project reference faces 2026-08-08 12:25:41 +08:00
imccyu d85d0806cd fix(build): align Client build metadata 2026-08-08 12:02:58 +08:00
imccyu 2a7c1175be fix(docs): keep doc typecheck on Host sources 2026-08-08 11:52:18 +08:00
imccyu 8865548ee2 docs: explain generated Remote build order 2026-08-08 04:20:39 +08:00
imccyu 9c3d5725a5 build: order Host and Client compilation faces 2026-08-08 04:20:39 +08:00
Tianyi Cui 8158a0e63a Merge pull request #1979 from deepseek-harness/worktree/derive-compaction-replay-1971
test(snapshot): derive compaction replay from persisted summaries
2026-08-08 01:44:11 +08:00
Tianyi Cui e46b082fee test(snapshot): derive compaction replay from logs 2026-08-08 01:32:27 +08:00
Tianyi Cui a29a0a4773 Merge pull request #1547 from deepseek-harness/claude/unified-environment-credentials-c8841a
feat(config): rank every configuration source and bound what a discovered file may set
2026-08-08 00:43:42 +08:00
Tianyi Cui 510976351c test(telemetry): restore expression-tag coverage 2026-08-08 00:34:42 +08:00
Tianyi Cui b166b837d8 Merge origin/master at bc7849b97b 2026-08-07 23:57:47 +08:00
Tianyi Cui f00f45e3f9 Merge origin/master at f1402327fa 2026-08-07 23:57:23 +08:00
Tianyi Cui 698d65de2d Merge pull request #1965 from deepseek-harness/worktree/archive-agent-notes-aggressive-20260807
docs(notes): aggressively archive low-value records
2026-08-07 23:53:34 +08:00
Tianyi Cui 8315bfdc1f fix(notes): address archive review findings 2026-08-07 23:45:28 +08:00
Tianyi Cui 62ae990c27 cleanup(config): consolidate source ownership rationale 2026-08-07 23:43:15 +08:00
Tianyi Cui b5fbcaccf8 cleanup(config): localize bootstrap policy to app boot 2026-08-07 23:37:53 +08:00
Tianyi Cui d0e052dd83 cleanup(environment): keep one lookup order 2026-08-07 23:33:11 +08:00
Tianyi Cui 2c532f3b2c cleanup(environment): remove unused layer inventory 2026-08-07 23:30:03 +08:00
Tianyi Cui 95366f6197 fix(cli): parse commands before loading environment 2026-08-07 23:28:17 +08:00
Tianyi Cui 4ee93f7944 fix(config): cover shipped bundle source ownership 2026-08-07 23:26:39 +08:00
Tianyi Cui e901d9fcca Merge pull request #1785 from deepseek-harness/fix/update-explore-unknown-copy
fix(ui): update hero headline copy
2026-08-07 23:13:37 +08:00
Tianyi Cui 1c23f196fe fix(ui): use official hero title casing 2026-08-07 23:05:55 +08:00
Tianyi Cui 356ded2ca7 Merge branch 'master' into worktree/archive-agent-notes-aggressive-20260807 2026-08-07 22:57:51 +08:00
Tianyi Cui 06a449b38f Merge pull request #1550 from deepseek-harness/worktree/pr-to-issue-lifecycle
fix(infra): advance resolving Issue status from PRs
2026-08-07 22:53:44 +08:00
Tianyi Cui db0133b4c7 docs(notes): archive low-value records 2026-08-07 22:52:19 +08:00
Tianyi Cui 38c373af65 fix(ci): keep issue policy test discovery focused 2026-08-07 22:41:09 +08:00
Tianyi Cui 2cfea8ab67 Merge branch 'master' into worktree/pr-to-issue-lifecycle 2026-08-07 22:25:01 +08:00
Tianyi Cui 356453d6cb cleanup(config): remove literal credential compatibility residue
Adapter schemas now carry only credential references, but the Models join, onboarding readiness, shipped overlays, SDK scaffolding, fixtures, and active decision prose still treated a redacted literal apiKey as a supported compatibility state. That residue made an unsupported field look contractual and pinned Schemastery silent-dropping as behavior.

Delete those branches and examples, and let compositions and scaffolds use adapter-owned reference and environment resolution. Do not add a tombstone validator or change generic unknown-key behavior: literal adapter credentials have no migration contract to preserve.
2026-08-07 22:04:04 +08:00
Tianyi Cui ac154b2dfa test(cli): cover Harness-home credential loading in built entry
Source-level environment and credential tests prove the individual loaders, but they do not prove that the published launcher runs them before Loader evaluates a shipped profile.

Start the built dsh binary with the shipped base bundle and a test-only LLM probe. Put the endpoint in $DSH_HOME/.env, put the bearer token only in $DSH_HOME/.credentials.yaml, remove inherited DeepSeek overrides, and assert the mock request received both without leaking the token. This covers launch order, profile composition, the adapter, and the credential seam without a real API.
2026-08-07 22:04:04 +08:00
Tianyi Cui 3dfb16008d docs(config): align environment and credential contracts
Code already treats $DSH_HOME/.env as ordinary launch environment and stores managed credentials in .credentials.yaml, but public docs still described the old store, old precedence, removed literal adapter keys, and the deleted TUI. That directed users to the wrong file and overstated the supported configuration surface.

Update the existing English and Chinese owners in place, document inherited > managed > project > user credential resolution, and record the loadLayeredEnv export. Regenerate only pairing records and the source-line catalog; add no new section or site route.
2026-08-07 22:04:04 +08:00
imccyu 1a7ac8fee1 Merge pull request #1777 from deepseek-harness/stack/typert-remote-gateway-1-infrastructure
feat: add TypeRT remote gateway infrastructure
2026-08-07 21:55:46 +08:00
imccyu 71ebeaa559 fix(client-runtime): localize remote namespace dependency 2026-08-07 21:47:18 +08:00
imccyu ddd43ec371 test(api-gateway): repair CI fixtures 2026-08-07 21:47:18 +08:00
imccyu 00a559bf2b test(api-gateway): assert withdrawn method failure 2026-08-07 21:47:18 +08:00
imccyu 8b51a1e95c test(api-gateway): cover namespace rollback paths 2026-08-07 21:47:18 +08:00
imccyu 14ea7e134d fix(api-remotes): await namespace assembly startup 2026-08-07 21:47:18 +08:00
imccyu 5c2625c26e docs(typert): align client remote type mapping 2026-08-07 21:47:18 +08:00
imccyu 55ccfb5a48 fix(api): preserve dynamic defaults after rebase 2026-08-07 21:47:18 +08:00
imccyu 8bbbb6fe59 fix(api-gateway): compose scoped remote fixture types 2026-08-07 21:47:18 +08:00
imccyu d362cdb54f refactor(typert): rename RemoteContext to RemoteScope 2026-08-07 21:47:18 +08:00
imccyu d6ffd87c5f refactor(api): expose traced remote namespaces 2026-08-07 21:47:18 +08:00