Yichen Jiang
004f598917
Merge remote-tracking branch 'origin/master' into worktree/web-multimodal-image-input
...
# Conflicts:
# docs/architecture.i18n.yaml
# docs/architecture.md
# docs/architecture.zh.md
# docs/config-catalog.md
# docs/core-data-structures/core.i18n.yaml
# docs/core-data-structures/llm-streaming.i18n.yaml
# docs/module-graph.md
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# packages/README.i18n.yaml
# packages/client/connection/src/client/fixture.ts
# packages/client/connection/src/index.ts
# packages/client/runtime/README.i18n.yaml
# packages/client/runtime/README.md
# packages/client/runtime/README.zh.md
# packages/client/runtime/src/client/sessions/conversation.ts
# packages/client/ui-conversation/README.i18n.yaml
# packages/client/ui-conversation/src/client/apply.ts
# packages/client/ui-conversation/src/client/chat/ChatView.tsx
# packages/client/ui-conversation/src/client/chat/MessageItem.tsx
# packages/client/ui-conversation/src/client/contract/slots.ts
# packages/client/ui-trajectory/tests/views.spec.tsx
# packages/compact/compact-basic/README.i18n.yaml
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/host/apiproxy/src/api-proxy.ts
# packages/host/apiproxy/src/api/index.ts
# packages/host/apiproxy/src/api/sessions.ts
# packages/host/apiproxy/src/index.ts
# packages/host/apiproxy/tests/fetch-carrier.spec.ts
# packages/llm/llm-deepseek/src/adapter.ts
# packages/llm/llm-deepseek/tests/adapter.spec.ts
# packages/llm/llm-deepseek/tests/serialize.spec.ts
# packages/llm/llm-pi-ai/README.i18n.yaml
# packages/llm/llm-pi-ai/src/adapter.ts
# packages/llm/llm-pi-ai/src/index.ts
# packages/llm/llm-pi-ai/tests/adapter.spec.ts
# packages/llm/llm/src/types.ts
# packages/ui/tui/README.i18n.yaml
# packages/ui/tui/src/index.ts
# packages/ui/tui/tests/tui.spec.ts
2026-07-28 11:41:40 +08:00
_Kerman
ed67ad53d2
refactor(agent): return request retry action
2026-07-27 21:17:49 +08:00
Yichen Jiang
b599d1d0af
Merge remote-tracking branch 'origin/master' into worktree/web-multimodal-image-input
...
# Conflicts:
# .gitignore
# apps/cli/package.json
# apps/cli/src/web.ts
# docs/architecture.i18n.yaml
# docs/config-catalog.md
# docs/module-graph.md
# packages/client/connection/README.md
# packages/client/connection/src/client/api.ts
# packages/client/connection/src/client/fixture.ts
# packages/client/runtime/README.md
# packages/client/runtime/src/client/sessions/service.ts
# packages/client/runtime/src/client/sessions/session.ts
# packages/client/runtime/src/client/workspaces/service.ts
# packages/client/ui-conversation/src/client/apply.ts
# packages/client/ui-conversation/src/client/chat/MessageItem.tsx
# packages/client/ui-conversation/src/client/contract/slots.ts
# packages/client/ui-conversation/src/client/index.ts
# packages/client/ui-conversation/src/client/service.ts
# packages/client/ui-conversation/src/client/skeleton/ConversationRoot.tsx
# packages/client/ui-conversation/src/client/skeleton/EmptyHero.tsx
# packages/client/ui-conversation/src/client/skeleton/EmptyState.tsx
# packages/client/ui-conversation/src/client/skeleton/InputBar.module.css
# packages/client/ui-conversation/src/client/skeleton/InputBar.tsx
# packages/client/ui-conversation/tests/apply-inject.spec.tsx
# packages/client/ui-conversation/tests/input-bar.spec.tsx
# packages/client/ui-conversation/tests/skeleton.spec.tsx
# packages/client/ui-trajectory/tests/views.spec.tsx
# packages/host/apiproxy/src/api-proxy.ts
# pnpm-lock.yaml
2026-07-27 12:27:30 +08:00
_Kerman
8117f61396
Merge remote-tracking branch 'origin/master' into xtr/agent-loop-message-machine
...
# Conflicts:
# packages/context/workspace-context/README.md
# packages/llm/llm-retry/README.md
# packages/session-persistence/session-checkpoint-policy/README.md
# scripts/type-equiv.manifest.json
2026-07-26 16:45:27 +08:00
Tianyi Cui
226dc7a249
docs: translate remaining READMEs
2026-07-26 05:06:39 +08:00
_Kerman
b73eb7663c
refactor(agent-loop): simplify observable state machine
2026-07-24 21:18:48 +08:00
Yichen Jiang
580e05b794
fix(gui): harden multimodal image attachments
2026-07-23 19:38:37 +08:00
Yichen Jiang
5234a40f9c
refactor(llm): classify auxiliary request purpose
2026-07-22 18:59:49 +08:00
Jinhua Zhu
66e5f8eecd
feat(llm): mark compaction requests with x-deepseek-harness-compact header
2026-07-22 18:35:32 +08:00
Tianyi Cui
3a895ce815
Merge master into codex/session-title
2026-07-21 21:11:32 +08:00
Tianyi Cui
21721bf3b1
Merge branch 'master' into fix/compaction-kv-cache-reuse
...
# Conflicts:
# packages/compact/compact-basic/src/index.ts
# packages/compact/compact-basic/src/summarizer.ts
# packages/compact/compact-basic/tests/compact-basic.spec.ts
2026-07-21 19:45:43 +08:00
Tianyi Cui
5261ebab38
fix(compact-basic): fence surface changes only
2026-07-21 16:34:28 +08:00
Turtle
a0268d2509
fix(compact-basic): replay conversation prefix so summarization reuses KV cache
...
Automatic compaction fires mid-conversation, right after the loop warmed
the provider's KV cache with the last routed request. The default
summarizer then issued a separate request whose prefix shared nothing
with that warm request — a bespoke summarizer system prompt followed by
the older history flattened to one rendered transcript string — so a
differing first token invalidated the entire cached prefix and every
compaction re-processed the whole replayed history twice.
Move the compaction directive from the FRONT (a fresh system prompt) to
the END (a trailing user message), and replay the last routed request's
own system prompt, tools, message prefix, and shadowed-region messages
verbatim via session.requestHeader() + deriveEventMessage. The auxiliary
call is now a genuine prefix-extension of the warm request, so the
provider reuses the cached tokens up to the trailing instruction.
SummarizationInput carries the replayed prefix instead of a flat string;
the now-unused renderTranscript/renderContentBlocks path is removed with
its spec. Cache reuse is best-effort (head compaction guarantees a hit;
a mid-range compaction or a differently-routed summarizer forgoes it),
correctness is not.
2026-07-21 13:55:22 +08:00
Yichen Jiang
b6f6c58435
Merge remote-tracking branch 'origin/master' into worktree/routed-model-compaction-policy
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.md
# .agents/notes/implemented/architecture/2026-07-10-after-call-compaction-pressure-and-overflow-recovery.zh.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# examples/headless-agent/tests/harness.ts
# examples/repl-agent/cordis.yml
# packages/compact/compact-basic/README.md
# packages/compact/compact-basic/src/index.ts
# packages/compact/compact-basic/tests/compact-basic.spec.ts
# packages/compact/compact-basic/tests/loader-composition.spec.ts
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/llm/README.md
# packages/llm/llm-deepseek/src/adapter.ts
# packages/llm/llm-pi-ai/src/adapter.ts
# packages/llm/llm/README.md
# packages/llm/llm/src/index.ts
# scripts/gen-cordis-catalog.ts
# website/zh-CN/api/harness/events.md
# website/zh-CN/api/harness/llm.md
# website/zh-CN/api/harness/token-meter.md
# website/zh-CN/guide/config.md
2026-07-21 10:17:55 +08:00
Tianyi Cui
6b44d01bc8
Merge master into compact-tool-result-prune
2026-07-20 16:41:59 +08:00
Yichen Jiang
cfa180c127
Resolve compaction policy per routed model
2026-07-20 15:34:00 +08:00
Tianyi Cui
e8eddc7ef8
Rename RFCs to Agent Notes
2026-07-19 22:52:03 +08:00
Tianyi Cui
a278374e8f
docs: structure model experience fields
2026-07-19 18:08:42 +08:00
Tianyi Cui
9c5b86051b
Merge master into tool-result pruning
...
Retarget the pruning feature onto the merged compaction foundation.
Adapt content-only tool-result rewrite validation to the session-owned surface manager, migrate the demo wiring to repl-agent, and refresh generated type, catalog, and website contracts while preserving pressure and overflow pruning behavior.
2026-07-19 17:54:55 +08:00
Tianyi Cui
bcc920369c
docs: document package KV cache effects
2026-07-19 17:39:50 +08:00
Tianyi Cui
7be78c7d4c
Merge latest origin/master into compact-post-step-overflow-recovery
...
# Conflicts:
# docs/agent-lifecycle.md
# docs/architecture.md
# docs/cookbook/extension-cookbook.i18n.yaml
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# docs/rfc/INDEX.md
# docs/rfc/implemented/architecture/2026-07-05-reconstructable-requests.md
# docs/rfc/implemented/architecture/2026-07-15-replay-token-meter-service.i18n.yaml
# docs/rfc/implemented/architecture/2026-07-15-replay-token-meter-service.md
# docs/rfc/implemented/architecture/2026-07-15-replay-token-meter-service.zh.md
# docs/rfc/implemented/feature/2026-06-18-compaction-capability-seam.md
# docs/rfc/implemented/feature/2026-07-07-session-prefix.md
# packages/compact/compact-basic/README.md
# packages/compact/compact-basic/src/config.ts
# packages/compact/compact-basic/src/index.ts
# packages/compact/compact-basic/src/summarizer.ts
# packages/compact/compact-basic/tests/compact-basic.spec.ts
# packages/compact/compact-basic/tests/compact-loop-repro.spec.ts
# packages/compact/compact/README.md
# packages/cordis/tool-cordis/src/api-catalog.ts
# packages/core/agent-loop/src/loop.ts
# packages/core/agent-loop/tests/cancel.spec.ts
# packages/llm/llm-deepseek/src/adapter.ts
# packages/llm/llm-pi-ai/README.md
# packages/llm/llm-pi-ai/src/stream.ts
# packages/llm/llm-pi-ai/tests/convert.spec.ts
# packages/llm/llm/README.md
# packages/llm/llm/src/index.ts
# packages/llm/llm/tests/service.spec.ts
# scripts/gen-doc-graphs.ts
2026-07-19 12:06:23 +08:00
Tianyi Cui
7c65e12a42
Merge branch 'codex/simp-trim-hook-snapshot-noise' into codex/simp-compaction-surface
...
# Conflicts:
# docs/rfc/implemented/feature/2026-06-18-compaction-capability-seam.md
# packages/compact/compact-basic/README.md
# packages/compact/compact-basic/src/index.ts
# packages/compact/compact-basic/tests/compact-basic.spec.ts
# packages/compact/compact/README.md
# packages/compact/compact/src/index.ts
2026-07-18 12:07:34 +08:00
Tianyi Cui
f943bc8d4c
Merge latest origin/master into token-meter-service
2026-07-17 22:38:46 +08:00
Tianyi Cui
847a1a1a5a
Merge remote-tracking branch 'origin/master' into worktree/provider-routed-llm-adapters
...
# Conflicts:
# docs/cordis-catalog/services.md
# docs/event-producer-consumer.md
# packages/core/session/README.md
# packages/core/session/tests/tool-pairing.spec.ts
# website/zh-CN/api/harness/sessions.md
2026-07-17 22:07:37 +08:00
Hypatia May
ba4a57c7d1
refactor(compact): align pruning contracts (round 3)
2026-07-16 18:51:26 +08:00
Hypatia May
171bae5c20
fix(compact): harden pruning integration (round 2)
2026-07-16 18:28:31 +08:00
Hypatia May
ce96104a77
feat(compact): prune tool results before summarization (round 1)
2026-07-16 18:02:15 +08:00
Hypatia May
5ff491e3a2
Merge remote-tracking branch 'origin/token-meter-service' into compact-post-step-overflow-recovery
...
# Conflicts:
# docs/core-data-structures/compaction.md
# docs/rfc/implemented/architecture/2026-07-15-replay-token-meter-service.i18n.yaml
# docs/rfc/implemented/architecture/2026-07-15-replay-token-meter-service.md
# docs/rfc/implemented/architecture/2026-07-15-replay-token-meter-service.zh.md
# docs/rfc/implemented/feature/2026-06-18-compaction-capability-seam.md
# examples/coding-agent/cordis.yml
# packages/compact/compact-basic/README.md
# packages/compact/compact-basic/src/automatic.ts
# packages/compact/compact-basic/src/config.ts
# packages/compact/compact-basic/src/index.ts
# packages/compact/compact-basic/tests/compact-basic.spec.ts
2026-07-16 16:18:16 +08:00
Hypatia May
19a56ec542
fix(token-meter): reject stale config (round 2)
2026-07-16 13:23:20 +08:00
Hypatia May
5c243e8a8d
refactor(token-meter): simplify singleton service (round 1)
2026-07-16 12:58:07 +08:00
Hypatia May
12484104c8
feat(compact): recover context overflow (PR3 phase 2)
2026-07-15 16:50:44 +08:00
Hypatia May
99dccf559a
fix(compact): preserve replay ownership (PR2 round 2)
2026-07-15 15:13:57 +08:00
Hypatia May
f038780ff6
feat(llm): add replay token metering (PR2 round 1)
2026-07-15 14:47:29 +08:00
Hypatia May
cc546c4580
feat(compact): move pairing helpers (PR1 round 1)
2026-07-15 13:22:44 +08:00
Yichen Jiang
815365dbbe
Merge remote-tracking branch 'origin/master' into worktree/provider-routed-llm-adapters
...
# Conflicts:
# docs/config-catalog.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/core.md
# docs/event-producer-consumer.md
# docs/persistence-catalog.md
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.1.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.2.jsonl
# examples/acp-agent/tests/snapshots/advanced-toolchain/session.jsonl
# examples/acp-agent/tests/snapshots/both-mode-turn/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
# examples/acp-agent/tests/snapshots/skill-load/session.jsonl
# examples/acp-agent/tests/snapshots/text-turn/session.jsonl
# examples/sandbox-acp-agent/cordis.yml
# examples/sandbox-acp-agent/tests/snapshots/escalation-approved/session.jsonl
# examples/sandbox-acp-agent/tests/snapshots/escalation-rejected/session.jsonl
# examples/sandbox-acp-agent/tests/snapshots/mode-switching/session.jsonl
# packages/compact/compact-basic/README.md
# packages/compact/compact-basic/src/index.ts
# packages/compact/compact-basic/tests/compact-basic.spec.ts
# packages/core/agent-loop/README.md
# packages/core/agent-loop/src/loop.ts
# packages/core/agent-loop/tests/properties.spec.ts
# packages/core/session/README.md
# packages/core/session/src/types.ts
# packages/core/session/tests/derived-cache.spec.ts
# packages/llm/llm-deepseek/src/index.ts
# packages/llm/llm-pi-ai/README.md
# packages/llm/llm-pi-ai/src/adapter.ts
# packages/llm/llm-pi-ai/src/convert.ts
# packages/llm/llm-pi-ai/tests/adapter.spec.ts
# packages/llm/llm/README.md
# packages/llm/llm/src/call-config.ts
# packages/llm/llm/src/index.ts
# packages/ui/acp-agent/src/index.ts
# packages/ui/acp/tests/harness.ts
# packages/ui/jsonrpc/README.md
# packages/ui/jsonrpc/src/server.ts
# packages/ui/stdio-agent/README.md
# packages/ui/stdio-agent/src/index.ts
# python/sdk/README.i18n.yaml
2026-07-14 22:17:50 +08:00
Yichen Jiang
e547980d77
feat(llm): route adapters by provider
2026-07-14 21:57:52 +08:00
Tianyi Cui
f28b1bb4bf
Merge branch 'codex/simp-trim-hook-snapshot-noise' into codex/simp-compaction-surface
...
# Conflicts:
# docs/cordis-catalog/services.md
# docs/core-data-structures/compaction.md
# packages/compact/compact/src/index.ts
2026-07-14 18:45:25 +08:00
Tianyi Cui
908603ad73
Merge branch 'codex/simp-trim-hook-snapshot-noise' into codex/simp-compaction-surface
2026-07-14 15:26:46 +08:00
Tianyi Cui
8590ba00a4
Merge remote-tracking branch 'origin/master' into codex/trim-ai-prose
...
# Conflicts:
# docs/AGENTS.md
# docs/config-catalog.md
# packages/bash/bash-sandbox/src/index.ts
# packages/bash/bash/src/session-mode.ts
# packages/bash/tool-bash/README.md
# packages/code-runtime/code-runtime-worker/README.md
# packages/compact/compact/src/index.ts
# packages/core/agent-core/README.md
# packages/hooks/hooks-claude/src/config.ts
# packages/hooks/hooks-claude/src/index.ts
# packages/hooks/hooks-codex/src/config.ts
# packages/hooks/hooks-codex/src/index.ts
# packages/llm/llm/README.md
# packages/session-persistence/session-persistence-jsonl/README.md
# packages/session-persistence/session-persistence/README.md
# packages/skill/skill-local/README.md
# packages/support/acp-snapshot/README.md
# packages/support/invariants/src/index.ts
# packages/ui/acp/README.md
# packages/ui/jsonrpc-agent/README.md
# packages/ui/jsonrpc/README.md
# packages/ui/permission/README.md
# packages/ui/user-approval/README.md
# packages/ui/user-interaction/README.md
# packages/web/web-search-deepseek/README.md
2026-07-14 14:37:16 +08:00
Tianyi Cui
d7de8a8d13
refactor: narrow compaction surface
2026-07-14 01:24:20 +08:00
Tianyi Cui
eed43abe66
docs: address final model experience review
2026-07-14 00:22:52 +08:00
Tianyi Cui
148046b9c8
docs: rebalance prose cleanup and add trimming skill
2026-07-13 23:27:00 +08:00
Tianyi Cui
d77f797d89
docs: replace model experience tables with sections
2026-07-13 22:26:33 +08:00
Tianyi Cui
646f3d2d0c
docs: apply verbatim model experience guidance repo-wide
2026-07-13 21:33:23 +08:00
Tianyi Cui
c45d7927cf
docs: tighten prose audit after master retarget
2026-07-13 16:24:32 +08:00
Tianyi Cui
b5cd511f35
docs: address model experience review
2026-07-12 02:55:26 +08:00
Tianyi Cui
a08485fc80
Merge remote-tracking branch 'origin/codex/package-readme-limitations-audit-20260712' into codex/model-experience-readmes-20260712
...
# Conflicts:
# docs/cookbook/adding-a-package.md
# docs/rfc/INDEX.md
# package.json
# packages/AGENTS.md
# packages/bash/bash-sandbox/README.md
# packages/sandbox/sandbox-local/README.md
# packages/sandbox/sandbox/README.md
# packages/session-persistence/session-persistence-sqlite/README.md
# packages/support/acp-snapshot/README.md
# packages/ui/app-boot/README.md
# packages/ui/user-approval/README.md
# packages/workflow/tool-workflow/README.md
2026-07-12 02:48:49 +08:00
Tianyi Cui
027970043c
docs: document package model experience
2026-07-12 02:12:36 +08:00
Tianyi Cui
ecb8aa5b8e
Add a gated Known Limitations and Deferred Work section to every package README
...
Every packages/*/* README now carries a canonical '## Known Limitations and
Deferred Work' section: condensed, evidence-backed bullets for consumer-visible
gaps (unimplemented features, platform caveats, MVP cuts) and consciously
postponed work (TODO/FIXME/XXX markers, RFC deferrals still open). The ten
pre-existing ad-hoc variants ('What is NOT here (TODO)', 'Deferred',
'Limitations (MVP)', 'Known limitations (tracked TODOs)', ...) are normalized
into the canonical heading.
A new doc-sync gate, scripts/verify-readme-limitations.ts, enforces the shape:
exactly one limitations-like heading per package README, byte-equal to the
canonical h2, with at least one bullet; near-miss headings fail so variants
cannot creep back. Packages with genuinely nothing to declare (dsh-brand,
dsh-timeout, dsh-subagent-mock, dsh-app-boot) are whitelisted in the script and
must NOT carry the section; whitelist entries are validated against the scanned
package set so a rename fails loud.
Wired into the doc-sync chain (package.json) and the run-gates doc-sync leaf
set; the standing rule lands in packages/AGENTS.md and the adding-a-package
cookbook; decision record in
docs/rfc/implemented/process/2026-07-10-readme-known-limitations-gate.md
(RFC index regenerated).
Also fixes two stale '(deferred)' markers claiming dsh-compact-basic is
unimplemented (the dsh-compact seam README's package table and the seam's
module doc comment).
2026-07-12 01:46:34 +08:00
Yichen Jiang
765052a7d1
fix(agent-loop): compose the session prefix before pre-step; hand it to the pressure gate
...
ds-review-bot critical (follow-up): on the first step of a resumed or
seeded/forked instance, auto-compaction ran before runStep composed
this instance's prefix, so the gate read the PREVIOUS instance's logged
prefix from the header fold — a contributor that grew across
resume/fork (skills added, AGENTS.md grown: exactly the
environment-dependent case) could under-gate and ship an over-window
first request.
The loop now composes agent/session-prefix before the instance's first
agent/pre-step (still once per instance; runStep just reads the cache),
and agent/pre-step carries the composed prefix to its listeners.
CompactService.compactIfNeeded gains the sessionPrefix parameter;
BasicCompactService.estimatePressure gates on the handed value — the
header-fold read is gone, so the estimate is exact at every step
including a resumed/forked instance's first. Composition moving before
the boundary snapshot also means a composing listener's session append
now joins the CURRENT request (documented on the seam).
New coverage: composition precedes pre-step and the seam receives the
composed prefix; cancel and disposal landing inside the composition
window drop the step cleanly; the compact gate test hands the prefix
directly.
2026-07-08 20:30:10 +08:00