Commit Graph
5560 Commits
Author SHA1 Message Date
imccyu 45eee34faf test: adapt suites to the provider-hosted conversation shell
Test-side catch-up with the session-maybe conversation architecture: the
provide channel's descriptor shape and maybeProvideInfo in fakes, the shared
chat-store handle asserted on conversation.session (the session-maybe shell
carries no store), startSession fakes exposing the workspace list snapshot,
strict session slots declining (not throwing) without a session, AppFrame's
removed empty seat and loading gate, and the hero draft asserted on the
machine (the chat-store mirror binds with ConversationSession). Plus three
lint fixes (max-len split, boolean-compare, arrow-parens/unbound-method).
2026-07-27 04:28:42 +08:00
imccyu d1e43fcd8c style: typed queries in slash-flow snapshot, widen chat-apply key union 2026-07-27 04:13:05 +08:00
imccyu f6396f2573 style: fix lint across client packages
eslint --fix autofixes plus manual repairs: max-len line splits
(fake-api handlers, notifier/slots JSDoc, spec signatures), charAt over
non-null-asserted indexing in slash detect/menu cores, Array.from for
code-point capping, typeof assertions for unbound-method in specs,
generic getByRole for the send-button cast, effect disposer void-wrap in
command register, and dropped unused type imports.
2026-07-27 04:13:00 +08:00
Tianyi Cui d7647d9332 fix(scripts): complete fixture migration diagnostics 2026-07-27 03:54:33 +08:00
Tianyi Cui 4a336ba8d7 fix(session): resolve packed default without schema 2026-07-27 03:54:03 +08:00
Tianyi Cui 3fe60837c1 docs(i18n): record the v1-vs-v2 briefing A/B in the Agent Note
Head-to-head replay of the same ten historical examples, both arms in
one time window with identical prompts and pairwise blind judging:
prose quality and cost at parity (stylistic margins only); the shipped
briefing wins two objective outcomes — code-fence-only examples land
byte-identical to the human-reviewed updates with zero model tokens,
and the flagged first-occurrence move reproduces the human-reviewed
gloss relocation the section-only form leaves as a contract violation.
Chinese counterpart brought along via the briefed path and the pair
re-recorded.
2026-07-27 03:35:50 +08:00
Tianyi Cui d525bbabbb test(tui): migrate inherited session fixture to packed chunks 2026-07-27 03:32:15 +08:00
Tianyi Cui 7a3c71161c Merge remote-tracking branch 'origin/master' into worktree/packed-chunks-default-rfc
# Conflicts:
#	.agents/notes/implemented/testing/2026-06-19-acp-snapshot-tests.i18n.yaml
#	docs/testing.i18n.yaml
#	packages/support/acp-snapshot/README.i18n.yaml
2026-07-27 03:31:33 +08:00
imccyu a27be43ac1 feat: slash system / input service / agent scope 2026-07-27 03:28:39 +08:00
Tianyi Cui f3a4833dbf Merge pull request #677 from deepseek-harness/worktree/archive-agent-notes-20260726
Archive low-value implemented Agent Notes
2026-07-27 03:01:21 +08:00
Tianyi Cui 40f331f951 test: remove crash marker publication race 2026-07-27 02:51:25 +08:00
Tianyi Cui 3b328b375e ci: restore standard Windows allocation 2026-07-27 02:31:46 +08:00
Tianyi Cui 53283003e9 feat(i18n): unit-mapped briefings with mechanical --apply, adopting the #684 planner mechanics
The briefing now maps each update at the narrowest safely aligned
granularity, widening deterministically on mapping failure: a change
confined to the pair's byte-identical code fences is computed outright
(--apply splices it into the counterpart and validates the result
against the pairing gate's structural signature before writing);
otherwise changed Markdown units — headings, paragraphs, table rows,
list items, fences, block quotes, HTML blocks, thematic breaks, link
definitions, matched by container-scoped kind sequences — each carry
their last-confirmed source, current source, and current counterpart
text; units that do not align fall back to depth-matched heading
sections (depth only, so translated heading text still maps); and when
sections do not align either, or both sides drifted, the briefing says
so and withholds the mapping. Terminology rows now match the changed
spans only, English terms on word boundaries with plural inflections,
and Chinese-target briefings track each relevant term's document-wide
first occurrence — a moved occurrence pulls the vacated and receiving
spans into the briefing with an explanatory note.

The unit mapping, mechanical code splice, and first-occurrence tracking
adopt the planner design from the incremental prompt-pipeline PR (#684),
whose provider-backed bake-off independently validated the same scope
ladder; this PR carries those mechanics into the agent-facing briefing
path so both consumers of the consistency records behave alike. The
prior line-hunk section mapping and its heading-text alignment (which
could not map cross-language sections) are replaced wholesale.

Docs: SKILL.md update path, i18n README pair, development.md pair, and
the briefed-updates Agent Note pair brought along; the development.md
fence edit was applied with --apply itself, and the prose updates were
made through the new unit/section briefings.
2026-07-27 02:31:07 +08:00
Tianyi Cui 8b684fa5d0 ci: fetch archive baseline history 2026-07-27 02:01:46 +08:00
Tianyi Cui 861fe6d43d ci: retry hosted checks 2026-07-27 01:44:53 +08:00
Tianyi Cui 3b8600e2e8 ci: keep required aggregate on enterprise runner 2026-07-27 01:25:01 +08:00
Tianyi Cui f520479663 docs: reject the landstrip evaluation for the win32 sandbox rung
User verdict: landstrip is not battle-tested — a days-old,
single-maintainer project (~48 GitHub stars at rejection), which a
security-invariant dependency cannot be. The note moves
proposed/feature -> rejected/feature with the verdict on the Status
line; the sandbox note's deferred-phases cross-link now records the
rejection instead of instructing an evaluation, and the NIH roll-up's
pointer follows. Supersedes this branch's earlier cross-link commit.
2026-07-27 00:55:32 +08:00
Tianyi Cui 51bf3ca96e Merge remote-tracking branch 'origin/master' into worktree/archive-agent-notes-20260726
# Conflicts:
#	.agents/notes/archived/process/2026-07-23-browser-demo-gif-recording.i18n.yaml
2026-07-27 00:53:07 +08:00
Tianyi Cui 394b3f804c Merge remote-tracking branch 'origin/master' into worktree-nih-dependency-audit 2026-07-27 00:46:06 +08:00
Tianyi Cui 3841c4ee58 docs(i18n): briefed update path in the workflow, contract, and Agent Note
The dsh-translate-docs skill now triages updates onto a briefing-driven
path — gen-translation-brief output as the translator's whole working
set, orchestrator-applied mechanical fence edits, scoped record/check —
while the whole-document path for new pairs is unchanged. The i18n
README documents the scoped gate forms and the briefing tool;
development.md lists the new command; the new bilingual Agent Note
records the decision and the ten-example benchmark behind it (briefed
path ~1/3 the tokens and wall clock of the corpus-loading path at equal
judged quality; whole-document re-translation rejected on preservation
collapse). Counterpart updates in this commit were produced with the
new briefed path; the new note's Chinese side is a whole-document
translation.
2026-07-27 00:44:22 +08:00
Tianyi Cui bf87be0d7d feat(i18n): briefing generator and pair-scoped pairing gate
gen-translation-brief assembles the minimal-update working set for an
out-of-sync pair from its consistency record: the authored side's diff
since last confirmation, the counterpart sections that diff lands in
(heading-mapped only where the last-confirmed structures align), the
terminology rows the diff touches, and a per-direction rules digest.

verify-translation-pairing now accepts pair paths to check just the
named pairs during update iteration; --write requires naming the
confirmed pairs (--write --all is the explicit corpus form) so a bulk
re-record can no longer silently bless drifted pairs the caller never
reviewed. Each record's comment names its own scoped command.
2026-07-27 00:44:21 +08:00
Tianyi Cui fc33543285 Merge pull request #681 from deepseek-harness/worktree/fix-pty-sigint-flake
test(pty): avoid shell-echo readiness race
2026-07-27 00:41:29 +08:00
Tianyi Cui d14f3371ae Merge remote-tracking branch 'origin/master' into worktree-nih-dependency-audit 2026-07-27 00:40:02 +08:00
Tianyi Cui e2b21df62d Merge branch 'nih-dependency-audit' into nih-imp-execa 2026-07-27 00:38:55 +08:00
Tianyi Cui 420e0b5fb7 Merge remote-tracking branch 'origin/master' into worktree/fix-pty-sigint-flake 2026-07-27 00:35:06 +08:00
Tianyi Cui 72fa31b745 Merge remote-tracking branch 'origin/master' into worktree/packed-chunks-default-rfc 2026-07-27 00:29:58 +08:00
Tianyi Cui 8cb908b9e8 Merge pull request #661 from deepseek-harness/code-mode-ui/dispatch-spill
feat(web): Code Mode UI completion — bounded sub-dispatch logs, shiki highlighting, trajectory/waterfall sub-calls
2026-07-27 00:28:23 +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 25a7c6e207 Merge branch 'master' into code-mode-ui/dispatch-spill 2026-07-27 00:05:29 +08:00
Tianyi Cui 46e70be34a Merge pull request #678 from deepseek-harness/skills/record-browser-gif-assets-workflow
docs(skills): record-browser-gif — assets-branch publishing + mandatory GUI-PR gifs
2026-07-27 00:02:55 +08:00
Tianyi Cui d52f8bfdfe fix(notes): anchor archive seals to prior Git state 2026-07-27 00:01:39 +08:00
Tianyi Cui d2b15e71df Merge pull request #662 from deepseek-harness/code-mode-ui/shiki
feat(web): shiki syntax highlighting for code surfaces
2026-07-27 00:00:23 +08:00
Tianyi Cui 212abfc2e4 Merge pull request #664 from deepseek-harness/code-mode-ui/trajectory-spans
feat(web): Code Mode sub-calls in the trajectory and waterfall views
2026-07-27 00:00:08 +08:00
Tianyi Cui 48400c436b Merge branch 'master' into code-mode-ui/dispatch-spill 2026-07-26 23:58:31 +08:00
Tianyi Cui e0e187a6a7 test(pty): avoid echoed readiness marker race 2026-07-26 23:52:12 +08:00
Tianyi Cui 0561647ed5 Merge pull request #680 from deepseek-harness/worktree/archive-pr639-agent-notes-20260726
Restore Agent Notes deleted by #639 to the archive
2026-07-26 23:51:59 +08:00
Tianyi Cui 9e04034862 fix(scripts): keep fixture discovery private 2026-07-26 23:49:16 +08:00
Tianyi Cui 05adf5da4a docs: reject the timers/promises sleep proposal after implementation
PR #679 implemented the swap and falsified the note's parity premise:
vitest's fake clock does not intercept node:timers/promises, so the
change traded deterministic fast tests (llm-retry ~4s->~10s real
sleeps, two pty teardown tests rewritten real-time, a weakened
workflow grace-timer guard) for ~10 deleted lines. Moved the note
proposed -> rejected with the verdict on the Status line; the frozen
proposal body is kept per the rejected-lifecycle contract.
2026-07-26 23:47:56 +08:00
Tianyi Cui a20cf88928 test(session): canonicalize fixtures as packed rows 2026-07-26 23:45:14 +08:00
Tianyi Cui 3cabde323f fix(acp-snapshot): keep the malformed-record capture branch-free for per-file coverage
Store the captured validation error as unknown in a wrapper object and
rethrow it directly: the instanceof-Error normalization added an
un-inducible false branch that failed harness.ts's 100% branch gate.
2026-07-26 23:45:13 +08:00
Tianyi Cui 4ff496c65c feat(session): default JSONL writes to packed rows 2026-07-26 23:44:52 +08:00
Tianyi Cui da6059d9f9 Merge branch 'worktree/archive-agent-notes-20260726' into worktree/archive-pr639-agent-notes-20260726 2026-07-26 23:35:49 +08:00
Tianyi Cui 5ffa7faecc test(notes): refresh archived-link snapshot 2026-07-26 23:35:16 +08:00
Tianyi Cui accd4ac3ff Merge branch 'master' into skills/record-browser-gif-assets-workflow 2026-07-26 23:31:44 +08:00
Tianyi Cui fba048daca Merge branch 'worktree/archive-agent-notes-20260726' into worktree/archive-pr639-agent-notes-20260726 2026-07-26 23:30:20 +08:00
Tianyi Cui 046419faf4 fix(notes): keep archive helpers internal 2026-07-26 23:29:46 +08:00
Tianyi Cui b458a97907 docs(notes): restore PR 639 history to archive 2026-07-26 23:26:00 +08:00
Tianyi Cui 8ceb638bb5 docs(skills): record-browser-gif — assets-branch publishing + mandatory GUI-PR gifs
Every PR that changes product-user-visible GUI behavior now includes a
demonstration GIF with real provenance (that branch's built tree, real
key, real model rounds). Recording stays side-effect-free; the skill
gains a bounded final publication step: GIFs go on an append-only
orphan assets branch (one per PR series) and embed via the blob URL
with ?raw=true, never on the PR branch itself.

Folds in the operational lessons from the Code Mode UI series:
.playwright-mcp/ screenshot roots (now gitignored), per-PR staging and
precise server teardown, one-call DOM polling for transient states,
exact-text completion predicates, prompt engineering for UI states,
and the export-before-invoke GIF_SKILL_DIR encoder pitfall.

Agent Note: implemented/process/2026-07-26-gui-pr-gif-evidence-and-assets-branch (+ zh pair); the 2026-07-23 recording note now defers publication policy to it.
2026-07-26 23:21:44 +08:00
Tianyi Cui cad2af4741 Merge remote-tracking branch 'origin/master' into worktree/packed-chunks-default-rfc 2026-07-26 23:18:40 +08:00
Tianyi Cui f18fb32e2c fix(notes): narrow complete archive triplets 2026-07-26 23:17:20 +08:00