Commit Graph
4929 Commits
Author SHA1 Message Date
imccyu be3a630da8 docs(web): retire tap-era prose across READMEs, subsystems, and notes 2026-08-20 16:13:05 +08:00
imccyu d582939783 docs(web): align injection-surface JSDoc, notes, and bilingual READMEs 2026-08-20 16:13:05 +08:00
imccyu d4fd03ae53 chore(docs): classify IndexInjection and regenerate the catalog surfaces 2026-08-20 16:13:04 +08:00
_Kerman f9cd580a33 Merge remote-tracking branch 'origin/master' into xtr/projection-state-schema 2026-08-20 13:21:03 +08:00
_Kerman bb79203f53 fix(docs): drop stale persist field from projection type-equiv block
ProjectionDefinition lost its persist?: boolean opt-in when every
projection unit became uniformly checkpointed, but the subsystem doc's
type-equiv paste still carried the field, so verify-type-equiv drifted
from packages/session/session-projection/src/index.ts. Remove the field
and its JSDoc from both language sides and re-record the bilingual
pairing record.
2026-08-20 10:29:56 +08:00
_Kerman 83a3457b4a Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2730 2026-08-20 10:04:04 +08:00
Kaige-Gao a0bfc2c3fe test: sync permission origin artifacts 2026-08-20 00:01:28 +08:00
Kaige-Gao 027b1d579f Merge remote-tracking branch 'origin/master' into fix/permission-copy-and-default 2026-08-19 23:23:54 +08:00
Kaige-Gao 8304a25d8a Merge remote-tracking branch 'origin/master' into fix/permission-copy-and-default
# Conflicts:
#	packages/subagent/subagent-codex/tests/subagent-codex.spec.ts
2026-08-19 22:50:35 +08:00
Kaige-Gao 35778ec2ff fix(web): address permission preset review feedback 2026-08-19 22:45:54 +08:00
imccyu 70a3bf4554 docs: refresh Agent Teams catalogs 2026-08-19 22:44:23 +08:00
imccyu 4dd1be1a1f refactor: rename agent teams service key 2026-08-19 22:30:36 +08:00
Tianyi Cui 89b0f17f84 docs: split brand guidelines into bilingual pair 2026-08-19 21:01:18 +08:00
Magolor 93b4b98ef3 feat(session): optimize SQLite persistence layout 2026-08-19 18:36:27 +08:00
imccyu 319d9a7984 feat(client): compose deployment branding through slots 2026-08-19 18:21:35 +08:00
imccyu 66a7081c15 feat(build): bind client artifacts to build profiles 2026-08-19 18:21:27 +08:00
_Kerman 917ef58f79 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2300 2026-08-19 17:09:18 +08:00
_Kerman 327b86d2ea refactor(session-projection): checkpoint every projection unit uniformly
Drop the persist?: boolean opt-in: every unit's state — client-visible and
host-only alike — is now written to the projection cache. A unit can no
longer silently skip the durable cache, host-only units no longer need an
explicit flag to participate in cold restore, and the persist-sharing
conflict check disappears with the field.

- ProjectionDefinition/ErasedDefinition lose persist; register overloads
  simplify; checkpoint/restoreFloor/restore fold every registered unit.
- Registry and cache tests drop the persist:true fixtures and the
  persistence-policy sharing test.
- READMEs and the state-and-client-views note record the uniform rule;
  cordis API catalog and subsystem signatures regenerated.
2026-08-19 16:55:10 +08:00
lsdsjy d66841ea3f feat(web,cli): open the ready Web UI by default 2026-08-19 15:42:12 +08:00
_Kerman 7d3ba2a85b Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2300 2026-08-19 15:39:30 +08:00
CreatixChu 24ef32c7b8 Merge pull request #2134 from deepseek-harness/worktree/abort-partial-finalize
feat(agent-loop): finalize a cancelled stream's delivered prefix
2026-08-19 15:39:14 +08:00
creatixchu 54cd736a4e Merge remote-tracking branch 'origin/master' into worktree/web-file-session-references 2026-08-19 15:21:17 +08:00
_Kerman ea35359b86 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2300 2026-08-19 15:12:21 +08:00
creatixchu ff88d3dd00 Merge remote-tracking branch 'origin/master' into worktree/abort-partial-finalize 2026-08-19 14:55:32 +08:00
_Kerman cb0747091b Merge remote-tracking branch 'origin/master' into xtr/projection-state-schema 2026-08-19 14:52:29 +08:00
_Kerman 571dba37cb Merge remote-tracking branch 'origin/master' into xtr/projection-state-schema 2026-08-19 14:50:24 +08:00
creatixchu e7a668906a Merge remote-tracking branch 'origin/master' into worktree/web-file-session-references
# Conflicts:
#	packages/client/connection/src/client/fixture.ts
#	packages/client/ui-conversation/src/client/input/facade.ts
#	packages/client/ui-conversation/src/client/input/hub.ts
#	packages/client/ui-conversation/tests/input-matrix.client.spec.tsx
#	packages/client/ui-conversation/tests/input-scenarios.client.spec.tsx
#	packages/client/ui-conversation/tests/skeleton.client.spec.tsx
2026-08-19 14:49:57 +08:00
Yichen Jiang 07fbaa9b30 Merge remote-tracking branch 'origin/master' into HEAD 2026-08-19 14:39:44 +08:00
_Kerman 9127d7e8b7 fix(session-projection): keep host state off wire 2026-08-19 14:32:48 +08:00
Yichen Jiang 458a742cfe Merge remote-tracking branch 'origin/master' into worktree/deepseek-native-multimodal 2026-08-19 14:22:22 +08:00
07akioni 2aaf760fa2 Merge pull request #2709 from deepseek-harness/feat/home-path-abbr
feat(ui-tool): integrate connection handling for POSIX home path abbreviation
2026-08-19 14:16:08 +08:00
_Kerman 00257fa079 Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2300 2026-08-19 14:04:04 +08:00
_Kerman 52a1f80327 Merge remote-tracking branch 'origin/master' into xtr/projection-state-schema 2026-08-19 14:01:31 +08:00
Yichen Jiang 9b5fad14e0 Merge remote-tracking branch 'origin/master' into HEAD 2026-08-19 13:59:24 +08:00
Yichen Jiang 3b74deec3e fix(llm-pi-ai): pin compat field types both ways and refuse empty values
The upstream-type proof only ran covariantly, so it caught a profile
field wider than pi-ai's but not one narrower — the direction its own
JSDoc claimed to guard. It now asserts both directions; the reverse holds
today because every field is either derived from upstream or a boolean.

`ModelCompat` gained `BedrockCompat`, which the gate had already started
serving, and the per-field protocol lists now match what the gates
resolve: `docs/config-catalog.md` pastes that JSDoc verbatim, so a stale
list there contradicted the README in the same change. The interface
header names the Responses grouping, since a catalog reader never sees
the README passage that explains it.

Valueless keys are judged after the name, so a withheld or misspelled key
written bare is refused for being that name rather than sent back for a
value it would be refused with anyway; the remedy no longer promises an
installed catalog value that a hand-declared route does not have. The
check covers `undefined` beside `null`: schemastery keeps the key either
way, and a cordis.yml entry reaches that state through `!!js undefined`,
so it is a config boundary rather than a typed one.

Coverage follows the composed path: the rejection is asserted through a
written settings section, and a switch is carried from that section onto
the wire a provider receives.

Refs #2646
2026-08-19 13:58:55 +08:00
Yichen Jiang c4037732ae docs(user): point the provider guide at the adapter's catalog section
The full switch list already exists and is generated from source, so the
guide needs a way in rather than a copy: `config-catalog.md` carries 107
plugin sections, and linking the whole file leaves a reader to find the
one that configures the page they are on. Both mentions now deep-link the
`dsh-llm-pi-ai` anchor.

Refs #2646
2026-08-19 13:46:39 +08:00
pku-xht 23b573b23f Merge remote-tracking branch 'origin/codex/product-subagent-failure-facts-claude' into codex/resolve-pr2640-20260819134000 2026-08-19 13:39:34 +08:00
pku-xht 7e764e168d Merge remote-tracking branch 'origin/master' into codex/resolve-pr2636-2640-20260819133346 2026-08-19 13:34:07 +08:00
Yichen Jiang 30a838cda3 docs(user): guide gateway request-compatibility switches
The Models page has no field for `compat`, and the symptom it addresses —
a gateway holding a working key at a reachable address while refusing
every request — reads as a credential or connectivity problem. Give it
the same treatment `input` already has: name the symptom, show the two
switches that account for most of it, and state the resolution order.

Refs #2646
2026-08-19 13:33:08 +08:00
_Kerman 4c421ec882 refactor(session-projection): separate state from client views 2026-08-19 13:11:05 +08:00
Yichen Jiang 66056b6991 Merge remote-tracking branch 'origin/master' into HEAD 2026-08-19 12:47:37 +08:00
Yichen Jiang 4a02791c9a fix(llm): address multimodal review findings 2026-08-19 12:47:24 +08:00
Yichen Jiang cd7e45ced6 Merge remote-tracking branch 'origin/master' into worktree/deepseek-native-multimodal 2026-08-19 12:35:05 +08:00
07akioni 149d4ba01c Merge remote-tracking branch 'origin/master' into feat/home-path-abbr 2026-08-19 12:24:40 +08:00
_Kerman 7a5bfe187a Merge remote-tracking branch 'origin/master' into dshw/pr-deepseek-harness-deepseek-harness-2300 2026-08-19 11:56:27 +08:00
Yichen Jiang 1c64e72bcb Merge remote-tracking branch 'origin/master' into HEAD 2026-08-19 11:49:20 +08:00
Yichen Jiang cf4a27c471 fix(llm-pi-ai): refuse valueless compat and group gates by compat type
Review found two live defects in the compat surface.

A valueless key (`supportsDeveloperRole:`) survives schemastery as null,
and resolution carried it forward as a configured value. It landed on
`Model.compat` as null, which replaced the installed catalog entry's
value and left pi-ai's `??` reaching for its baseURL detection — the
catalog layer skipped entirely, and the switch written but not applied.
The vocabulary check now refuses it where it is written, matching the
`reasoningEfforts` precedent in the same file.

The gates were keyed by protocol name, but pi-ai keys compat by type:
`openai-responses`, `azure-openai-responses`, and `openai-codex-responses`
share one `OpenAIResponsesCompat`, so two shipped catalog routes were
refused the fields their own models declare. Gates now group by compat
type, `bedrock-converse-stream` gains its own, and the protocol set is
derived from `Model.compat`'s conditional so a release that gives a
further protocol a compat type fails the gate list by name.

Field types are derived from upstream rather than restated, with a proof
pinning the profile assignable to the upstream types, so a widened value
union cannot silently narrow what configuration accepts.

The `undefined` filter stays removed: `exactOptionalPropertyTypes` keeps
a typed caller from writing one, and schemastery never materializes one,
so it was validation for a value the static interface already excludes.

Refs #2646
2026-08-19 11:48:01 +08:00
Yichen Jiang 7078918b30 feat(llm-deepseek): support multimodal requests 2026-08-19 11:39:52 +08:00
creatixchu fcaa0efec5 Merge remote-tracking branch 'origin/master' into worktree/command-attachment-envelope 2026-08-19 11:11:15 +08:00
Yichen Jiang 67a7c79004 Merge remote-tracking branch 'origin/master' into worktree/web-file-session-references
# Conflicts:
#	docs/event-producer-consumer.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/event-producer-consumer.zh.md
#	packages/context/agent-instructions/tests/agent-instructions.spec.ts
2026-08-19 11:01:27 +08:00