Yichen Jiang
cc6e2382cb
Merge remote-tracking branch 'origin/master' into worktree/open-settings-config-file
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-30-web-config-plane.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-30-web-config-plane.md
# .agents/notes/implemented/architecture/2026-07-30-web-config-plane.zh.md
# packages/client/ui-settings/README.i18n.yaml
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/README.zh.md
2026-08-05 15:34:51 +08:00
Yichen Jiang
4f717f2da7
fix(web): address settings document review
2026-08-04 17:31:36 +08:00
Yichen Jiang
e31b7221e7
feat(web): open the local settings file
2026-08-04 16:59:37 +08:00
Yichen Jiang
edf2cece37
Merge remote-tracking branch 'origin/master' into worktree/custom-deepseek-models
...
# Conflicts:
# packages/host/apiproxy/README.i18n.yaml
2026-08-03 19:02:29 +08:00
Yichen Jiang
e0b70508a1
Merge remote-tracking branch 'origin/master' into worktree/custom-deepseek-models
...
# Conflicts:
# apps/web/tests/snapshots/message-actions/ui.expected.md
# apps/web/tests/snapshots/seeded-history/command-row.expected.md
# apps/web/tests/snapshots/seeded-history/ui.expected.md
# packages/client/ui-model/README.i18n.yaml
# packages/client/ui-model/README.md
# packages/client/ui-model/README.zh.md
# packages/client/ui-model/tests/model-select.spec.tsx
# packages/host/apiproxy/README.i18n.yaml
2026-08-03 16:20:55 +08:00
Yichen Jiang
109d5b5e1c
Merge remote-tracking branch 'origin/master' into worktree/fix-multi-select-custom-answer
...
# Conflicts:
# apps/web/tests/snapshots/question-composer/answered.expected.md
# apps/web/tests/snapshots/question-composer/session.jsonl
# docs/core-data-structures/user-interaction.i18n.yaml
# packages/client/ui-question/README.i18n.yaml
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/README.md
# packages/host/apiproxy/README.zh.md
# packages/ui/tui/README.i18n.yaml
# packages/ui/user-interaction/README.i18n.yaml
2026-08-03 16:09:17 +08:00
imccyu
d59ab5596e
docs(host): align queue mirror contract
2026-08-02 17:53:07 +08:00
kingwl
955a12cca4
feat(web): steer queued messages into active turns
2026-08-02 17:53:07 +08:00
imccyu
23680e838b
fix(web): synchronize subagent navigation state
2026-08-02 12:51:11 +08:00
imccyu
130410bb98
fix(web): preserve subagent navigation and fork grouping
2026-08-02 12:51:11 +08:00
imccyu
8c9cd4c15d
feat: optimize subagent list children query
2026-08-02 12:51:11 +08:00
Dudu-0223
9a7be21b7f
fix(host): preserve subagent continuation ownership
2026-08-02 12:51:10 +08:00
Dudu-0223
f0ab04273d
fix(web): deduplicate subagent navigation
2026-08-02 12:51:09 +08:00
Dudu-0223
a27492507d
feat(web): add subagent conversation transport
2026-08-02 12:51:09 +08:00
kingwl
32a0e871b7
fix(web): preserve queue on stop
2026-07-31 20:51:05 +08:00
Tianyi Cui
678ad97f9a
Allow same-basename Workspace paths
2026-07-31 18:37:34 +08:00
Yichen Jiang
02cd5bf733
Merge remote-tracking branch 'origin/master' into worktree/custom-deepseek-models
...
# Conflicts:
# apps/web/tests/onboarding-deepseek-config.e2e.ts
# packages/client/ui-models/README.i18n.yaml
# packages/host/apiproxy/README.i18n.yaml
2026-07-31 15:12:41 +08:00
Yichen Jiang
267fbdbf7f
Merge remote-tracking branch 'origin/master' into worktree/custom-deepseek-models
...
# Conflicts:
# packages/host/apiproxy/README.i18n.yaml
2026-07-31 14:48:50 +08:00
imccyu
4c01550833
Merge remote-tracking branch 'origin/master' into mergebot/pr1016
2026-07-31 14:43:03 +08:00
Yichen Jiang
2701862bf1
Merge remote-tracking branch 'origin/master' into worktree/custom-deepseek-models
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-30-web-config-plane.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-30-web-config-plane.md
# .agents/notes/implemented/architecture/2026-07-30-web-config-plane.zh.md
# apps/web/tests/snapshots/message-actions/ui.expected.md
# apps/web/tests/snapshots/seeded-history/ui.expected.md
# 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.module.css
# packages/client/ui-models/src/client/ModelsSection.tsx
# packages/client/ui-models/tests/components.spec.tsx
# packages/host/apiproxy/README.i18n.yaml
2026-07-31 14:36:00 +08:00
Yichen Jiang
a332f2f333
feat(web): configure custom DeepSeek models
2026-07-31 14:08:59 +08:00
imccyu
53ceab53b8
feat(apiproxy): workspace.archiveSession RPC and archived-sessions frame
...
workspace.archiveSession answers the full updated archive set;
workspace.list carries the set as the reconnect baseline; the host
stream pushes host/archived-sessions-changed full snapshots from the
domain/changed global-put branch (same posture as workspace-changed).
Unknown sessions map to the existing session-not-found code.
2026-07-31 14:08:11 +08:00
NI0317
cf4027afe8
Merge remote-tracking branch 'origin/master' into feature/gui-first-run-welcome
...
# Conflicts:
# packages/host/apiproxy/README.i18n.yaml
2026-07-31 13:41:17 +08:00
Yichen Jiang
cb60e1759a
Merge remote-tracking branch 'origin/master' into worktree/permission-default-settings
...
# Conflicts:
# packages/host/apiproxy/README.i18n.yaml
2026-07-31 13:27:43 +08:00
NI0317
85d1c5e2ad
Merge remote-tracking branch 'origin/master' into feature/gui-first-run-welcome
...
# Conflicts:
# packages/client/ui-settings-general/src/client/index.ts
# packages/client/ui-settings-general/src/client/locales.ts
# packages/client/ui-settings-general/tests/apply.spec.ts
# packages/client/ui-settings/README.i18n.yaml
# packages/client/ui-settings/README.md
# packages/client/ui-settings/README.zh.md
# packages/client/ui-settings/src/client/index.ts
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/src/api-proxy.ts
2026-07-31 12:48:39 +08:00
Yichen Jiang
ee74b5b07a
feat(permission): add new-session default setting
2026-07-31 12:48:19 +08:00
Hypatia May
322950487e
fix(apiproxy): let commands outlive unary deadline
2026-07-31 11:51:49 +08:00
imccyu
2e034bbbd3
Merge remote-tracking branch 'origin/master' into mergebot/pr711
...
# Conflicts:
# apps/cli/README.i18n.yaml
# docs/module-graph.md
# packages/client/connection/README.i18n.yaml
# packages/client/runtime/README.i18n.yaml
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/src/api-proxy.ts
2026-07-31 02:02:47 +08:00
imccyu
ecbd8babc1
Merge remote-tracking branch 'origin/master' into mergebot/pr711
...
# Conflicts:
# apps/cli/README.i18n.yaml
# apps/cli/README.md
# apps/cli/README.zh.md
# apps/cli/cordis.yml
# apps/cli/package.json
# docs/config-catalog.md
# packages/client/runtime/README.i18n.yaml
# packages/client/runtime/src/client/contract/sessions.ts
# packages/client/test-runtime/src/sessions.ts
# packages/client/ui-workspace/README.i18n.yaml
# packages/client/ui-workspace/README.md
# packages/client/ui-workspace/README.zh.md
# packages/client/ui-workspace/src/client/WorkspaceBrowser.tsx
# packages/client/ui-workspace/src/client/tree.ts
# packages/client/ui-workspace/tests/apply.spec.ts
# packages/client/ui-workspace/tests/tree.spec.ts
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/src/api-proxy.ts
# packages/host/apiproxy/src/api/index.ts
# packages/host/apiproxy/tests/client-handler.spec.ts
# packages/host/apiproxy/tests/rpc-schemas.spec.ts
# pnpm-lock.yaml
2026-07-31 01:28:15 +08:00
NI0317
bc69648f03
Merge updated DeepSeek onboarding base
...
# Conflicts:
# packages/host/apiproxy/README.i18n.yaml
2026-07-31 00:32:40 +08:00
Yichen Jiang
8c0d626cd5
Merge worktree-llm-dynamic-config (884, with latest master) into worktree-llm-web-config
...
# Conflicts:
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.i18n.yaml
# packages/client/runtime/README.i18n.yaml
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/README.md
# packages/host/apiproxy/README.zh.md
2026-07-30 23:32:31 +08:00
NI0317
c311400945
Merge updated DeepSeek onboarding base
...
# Conflicts:
# packages/host/apiproxy/README.i18n.yaml
2026-07-30 22:19:31 +08:00
NI0317
bef8db3add
feat(web): add versioned first-run welcome
2026-07-30 22:17:56 +08:00
Yichen Jiang
a5e0c5e7e7
Merge latest master into worktree-llm-web-config
...
# Conflicts:
# packages/host/apiproxy/README.i18n.yaml
2026-07-30 21:45:55 +08:00
imccyu
36f1489398
fix(web): address session fork review findings
2026-07-30 21:28:13 +08:00
Yichen Jiang
3957ce007a
Merge branch 'worktree-llm-dynamic-config' into worktree-llm-web-config
...
# Conflicts:
# apps/cli/cordis.yml
# apps/cli/package.json
# apps/cli/tests/tui-keyless-smoke.e2e.ts
# apps/web/tests/details-session-lifecycle.e2e.ts
# apps/web/tests/snapshots/code-mode-round/ui.expected.md
# apps/web/tests/snapshots/cordis-tool-round/ui.expected.md
# apps/web/tests/snapshots/fresh-round-trip/ui.expected.md
# apps/web/tests/snapshots/lifecycle-chrome/hero.expected.md
# apps/web/tests/snapshots/lifecycle-chrome/reloaded.expected.md
# apps/web/tests/snapshots/live-interactions/cancel.expected.md
# apps/web/tests/snapshots/live-interactions/error-auth.expected.md
# apps/web/tests/snapshots/live-interactions/retry.expected.md
# apps/web/tests/snapshots/message-actions/ui.expected.md
# apps/web/tests/snapshots/question-composer/answered.expected.md
# apps/web/tests/snapshots/seeded-history/ui.expected.md
# apps/web/tests/snapshots/steering/mid-steer.expected.md
# apps/web/tests/snapshots/steering/settled.expected.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# docs/user/guide/config.i18n.yaml
# docs/user/guide/config.md
# docs/user/guide/config.zh.md
# docs/user/guide/index.i18n.yaml
# docs/user/guide/index.md
# docs/user/guide/index.zh.md
# examples/acp-agent/tests/snapshots/subagent-fork/session.1.jsonl
# examples/acp-agent/tests/snapshots/subagent-mixed/session.2.jsonl
# examples/cordis-agent/cordis.yml
# examples/cordis-agent/tests/cordis-tools.e2e.ts
# examples/headless-agent/tests/semantic-checkpoint-snapshots/tool-outcome-unknown/session.expected.jsonl
# examples/headless-agent/tests/subagent-inheritance-snapshots/parent-override/parent.expected.jsonl
# examples/tui-agent/code-mode.cordis.yml
# examples/tui-agent/cordis.yml
# packages/examples/tui-demo/README.md
# packages/examples/tui-demo/README.zh.md
# packages/host/apiproxy/README.i18n.yaml
# packages/pty/tool-bash-persistent/README.i18n.yaml
# packages/ui/tui/tests/snapshots/status-diagnostics-narrow.expected.txt
# packages/ui/tui/tests/snapshots/status-diagnostics.expected.txt
# pnpm-lock.yaml
# scripts/snapshots/python-sdk-single-exe/advanced/result.json
# scripts/snapshots/python-sdk-single-exe/advanced/session.1.jsonl
# scripts/snapshots/python-sdk-single-exe/advanced/session.2.jsonl
# scripts/snapshots/python-sdk-single-exe/advanced/session.jsonl
2026-07-30 20:15:40 +08:00
Hypatia May
fe97451604
Merge remote-tracking branch 'origin/master' into fix/human-transcript-projection
...
# Conflicts:
# .agents/notes/implemented/feature/2026-07-17-dedicated-full-screen-tui-front-door.i18n.yaml
# docs/cordis-catalog/services.md
# packages/host/apiproxy/README.i18n.yaml
# packages/ui/tui/README.i18n.yaml
2026-07-30 19:57:49 +08:00
Yichen Jiang
e76b15e8ad
Merge remote-tracking branch 'origin/master' into worktree/fix-multi-select-custom-answer
...
# Conflicts:
# apps/cli/tests/fixtures/tui-scripted-llm.ts
# packages/host/apiproxy/README.i18n.yaml
# packages/ui/tui/README.i18n.yaml
2026-07-30 19:46:51 +08:00
Yichen Jiang
e6483f0afc
feat(settings): detect stale writers with a revision, and announce raw changes
...
The remaining P1 from the #939 review, plus the P2 it shares a mechanism with.
Nothing carried a version, so two tabs editing one namespace silently
overwrote each other — reproduced as tab B's `reasoning` lost to tab A's
older draft. The seam's per-namespace write queue orders writes; it cannot
tell a fresh writer from one replaying a snapshot a predecessor superseded.
Each namespace now carries a monotonic `revision` over its RAW section. A
write may send `expectedRevision`, checked at the FRONT of the queue (not at
call time, which would race the very predecessor it guards against); a
mismatch rejects with `SettingsConflictError` → `settings-conflict` on the
wire, carrying both revisions. The editor captures the revision it opened at
and, on conflict, asks the user to reopen rather than replaying its snapshot.
The same counter fixes the missing broadcast. `settings/updated` is gated on
the resolved value — correct for consumers, wrong for configuration surfaces:
storing an override equal to the composition base leaves the resolved value
alone while changing what the document says (the field is now overridden, not
inherited) and moving every open editor's revision. `settings/document-updated
(ns, revision)` fires on any raw-section change, in-process or external, and
`host/settings-changed` now rides it.
That event also closes the stale model picker: editing a provider's `models`
changes no route, so `llm/adapters-updated` never fired and an open picker
kept serving the old catalog. A change to an exposed provider namespace now
emits `host/models-changed` too — that namespace holds the catalog.
Docs: both sides of the five touched README pairs, a type-equiv block for
`SettingsPathOp`, and an Agent Note recording what the plane exposes and who
may overwrite what. The deferred wire-redaction gaps (secrets behind
union/intersection/transform, `.default(...)` in the served envelope, schema
text in rejection messages, `new Function` rehydration, pi-ai's `headers`) are
recorded as TODO(settings-wire-redaction) and in Known Limitations rather than
half-fixed.
2026-07-30 19:24:21 +08:00
Yichen Jiang
c86b7c2c3a
Merge remote-tracking branch 'origin/master' into worktree/fix-multi-select-custom-answer
...
# Conflicts:
# packages/client/ui-question/README.i18n.yaml
# packages/client/ui-question/src/client/QuestionComposer.tsx
# packages/host/apiproxy/README.i18n.yaml
# packages/ui/tui/README.i18n.yaml
2026-07-30 17:34:48 +08:00
Hypatia May
82817570b0
Merge remote-tracking branch 'origin/master' into fix/human-transcript-projection
...
# Conflicts:
# docs/cordis-catalog/services.md
# docs/core-data-structures/session.i18n.yaml
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/src/api-proxy.ts
# packages/ui/tui/src/index.ts
2026-07-30 17:28:26 +08:00
Turtle
3c620a0cb6
Merge remote-tracking branch 'origin/master' into feature/shared-cli-config-foundation
...
# Conflicts:
# docs/cordis-catalog/services.md
# packages/host/apiproxy/README.i18n.yaml
2026-07-30 16:53:55 +08:00
Hypatia May
7bcf8d660d
Merge remote-tracking branch 'origin/master' into fix/human-transcript-projection
...
# Conflicts:
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/src/api-proxy.ts
# packages/ui/tui/README.i18n.yaml
2026-07-30 15:42:47 +08:00
Hypatia May
8527137230
refactor(session): rename the seed boundary to end-seed
2026-07-30 15:32:06 +08:00
Yichen Jiang
483199d47a
Merge branch 'worktree-llm-dynamic-config' into worktree-llm-web-config
...
# Conflicts:
# apps/cli/cordis.yml
# apps/web/tests/snapshots/code-mode-round/session.jsonl
# apps/web/tests/snapshots/cordis-tool-round/session.jsonl
# apps/web/tests/snapshots/fresh-round-trip/session.jsonl
# apps/web/tests/snapshots/lifecycle-chrome/session.jsonl
# apps/web/tests/snapshots/live-interactions/session.jsonl
# apps/web/tests/snapshots/navigation-panes/seed.jsonl
# apps/web/tests/snapshots/question-composer/session.jsonl
# apps/web/tests/snapshots/seeded-history/seed.jsonl
# apps/web/tests/snapshots/steering/session.jsonl
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.i18n.yaml
# docs/core-data-structures/settings.i18n.yaml
# docs/event-producer-consumer.md
# docs/module-graph.md
# examples/acp-agent/tests/snapshots/workspace-context/session.jsonl
# packages/client/connection/README.i18n.yaml
# packages/client/connection/src/index.ts
# packages/client/connection/tests/node-half.spec.ts
# packages/client/runtime/README.i18n.yaml
# packages/client/runtime/README.md
# packages/client/runtime/README.zh.md
# packages/client/runtime/src/client/index.ts
# packages/client/runtime/tests/fake-api.ts
# packages/client/ui-models/README.i18n.yaml
# packages/examples/tui-demo/README.i18n.yaml
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/package.json
# packages/host/apiproxy/src/api-proxy.ts
# packages/host/apiproxy/src/api/rpc.schema.ts
# packages/host/apiproxy/src/api/rpc.ts
# packages/llm/llm-deepseek/README.i18n.yaml
# packages/llm/llm-deepseek/README.zh.md
# packages/llm/llm-pi-ai/README.i18n.yaml
# packages/llm/llm/README.i18n.yaml
# packages/llm/llm/README.zh.md
# packages/sdk/sdk-client/README.i18n.yaml
# packages/settings/settings/README.i18n.yaml
# packages/settings/settings/README.md
# packages/settings/settings/README.zh.md
# packages/subagent/subagent-dsh-sdk/README.i18n.yaml
# packages/subagent/subagent-dsh-sdk/README.zh.md
# packages/support/llm-replay/README.i18n.yaml
# packages/ui/jsonrpc/README.i18n.yaml
# packages/ui/jsonrpc/README.zh.md
# packages/ui/tui/tests/snapshots/model-selector.expected.txt
# packages/ui/tui/tests/snapshots/model-switching.expected.txt
# packages/ui/tui/tests/snapshots/resume-sessions.expected.txt
# packages/ui/tui/tests/snapshots/status-diagnostics-narrow.expected.txt
# packages/ui/tui/tests/snapshots/status-diagnostics.expected.txt
# packages/ui/tui/tests/tui.snapshot.ts
# pnpm-lock.yaml
# python/sdk/README.i18n.yaml
# scripts/snapshots/translation-prompt-v4/request-response.expected.json
2026-07-30 15:18:26 +08:00
Turtle
a51143bded
fix(cli): close shared config review gaps
2026-07-30 14:56:39 +08:00
Hypatia May
9e6f251a4c
Merge remote-tracking branch 'origin/master' into feat/session-inherited-boundary
...
# Conflicts:
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# packages/host/apiproxy/README.i18n.yaml
# packages/host/apiproxy/src/api-proxy.ts
2026-07-30 14:20:35 +08:00
Hypatia May
39ebd8f745
fix(session): close the review gaps the boundary opened
...
- `SessionSummary.updatedAt`'s wire doc still said "Persisted file mtime",
which stopped being true for attached sessions.
- The core invariant let `session/inherited` fall through the merge-extensible
default. It is core-owned, so it gets an explicit case; an unbalanced seed
legally places it inside an open turn, which the relation permits.
- The Agent Note claimed the boundary reaches disk via `live.pending`/
`scheduleDrain`. Verified false: the constructor append precedes `enter()`,
so it never publishes on `session/event` and rides the creation seed instead.
Attaching is therefore a write where none happened before — recorded, since
only `load()` stays a pure read.
- The deferred-index proposal asserted this change documented the cold-mtime
skew on `dsh-host-apiproxy`. It did not; the README entry now exists.
- `firstLiveSeq`'s firehose gap runs through its own seq, not below it.
- The boundary is not always at `firstLiveSeq` (the idempotence guard), so
consumers scan for the last one.
- `lastActivityTime` excludes by type, so a pickup time still leaks onto a
synthetic closer when a boundary ends an open turn. Documented.
- Pin the fork claim end-to-end: a child inherits a still-running parent's
open bracket below its own boundary, while the parent has none. Fails if the
write moves back to the load path.
- Fix the telemetry title that contradicted its own assertions.
The `/status` call site cannot be pinned the way the other two are: the
command appends its own `command/run` before rendering, so the boundary is
never the log tail there. Its fixture now at least renders over a
boundary-bearing log.
2026-07-30 13:59:08 +08:00
Turtle
5a490553bc
Merge remote-tracking branch 'origin/master' into feature/shared-cli-config-foundation
...
# Conflicts:
# docs/event-producer-consumer.md
# packages/host/apiproxy/README.i18n.yaml
# tsconfig.base.json
2026-07-30 12:00:15 +08:00
Turtle
59bd220215
docs: repair links to consolidated CLI
2026-07-30 10:45:08 +08:00