Commit Graph

7907 Commits

Author SHA1 Message Date
imccyu 5fc2645afc docs: regenerate the cordis catalog for the archiveSession contract change 2026-07-31 14:08:13 +08:00
imccyu d3e8f17a54 fix: review follow-ups for the session archive set
- WorkspaceRegistry.archiveSession no longer wraps persistence-listing
  failures as WorkspaceUnknownSessionError: only a definite miss (live
  lookup, header index, then a fresh list) maps to session-not-found;
  storage faults propagate as internal errors, with a negative test.
- The archived-current sweep moves from the unary path into the
  projection: any install path (local echo, another tab's frame, a
  reconnect baseline) clears a selection that landed in the archive set.
- An archive set installed while workspace.list is in flight supersedes
  the stale baseline's set instead of being rolled back by it.
- The workspace-management e2e anchors the archived row by its session
  actions button and asserts the single-stray fixture assumption loudly.
- Drop the stale touchSession rows from the workspace READMEs (the
  method was removed with its Agent Note).
2026-07-31 14:08:13 +08:00
imccyu c00f0dccda test(test-runtime): cover the archiveSession double's default and stub arms
The default arm builds the next Set outside the immer draft: reading a
Set through a draft requires the MapSet plugin, assigning a fresh Set
does not.
2026-07-31 14:08:13 +08:00
imccyu fc0042e47e fix(client-runtime): never reuse an archived blank session in connectWorkspace
Reusing one would open a session no grouping surface can show; the New
Session flow mints a fresh blank instead.
2026-07-31 14:08:13 +08:00
imccyu 3b86c288d6 docs: catalogs and Agent Note for the session archive set 2026-07-31 14:08:13 +08:00
imccyu e235be2bac feat(ui-workspace): archive session from the row menu
The visual-only Delete session placeholder becomes a wired Archive
session action: no confirmation dialog (non-destructive), failures stay
console diagnostics. tree.ts hides archived sessions in every
derivation (workspace groups, Ungrouped, search, flat list) through the
sessionVisible predicate. The workspace-management e2e pins the archive
round trip across reload.
2026-07-31 14:08:13 +08:00
imccyu c764ed7e64 feat(client-runtime): project the archive set and the archiveSession action
WorkspaceListState gains archivedSessionIds (ReadonlySet, replaced only
on membership change), installed as full snapshots from the list
baseline, the unary echo, and the changed frame. Archiving the current
session clears the selection into the New Session view state. Test
doubles (test-runtime, fake APIs, fixture client) follow the widened
IWorkspaces/IApiClient faces.
2026-07-31 14:08:13 +08:00
imccyu 53ceab53b8 feat(apiproxy): workspace.archiveSession RPC and archived-sessions frame
workspace.archiveSession answers the full updated archive set;
workspace.list carries the set as the reconnect baseline; the host
stream pushes host/archived-sessions-changed full snapshots from the
domain/changed global-put branch (same posture as workspace-changed).
Unknown sessions map to the existing session-not-found code.
2026-07-31 14:08:11 +08:00
imccyu b00cd0cd8c feat(workspace): add registry-global archivedSessionIds set
The workspace domain global singleton gains archivedSessionIds (schema
default [], version unchanged): a display-layer archive set layered over
workspace accounting. archiveSession() rides the registry operation
chain, validates the session against live/persisted headers, and is
idempotent; archived sessions keep their sessionIds slot so a future
unarchive restores position.
2026-07-31 14:07:51 +08:00
creatixchu dec1950b6a Merge remote-tracking branch 'origin/master' into worktree/composer-scroll-sync 2026-07-31 14:07:04 +08:00
Yichen Jiang 6acdb6631d Merge pull request #1036 from deepseek-harness/worktree/permission-default-settings
feat(permission): configure new-session defaults in Web settings
2026-07-31 14:05:00 +08:00
NI0317 8e7a36db01 test(web): publish welcome acknowledgement before browser boot 2026-07-31 13:59:29 +08:00
Chinesezjc fe7ae124b7 Merge remote-tracking branch 'origin/master' into feat/read-presenter 2026-07-31 13:55:00 +08:00
Tianyi Cui 1a8621527c docs: refresh event producer graph 2026-07-31 13:49:41 +08:00
Tianyi Cui da541c10a7 docs: align runtime-context contracts 2026-07-31 13:49:41 +08:00
Tianyi Cui 49a40bbd8d test(web): remove abandoned sandbox wording experiment 2026-07-31 13:49:41 +08:00
Tianyi Cui e088cfa59d refactor(sandbox-policy): remove capability family registries 2026-07-31 13:49:41 +08:00
Tianyi Cui e6407477a7 fix(agent-loop): clear compacted runtime context 2026-07-31 13:49:40 +08:00
Turtle c9a57b174e Merge remote-tracking branch 'origin/master' into codex/fix-persistence-catalog-toc 2026-07-31 13:48:29 +08:00
Turtle d4a93cbc1a fix(docs): index the full persistence outline 2026-07-31 13:47:51 +08:00
creatixchu 676fee485a Merge remote-tracking branch 'origin/master' into worktree/composer-scroll-sync 2026-07-31 13:46:05 +08:00
Tianyi Cui cff0e5d9a4 Merge master into codex/sandbox-policy-context 2026-07-31 13:45:37 +08:00
Yichen Jiang 8ab6473660 test(permission): cover settings confirmation paths 2026-07-31 13:45:22 +08:00
Yichen Jiang 75f2489ba1 Merge pull request #1031 from deepseek-harness/worktree/fix-models-settings
fix(web): improve Models settings presentation and safety
2026-07-31 13:44:11 +08:00
Turtle 50b98383de Merge remote-tracking branch 'origin/master' into codex/fix-persistence-catalog-toc 2026-07-31 13:43:11 +08:00
Turtle db1765c90e fix(docs): index persistence events in page outline 2026-07-31 13:43:03 +08:00
NI0317 cf4027afe8 Merge remote-tracking branch 'origin/master' into feature/gui-first-run-welcome
# Conflicts:
#	packages/host/apiproxy/README.i18n.yaml
2026-07-31 13:41:17 +08:00
Yichen Jiang 7aa126e0d5 test(session): expect empty fork seed marker 2026-07-31 13:36:40 +08:00
NI0317 139464f3e7 docs(onboarding): refine internal testing notice 2026-07-31 13:34:13 +08:00
Tianyi Cui 4535782742 Merge master into codex/sandbox-policy-context 2026-07-31 13:31:13 +08:00
Yichen Jiang cb60e1759a Merge remote-tracking branch 'origin/master' into worktree/permission-default-settings
# Conflicts:
#	packages/host/apiproxy/README.i18n.yaml
2026-07-31 13:27:43 +08:00
Yichen Jiang 48152a7a1d merge master and address permission settings review 2026-07-31 13:24:30 +08:00
creatixchu 52d6c487b7 Merge remote-tracking branch 'origin/master' into worktree/composer-scroll-sync 2026-07-31 13:22:52 +08:00
imccyu c48a50d553 Merge pull request #1038 from deepseek-harness/fix/command-execute-transport-timeout
fix(apiproxy): let commands outlive unary deadline
2026-07-31 13:21:59 +08:00
imccyu 9aa867b6ea Merge branch 'master' into fix/command-execute-transport-timeout 2026-07-31 13:18:12 +08:00
NI0317 c01b64c3c1 test(web): follow the Full access product label 2026-07-31 13:17:31 +08:00
imccyu be28954120 Merge pull request #964 from deepseek-harness/feat/web-diff-card
feat(web): render write/edit tool output as a diff card
2026-07-31 13:15:24 +08:00
kingwl 1578b7b324 test(web): fix default search CI coverage 2026-07-31 13:14:12 +08:00
creatixchu 23c4745560 fix(web): assert the wrap-width premise instead of reserving a gutter
Review flagged that "equal by construction" rested on an engine behaviour I
had not measured: `scrollbar-gutter: stable` only equalizes the layers if the
engine applies it to `overflow: hidden` the way it does to `overflow-y: auto`.
Measured it on the running app across the three engines Playwright ships,
and the property does not hold up.

  engine    .input / .backdrop / .mirror wrap width
  chromium  776 / 776 / 776   (768 / 768 / 768 with the declaration)
  firefox   776 / 776 / 776   (unchanged by it — overlay scrollbar)
  WebKit    768 / 776 / 776   (unchanged by it)

WebKit reserves for `overflow-y: auto` and not for `overflow: hidden`, so the
declaration left .input at 768 against 776 — exactly the gap it was meant to
close — on the one engine where that gap is observable at all, while costing
every chromium user 8px of text column unconditionally. Reverted: the
composer's metrics are now the same as before this PR.

The WebKit gap predates this change and is not closed here. It is recorded in
the Agent Note with the numbers, and the browser scenario asserts the equality
on the lane's engine so a regression into that state fails loudly. The mirror
is unaffected on WebKit for the drafts measured — the extents still agree — but
a draft whose wrapping turns on those 8px would clamp it.

The review's monotonicity concern resolves the same way: the declaration was
never worse than master, because WebKit already measured 768 against 776
without it. It simply was not better.

Also from this round: the wrap-width assertion now covers .mirror as well as
the two glyph layers — it is the height authority, so a mirror alone wrapping
wider would measure the box short and clip content below the 14-line cap with
every other assertion green. Plus `renderGeometry`'s missing `@param
trailingNewline`, and both e2e tsconfig lists restored to alphabetical order.
2026-07-31 13:13:50 +08:00
NI0317 c171ce2944 Merge remote-tracking branch 'origin/master' into feature/gui-first-run-welcome 2026-07-31 13:10:06 +08:00
NI0317 1962d71b70 fix(web): balance credential step vertically 2026-07-31 13:09:41 +08:00
imccyu eacd24d66a Merge branch 'master' into feat/web-diff-card 2026-07-31 13:07:51 +08:00
Chinesezjc 59abbb5964 Merge remote-tracking branch 'origin/master' into feat/search-presenter 2026-07-31 13:04:53 +08:00
Tianyi Cui fbf28700af Merge master into codex/sandbox-policy-context
# Conflicts:
#	apps/web/tests/snapshots/live-interactions/retry.expected.md
#	apps/web/tsconfig.json
#	tsconfig.host.json
2026-07-31 13:04:21 +08:00
Chinesezjc a2fa8ccbcf Merge remote-tracking branch 'origin/master' into feat/read-presenter 2026-07-31 13:03:05 +08:00
kingwl 7ddbbe2095 test(web): align search golden with latest master 2026-07-31 13:02:00 +08:00
kingwl 5759c287a2 fix(web): narrow default search review scope 2026-07-31 12:58:50 +08:00
kingwl 2b2f109dcb fix(web): keep default capability search-only 2026-07-31 12:58:46 +08:00
kingwl 7091e0db74 test(web): refresh search snapshot after master merge 2026-07-31 12:58:15 +08:00
kingwl 902926c7bb feat(web): enable default search and fetch 2026-07-31 12:58:06 +08:00