Commit Graph
16928 Commits
Author SHA1 Message Date
Tianyi Cui 9531265ff3 Merge pull request #4098 from deepseek-harness/worktree/unarchive-sessions
feat(workspace): restore archived sessions from a settings page
2026-09-13 17:36:52 +08:00
Tianyi Cui 76941d0085 fix(workspace): keep the newest archive set from stale replies
Both archive verbs answer with the complete set, so a reply that lands
after a newer request or after a pushed increment overwrote it. The
Client model now installs an answer only while it is still the latest
archive-set request, and the follow increment and baseline supersede it.

Also narrow the page's public surface and its states: the locale
namespace stays internal, row derivation is a memo over the framework
hooks, the search input carries one accessible name, the empty-archive
message no longer covers a set whose entries cannot be restored, and the
new package declares no client dependency edge it does not import.
2026-09-13 16:45:45 +08:00
Tianyi Cui e1ee806226 chore(cordis): regenerate the client slot catalog
The new Settings section registers one more settings.section contribution,
which the generated client slot catalog lists.
2026-09-13 16:45:45 +08:00
Tianyi Cui ae34320a5b test(web): expect the unarchive verb and the archived-sessions nav row
The Client Cordis catalog now publishes unarchiveSession on both the
Workspace service and the UI navigation capability, and the new Settings
section adds one nav row that every settings-dialog aria snapshot carries.
Refresh those expectations; the goldens gain only that row.
2026-09-13 16:45:45 +08:00
Tianyi Cui 5f773a0ded feat(workspace): restore archived sessions from a settings page
Sessions could be archived from the sidebar row menu but never restored:
the registry-global archive set was a one-way display filter with no
inverse RPC and no surface listing its members.

WorkspaceRegistry.unarchiveSession drops one id from archivedSessionIds in
one durable write on the same operation chain as archive, with no
session-existence probe because a removal cannot introduce an unknown
referent. The Workspace controller exposes it as workspace.unarchiveSession
returning the complete archive set, which the existing archived follow
increment already propagates, so no frame type and no persisted field
changes.

The new client package dsh-client-ui-settings-unarchive-sessions owns the
restore surface: one localized settings.section page listing the archive
set joined with loaded session summaries, newest archive first, searchable
by title or workspace, with one Unarchive action per row.
2026-09-13 16:45:45 +08:00
Tianyi Cui 9e87d16f3a Merge pull request #4116 from deepseek-harness/worktree/coverage-attribution
fix(coverage): canonicalize partition locations before the blob merge
2026-09-13 16:45:02 +08:00
Tianyi Cui 8ba386ec69 Merge branch 'master' into worktree/coverage-attribution 2026-09-13 16:37:55 +08:00
Tianyi Cui 2214891606 Merge pull request #4119 from deepseek-harness/worktree/workflow-sandbox-ptc
fix(workflow): execute orchestration through sandboxed PTC
2026-09-13 16:33:51 +08:00
Tianyi Cui 10930a0205 fix(coverage): fail loud when the canonicalizer gets no coverage data
Vitest types `Reporter.onCoverage` as `unknown`, so a payload that carries no
istanbul `data` record now fails the partition instead of silently leaving
every location uncanonicalized; a spec case pins that rejection. The module
docs keep the contract and link the Agent Note for the mechanism, the
partition spec names what it asserts (the reporter argument, not Vitest hook
ordering), and the notes correct the `Infinity` origin to ast-v8-to-istanbul,
record the reporter-ordering dependency, and name the reporter each partition
child carries.
2026-09-13 15:17:06 +08:00
Tianyi Cui c171a7a9a2 fix(coverage): canonicalize partition locations before the blob merge
A source file carries one istanbul statement map per Vite environment, so a
node suite and a jsdom suite that load the same module enter the merged
report through two maps that spell one statement differently. istanbul
reconciles those overlapping ranges by attributing the hits of the narrowest
containing range, but only while a location carries numeric line and column
values. ast-v8-to-istanbul ends a whole-line statement at column Infinity, and
the partition blob serializes Infinity as null, so the merge command kept the
client-only spelling as an extra, unhit statement: a file whose every statement
ran reported 96.96% and failed the per-file 100% gate.

The coordinator now passes each partition a reporter whose onCoverage hook
rewrites every non-finite end column to a finite line-end column before the
blob is written, which restores that reconciliation without weakening the
gate. The uncovered-locations reporter reads the same column as a line end.
2026-09-13 15:13:59 +08:00
Tianyi Cui 9b6457bc12 Merge pull request #4106 from deepseek-harness/worktree/mcp/optional-surface
feat(mcp): expose profile resources only when servers are configured
2026-09-13 14:59:10 +08:00
Tianyi Cui e9a300f192 Merge pull request #4100 from deepseek-harness/worktree/persistence-format-history
docs(session): backfill and require every persistence format reference
2026-09-13 14:58:05 +08:00
Tianyi Cui e636da11fb Merge branch 'master' into worktree/mcp/optional-surface 2026-09-13 14:52:01 +08:00
Tianyi Cui 6811c59efb Merge branch 'master' into worktree/persistence-format-history 2026-09-13 14:49:15 +08:00
Tianyi Cui 34f80b8e6e fix(workflow): close lifecycle and CI integration gaps 2026-09-13 14:47:56 +08:00
Tianyi Cui 35af8698c2 fix(workflow): execute orchestration in the sandboxed PTC runtime 2026-09-13 14:47:56 +08:00
Tianyi Cui 4f071d6762 Merge pull request #4117 from deepseek-harness/worktree/fix-mcp-snapshot-ralph-defaults
test(mcp): align snapshots with Ralph disabled by default
2026-09-13 14:47:53 +08:00
Tianyi Cui 004ef35010 test(mcp): align snapshots with Ralph disabled by default 2026-09-13 12:39:33 +08:00
Tianyi Cui 38070996c1 docs(session): nest historical formats under persistence changes 2026-09-13 12:19:46 +08:00
Tianyi Cui 765c87fb87 fix(docs): address persistence format history review 2026-09-13 12:08:08 +08:00
Tianyi Cui b08f6c421b docs(session): backfill and gate persistence format references 2026-09-13 12:08:07 +08:00
Tianyi Cui b5376e3d02 test(mcp): align resource snapshots with shipped defaults 2026-09-13 11:55:25 +08:00
Tianyi Cui 4c6b2c02af docs(mcp): clarify resource discovery and profile verification 2026-09-13 11:52:42 +08:00
Tianyi Cui 815a5eb01e test(mcp): include resources in minimal profile expectations 2026-09-13 11:52:42 +08:00
Tianyi Cui e08468954a feat(mcp): activate profile resource tools for configured servers 2026-09-13 11:52:42 +08:00
Tianyi Cui 99a73ca1d4 Merge pull request #4101 from deepseek-harness/worktree/demote-ralph
feat(presets): disable ralph in the default compositions
2026-09-13 11:42:40 +08:00
Tianyi Cui 351645a6c9 Merge pull request #4112 from deepseek-harness/worktree/file-search-root-fixture-20260913
test(file-reference): publish restored workspace fixtures atomically
2026-09-13 11:34:01 +08:00
Tianyi Cui a9bba3bac5 Merge pull request #4082 from deepseek-harness/worktree/mcp/resources
feat(mcp): add scoped resources and server instructions
2026-09-13 11:27:47 +08:00
Tianyi Cui deb0d7e1b5 test(file-reference): publish restored workspace fixtures atomically 2026-09-13 04:56:35 +08:00
Tianyi Cui c7d2e99b8e docs(presets): state the web-app disable in the present tense 2026-09-13 01:14:06 +08:00
Tianyi Cui d49192b6ac docs(presets): name the new id in the ralph restore recipe 2026-09-13 00:41:44 +08:00
Tianyi Cui 73985344cd feat(presets): disable ralph in the default compositions 2026-09-13 00:15:39 +08:00
Tianyi Cui 7efd4ab20c Merge pull request #4087 from deepseek-harness/worktree/ci/dependency-catalog-rescope
fix(ci): preserve recorded npm resolution during vendor rescoping
2026-09-12 23:25:44 +08:00
Tianyi Cui 834bd55a59 fix(mcp): expose scoped resource server names to the model 2026-09-12 22:40:51 +08:00
Tianyi Cui aec2d5e5f0 docs(mcp): explain resource providers and server instructions 2026-09-12 22:40:51 +08:00
Tianyi Cui 3ba5b6eb04 feat(mcp): add scoped resources and server instructions 2026-09-12 22:40:50 +08:00
Tianyi Cui f6e7166762 docs(mcp): align bridge note with SDK-owned discovery 2026-09-12 22:38:00 +08:00
Tianyi Cui 3785b68ecf fix(mcp): own transports through protocol negotiation 2026-09-12 22:31:42 +08:00
Tianyi Cui 395f79b772 docs(mcp): describe subsystem roles and configuration 2026-09-12 22:31:42 +08:00
Tianyi Cui 489c3ac715 feat(mcp): negotiate modern protocols with the official SDK
Preserve the verified SDK layer tree from c8b248b480 before rebasing its complete net change.
2026-09-12 22:31:42 +08:00
Tianyi Cui 55fc8b91e4 fix(ci): preserve recorded npm resolution during vendor rescoping 2026-09-12 22:25:10 +08:00
Tianyi Cui c2a68638b2 Merge pull request #4059 from deepseek-harness/worktree/publish-all-experimental
feat(release): publish all experimental packages
2026-09-12 22:19:29 +08:00
Tianyi Cui 60a413034a Merge branch 'worktree/default-product-no-experimental' into worktree/publish-all-experimental 2026-09-12 22:04:27 +08:00
Tianyi Cui a280cf34f5 test: canonicalize browser notices fixture paths 2026-09-12 22:04:16 +08:00
Tianyi Cui 7a4dca21c7 Merge branch 'worktree/default-product-no-experimental' into worktree/publish-all-experimental 2026-09-12 21:32:08 +08:00
Tianyi Cui 0e060aa675 fix(ci): canonicalize browser notice roots with native realpath 2026-09-12 21:30:51 +08:00
Tianyi Cui 00b2470eb6 test: canonicalize Windows Vite fixture roots 2026-09-12 21:26:53 +08:00
Tianyi Cui 5b491e8cc6 fix(ci): skip product graph capture during dependency analysis 2026-09-12 21:20:43 +08:00
Tianyi Cui b5d463ca5c test(release): cover packed experimental worker consumers 2026-09-12 20:56:26 +08:00
Tianyi Cui 22c5ae6abc fix: cover supported experimental isolation inputs 2026-09-12 20:56:26 +08:00