Commit Graph

8444 Commits

Author SHA1 Message Date
imccyu
b2cd3d26da Merge remote-tracking branch 'origin/fix/web-transcript-projection' into feat/manual-compact-single-lock 2026-07-31 15:50:54 +08:00
creatixchu
e5563ae433 fix(locale): gate browser detection on window and tolerate a missing languages list
Node >= 21 exposes a global `navigator` reporting the machine's own language,
so gating detection on `navigator` let a non-browser boot of the client tree
resolve to `en` instead of the documented fallback; `window` is the browser
test. `navigator.languages` is spec-required but absent on some embedders and
older WebViews, where spreading it would throw at boot, so the walk tolerates
its absence and `navigator.language` covers that host.

The per-spec pin boilerplate collapses into one suite-level
`usePinnedBrowserLanguages('zh-CN')`, which owns the rationale in
dsh-client-test-runtime, and the English-browser e2e scenario now clears the
console warnings channel too — its page has no closing inventory spec.
2026-07-31 15:49:59 +08:00
Chinesezjc
3ee8b6c1d6 Merge remote-tracking branch 'origin/feat/web-read-card' into feat/web-cards-toolrow 2026-07-31 15:49:31 +08:00
Turtle
a21d6c0c5b Merge pull request #1054 from deepseek-harness/worktree-infdev01
Anchor storage-json root to $DSH_HOME/storages
2026-07-31 15:49:10 +08:00
imccyu
9ca02b4fc8 Merge remote-tracking branch 'origin/master' into fix/web-transcript-projection 2026-07-31 15:48:26 +08:00
creatixchu
d6231007af cleanup(web): give adding a Workspace one route
Both Workspace surfaces offered "Open local folder…" and "Create a new
workspace" for one outcome. The browse occupant already carries its own
New folder affordance, so picking a directory covered creating one; the
name dialog only added a second vocabulary and a create target the
operator could neither see nor choose.

The surviving entry is named after the outcome — "Add workspace…" — and a
menu now appears only where there is something to choose between: with no
Workspace listed (the add-only sidebar header, or an empty hero list) the
anchor gesture raises the directory flow directly instead of a one-row
popover. An empty list counts as final only after the list baseline lands,
and a composition with no directory-flow occupant hides the sidebar button
rather than offering a dead one.

WorkspaceCreateFlow becomes WorkspacePickFlow (createOnly -> addOnly) and
the injected createWorkspace narrows to { path }. The host's
workspace.create({ name }) branch and `dsh web --workspace-root` lost their
last product consumer; both are marked at the call site for a follow-up.
2026-07-31 15:47:40 +08:00
NI0317
da72e61251 test(web): include runtime context in loading golden 2026-07-31 15:47:05 +08:00
NI0317
ee404357a4 Merge origin/master into codex/sandbox-policy-context 2026-07-31 15:46:42 +08:00
Chinesezjc
50a625890f fix(web-read-card): mark read-row summary chrome jscpd:ignore
The keyed toolviews (read, file-mutation, web) each draw the same ToolRow
summary-line chrome; the read row's copy trips the duplication gate against the
file-mutation row. Extracting the shared row is a separate change tracked for
all rows at once, so this scopes the exemption to the read row's block.
2026-07-31 15:46:27 +08:00
Tianyi Cui
7906c1032f Merge pinned master into status bar token metrics 2026-07-31 15:41:52 +08:00
creatixchu
8714952c85 feat(web): copy values from hover cards 2026-07-31 15:38:22 +08:00
Hypatia May
b14c9daed2 Merge branch 'feat/manual-compact-single-lock' into feat/compaction-progress-visibility 2026-07-31 15:37:06 +08:00
Hypatia May
1114a80a45 Merge branch 'fix/web-transcript-projection' into feat/manual-compact-single-lock
# Conflicts:
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
2026-07-31 15:36:49 +08:00
Hypatia May
d67de808b0 Merge remote-tracking branch 'origin/master' into fix/web-transcript-projection
# Conflicts:
#	packages/client/ui-conversation/README.i18n.yaml
2026-07-31 15:32:36 +08:00
imccyu
a3b65f7e9c Merge branch 'master' into worktree-infdev01 2026-07-31 15:30:42 +08:00
Tianyi Cui
66f8cc074e Merge pull request #1027 from deepseek-harness/pr/adapter-registration-race
fix(tui): defer model-context resolution on the adapter-registration race
2026-07-31 15:29:09 +08:00
imccyu
d4250e927c doc: record the duplicated home-resolution expression and its extraction trigger 2026-07-31 15:27:42 +08:00
Hypatia May
85cef9de6f fix(tui): unify compaction progress presentation 2026-07-31 15:27:10 +08:00
creatixchu
cb754a0319 feat(locale): derive the initial Settings language from the browser
A first visit resolved to Chinese regardless of the browser: LocaleService
read `dsh.locale` and fell straight back to `zh` when nothing was stored,
ignoring the languages the browser already states it reads.

The initial locale now resolves through three ordered sources — the persisted
preference, then `navigator` (first entry of the ordered language list whose
primary subtag names a shipped locale, so `zh-Hans-CN` -> zh and `en-GB` ->
en), then `FALLBACK_LOCALE`. An explicit choice still wins and nothing writes
the detected locale back to storage, so "has the user chosen?" stays a
question only the stored value answers.

Specs asserting the shipped Chinese copy now state the browser they assume:
the web e2e scenarios open their page with `locale: ZH_BROWSER_LOCALE`, and
package specs pin it through the new `pinBrowserLanguages` test helper.
`settings-chrome.e2e.ts` gains an English-browser scenario as the
assembled-app proof.
2026-07-31 15:26:46 +08:00
kingwl
c08e8d00f7 Merge origin/master into codex/web-default-search
# Conflicts:
#	apps/web/tests/scaffold.ts
2026-07-31 15:26:29 +08:00
Tianyi Cui
b2146d6298 Merge branch 'master' into pr/adapter-registration-race 2026-07-31 15:24:43 +08:00
Chinesezjc
1c58d8daeb Merge pull request #974 from deepseek-harness/feat/search-presenter
feat(fs): add a search render-intent card for grep and glob results
2026-07-31 15:24:22 +08:00
Tianyi Cui
81e5ee7e3e Merge branch 'master' into pr/adapter-registration-race 2026-07-31 15:22:35 +08:00
NI0317
1beb38554e fix(review): align runtime-context diagnostics and docs 2026-07-31 15:19:59 +08:00
imccyu
fa7ea5c01c doc: storage-root note tracks the shipped $DSH_HOME/storages overlay anchor 2026-07-31 15:18:02 +08:00
NI0317
63404c7a31 Merge latest origin/master into feature/tui-first-run-welcome 2026-07-31 15:15:38 +08:00
NI0317
dbb87f02bf copy(tui): disclose Session Log upload in Chinese welcome 2026-07-31 15:15:14 +08:00
creatixchu
6ca3b78e55 Merge remote-tracking branch 'origin/master' into worktree-session-hover-menu-fix
# Conflicts:
#	apps/web/tests/workspace-management.e2e.ts
2026-07-31 15:14:05 +08:00
NI0317
2bed90d355 Merge remote-tracking branch 'origin/agent/update-internal-beta-copy' into feature/gui-welcome-copy-v2
# Conflicts:
#	README.i18n.yaml
#	README.md
#	README.zh.md
2026-07-31 15:14:01 +08:00
NI0317
b9863e4c3a Merge remote-tracking branch 'origin/master' into feature/gui-welcome-copy-v2 2026-07-31 15:12:02 +08:00
Turtle
732c9e6d95 fix(tui): release the adapter-registration listener on channel detach
Review follow-up: the llm/adapters-updated listener's disposer was
discarded, leaving it firing (harmlessly, behind isDisposed()) between
TUI shutdown and fiber disposal, asymmetric with the sibling channel
listeners. The controller now exposes detach(), and the channel's
detachListeners() calls it on both the dispose() and startup-failure
paths.
2026-07-31 15:11:24 +08:00
Chinesezjc
b140590451 fix(web-read-card): add archivedSessionIds to read-card.spec workspace state
The master merge added a required archivedSessionIds field to WorkspaceListState;
the read-card spec's DetailsPanel fixture state needs it to typecheck.
2026-07-31 15:10:19 +08:00
imccyu
584e89d313 test: scaffold comment follows the storage-json home-anchored root 2026-07-31 15:09:10 +08:00
creatixchu
51fd1d2b41 fix(web): only anchor presses dismiss the hover card
The card is a React child of the wrapper, so capture-phase presses on it
reached the wrapper's dismissal handler: the first pointerdown of a text
selection closed the card, contradicting its JSDoc contract. Restrict the
immediate close to presses outside the card, keeping it mounted under a
held press (and the browser click with it), and align onPointerLeave's
grace arming with Menu (only while open).

Pin both new behaviors in hover-card.spec and update the bilingual Agent
Note.
2026-07-31 15:06:27 +08:00
imccyu
408b003bad feat: use DSH_HOME for storages 2026-07-31 15:05:45 +08:00
NI0317
469dc8ffce Merge remote-tracking branch 'origin/master' into codex/sandbox-policy-context 2026-07-31 15:05:37 +08:00
NI0317
d3ff2c3653 docs(onboarding): update internal testing notice 2026-07-31 15:04:24 +08:00
NI0317
1b2f05d438 Merge remote-tracking branch 'origin/master' into codex/sandbox-policy-context 2026-07-31 15:04:11 +08:00
Turtle
e8626a2baa Merge pull request #1044 from deepseek-harness/codex/fix-persistence-catalog-toc
fix(docs): index persistence events in page outline
2026-07-31 15:03:26 +08:00
NI0317
3da219461c Merge origin/master into codex/sandbox-policy-context 2026-07-31 15:03:11 +08:00
imccyu
00132be487 Merge pull request #1016 from deepseek-harness/feature/gui-first-run-welcome
feat(web): show a versioned welcome before DeepSeek setup
2026-07-31 15:00:59 +08:00
imccyu
95c238a74f Merge remote-tracking branch 'origin/master' into mergebot/pr1016 2026-07-31 14:51:15 +08:00
imccyu
ef01e2e9af Merge pull request #1046 from deepseek-harness/worktree-infdev01
Shared anonymous user id from $DSH_HOME/.userid, reported as OTel Resource user.id
2026-07-31 14:49:00 +08:00
imccyu
06fc3c68a6 Merge pull request #1039 from deepseek-harness/worktree/composer-scroll-sync
fix(web): scroll the composer's glyph layer with its textarea
2026-07-31 14:48:41 +08:00
Chinesezjc
b155051d48 Merge remote-tracking branch 'origin/master' into feat/web-read-card
# Conflicts:
#	packages/client/ui-conversation/src/client/apply.ts
#	packages/client/ui-conversation/src/client/chat/GenericToolCard.tsx
#	packages/client/ui-conversation/src/client/skeleton/DetailsPanel.tsx
#	packages/client/ui-conversation/tests/chat-apply.spec.tsx
#	packages/client/ui-primitives/src/index.ts
2026-07-31 14:46:41 +08:00
imccyu
5dcb096015 Merge pull request #997 from deepseek-harness/worktree/chat-ui-polish
fix(web): polish chat activity and queue states
2026-07-31 14:45:23 +08:00
imccyu
4c01550833 Merge remote-tracking branch 'origin/master' into mergebot/pr1016 2026-07-31 14:43:03 +08:00
Chinesezjc
62275b6cd6 Merge remote-tracking branch 'origin/master' into feat/search-presenter
# Conflicts:
#	docs/config-catalog.md
#	docs/cordis-catalog/events.md
#	docs/cordis-catalog/services.md
#	docs/core-data-structures/tools.i18n.yaml
#	docs/core-data-structures/tools.md
#	docs/core-data-structures/tools.zh.md
#	docs/event-producer-consumer.md
#	examples/acp-agent/tests/snapshots/cordis-inspect-jsdoc/session.jsonl
#	packages/cordis/tool-cordis/src/api-catalog.ts
#	packages/core/tools/README.i18n.yaml
#	packages/core/tools/README.md
#	packages/core/tools/README.zh.md
#	packages/core/tools/src/index.ts
#	packages/core/tools/src/presentation.ts
#	packages/ui/tui/src/components/transcript.ts
2026-07-31 14:40:29 +08:00
Tianyi Cui
57e56915de Merge latest manual compaction parent into compaction progress 2026-07-31 14:40:12 +08:00
fz
a43a0b5cff fix(compact): soften English checkpoint rule 2026-07-31 14:40:11 +08:00