Commit Graph
12231 Commits
Author SHA1 Message Date
imccyu eca3090dfa fix: docs 2026-08-07 21:47:16 +08:00
imccyu 56af59b41d fix(typert): keep client registry bundle pure 2026-08-07 21:47:16 +08:00
imccyu 5ea6311949 test(api-gateway): cover client mount rollback 2026-08-07 21:47:16 +08:00
imccyu 0ad5885015 fix(typert): keep generator bootstrap self-contained 2026-08-07 21:47:16 +08:00
imccyu 2e1f9a5cea fix(typert): address remote gateway review 2026-08-07 21:47:16 +08:00
imccyu da1ebd2b68 refactor(goal): call entity methods through remote API 2026-08-07 21:47:16 +08:00
imccyu 2f619b1b88 docs: document TypeRT API-Gateway 2026-08-07 21:47:15 +08:00
imccyu ede278d0c7 fix(connection): mint RPC ids on insecure origins 2026-08-07 21:47:15 +08:00
imccyu e8f2ab89bb refactor(typert): bind remote services through base class 2026-08-07 21:47:15 +08:00
imccyu 1ea5507bf8 fix(typert): close remote gateway review gaps 2026-08-07 21:47:15 +08:00
imccyu 22bec5e63f feat(typert): propagate Remote cancellation 2026-08-07 21:47:15 +08:00
imccyu 9b63d72c94 fix(typert): harden remote reflection boundaries 2026-08-07 21:47:15 +08:00
imccyu 88385a658e docs(cordis): refresh gateway service location 2026-08-07 21:47:15 +08:00
imccyu cd566f26f5 test(client-remotes): cover shared API bundle chain 2026-08-07 21:47:15 +08:00
imccyu 36516e97b9 feat(connection): dispatch TypeRT remotes through shared API 2026-08-07 21:47:15 +08:00
imccyu 4eff751058 test(client): mount TypeRT remote assembly in fixtures 2026-08-07 21:47:15 +08:00
imccyu 9400926bdf feat(goal): add TypeRT gateway example 2026-08-07 21:47:14 +08:00
imccyu 61c2c15dc4 refactor(goal): own direct goal operations 2026-08-07 21:47:14 +08:00
imccyu 41677c3be0 fix(ci): preserve TypeRT contract build order on Windows 2026-08-07 21:47:14 +08:00
imccyu 9a0a9350c4 fix(typert): satisfy workspace static gates 2026-08-07 21:47:14 +08:00
imccyu 64a963da0b feat: add TypeRT remote gateway infrastructure 2026-08-07 21:47:14 +08:00
imccyu effd8e1ebd docs: add TypeRT remote gateway RFC 2026-08-07 21:47:14 +08:00
Tianyi Cui 09dc20e2f2 Merge pull request #1704 from deepseek-harness/worktree/add-web-pwa-manifest
feat(web): expose install and theme metadata
2026-08-07 21:43:21 +08:00
Tianyi Cui 55fca161e6 cleanup(config): remove textual process env audit
The gate treated a literal process.env substring search as repository-wide source-ownership enforcement. It missed equivalent syntax while matching comments and strings, so the allowlist projected a security guarantee the implementation could not provide.

Remove the scanner and its allowlist. Keep the independently useful shipped-config inline tripwire, and narrow both the module contract and bilingual Agent Note to its actual source-shape claim.
2026-08-07 21:05:04 +08:00
pku-xht d8a85dcafd refactor(schedule): derive marker section text type 2026-08-07 21:04:09 +08:00
pku-xht de3e0a5d1c fix(schedule): validate exact time-context marker shapes 2026-08-07 20:55:58 +08:00
Huanqi Cao 4c2d20dbf7 Merge remote-tracking branch 'origin/master' into feat/windows-pwsh-default 2026-08-07 20:54:35 +08:00
Huanqi Cao 431783426e test(cli): compose the real Windows shell roster through the shipped bundle layers
The resolver suite previously exercised only fixture patch lists, leaving
the real shipped windows.cordis.patch.yml and the bundle→windows→user
composition ordering untested on Linux CI. The new cases load a temp
profile whose bundle layers resolve from the real dsh-base/dsh-web-app
packages (app installation anchor), apply the platform layer through the
boot's own composeEntries algorithm with the platform injected, and
assert the win32 danger-full-access roster (eight disables, three
inserts, no warnings on the web profile). A second case pins POSIX
unchanged and the base-only-profile ui-permission no-match warning as
warned-but-harmless, matching the patch header's documented contract.
2026-08-07 20:50:36 +08:00
pku-xht e21f331078 docs(schedule): correct durable change callback timing 2026-08-07 20:41:43 +08:00
pku-xht 081b2819e3 test(web): supply time zones in default model fixture 2026-08-07 20:31:27 +08:00
ZiyaZhang 4c45355012 style(web): mention chips take the markdown anchor language
Link-blue at rest with hover underline, matching URL-promoted inline
code; an at-rest underline collides with monospace descenders inside
the code chip.
2026-08-07 05:06:21 -07:00
ZiyaZhang 7ef39dc4b0 refactor(deliverables): reuse the chain claim test for the mention vocabulary 2026-08-07 05:00:47 -07:00
imccyu dc7857746a Merge pull request #1828 from deepseek-harness/fix/npm-pub-2
fix(npm): drop stale default-config baseline probe
2026-08-07 19:53:48 +08:00
pku-xht 9dc4ad91fa fix(schedule): validate snapshot marker arrays 2026-08-07 19:47:12 +08:00
imccyu 2da1309836 fix: npm publish for profile 2026-08-07 19:43:40 +08:00
Yichen Jiang 6922a942a6 Merge remote-tracking branch 'origin/master' into worktree/persist-web-theme-settings
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/host/apiproxy/README.i18n.yaml
2026-08-07 19:39:45 +08:00
imccyu 56208886a8 Merge pull request #1860 from deepseek-harness/worktree/default-model-persistence
feat: the composer model switch becomes the default for new sessions
2026-08-07 19:37:07 +08:00
Yichen Jiang a352425d82 Merge remote-tracking branch 'origin/master' into worktree/persist-web-theme-settings
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/client/ui-theme/README.i18n.yaml
#	packages/host/apiproxy/README.i18n.yaml
2026-08-07 19:34:05 +08:00
Yichen Jiang e9f6d82b12 fix(locale): keep settings constants private 2026-08-07 19:30:22 +08:00
imccyu c631236a08 Merge pull request #1859 from deepseek-harness/fix/hero-preview-badge
feat(web): change preview badge position
2026-08-07 19:29:54 +08:00
Tianyi Cui 886dbfe67f Merge branch 'master' into worktree/add-web-pwa-manifest 2026-08-07 19:25:49 +08:00
Huanqi Cao 1ee773317c docs(bundle): complete the Windows pwsh default contract per review
- apps/cli/reference/README: state the win32 permission/sandbox/approval
  degradation so the workspace-write promise no longer misleads Windows users
- bundle README + agent note: give the complete bash-restore recipe (disable
  pwsh-local/tool-pwsh and re-enable bash-sandbox/tool-bash), since both
  executors register the same bash service and an incomplete recipe fails
  loud at load
- windows.cordis.patch.yml: header comment notes the recipe and that the
  ui-permission row belongs to dsh-web-app (base-only profiles get a
  harmless no-match warning)
- profile-boot.ts: rewrap composeProfile JSDoc
- re-record i18n hashes for the touched bilingual pairs
2026-08-07 19:21:49 +08:00
Huanqi Cao 94f61d29fa fix(scripts): register dsh-base windows.cordis.patch.yml in workspace constraints 2026-08-07 19:21:43 +08:00
pku-xht 9d73b527de fix(schedule): close concurrent durability gaps 2026-08-07 19:06:34 +08:00
Yichen Jiang b1074e60ab test(web): re-record the skill-tool-row golden for the resolved seat label
Master added this scenario while this branch was open, so its golden froze
the composer seat's "Select model" fallback. The scaffold's route-only
adapter (added here for fixture-less scenarios) makes the seat resolve the
model those scenarios actually route to, which is what the other eight
goldens on this branch already show. Only the two seat lines move.
2026-08-07 18:54:50 +08:00
pku-xht 76da9e3f9f docs(client): complete merged UI inventory 2026-08-07 18:22:07 +08:00
Yichen Jiang 209fb4d355 Merge remote-tracking branch 'origin/master' into worktree/default-model-persistence
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
#	packages/host/apiproxy/README.i18n.yaml
2026-08-07 18:18:40 +08:00
Yichen Jiang f3049e5663 fix(llm-pi-ai): describing a model must not fail on a bad profile level
`resolveModel` validated the profile's reasoning level against the exact
model and threw when it did not fit. That call builds the model catalog,
and the catalog build catches per PROVIDER — so one mis-set field took the
whole provider out of every picker behind a single error row, hiding even
the models that do support the level. Measured: `anthropic` set to `max`
threw for six of its eight models.

Describing what a model can do now reports an unusable profile level as no
default rather than throwing; the request path still refuses it, which is
where a bad configuration belongs. The existing spec asserted the old
throw and now asserts both halves of that split.

Known gap, left deliberately: a model that cannot take the route's level
still fails its first request while the picker shows 「Default」 for it,
because the request path keeps using the profile level as the fallback.
Reaching that needs a hand-written `settings.yaml` — the Models page no
longer writes the field — and the error names the model and the level, so
selecting a supported level is a way out. Closing it properly means giving
`AgentOptions` a `reasoningEffort` so compositions without a model picker
keep an entry point, then dropping the provider-scoped field altogether;
that is its own change.
2026-08-07 18:07:15 +08:00
ZiyaZhang fe505e1e91 feat(web): a prose mention of a produced file opens it
The chatFileMentions service (provided by ui-deliverables beside its
turn-tail entry, reached via ctx.get) resolves inline-code tokens in the
closing message against the turn's produced locations: exact path or
unique basename links, ambiguity and unknowns stay inert. MarkdownText
gains the optional fileMentions seam — settled renders only, never
inside anchors.
2026-08-07 03:02:10 -07:00
Yichen Jiang 2dc1406dfd feat(ui-models): drop the provider-scoped reasoning effort, and red-flag a bad route id
**Reasoning effort leaves the provider cards entirely.** It is a per-MODEL
capability and the models under one provider disagree about which levels
they accept: setting `anthropic` to `max` made six of its eight models
throw UNSUPPORTED_REASONING_EFFORT, and because the catalog build catches
per provider, the whole provider vanished from the picker behind one error
row. A provider-scoped control can only ever be set to a value some of its
models reject.

The composer's model picker already offers each model its own levels, and
a switch there now records provider, model, and effort together as the
next session's default — so the setting has a better home at the right
granularity. The profile field stays in `settings.yaml` for a deployment
that knows its route; only the control is gone, from both cards and both
adapter families. Two `components.spec` cases used the control as the
vehicle for their op assertions and now use `baseURL`, which is what they
were actually testing.

**A rejected Provider ID now reads as a fault.** It shared the neutral
hint paragraph with the field's guidance, so the copy telling the user
what they got wrong looked like advice. Reuses the existing `.error`
style, matching the split the key field already makes.
2026-08-07 17:36:08 +08:00