Commit Graph
10110 Commits
Author SHA1 Message Date
Huanqi Cao 6478da61e3 fix(sandbox): harden the per-session record and the ACL runner failure paths (review round v6)
Durable record: bound to the owning session id and validated at the fold (orphan-SID shape, temp path inside the host temp root) — a fork's copied parent record no longer provisions the child, and a tampered record fails loud. Private temp dir: random unguessable name persisted in the record, created exclusively (pre-existing entries and reparse points fail EEXIST). Persistence: a fresh provision kicks an immediate flush (no write-behind debounce), narrowing the crash window to the flush latency — documented as the one self-healing gap. Runner-failure rules: exit-gated on 127 so a confined command that prints the signature on a non-127 exit is never misclassified. Spawn: AssignProcessToJobObject failure terminates the suspended child (no hanging orphans). SandboxExecutionPolicy.sessionId is the branded SessionId. Boundary docs: qualifying clause on the absolutist sentences, NULL-DACL Known Limitation, 'full' scoped to the supported NTFS surface, CLM gate comment.
2026-08-08 23:23:38 +08:00
Huanqi Cao 441927c526 fix(sandbox): drop Authenticated Users from both restricting lists — close the C:\\-root escape, CIM unavailable in every confined mode
workspace-write now runs [logon SID, Everyone, orphan]: the two lists differ only by the orphan, and the keep-alive group (logon SID + Everyone) is the single shared invariant. The WMI namespace security check fails in BOTH modes (0x80041003), so CIM/Get-ComputerInfo are unavailable everywhere — the price of closing the C:\\-root tree-creation escape (AU:(AD) + AU:(OI)(CI)(IO)(M)) in workspace-write too. The unused WinLocalSid/WinInteractiveSid/WinAuthenticatedUserSid constants and their ABI-probe prints are removed; the enforcement 'full' claim now stands on a closed NTFS surface. New regression: a C:\\Users\\Public subdirectory write is denied under BOTH modes (the ambient-writable blind spot the review flagged — INTERACTIVE is absent from both lists). FAT-class (non-ACL) targets outside the granted roots remain writable (no security descriptors to intersect) — documented as a legacy residue, warn-only, not engineered around. Docs/design note/PR body updated in both languages (list I/J terminology gone everywhere).
2026-08-08 21:55:02 +08:00
Huanqi Cao 9d10a1888b fix(pwsh): record the tool-pwsh user-approval dependency in the lockfile 2026-08-08 20:24:19 +08:00
Huanqi Cao 7eadde5c58 Merge remote-tracking branch 'origin/feat/windows-pwsh-default' into feat/windows-acl-sandbox
# Conflicts:
#	apps/cli/reference/README.i18n.yaml
2026-08-08 20:18:56 +08:00
Huanqi Cao 03cf9caba2 Merge remote-tracking branch 'origin/master' into HEAD 2026-08-08 20:15:08 +08:00
Huanqi Cao 83f835e4cb feat(pwsh): mirror the bash sandbox surface — denial rendering, escalation, and the ConstrainedLanguage contract
tool-pwsh now renders sandbox denial facts (denial marker + same-turn escalation hint, runner-failed notice on background reads) and advertises the sandbox_permissions/justification escalation pair resolved through ctx.approval before execution — the shared fail-closed sequence from dsh-sandbox, with the tool name 'pwsh'. The description teaches the ConstrainedLanguage contract under the Windows sandbox (both confined modes run pwsh in CLM: Add-Type, non-core .NET statics, COM, and reflection fail; the mode cannot be lifted — probe-verified, pinned by LANGMODE assertions in the runner suite and description assertions in the tool suite). The stale pwsh-sandbox JSDoc ('the tool owns approval') and the parity notes' superseded 'minus sandbox' claims are corrected.
2026-08-08 20:11:21 +08:00
Huanqi Cao 2dd9af6f4b fix(sandbox): keep read-only strictly zero-grant by dropping the write-allowlist SID from list I
A session that materialized its workspace-write grant and then switched to read-only (or crashed and resumed under read-only) kept a writable workspace for the server lifetime: the standing orphan-SID ACE survived the downgrade and list I still carried the orphan, so the write-restricted pass-2 check granted it. List I is now [logon SID, EVERYONE] only — the standing ACE stays inert under read-only while the unrevoked ACE keeps the re-upgrade free (map hit, no re-propagation). Pinned by the runner's real-token mode-downgrade regression (standing ACE denied under read-only, effective again on re-upgrade), the acl-session mode-switch cycle (nothing under read-only, one materialization on upgrade, no revoke on downgrade), and ConstrainedLanguage pins in both modes.
2026-08-08 20:11:01 +08:00
Ziya 5f9456c24f Merge pull request #1807 from deepseek-harness/feat/web-inline-file-mentions
feat(web): a prose mention of a produced file opens it
2026-08-08 04:59:16 -07:00
Tianyi Cui 1bb17d3616 Merge pull request #1870 from deepseek-harness/fix/agent-loop-cancel-wake-latch
fix(agent-loop): latch wakes landing in the cancel-convergence window
2026-08-08 19:55:53 +08:00
ZiyaZhang 4db962ecbb Merge remote-tracking branch 'origin/master' into feat/web-inline-file-mentions 2026-08-08 04:46:48 -07:00
_Kerman 853f929704 refactor(agent-loop): tighten wake-latch comments 2026-08-08 19:42:42 +08:00
_Kerman df30c62e2b fix(agent-loop): latch wakes landing in the cancel-convergence window 2026-08-08 19:42:42 +08:00
imccyu 22609ea425 Merge pull request #2054 from deepseek-harness/worktree-code-dispatch-tree
refactor(client): localize nested Tool call trees
2026-08-08 18:47:17 +08:00
Huanqi Cao 69fd67bfd8 fix(docs): restore the cli reference pairing record to the multi-line contract after the merge-forward 2026-08-08 18:25:48 +08:00
Huanqi Cao e9b1c64a38 fix(sandbox): update the missing-runner snapshot for the Windows-aware SANDBOX_UNAVAILABLE text 2026-08-08 18:16:19 +08:00
imccyu 4de2de98e4 fix(client): bound nested Tool call depth 2026-08-08 18:15:34 +08:00
Huanqi Cao f1af1831ef fix(docs): point the parity note at the implemented windows-pwsh-default note and re-record the pair 2026-08-08 18:10:21 +08:00
Huanqi Cao 644162d4df fix(docs): re-record the parity note pair hashes after the EOF normalization 2026-08-08 18:03:15 +08:00
imccyu 091b993198 fix(client): harden nested Tool call projection 2026-08-08 17:59:50 +08:00
imccyu 9ed33dfe4f refactor(client): localize nested Tool call trees 2026-08-08 17:59:50 +08:00
Huanqi Cao c0991f2568 fix(docs): point the parity note at the implemented windows-pwsh-default note and refresh catalogs after the merge-forward 2026-08-08 17:58:35 +08:00
Huanqi Cao cc64c729db Merge remote-tracking branch 'origin/feat/windows-pwsh-default' into feat/windows-acl-sandbox
# Conflicts:
#	apps/cli/reference/README.i18n.yaml
#	knip.json
#	packages/sandbox/sandbox-local/package.json
#	pnpm-lock.yaml
#	scripts/check-workspace-constraints.ts
2026-08-08 17:50:39 +08:00
Tianyi Cui 5e0b7571e6 Merge pull request #2059 from deepseek-harness/worktree/browser-gif-evidence-chain-20260808
docs(skills): preserve browser GIF evidence chains
2026-08-08 17:45:48 +08:00
Huanqi Cao d1b080a68d Merge remote-tracking branch 'origin/master' into HEAD
# Conflicts:
#	.agents/notes/implemented/feature/2026-08-05-pwsh-ui-bash-parity.i18n.yaml
#	.agents/notes/implemented/feature/2026-08-05-pwsh-ui-bash-parity.md
#	.agents/notes/implemented/feature/2026-08-05-pwsh-ui-bash-parity.zh.md
#	apps/cli/reference/README.i18n.yaml
2026-08-08 17:42:47 +08:00
Huanqi Cao 07c7e2f0bd fix(sandbox): revoke post-apply grant failures, free init SID allocations, and name the Windows runner in SANDBOX_UNAVAILABLE 2026-08-08 17:39:25 +08:00
Tianyi Cui 40ea07a33b docs(skills): tighten GIF evidence boundaries 2026-08-08 17:35:21 +08:00
Huanqi Cao 43d53d339d fix(pwsh): stamp the calling session's sandbox policy onto pwsh tool calls 2026-08-08 17:30:04 +08:00
Huanqi Cao abfb933620 feat(sandbox): per-session windows-acl write grant with dual-mode restricting lists and a private temp subdirectory 2026-08-08 17:29:43 +08:00
Tianyi Cui c21b8f1068 Merge remote-tracking branch 'origin/master' into worktree/browser-gif-evidence-chain-20260808 2026-08-08 17:28:24 +08:00
imccyu b217fcc5bf Merge pull request #2042 from deepseek-harness/worktree-uitool
cleanup(client): extract Tool presentation ownership
2026-08-08 17:23:25 +08:00
Tianyi Cui 5934bbc32e docs(skills): preserve browser GIF evidence chains 2026-08-08 17:17:14 +08:00
imccyu 871c59c3bc fix(client): address tool tree review 2026-08-08 17:12:54 +08:00
imccyu 3b31b2eba1 fix: ci 2026-08-08 16:53:25 +08:00
imccyu c5b37f6845 fix(client): keep compact row in conversation package 2026-08-08 16:53:25 +08:00
imccyu 810bfc4b5e fix: ci 2026-08-08 16:53:25 +08:00
imccyu ab50037b93 fix(client): address tool presentation review 2026-08-08 16:53:24 +08:00
imccyu 9c10925340 fix(docs): align ui-tool package contracts 2026-08-08 16:53:24 +08:00
imccyu 61f3982348 fix: gen docs 2026-08-08 16:53:24 +08:00
imccyu 67c753dcb7 fix(client): restore built Tool presentation snapshots 2026-08-08 16:53:24 +08:00
imccyu cd64cc7ecd docs(notes): update Tool UI implementation references 2026-08-08 16:53:23 +08:00
imccyu fafd54fc03 docs(client): record Tool presentation ownership 2026-08-08 16:53:23 +08:00
imccyu 7cc554ef16 cleanup(client): extract Tool presentation into ui-tool 2026-08-08 16:53:23 +08:00
imccyu 1674af147e cleanup(client): detach conversation rows from Tool presentation 2026-08-08 16:53:22 +08:00
Tianyi Cui a44e35793c Merge pull request #2048 from deepseek-harness/worktree/batch-session-persistence
Batch durable session writes with a bounded delay
2026-08-08 16:51:15 +08:00
Tianyi Cui 41b2fd7a70 Merge pull request #1145 from deepseek-harness/fix/f4-ask-user-child-guard
fix(user-interaction): guard human interaction by runtime ownership
2026-08-08 16:47:24 +08:00
Yichen Jiang e75a5c6651 Merge pull request #2040 from deepseek-harness/worktree/sidebar-subagent-activity
feat(web): surface subagent activity in sidebar
2026-08-08 16:47:06 +08:00
Tianyi Cui 1576d049ed fix(session-persistence): close batching failure gaps 2026-08-08 16:43:37 +08:00
Yichen Jiang 3b10120d60 Merge remote-tracking branch 'origin/master' into worktree/sidebar-subagent-activity
# Conflicts:
#	packages/client/runtime/README.i18n.yaml
2026-08-08 16:37:29 +08:00
Turtle bd518cb684 Merge pull request #1696 from deepseek-harness/codex/dsh-badge-plugin
feat: add optional dsh badge skill provider
2026-08-08 16:33:00 +08:00
Yichen Jiang d174edf9eb Merge pull request #2034 from deepseek-harness/worktree/merge-compact-card
feat(web): merge compact status and summary cards
2026-08-08 16:23:00 +08:00