Yichen Jiang
6e41857b2e
Merge remote-tracking branch 'origin/master' into worktree/jobs-api-review-3052
...
# Conflicts:
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# packages/api/remotes/src/client/index.ts
# packages/api/session-controller/README.i18n.yaml
# packages/api/session-controller/README.md
# packages/api/session-controller/README.zh.md
# packages/api/session-controller/src/client/sessions/manager.ts
# packages/api/session-controller/src/control.ts
# packages/api/session-controller/src/types.ts
# packages/api/session-controller/tests/client-apply.client.spec.ts
# packages/api/session-controller/tests/manager.client.spec.ts
# packages/api/session-controller/tests/projection-store.client.spec.ts
# packages/api/session-controller/tests/queue-store.client.spec.ts
# packages/api/session-controller/tests/sessions-service.client.spec.ts
# packages/api/session-controller/tests/transport.client.spec.ts
# packages/client/ui-jobs/package.json
# packages/client/ui-primitives/src/TerminalBlock.module.css
# packages/client/ui-primitives/src/TerminalBlock.tsx
# packages/client/ui-primitives/tests/terminal-block.client.spec.tsx
# packages/extensions/tool-cordis/src/api-catalog.ts
# packages/test-support/client-runtime/src/assembly/remote-default-responses.ts
2026-09-16 16:05:59 +08:00
_Kerman
72f2e71070
fix(web): reconcile durable inbox recovery with master
2026-09-09 15:14:08 +08:00
Yichen Jiang
1242fdfdef
Merge remote-tracking branch 'origin/master' into worktree/process-plugin-streaming-72f9b3
...
# Conflicts:
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# docs/module-graph.i18n.yaml
# docs/module-graph.md
# docs/module-graph.zh.md
# docs/subsystems/shell.i18n.yaml
# docs/subsystems/shell.md
# docs/subsystems/shell.zh.md
# packages/api/remotes/package.json
# packages/api/remotes/src/client/index.ts
# packages/api/session-controller/src/control.ts
# packages/api/session-controller/tests/control-jobs.host.spec.ts
# packages/bundle/web-app/cordis.patch.yml
# packages/bundle/web-app/package.json
# packages/client/ui-chat/src/client/details/DetailsPanel.tsx
# packages/client/ui-chat/src/client/details/tool-node-reader.ts
# packages/client/ui-chat/tests/gate-branch-tails.client.spec.tsx
# packages/client/ui-jobs/package.json
# packages/client/ui-tool/tests/diff-card.client.spec.tsx
# packages/client/ui-tool/tests/read-card.client.spec.tsx
# packages/client/ui-tool/tests/search-card.client.spec.tsx
# packages/client/ui-tool/tests/terminal-card.client.spec.tsx
# packages/client/ui-tool/tests/web-card.client.spec.tsx
# packages/shell/bash-local/README.i18n.yaml
# packages/shell/bash-local/README.md
# packages/shell/bash-local/README.zh.md
# packages/shell/bash-local/src/index.ts
# packages/shell/bash-local/tests/executor.spec.ts
# packages/shell/pwsh-local/README.i18n.yaml
# packages/shell/pwsh-local/README.md
# packages/shell/pwsh-local/README.zh.md
# packages/shell/pwsh-local/src/index.ts
# packages/shell/shell/README.i18n.yaml
# packages/shell/shell/README.md
# packages/shell/shell/README.zh.md
# packages/shell/shell/src/types.ts
# packages/terminal/tool-terminal/tests/tools.spec.ts
# tsconfig.client.json
2026-09-08 13:34:53 +08:00
Yichen Jiang
2132b7beeb
refactor(session-controller): drop the job roster from the control stream
...
The control baseline and frames carry queues and projections only; the
SessionJob row type, the jobs frame, the registry subscription, and the
client jobsBySession mirror are gone, and every client fixture drops the
empty mirror. The roster moves to dsh-api-job-controller's job.rows
stream in the next change.
2026-09-03 16:43:15 +08:00
Yichen Jiang
761282724b
fix(jobs): constant pump waits, quiescent client disposal, record flag on the roster
...
Review corrections on the observation record:
- `pumpJobOutput` subscribes to `done` once and keeps one pending timer;
racing the same pending promise every poll round retained a reaction
per round for the life of the job.
- The `ctx.jobOutput` effect disposer is async and awaits every open
carrier's `dispose()`, so the fiber reports unloaded only once the old
iterators are quiescent.
- `SessionJob.record: true` replaces `outputTotal`: `append` never commits
a roster change, so the mirrored count was stale while output flowed;
the live offsets ride the observation stream's `opened` anchor.
- The record is documented as a best-effort live preview whose
cross-stream reordering is bounded by the poll interval.
- The web e2e scenarios hold their background job on a test-owned barrier
file instead of a wall-clock sleep, and each is one test rather than a
chain sharing a job id.
2026-09-03 11:23:41 +08:00
Yichen Jiang
6e8a7a50ea
feat(api): serve job-record observation from the session namespace
...
SessionJob rows carry outputTotal exactly for record-declaring jobs, and a
new session.observeJob stream serves one job's retained record from an
absolute offset (anchor, coalesced output frames, terminal status) with the
fenced read resolved from the request's session — the same authorization
shape as the jobs roster. The client half gains ctx.jobOutput: the
reference-counted per-job observation service and its accumulated view
model, ported from the activity controller this replaces.
2026-09-01 18:03:09 +08:00
_Kerman
700d5407fb
Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery
...
# Conflicts:
# docs/config-catalog.i18n.yaml
# docs/config-catalog.md
# docs/config-catalog.zh.md
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# docs/module-graph.i18n.yaml
# docs/module-graph.md
# docs/module-graph.zh.md
# packages/api/session-controller/src/control.ts
# packages/context/agent-instructions/tests/agent-instructions.spec.ts
# packages/test-support/agent-loop-testkit/package.json
2026-08-31 13:37:55 +08:00
_Kerman
35371d0f59
Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery
...
# Conflicts:
# packages/api/session-controller/src/control.ts
2026-08-31 13:37:12 +08:00
_Kerman
b9b2a37528
Merge remote-tracking branch 'origin/master' into xtr/durable-inbox-recovery
...
# Conflicts:
# apps/cli/tests/fixtures/dsh-badge/snapshot.ts
# docs/config-catalog.i18n.yaml
# docs/config-catalog.md
# docs/config-catalog.zh.md
# docs/event-producer-consumer.i18n.yaml
# docs/event-producer-consumer.md
# docs/event-producer-consumer.zh.md
# docs/module-graph.i18n.yaml
# docs/module-graph.md
# docs/module-graph.zh.md
# docs/persistence-catalog.i18n.yaml
# docs/persistence-catalog.md
# docs/persistence-catalog.zh.md
# packages/api/session-controller/tests/session-projections.host.spec.ts
# packages/context/agent-instructions/tests/agent-instructions.e2e.ts
# packages/context/agent-instructions/tests/agent-instructions.spec.ts
# packages/context/tmux-context/tests/tmux-context.spec.ts
# packages/core/agent-loop/package.json
# packages/core/agent-loop/src/agent.ts
# packages/core/agent-loop/src/index.ts
# packages/core/agent/src/index.ts
# packages/core/agent/src/types.ts
# packages/goal/goal/tests/goal.spec.ts
# packages/goal/tool-goal/package.json
# packages/llm/llm-retry/tests/retry.spec.ts
# packages/session-query/session-query/tests/observation.spec.ts
# packages/shell/tool-pwsh-persistent/tests/loader-composition.spec.ts
# packages/test-support/agent-loop-testkit/package.json
# packages/workflow/workflow-worker-thread/tests/workflow-worker-thread.e2e.ts
# pnpm-lock.yaml
2026-08-31 13:37:06 +08:00
_Kerman
8b0ea3e461
fix(session-controller): derive queues from projections
2026-08-31 13:35:52 +08:00
imccyu
f4e49ccf8f
refactor(services): move shared values behind service APIs
2026-08-30 02:29:51 +08:00
Dudu-0223
51a6eabb27
perf(api): replace shift-backed stream queues
2026-08-28 17:37:03 +08:00
_Kerman
d25ace0f22
refactor(api): require the session projection registry
2026-08-28 12:50:51 +08:00
creatixchu
98da332260
feat(session-controller): 客户端本地提交回显与 rpcId 关联
...
beginSubmission 在 prompt 之前同步把本地提交回显写入 SessionSnapshot.pendingSubmissions;
durable user/message(source.rpcId)或队列投影(SessionQueuedItem.rpcId)到达后延迟一帧退休,
prompt 失败与放弃立即退休并回调 onRetire。fixture 的 prompt 同步回显 requestId。
2026-08-26 11:48:33 +08:00
imccyu
69fad4b8db
perf(session-controller): serve cache-first session state
2026-08-25 06:07:26 +08:00
imccyu
639dcef5d8
refactor(api-session): remove interaction transport
2026-08-23 16:16:03 +08:00
imccyu
d26acfa2e3
refactor(session): move APIs into Session Controller
2026-08-23 16:16:02 +08:00