xjt
e1481e2d98
docs(i18n): resolve follow-up review findings
2026-07-29 18:38:56 +08:00
j-xiang
ed4a6fd026
docs(i18n): address automated review
2026-07-29 17:46:06 +08:00
j-xiang
599e6edc87
docs(i18n): record proofread README pairs
2026-07-29 15:30:44 +08:00
j-xiang
bc7086a087
docs(i18n): proofread README translations 161-180
2026-07-29 15:29:39 +08:00
Tianyi Cui
9801a0d102
fix(tool-web): bound HTML conversion work
2026-07-27 16:40:02 +08:00
Tianyi Cui
109b469a7e
fix(tool-web): bound conversion depth and complete fetch output
...
Two review findings on the turndown swap, both verified empirically:
- Unclosed-tag nesting makes the synchronous turndown/domino walk
superlinear (measured: depth 512 ~0.15s, 2k ~2s, 20k ~5s), during
which the cooperative fetchTimeoutMs timer cannot fire. renderBody
now preflights nesting depth with a linear tag scan and passes
bodies past 512 levels through raw; the try/catch stays for markup
the scan cannot see (comment-hidden tags), simulated in tests via a
converter throw.
- Markdown escaping can expand converted HTML ~2x (100k underscores
render as 200k chars), so provider body caps no longer bounded the
model-visible result. formatFetchOutput now caps the complete output
(header + body + footer) under new fetchMaxOutputChars config
(default 200000 = 2x the local provider's default body cap), reusing
the truncation notice.
README EN+ZH, config catalog, Agent Note EN+ZH updated; the new
web-fetch fixture is migrated to the packed layout master now
requires; tool-web coverage stays 100% per-file.
2026-07-27 12:41:36 +08:00
Tianyi Cui
67b6610e9f
Merge remote-tracking branch 'origin/master' into nih-imp-turndown
2026-07-27 06:08:05 +08:00
Tianyi Cui
45a5175e44
feat(tool-web): replace the regex HTML-to-markdown converter with turndown
...
Implements the turndown Agent Note from the NIH dependency audit (full
variant, not the minimal entities-only fallback): dsh-tool-web's fetch
rendering now converts HTML through turndown + @joplin/turndown-plugin-gfm
(atx headings, fenced code, dash bullets, GFM tables/strikethrough) over
the real domino DOM, with script/style/noscript removed wholesale. The
hand-rolled ~86-line regex converter html.ts and its entity tables are
deleted; renderBody wraps the conversion in try/catch falling back to
the raw HTML body, because turndown's recursive DOM walk overflows with
a RangeError on pathological nesting (measured: 4k levels on the main
thread, 8k in a worker) where the regex version could never throw.
Closure weight, measured: tool-web IS in the single-exe runtime closure,
and the exe asset globs would pack ~7.9 MB of the three new packages —
but ~6 MB of that is domino's test corpus, with runtime lib/ at ~550 KB
against a ~174 MB artifact (<0.5% either way), so the swap wins.
Per testing policy the previously-missing keyless web_fetch snapshot
ships in the same change: the acp-agent `web-fetch` scenario boots a new
web.cordis.yml overlay (web seam + real dsh-web-fetch-local provider +
tool-web fetch-only + a loopback HTTP fixture server on a fixed port
serving deterministic HTML with entities, a GFM table, and nesting), so
recording and keyless replay both drive the real HTTP fetch and real
conversion end to end; the scenario pins the new `web` header class.
The Agent Note moves proposed -> implemented and is rewritten per the
lifecycle contract (Decision/Consequences/Testing, closure verdict and
alternatives recorded); tool-web and acp-agent READMEs updated in both
languages and pairs re-recorded.
2026-07-27 00:22:13 +08:00
Tianyi Cui
37140bf823
docs(notes): archive low-value decision records
2026-07-26 23:06:00 +08:00
Tianyi Cui
226dc7a249
docs: translate remaining READMEs
2026-07-26 05:06:39 +08:00
Tianyi Cui
4cd5f21c08
Merge branch 'codex/tool-json-schema-dsl' into codex/canonical-tool-output
2026-07-22 17:05:38 +08:00
Tianyi Cui
48395a937c
test(web): disable unreliable DeepSeek search smoke
2026-07-22 12:37:42 +08:00
Tianyi Cui
7d3cb39047
Merge branch 'codex/tool-json-schema-dsl' into codex/canonical-tool-output
...
# Conflicts:
# .agents/notes/implemented/feature/2026-06-30-interception-seams.md
# docs/config-catalog.md
# docs/cookbook/adding-a-tool.i18n.yaml
# docs/cookbook/adding-a-tool.md
# docs/cookbook/adding-a-tool.zh.md
# docs/cordis-catalog/events.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/tools.md
# docs/event-producer-consumer.md
# docs/persistence-catalog.md
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
# packages/bash/tool-bash/src/index.ts
# packages/core/agent-loop/src/tool-calls.ts
# packages/core/agent-loop/tests/cancel.spec.ts
# packages/core/agent-loop/tests/contract-regressions.spec.ts
# packages/core/agent-loop/tests/tool-calls.spec.ts
# packages/core/tools/README.md
# packages/core/tools/src/index.ts
# packages/core/tools/tests/code-mode.spec.ts
# packages/core/tools/tests/tools.spec.ts
# packages/fs/tool-fs-search/tests/integration.spec.ts
# packages/fs/tool-fs-search/tests/tools.spec.ts
# packages/fs/tool-fs/tests/integration.spec.ts
# packages/mcp/mcp-client/src/tools.ts
# packages/timeout/timeout-policy/tests/timeout-policy.spec.ts
# packages/web/tool-web/tests/integration.spec.ts
# packages/web/tool-web/tests/tool-web.spec.ts
2026-07-21 23:39:03 +08:00
Tianyi Cui
0004b8675f
Merge remote-tracking branch 'origin/master' into codex/enforce-tool-cancellation
...
# Conflicts:
# docs/event-producer-consumer.md
# examples/acp-agent/tests/snapshots/bash-spill/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/escalation-rejected/session.jsonl
# examples/acp-agent/tests/snapshots/fs-escalation-approved/session.jsonl
# examples/acp-agent/tests/snapshots/hook-cc-pretool-ask/session.jsonl
# packages/context/workspace-context/tests/workspace-context.spec.ts
# packages/core/agent/src/index.ts
# packages/support/invariants/tests/invariants.spec.ts
# packages/ui/acp/src/index.ts
# packages/ui/tui/tests/harness.ts
# packages/ui/tui/tests/tui.spec.ts
2026-07-21 20:03:00 +08:00
Tianyi Cui
72a48fede6
Merge branch 'codex/tool-json-schema-dsl' into codex/canonical-tool-output
...
# Conflicts:
# docs/event-producer-consumer.md
# packages/context/time-context/tests/time-context.spec.ts
# packages/context/workspace-context/tests/workspace-context.spec.ts
2026-07-21 19:56:43 +08:00
Tianyi Cui
66c36e7325
feat: add canonical typed tool outputs
2026-07-21 03:22:14 +08:00
Tianyi Cui
4311aaabb0
Merge remote-tracking branch 'origin/master' into codex/enforce-tool-cancellation
...
# Conflicts:
# docs/cookbook/adding-a-tool.i18n.yaml
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
# examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/stdout.expected.jsonl
# packages/bash/tool-bash/src/index.ts
# packages/core/agent-loop/README.md
# packages/core/tools/README.md
# packages/core/tools/tests/scoped.spec.ts
# packages/fs/tool-fs-search/tests/tools.spec.ts
# website/zh-CN/api/harness/events.md
# website/zh-CN/api/harness/tools.md
2026-07-20 23:00:21 +08:00
Tianyi Cui
f78b17a352
Merge branch 'codex/invariant-package-registration-gate' into codex/package-invariant-checks
2026-07-20 19:55:46 +08:00
Tianyi Cui
9c4cc05da6
Merge branch 'codex/invariant-service-seam' into codex/invariant-package-registration-gate
2026-07-20 19:48:51 +08:00
Tianyi Cui
1145ee5fc3
fix(invariants): assert runtime relationships, not API shapes
2026-07-20 19:34:19 +08:00
Tianyi Cui
3b7ce2e682
fix(invariants): require justified empty companions
2026-07-20 18:39:37 +08:00
Tianyi Cui
eab5699fd4
Merge branch 'master' into codex/reject-credentialed-search-redirects
2026-07-20 18:20:47 +08:00
Tianyi Cui
684fcf3357
Merge branch 'codex/invariant-package-registration-gate' into codex/package-invariant-checks
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.md
# .agents/notes/implemented/architecture/2026-07-19-package-invariant-runtime-contracts.zh.md
# .agents/notes/implemented/architecture/2026-07-19-package-owned-invariant-service.i18n.yaml
# docs/rfc/INDEX.md
# packages/AGENTS.md
2026-07-20 00:54:28 +08:00
Tianyi Cui
941b0411d8
feat(invariants): implement package runtime checks
2026-07-20 00:38:37 +08:00
Tianyi Cui
6520f71f94
Merge remote-tracking branch 'origin/codex/invariant-service-seam' into codex/invariant-package-registration-gate
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-19-package-owned-invariant-service.i18n.yaml
# docs/core-data-structures/session.md
# docs/module-graph.md
# package.json
# packages/sdk/scripts/tsconfig.json
2026-07-20 00:35:06 +08:00
Tianyi Cui
a9a44fea96
Merge remote-tracking branch 'origin/master' into codex/enforce-tool-cancellation
...
# Conflicts:
# .agents/notes/implemented/architecture/2026-07-19-cooperative-tool-cancellation.i18n.yaml
# .agents/notes/implemented/architecture/2026-07-19-cooperative-tool-cancellation.md
# .agents/notes/implemented/architecture/2026-07-19-cooperative-tool-cancellation.zh.md
# .agents/notes/proposed/architecture/2026-07-19-required-cancellation-through-tool-capability-seams.i18n.yaml
# .agents/notes/proposed/architecture/2026-07-19-required-cancellation-through-tool-capability-seams.md
# .agents/notes/proposed/architecture/2026-07-19-required-cancellation-through-tool-capability-seams.zh.md
# docs/cookbook/adding-a-tool.i18n.yaml
# docs/rfc/INDEX.md
# packages/AGENTS.md
2026-07-19 23:43:36 +08:00
Tianyi Cui
e8b95c8754
feat(tools): require cancellation signal on every invocation
2026-07-19 23:38:54 +08:00
Tianyi Cui
e8eddc7ef8
Rename RFCs to Agent Notes
2026-07-19 22:52:03 +08:00
Tianyi Cui
433670a754
feat(invariants): require package-owned companions
2026-07-19 22:13:50 +08:00
Tianyi Cui
80b07984c4
docs(web): codify credentialed redirect policy
2026-07-19 21:56:02 +08:00
Tianyi Cui
5e0e4b2401
fix(web): reject credentialed search redirects
2026-07-19 21:32:23 +08:00
Tianyi Cui
a278374e8f
docs: structure model experience fields
2026-07-19 18:08:42 +08:00
Tianyi Cui
bcc920369c
docs: document package KV cache effects
2026-07-19 17:39:50 +08:00
Tianyi Cui
21ec178841
docs: tighten parallel tool-call prose
2026-07-18 14:59:26 +08:00
Tianyi Cui
688b95a7e5
Merge origin/master into parallel-tool-call
2026-07-17 22:13:33 +08:00
Dudu-0223
a3f62478e1
Merge origin/master into codex/truncated-design
2026-07-17 18:21:54 +08:00
Dudu-0223
3bed1a644f
Merge origin/master into parallel-tool-call
2026-07-16 14:56:02 +08:00
Tianyi Cui
713b50cc2c
Merge remote-tracking branch 'origin/master' into codex/simp-hide-web-provider-helpers
2026-07-15 13:32:45 +08:00
Tianyi Cui
96851da571
Merge remote-tracking branch 'origin/master' into codex/simp-prune-web-seam-fields
...
# Conflicts:
# docs/rfc/INDEX.md
2026-07-15 13:28:40 +08:00
imccyu
31f4441fd4
pkg: update vendor dep
2026-07-15 11:28:45 +08:00
Dudu-0223
77be4b891b
Merge remote-tracking branch 'origin/master' into pr-265
...
# Conflicts:
# docs/config-catalog.md
# docs/cordis-catalog/services.md
# docs/rfc/INDEX.md
# examples/acp-agent/tests/snapshots/both-mode-turn/session.jsonl
# examples/acp-agent/tests/snapshots/skill-load/session.jsonl
# examples/acp-agent/tests/snapshots/text-turn/session.jsonl
# examples/sandbox-acp-agent/tests/snapshots/escalation-approved/session.jsonl
# examples/sandbox-acp-agent/tests/snapshots/escalation-rejected/session.jsonl
# packages/core/agent-loop/README.md
# packages/core/agent-loop/src/loop.ts
# packages/core/tools/README.md
# packages/core/tools/src/index.ts
# packages/core/tools/src/schema.ts
# packages/ui/acp/src/index.ts
# packages/ui/stdio-agent/README.md
2026-07-14 20:49:54 +08:00
Tianyi Cui
c08b5a24ec
Merge branch 'codex/simp-prune-web-seam-fields' into codex/simp-hide-web-provider-helpers
...
# Conflicts:
# docs/config-catalog.md
2026-07-14 19:12:06 +08:00
Tianyi Cui
92c52eec20
Merge remote-tracking branch 'origin/master' into codex/simp-prune-web-seam-fields
...
# Conflicts:
# docs/config-catalog.md
# docs/cordis-catalog/services.md
# docs/core-data-structures/web.md
# docs/rfc/implemented/simplification/2026-07-04-drop-unconsumed-web-observation-surface.md
# packages/web/tool-web/tests/integration.spec.ts
# packages/web/web-fetch-local/README.md
# packages/web/web-fetch-local/src/provider.ts
# packages/web/web/src/types.ts
2026-07-14 17:57:50 +08:00
Tianyi Cui
fdf0789938
Merge branch 'codex/simp-prune-web-seam-fields' into codex/simp-hide-web-provider-helpers
2026-07-14 15:56:51 +08:00
Tianyi Cui
b79520ab87
Merge remote-tracking branch 'origin/master' into codex/simp-prune-web-seam-fields
...
# Conflicts:
# packages/web/tool-web/README.md
# packages/web/web/README.md
2026-07-14 15:56:42 +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
Dudu-0223
30ba5bd23c
Merge remote-tracking branch 'origin/master' into codex/truncated-design
...
# Conflicts:
# docs/config-catalog.md
# docs/rfc/INDEX.md
# examples/acp-agent/README.md
# packages/bash/tool-bash/tests/tools.spec.ts
2026-07-14 10:57:29 +08:00
Tianyi Cui
b398d64ab1
Merge branch 'codex/simp-prune-web-seam-fields' into codex/simp-hide-web-provider-helpers
...
# Conflicts:
# docs/config-catalog.md
2026-07-14 05:08:05 +08:00
Tianyi Cui
3f676efbd9
fix: bound local fetch timer config
2026-07-14 05:06:01 +08:00
Tianyi Cui
0c88df78b2
refactor: hide web provider helpers
2026-07-14 04:21:48 +08:00