Commit Graph

5658 Commits

Author SHA1 Message Date
kingwl
7d4b984037 Merge remote-tracking branch 'origin/master' into feat/telemetry-otel-plugin
Resolutions: regenerate the conflicted generated docs (cordis services
catalog, event-producer-consumer, module-graph); take master's
packages/README pair and re-insert the telemetry row on both sides;
re-record the README and session-doc translation pairs.
2026-07-27 20:26:21 +08:00
kingwl
bf76c52d76 fix(telemetry): reject non-positive maxExportBatchSize at plugin load
Review finding, pinned red-first: the SDK accepts
processor.maxExportBatchSize <= 0 (or fractional), but its shutdown
drain then splices empty batches without consuming the queue —
disposing telemetry hangs forever whenever records are queued. The
constructor now rejects a non-positive-integer batch size before
building the SDK processor, per the misconfiguration-fails-loud rule;
everything else in the processor block remains the SDK's verbatim
passthrough.
2026-07-27 20:11:30 +08:00
Tianyi Cui
3f9afd3a93 Merge pull request #748 from deepseek-harness/turtle1999-patch-1
fix(session-title): improve prompt
2026-07-27 20:03:18 +08:00
Tianyi Cui
08851a1a3e Merge branch 'master' into turtle1999-patch-1 2026-07-27 19:57:43 +08:00
Tianyi Cui
ee1bf2764a Merge pull request #719 from deepseek-harness/fix/pty-raw-ready-wait
#719: keep the pty settle-boundary contract behind master's raw-mode SIGINT fix
2026-07-27 19:54:57 +08:00
kingwl
a72436105b docs(telemetry): state the crash-repair export semantics for resumed streams
Review finding: synthetic turn closers written by SessionPersistence
.load() at crash-resume sit below firstLiveSeq and are never exported,
leaving the remote turn unbalanced. Kept deliberately — exporting a
synthetic closer cannot complete a turn whose real tail records died
in the crashed process's queue; it can only make an incomplete turn
look closed. The OTel README now states the receiver rule (a
never-closed turn on a resumed stream marks the previous process dying
inside it; a later clean shutdown marker attests only to the resumed
process's exit), and the revival Agent Note records why the repair
suffix stays local.
2026-07-27 19:49:19 +08:00
Chinesezjc
0701245007 Merge remote-tracking branch 'origin/master' into fix/pty-raw-ready-wait 2026-07-27 19:44:10 +08:00
Tianyi Cui
5888503d5f Merge pull request #660 from deepseek-harness/worktree-process-service-seam
feat(subprocess): extract the subprocess seam from the bash executor and migrate every spawn site
2026-07-27 19:38:37 +08:00
Tianyi Cui
dd03c88083 Merge commit 'refs/codex-unblock/20260727/pr660-master' into worktree/pr660-merge-20260727
# Conflicts:
#	scripts/doc-budgets.manifest.json
2026-07-27 19:34:55 +08:00
Tianyi Cui
beb885c254 Merge pull request #744 from deepseek-harness/wine-local-gate
ci: share one Wine Windows gate script between CI and an optional local gate
2026-07-27 19:11:36 +08:00
Chinesezjc
30d9bdfa42 Merge remote-tracking branch 'origin/master' into fix/pty-raw-ready-wait 2026-07-27 19:00:30 +08:00
Tianyi Cui
4cd6d5b762 Merge remote-tracking branch 'origin/master' into worktree/pr744-macos-wine-fix
# Conflicts:
#	.github/workflows/ci.yml
2026-07-27 18:59:56 +08:00
Tianyi Cui
f3671ae764 Merge pull request #675 from deepseek-harness/nih-imp-ci-cache
ci: adopt pnpm/action-setup for symmetric pnpm store caching
2026-07-27 18:52:13 +08:00
Tianyi Cui
961bde6473 test(sdk): keep fresh Yarn installs mutable in CI
The live-link E2E intentionally creates a project without a lockfile. Prevent ambient CI=true from making Yarn 4's first install immutable, while preserving the CI environment for every other behavior under test.
2026-07-27 18:48:11 +08:00
Tianyi Cui
1d927aa13d Merge origin/master into wine-local-gate 2026-07-27 18:47:24 +08:00
Chinesezjc
153157195c docs(pty): scope the settle boundary to the settled operation
The paragraph claimed later child output reaches only the scrollback. Output
after a settle still reaches the scrollback and whichever send is active when
it arrives — appendOutput writes both (session.ts:302-307), and settleActive
clears `active` rather than suppressing delivery. Only the settled operation
stops receiving it, which is what the timing bound protects.
2026-07-27 18:47:23 +08:00
Tianyi Cui
62b5bd2fee Merge origin/wine-local-gate into macOS Wine fix 2026-07-27 18:43:19 +08:00
Tianyi Cui
7b9eceff53 fix(ci): make local Wine gate portable on macOS 2026-07-27 18:43:00 +08:00
Tianyi Cui
1665ab9884 ci: preserve stores across pnpm action setup
Keep restore-only and self-hosted stores outside pnpm/action-setup's replaceable install directory, resolving the configured path for every paired cache. Pin Yarn 4 for the generated-project e2e so runner images without Corepack do not fall back to Yarn Classic, and update the bilingual decision record.
2026-07-27 18:39:20 +08:00
kingwl
6adb14b56d feat(telemetry): adopt from the construction boundary — constructor seeds never re-export
A cursor-less adoption (process restart + resume, fork, seam-module
reload) replayed the session's full log from seq 0, re-exporting
history that already left the process — a resume re-billed its entire
stored log on every restart, and a fork re-shipped the parent's prefix
under the child's id, doubling query-time counts on OTLP backends with
no native ingest dedupe.

dsh-session now exposes the fact the constructor already validated but
discarded: Session.firstLiveSeq, the constructor-seed length — the
first seq appended in this process. header.seedLength cannot serve
here: it is the durable fork-lineage boundary, and a resumed session's
constructor seed is its full stored log while the header keeps the
original fork value (llm-replay and session-query-sqlite depend on
that meaning). Constructor seeds also never publish on the
session/event firehose, so adoption replaying them was inconsistent
with the system's own publication semantics.

Adoption's cursor-less fallback starts at firstLiveSeq; seed events
still feed the chunk projection, so mid-step continuations re-drop
after a resume. Fork streams are no longer self-contained: records now
carry session.seed_length (with the existing session.parent_id) so
receivers stitch the child's stream onto the parent's. Accepted cost,
consistent with at-most-once delivery and recorded in the revival
Agent Note: a resume no longer backfills records a previous process
failed to deliver — a deployment with that requirement needs the
deferred outbox, not replay.

Pinned red-first: seeded adoption exports nothing (assertion reversed
from the prior seed-readback test, obsolete behavior changed with its
test), resume-shaped seed rebuilds the projection without exporting,
and fork records carry the stitch attributes.
2026-07-27 18:35:03 +08:00
Chinesezjc
4f2068ff27 Merge remote-tracking branch 'origin/master' into fix/pty-raw-ready-wait 2026-07-27 18:31:46 +08:00
Chinesezjc
45c7fe4ebe docs(pty): re-record the note pair after the master merge 2026-07-27 18:29:52 +08:00
Tianyi Cui
2421179702 Merge origin/master into worktree/pr675-retarget-20260727 2026-07-27 18:22:22 +08:00
Tianyi Cui
d23621f922 Merge pull request #682 from deepseek-harness/nih-imp-execa
test: adopt execa/parseArgs/vi.waitFor for hand-rolled test subprocess plumbing
2026-07-27 18:16:00 +08:00
Chinesezjc
1927d347cd Merge remote-tracking branch 'origin/master' into fix/pty-raw-ready-wait
master already stabilized the raw-mode SIGINT scenario in 65e0ffe03 and
3be090f1d with wider scenario-owned bounds and deliberately delayed child
readiness, so the merge takes master's test implementation. What this branch
keeps is the contract that explains why those bounds are required: the note
paragraph on the settle boundary in PtySendOperation.append, and the
waitForOutput comment recording that raising its deadline alone cannot
recover output the send never collected.
2026-07-27 18:15:47 +08:00
Tianyi Cui
194ea6bdf0 docs(test): correct execa process-tree claims 2026-07-27 18:03:21 +08:00
Tianyi Cui
4e32f838b3 Merge branch 'master' into wine-local-gate 2026-07-27 18:00:55 +08:00
Tianyi Cui
d897dcc7ea Merge remote-tracking branch 'origin/master' into worktree/pr682-retarget-20260727
# Conflicts:
#	.agents/notes/rejected/simplification/2026-07-26-dependency-swaps-rejected-by-nih-audit.i18n.yaml
2026-07-27 17:55:56 +08:00
Tianyi Cui
d270c285ab fix(review): portable checksum verifier and full provisioning wait
sha256sum-or-shasum selection happens in preflight (macOS ships shasum,
not GNU coreutils) with a clear missing-tool hint; provisioning now waits
for every child and reports each named status before exiting, so a fast
failure can neither hand the EXIT trap a scratch tree that a still-running
install is writing into nor bury the root cause behind a downstream
symptom.
2026-07-27 17:49:11 +08:00
Tianyi Cui
ab927038c4 Merge remote-tracking branch 'origin/master' into worktree-process-service-seam 2026-07-27 17:48:51 +08:00
Turtle
ac1431e4f5 fix(session-title): improve prompt
bad case:
when i start the session with a skill reference, llm returns XML
2026-07-27 17:47:48 +08:00
Tianyi Cui
c59ea13c2e Merge pull request #671 from deepseek-harness/nih-imp-landstrip-xlink
docs: reject the landstrip evaluation for the win32 sandbox rung
2026-07-27 17:43:48 +08:00
Tianyi Cui
94d5816142 Merge remote-tracking branch 'origin/master' into worktree-process-service-seam 2026-07-27 17:38:01 +08:00
Tianyi Cui
431d99224e Merge remote-tracking branch 'refs/remotes/origin/master' into worktree/pr671-retarget-20260727 2026-07-27 17:37:47 +08:00
Tianyi Cui
bde9854621 Merge remote-tracking branch 'refs/remotes/origin/master' into worktree/pr671-retarget-20260727
# Conflicts:
#	.agents/notes/rejected/simplification/2026-07-26-dependency-swaps-rejected-by-nih-audit.i18n.yaml
2026-07-27 17:36:44 +08:00
Tianyi Cui
ec383a5fdf Merge pull request #745 from deepseek-harness/fix/remove-orig
fix: remove orig
2026-07-27 17:31:28 +08:00
imccyu
5cae7874f6 git: add .orig to gitignore 2026-07-27 17:27:41 +08:00
Tianyi Cui
1ee8029bc6 Merge remote-tracking branch 'origin/master' into worktree-process-service-seam 2026-07-27 17:24:20 +08:00
imccyu
67ad0eb887 Merge branch 'master' into fix/remove-orig 2026-07-27 17:23:03 +08:00
imccyu
e8cbf6cc72 fix: remove orig 2026-07-27 17:22:01 +08:00
Chinesezjc
e7bf303827 Merge pull request #592 from deepseek-harness/ci/offload-coverage-to-vm-backup
ci: hot-standby lane + admin-only failover to the in-house pool
2026-07-27 17:20:10 +08:00
Tianyi Cui
dfa4a2aefc Merge branch 'master' into ci/offload-coverage-to-vm-backup 2026-07-27 17:16:52 +08:00
Tianyi Cui
8be70e72d2 docs: scope the local Wine gate to Windows-failure diagnosis only
AGENTS.md and the Wine Agent Note pair state the run policy: CI owns the
everyday win32 signal; run check:windows-wine only while investigating a
known Windows-related failure, and pre-push selection never includes it.
2026-07-27 17:15:37 +08:00
Tianyi Cui
625094905d Merge remote-tracking branch 'origin/master' into wine-local-gate 2026-07-27 17:11:39 +08:00
imccyu
d8ce036295 Merge pull request #738 from deepseek-harness/feature/delete-workspace
feat(web): delete workspace registrations
2026-07-27 17:08:48 +08:00
Chinesezjc
68a92e2032 Merge branch 'master' of /data_local/ci/mirror/deepseek-harness into ci/offload-coverage-to-vm-backup 2026-07-27 17:07:41 +08:00
Tianyi Cui
f12ea986cb ci: share one Wine Windows gate script between CI and an optional local gate
scripts/wine-windows-gates.sh owns the whole lane — workspace snapshot,
concurrent Node/wineboot/install provisioning, entrypoint resolution, the
vue link, smoke, and the two concurrent blocking gates — so the ci.yml
windows job shrinks to runner provisioning plus one script call, and
pnpm run check:windows-wine runs the identical script locally. The local
path never mutates the working tree, persists the Wine prefix and the
checksum-verified Windows Node zip under .cache/wine-windows/, and falls
back to the cached zip offline. AGENTS.md ceiling 1680 -> 1695 for the
one-line command entry.
2026-07-27 17:04:05 +08:00
imccyu
0052ea49ff Merge branch 'master' into feature/delete-workspace 2026-07-27 16:59:28 +08:00
imccyu
4918872c5c Merge pull request #740 from deepseek-harness/feat/todo-tool-ui
feat: optimize ui of todo tool
2026-07-27 16:59:18 +08:00
Chinesezjc
7b49f4a4ee docs(ci): runbook — glob migrated identity files; scope the promise to enterprise-pool outages
- The clone exclusion is now '.runner*' (catches .runner_migrated /
  .credentials_migrated, which GitHub writes on migrated runners and
  which equally trip the already-configured refusal — hit live during
  the 2026-07-27 org-group migration).
- The problem statement now states the verdict runs on ubuntu-latest,
  scopes the switch to enterprise Linux-pool outages, and names the
  residual dependency: node-compat/python-sdk/windows stay standard-
  hosted, so a broader hosted-capacity failure still blocks the
  verdict, with Windows the only leg lacking any in-house substitute.
Static gate green locally: 32 passed, 0 failed.
2026-07-27 16:56:02 +08:00