Commit Graph

7174 Commits

Author SHA1 Message Date
ZiyaZhang
6b7b2f8010 fix(subprocess): scrub ambient password variables 2026-07-28 02:02:35 -07:00
Tianyi Cui
def1b5c55a Merge remote-tracking branch 'origin/master' into worktree/pr742-retarget-20260728
# Conflicts:
#	docs/event-producer-consumer.md
2026-07-28 16:59:10 +08:00
imccyu
de56936c87 docs: fix test and docs conflicts 2026-07-28 16:50:07 +08:00
imccyu
6c4e606e61 revert: use session.append 2026-07-28 16:49:55 +08:00
creatixchu
7ff8da56df fix(connection): require trustedHosts entries in canonical authority form
A dangling colon (harness.internal:) or zero-padded port parses cleanly while
WHATWG silently rewrites it, turning an intended exact-port grant into an
any-port grant. Replace the character blacklist with a round-trip check: an
entry must read back from parsing exactly as written (case aside), refusing
the whole rewrite class at load.
2026-07-28 16:49:52 +08:00
_Kerman
46665f8af7 Merge branch 'master' into xtr/identified-immutable-messages 2026-07-28 16:47:13 +08:00
creatixchu
716d3ca636 test(apiproxy): drive the browse RPCs through the fetch carrier
The full-suite coverage gate found the new listDirectory/createDirectory
client methods and handler routes unexecuted: the implementation and
schema layers were tested directly, but nothing crossed the wire form.
One round trip through InProcessApiClient covers both arrows on each
side.
2026-07-28 16:44:22 +08:00
Chinesezjc
9d8a4d50ee Merge remote-tracking branch 'origin/master' into feat/web-terminal-card
# Conflicts:
#	packages/client/ui-conversation/src/client/chat/ToolRow.tsx
2026-07-28 16:43:15 +08:00
creatixchu
0fcfc5214b Merge remote-tracking branch 'origin/doc/host-client-group-readmes' into feat/directory-picker 2026-07-28 16:42:36 +08:00
Chinesezjc
f4c243c75f feat(web): state the run state on the terminal card's prompt line
The terminal card showed no run state: a running command and a settled
command that produced no output rendered the same prompt line, so whether
a command was still running had to be inferred from the absence of output.

Lead the prompt line with a StateDot in three of its states — the spinning
ring while running, red for the same exit status that renders the status
pill, green for a clean settle. That is the same indicator a tool row's
leading icon carries, so a row and its own card cannot disagree about one
command; the row/card agreement is pinned in the ui-conversation spec.
StateDot is aria-hidden, so a visually hidden text label rides beside it,
which is what the refreshed aria goldens now record.

The e2e adds what jsdom cannot compute: the dot's color resolves to the
green success token through the real theme stylesheet, and the dot precedes
the prompt label in document order.
2026-07-28 16:41:04 +08:00
Tianyi Cui
f63d2deecf Merge pull request #818 from deepseek-harness/fix/wine-workspace-snapshot-flake
fix(ci): retry the Wine lane's pnpm install on the hoisted-linker rename race
2026-07-28 16:36:42 +08:00
_Kerman
1d4a6149cc feat(client): add trajectory timing overview 2026-07-28 16:28:57 +08:00
07akioni
ed2e881f35 fix: remove useless file 2026-07-28 16:26:09 +08:00
Chinesezjc
75ae2cb4eb Merge remote-tracking branch 'origin/master' into feat/scrollbar-tokens 2026-07-28 16:23:44 +08:00
creatixchu
34518cb012 fix(connection): judge an entry's explicit port from the parsed URL, not the raw string
WHATWG trimming strips stray whitespace before parsing, so 'host:port ' passed
the load assert while the raw-string port regex read it as port-less —
broadening an exact-port grant to every port on that hostname. The explicit-
port judgment now reads URL parses under both special schemes (:80/:443 stay
explicit), and the load assert refuses whitespace outright.
2026-07-28 16:19:31 +08:00
Tianyi Cui
6227b55e4a fix(ci): retry the Wine lane's pnpm install on the hoisted-linker rename race
The wine blocking job flaked with ERR_PNPM_ENOENT rename '_tmp_*' ->
'<pkg>/node_modules/esbuild' during workspace snapshot + pnpm install
(runs 30334004123 and 30340039598), and a plain rerun passed. Root
cause is upstream pnpm/pnpm#12880: the hoisted linker's parallel
linkers race to rename their _tmp_* staging directory onto the same
nested package path, and the loser exits although an identical
re-install succeeds. Only this lane uses nodeLinker: hoisted, so only
this lane hits it.

snapshot_and_install now retries exactly that log signature up to two
times, wiping the scratch tree's node_modules first (the snapshot
itself contains none, so the wipe restores the pre-install state) and
logging each retry with the upstream issue. Any other install failure
still fails on the first attempt, and a race that survives the final
attempt still fails loud with the install log tail.
2026-07-28 16:16:10 +08:00
imccyu
9ce201e490 Merge remote-tracking branch 'origin/master' into worktree-guifork 2026-07-28 16:12:12 +08:00
creatixchu
b9cbe2f029 fix(connection): fail the load on a trustedHosts entry that is not a bare authority
WHATWG parsing would quietly read a hostname out of harness.internal/path or
user@harness.internal, authorizing the typo's hostname; other typos would sit
silently ignored until requests 403. Refuse every URL part beyond host[:port]
at plugin load.
2026-07-28 15:57:02 +08:00
07akioni
fff09b2a41 Merge branch 'master' into feat/toolcall-open
Keep openFile path links (no tool-row sidebar handoff) while taking master's
cwd-relative summaries, running sweep, and expandable chevron polish.
2026-07-28 15:55:22 +08:00
_Kerman
750aa2022f fix(snapshot): refresh session title messages 2026-07-28 15:55:15 +08:00
_Kerman
1d4d6f881c Merge branch 'master' into xtr/identified-immutable-messages 2026-07-28 15:52:16 +08:00
Tianyi Cui
15ed8e5d55 Merge pull request #761 from deepseek-harness/worktree/replayable-gate-plans-20260727
feat(dev-infra): validate gate graphs and order artifact consumers
2026-07-28 15:51:14 +08:00
_Kerman
019b0abb68 Merge remote-tracking branch 'origin/master' into xtr/identified-immutable-messages
# Conflicts:
#	.agents/notes/implemented/architecture/2026-07-24-separate-context-injection-from-turn-execution.i18n.yaml
#	docs/cordis-catalog/services.md
#	docs/core-data-structures/core.i18n.yaml
#	docs/core-data-structures/session.i18n.yaml
#	docs/event-producer-consumer.md
#	docs/persistence-catalog.md
#	packages/core/session/README.i18n.yaml
#	packages/session-title/session-title/tests/persistence.spec.ts
2026-07-28 15:45:53 +08:00
creatixchu
7fd2abd828 feat(host): directory-picker capability seam with dialog and browse backends
The web GUI's folder picking was hardwired to one interaction: a native
OS chooser compiled into the gateway, unusable for remote deployments
and swappable only by editing apiproxy source.

Directory picking becomes a three-package capability seam in
packages/host: ctx.directoryPicker returns a discriminated capability —
dialog (the extracted native chooser; host-display only) or browse
(new: one-level listing + child creation over Node stdlib, hidden flags
host-stamped, symlinks followed, ancestry crumbs; remote-capable). The
gateway injects the seam, advertises the kind via
host.describe.directoryPicker, serves host.listDirectory /
host.createDirectory under browse, and answers
directory-picker-unavailable across kinds. cordis.yml is the swap
point; apps/cli keeps dialog mounted, so behavior is unchanged until
the in-app browser PR flips the default. The connection fixture serves
a deterministic browse tree; WorkspacesService gains the browse calls
the browser UI will drive. Decision record:
.agents/notes/implemented/architecture/2026-07-28-directory-picker-capability-seam.md
2026-07-28 15:44:53 +08:00
_Kerman
40c29495af Merge branch 'master' into xtr/trajectory-inspection-ui 2026-07-28 15:41:45 +08:00
Tianyi Cui
d70cb63833 Merge remote-tracking branch 'origin/master' into worktree/replayable-gate-plans-20260727 2026-07-28 15:41:26 +08:00
_Kerman
14c3d2ef9c Merge remote-tracking branch 'github/master' into xtr/trajectory-inspection-ui
# Conflicts:
#	packages/client/ui-primitives/src/Menu.tsx
2026-07-28 15:41:03 +08:00
imccyu
453c475c72 Merge pull request #809 from deepseek-harness/xtr/remove-append-out-of-band
refactor(session): remove synthetic log-only turns
2026-07-28 15:40:23 +08:00
creatixchu
01eea07bab fix(connection): keep LAN serving working under the /api browser-trust fence
Markerless requests pass on any Host (a non-browser sender is the principal
and forges headers anyway); browser Host matching gains port-less entries and
WHATWG normalization; dsh derives LAN IP-literal authorities for an
all-interfaces bind and web grows --trusted-host for named ones.
2026-07-28 15:40:02 +08:00
Tianyi Cui
108374772f Merge branch 'master' into xtr/remove-append-out-of-band 2026-07-28 15:36:20 +08:00
Tianyi Cui
463ab62a6a Merge pull request #816 from deepseek-harness/worktree/sandbox-master-only-20260728
ci: run sandbox matrix on master only
2026-07-28 15:36:12 +08:00
Tianyi Cui
2a5137f0e9 Merge branch 'master' into worktree/sandbox-master-only-20260728 2026-07-28 15:35:36 +08:00
Tianyi Cui
09a65125ba Merge remote-tracking branch 'origin/master' into worktree/replayable-gate-plans-20260727 2026-07-28 15:34:30 +08:00
_Kerman
102ebb8772 Merge branch 'master' into xtr/remove-append-out-of-band 2026-07-28 15:33:34 +08:00
imccyu
d42f6e9e1d Merge pull request #801 from deepseek-harness/fix/web-ui-optimization
fix(web-ui): conversation UI polish sweep
2026-07-28 15:33:22 +08:00
Tianyi Cui
cbbd888cab simplify gate graph validation 2026-07-28 15:33:20 +08:00
_Kerman
b1af35145b fix: enforce message snapshot invariants 2026-07-28 15:33:00 +08:00
_Kerman
0cd28959e8 Merge branch 'master' into xtr/remove-append-out-of-band 2026-07-28 15:32:42 +08:00
Tianyi Cui
0a09924c00 Merge remote-tracking branch 'origin/master' into worktree/sandbox-master-only-20260728 2026-07-28 15:28:53 +08:00
imccyu
0bc9fa9546 Merge branch 'master' into fix/web-ui-optimization 2026-07-28 15:26:38 +08:00
Tianyi Cui
032aa16018 Merge pull request #811 from deepseek-harness/worktree/ci-flake-followup-20260728
fix(ci): stabilize readiness timing boundaries
2026-07-28 15:26:20 +08:00
Tianyi Cui
f85736e814 ci: run sandbox matrix on master only 2026-07-28 15:26:00 +08:00
imccyu
0b1a8b3fee fix: ci 2026-07-28 15:25:38 +08:00
_Kerman
833a58784f docs(session): refresh invariant metadata 2026-07-28 15:22:16 +08:00
Tianyi Cui
16958cdbe7 fix(pty): observe readiness before exact probe threshold 2026-07-28 15:22:05 +08:00
07akioni
c30c891628 fix: ci 2026-07-28 15:21:34 +08:00
_Kerman
f074444cf0 Merge remote-tracking branch 'origin/master' into xtr/remove-append-out-of-band 2026-07-28 15:19:00 +08:00
_Kerman
a39ffb095a fix(session): preserve plugin turn invariants 2026-07-28 15:18:48 +08:00
_Kerman
9096dbb29d fix(client): address trajectory review findings 2026-07-28 15:07:44 +08:00
imccyu
ee9627f232 Merge remote-tracking branch 'origin/master' into fix/web-ui-optimization 2026-07-28 15:06:17 +08:00