Commit Graph
5560 Commits
Author SHA1 Message Date
Tianyi Cui fb7fa980b8 test(examples): include task controls in CLI composition 2026-07-15 22:58:44 +08:00
Tianyi Cui 380519b6d2 Merge remote-tracking branch 'origin/master' into codex/pr106-master-merge-review-20260715 2026-07-15 22:56:27 +08:00
Tianyi Cui cc7642ab66 Merge remote-tracking branch 'origin/master' into codex/cli-one-shot-demo
# Conflicts:
#	examples/coding-agent/README.md
2026-07-15 22:56:10 +08:00
Tianyi Cui 51f3a4eafc Merge remote-tracking branch 'origin/master' into codex/simp-prune-sandbox-surface
# Conflicts:
#	packages/bash/bash-sandbox/src/index.ts
2026-07-15 22:55:55 +08:00
Tianyi Cui 674216eb86 Merge pull request #298 from deepseek-harness/codex/simp-hide-web-provider-helpers
refactor: hide web provider helpers
2026-07-15 22:54:30 +08:00
Tianyi Cui 0fefc3d7b8 Merge branch 'master' into codex/simp-hide-web-provider-helpers 2026-07-15 22:49:56 +08:00
Tianyi Cui ff056f860f Merge remote-tracking branch 'origin/master' into codex/pr106-master-merge-review-20260715 2026-07-15 22:49:38 +08:00
Tianyi Cui 6c846531e7 Merge current master into PR #106 2026-07-15 22:44:47 +08:00
kingwl 8f5c592b9f fix(session): break chunk runs on time gaps that cannot subtract exactly
Two safe-integer timestamps can differ by more than 2^53-1 (e.g.
MIN_SAFE_INTEGER to MAX_SAFE_INTEGER-1), so the dt subtraction rounds
and the packed row decodes to a timestamp one off the original --
violating the codec's lossless contract. Unreachable from a real clock
(the gap needs ~285k years) but reachable from hand-written fixtures,
and the decoder accepts hand-written rows.

continues() now refuses to extend a run across such a gap (the check is
exact both ways: an in-range true gap subtracts without rounding and
passes; an out-of-range one rounds to an out-of-range value and fails),
splitting the run instead -- whitelist philosophy, compression lost,
data never. The decoder tightens to match the encoder's image: time0
and dt must be safe integers, and reconstructed member seqs/times must
stay in safe range, so float reconstruction is exact wherever
validation passes.

The round-trip property now draws times from the full safe-integer
range (it previously generated only small gaps, which is how this
escaped); the bot's counterexample is pinned as an example test.

Found by ds-review-bot on #338.
2026-07-15 22:44:32 +08:00
Tianyi Cui 5e3da065db test(examples): snapshot headless one-shot stream 2026-07-15 22:43:03 +08:00
Tianyi Cui c654119f9f Merge pull request #336 from deepseek-harness/dsh-code-review-maintenance-design
docs(dsh-code-review): distill review feedback and propose maintenance workflow
2026-07-15 22:24:02 +08:00
Tianyi Cui 8161fa3789 Merge branch 'master' into dsh-code-review-maintenance-design 2026-07-15 22:21:47 +08:00
kingwl f408d420da Merge remote-tracking branch 'origin/master' into jsonl-packed-chunk-rows
# Conflicts:
#	docs/event-producer-consumer.md
2026-07-15 22:14:42 +08:00
Tianyi Cui 4b11e420d9 Merge pull request #219 from deepseek-harness/codex/rfc-subagent-background-tasks
feat(tasks): background task runtime (ctx.tasks) + generic task_output/task_list/task_kill
2026-07-15 22:11:33 +08:00
Yichen Jiang 22448f2166 Merge branch 'master' into worktree/provider-routed-llm-adapters 2026-07-15 22:05:14 +08:00
Yichen Jiang 1094748bec Merge branch 'master' into codex/agent-session-jsonl-location 2026-07-15 22:04:58 +08:00
Tianyi Cui cd092e70ad docs(skill): require critical prose review
A source-of-truth link did not make the review obligation explicit, so reviewers could treat green documentation checks as sufficient. Make dsh-prose-standard a blocking requirement for every added or changed prose form and require semantic comparison with the owning code or behavior.
2026-07-15 21:56:46 +08:00
Tianyi Cui 680b3c1b99 Merge updated PR head before review fixes
The original PR branch merged the same current master while the inline-feedback work was in progress. Preserve that remote ancestry and combine it with the local review-fix commit instead of overwriting or rewriting either history.
2026-07-15 21:46:53 +08:00
Tianyi Cui b06ae91fa8 fix(tasks): address task API review feedback
The public kill result used the awkward phrase already-terminal. Rename it to already-finished and keep the model-facing response aligned; not-alive would be inaccurate because a force-failed registry record can still correspond to orphaned producer work.

Task kinds were open strings even though producer namespaces are an extension point. Add the merge-extensible TaskKindMap and derived TaskKind, cover consumer declarations in task and bundle tests, and retain the runtime non-empty check for untyped callers.

With exactOptionalPropertyTypes, owner?: Agent | undefined allowed an explicit undefined value that no caller needs. Tighten the property to owner?: Agent so unowned work is expressed by omitting it.

Record the requested task-service/backend split as a follow-up, using a systemd-backed runtime as a concrete candidate without guessing its durability and ownership contract in this PR. Regenerate the type and Cordis catalogs so public docs match the declarations.
2026-07-15 21:45:30 +08:00
Tianyi Cui d340fb2999 docs(rfc): isolate PR-owned adoption evidence
Comparing a feedback-time PR commit directly with the landing merge lets unrelated target-branch changes satisfy a review comment and creates false adoption evidence.

Define feedback-time and final PR-specific patch snapshots, fail closed when the landing shape cannot be reconstructed, and require a target-only negative control before implementation.
2026-07-15 21:43:32 +08:00
Tianyi Cui dffeac037d docs(review): fail closed across skill maintenance
A saved complete-file candidate could overwrite newer skill guidance, while a provider-wide outage was indistinguishable from a healthy no-op run. Record the source blob and provenance, reject drift during promotion, and make total adapter failure visible.

Align cadence and feedback acquisition with the evidence contract, and narrow the borrowed-state and negative-control checks so they do not contradict the package and testing standards.
2026-07-15 21:39:20 +08:00
kingwl d46d37f372 Merge remote-tracking branch 'origin/master' into cross-family-fs-sandbox
# Conflicts:
#	docs/config-catalog.md
#	docs/module-graph.md
#	docs/rfc/INDEX.md
#	examples/acp-agent/composition.md
#	examples/acp-agent/cordis.yml
#	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/permission-switching/session.jsonl
#	examples/acp-agent/tests/snapshots/skill-load/session.jsonl
#	examples/acp-agent/tests/snapshots/text-turn/session.jsonl
#	packages/bash/bash-sandbox/package.json
#	packages/bash/bash/package.json
#	packages/bash/tool-bash/src/index.ts
#	packages/fs/fs/package.json
#	packages/fs/tool-fs/package.json
#	packages/fs/tool-fs/src/index.ts
#	packages/fs/tool-fs/tests/tools.spec.ts
#	pnpm-lock.yaml
2026-07-15 21:39:02 +08:00
Tianyi Cui 7278fc21d8 fix(session-persistence): handle Windows directory fsync 2026-07-15 21:36:42 +08:00
Yichen Jiang 1d9f2c9fb9 Merge branch 'master' into codex/rfc-subagent-background-tasks 2026-07-15 21:31:48 +08:00
Tianyi Cui f4bd2405cc Merge current master into PR #219
Refresh the background-task branch onto the latest repository baseline before applying review feedback. This preserves merge ancestry, incorporates the current CI and package-structure changes, and ensures the review fixes are validated against the code that will actually receive the PR.
2026-07-15 21:30:21 +08:00
kingwl 7ef21239ca feat(session): opt-in packed chunk rows in the JSONL log
Providers stream token-sized deltas, so a session log stores hundreds of
near-identical assistant/chunk lines whose JSON envelopes dwarf their
payloads (~56x measured on a real DeepSeek session, 73% of file bytes).

Add a lossless storage codec to dsh-session: packChunkRuns() folds each
run of >=3 consecutive same-block delta chunks into one storage row --
text-chunks / reasoning-chunks / tool-call-chunks, bare slash-less tags
like the header line's 'session' so rows cannot be confused with session
events -- and decodeStorageRecord() expands rows back to the exact
original events (seq0/time0 + dt gap array reconstruct every member's
seq/time; tool-call rows carry the run-constant id/name). The encoder
whitelists exact shapes and stores anything unrecognized verbatim; the
decoder validates row-tagged values and fails loud on malformation.

The JSONL backend gains a packChunks config (default false). Writing
packs only when enabled -- default-off output stays byte-identical to
the previous layout, so snapshot goldens are untouched. Reading is
layout-blind: scanLog always decodes rows and now checks seq contiguity
with a cursor instead of the line index, so packed, unpacked, and mixed
files all load identically. Fixture readers (llm-replay parseSessionLog,
acp-snapshot normalizeSessionLog) share the codec; the normalizer zeroes
a row's time0/dt exactly like an event's time. The two demo bundles
plumb packChunks from cordis.yml to the backend.

Measured on a real coding session: 105 KB -> 42 KB (-60%), 475 lines ->
74, with reasoning/tool-call heavy sessions saving the most. Covered by
example + fast-check round-trip codec tests, backend packed/mixed/torn-
tail specs, and an end-to-end demo run loading a packed log through a
default-config backend.
2026-07-15 21:26:36 +08:00
Tianyi Cui b78cdbcd51 feat(examples): add one-shot CLI demo 2026-07-15 21:21:24 +08:00
Tianyi Cui 8bb8ac8b3c docs(tasks): condense background task prose
The background-task change repeated its lifecycle design across implemented RFCs, package READMEs, JSDoc, test commentary, and model-visible schemas. That repetition obscured the contracts that maintainers must preserve and added avoidable prompt tokens.

Rewrite the implemented RFCs around the current design, keep authorization, exact-owner cleanup, wait/abort ordering, producer quiescence, and teardown-failure guarantees at their owning surfaces, and remove peer surveys, review history, control-flow narration, and emphatic restatement.

Shorten the task and subagent schema wording, synchronize the bilingual tool cookbook, and regenerate the config, service, RFC, tool, and replay snapshot derivatives. Runtime behavior is unchanged; test edits update prose-only assertions and descriptions.
2026-07-15 21:08:58 +08:00
NI0317 069e0ecdc9 docs: refresh top-level README + add dsh-arch-diagram skill
Replaces the 20-line stub with a bilingual README pair covering:
- getting started (`pnpm run demo:repl` + Node ^22.19 || ≥24 + pnpm 11.7)
- editor integration (Zed / VS Code / Cursor over ACP)
- programmatic embedding via `@deepseek-ai/dsh-app-boot` (with the
  two failure paths of `boot()` vs `installFailLoud` spelled out)
- writing a plugin (`echo-tool` grounded in `examples/echo-agent`, with
  the runnable command `pnpm run demo:echo`)
- Packages table grouped by family, including `session-query`,
  `context`, and Support (with `invariants` called out as a runtime
  diagnostic mounted by `dsh-agent-core`, not test-only)
- deep-dive links, community, license

Bilingual pairing: English and Chinese sides share byte-identical code
blocks and mirroring link ordinals; language-asymmetric community
channels (Discord/X in EN, WeCom in ZH) sit inside HTML `<a href>`
tags that the pairing gate's structural signature excludes by design.
ZH side follows `docs/i18n/terminology.md` — first `agent` occurrence
annotated as `agent(智能体)`, plain `agent` thereafter.

Ships an in-repo skill at `.agents/skills/dsh-arch-diagram/` that owns
the two architecture PNGs (`assets/arch-{en,zh}.png`). HTML templates
+ shared CSS + a `render.sh` that renders via Chrome headless. The
renderer is portable (auto-detects Chrome/Chromium on macOS + Linux,
uses `--no-sandbox` under root for container envs, discovers the local
http.server port from Python's own startup line so `lsof` isn't
required). The 12-card capability row uses `flex: 0 0 auto` so
adjacent card backgrounds cannot clip descriptions; layout tuned to
1560px page / 96% row-width / 1820×580 render viewport.

Consolidates the four review-response commits from the initial round
of ds-review-bot feedback; each review round is documented in a
top-level PR comment for traceability.
2026-07-15 21:06:18 +08:00
NI0317 3735f8c955 docs(cookbook): add operator guide for dsh-code-review maintenance
Entry point for the skill's operator and for any future handoff: what the
private periodic tool produces, where the saved candidate diff and SKILL.md
land on the operator's machine, and how the promote helper turns the
operator's decision into a draft PR from a clean master checkout. Companion
to the maintenance RFC.
2026-07-15 21:05:52 +08:00
NI0317 9a4efada5d docs(rfc): propose periodic human-review maintenance for dsh-code-review
A private out-of-repo maintainer tool turns adopted human review feedback
into candidate skill updates. Only the resulting SKILL.md diff enters this
repository through normal PR review; the tool source, adapter binaries,
provider credentials, and scheduler stay on the maintainer's machine to
keep this repository focused on shipped product code. Kept in proposed/
until end-to-end verification against master lands a candidate PR; the
acceptance criteria list the exact observations that unlock promotion.
2026-07-15 21:05:43 +08:00
NI0317 d0910a2ed7 docs(skill): distill adopted review feedback 2026-07-15 21:05:18 +08:00
Tianyi Cui 5070676d2f Merge remote-tracking branch 'origin/master' into codex/simp-drop-unused-schema-default 2026-07-15 20:59:36 +08:00
Tianyi Cui 3233064537 Merge remote-tracking branch 'origin/master' into codex/simp-hide-web-provider-helpers 2026-07-15 20:59:36 +08:00
Tianyi Cui f7ece5bc93 Merge branch 'codex/simp-ui-identity-residue' into codex/simp-name-front-door-defaults 2026-07-15 20:59:35 +08:00
Tianyi Cui 439c309abb Merge branch 'codex/simp-hide-concrete-agent-loop' into codex/simp-hide-subagent-internals 2026-07-15 20:59:35 +08:00
Tianyi Cui 6391aead5c Merge branch 'codex/simp-prune-llm-contract' into codex/simp-hide-llm-adapter-helpers 2026-07-15 20:59:35 +08:00
Tianyi Cui 629f60e11a Merge remote-tracking branch 'origin/master' into codex/simp-prune-llm-contract 2026-07-15 20:59:35 +08:00
Tianyi Cui 8446fc6d85 Merge remote-tracking branch 'origin/master' into codex/simp-prune-sandbox-surface 2026-07-15 20:59:35 +08:00
Tianyi Cui ea76174757 Merge branch 'codex/simp-ui-identity-residue' into codex/simp-hide-concrete-agent-loop 2026-07-15 20:59:34 +08:00
Tianyi Cui c7b3187d24 Merge branch 'codex/simp-unify-agent-session-id' into codex/simp-ui-identity-residue 2026-07-15 20:59:34 +08:00
Tianyi Cui b7d3083ace Merge branch 'codex/simp-agent-entry-state' into codex/simp-unify-agent-session-id 2026-07-15 20:59:34 +08:00
Tianyi Cui fac0a0a72b Merge branch 'codex/simp-compaction-surface' into codex/simp-agent-entry-state 2026-07-15 20:59:34 +08:00
Tianyi Cui 61da1de4df Merge branch 'codex/simp-trim-hook-snapshot-noise' into codex/simp-compaction-surface 2026-07-15 20:59:34 +08:00
Tianyi Cui ece33b9876 Merge branch 'codex/simp-shared-acp-test-launcher' into codex/simp-trim-hook-snapshot-noise 2026-07-15 20:59:34 +08:00
Tianyi Cui 65fb93b666 Merge branch 'codex/simp-snapshot-fixture-inventory' into codex/simp-shared-acp-test-launcher 2026-07-15 20:59:33 +08:00
Tianyi Cui 60f33b03f1 Merge branch 'codex/simp-session-log-representation' into codex/simp-snapshot-fixture-inventory 2026-07-15 20:59:33 +08:00
Tianyi Cui 791e038644 Merge remote-tracking branch 'origin/master' into codex/simp-session-log-representation 2026-07-15 20:59:33 +08:00
Tianyi Cui b045b553a9 Merge pull request #315 from deepseek-harness/codex/fix-pr172-review-findings
fix(i18n): enforce translation prompt and pairing contracts
2026-07-15 20:54:51 +08:00
Tianyi Cui ac4be798f2 Merge remote-tracking branch 'origin/master' into codex/simp-drop-unused-schema-default 2026-07-15 20:51:05 +08:00