Commit Graph
210 Commits
Author SHA1 Message Date
zhc 1dc5232999 fix(desktop): isolate analytics and redact installer inputs 2026-09-24 19:29:30 +08:00
zhc 35fa12f2a5 Merge master into desktop product analytics 2026-09-24 17:11:06 +08:00
zhc b1cf871b25 feat(desktop): collect product analytics through OTel 2026-09-24 17:08:31 +08:00
liukx0205 9827bcfb37 Merge master into fix/focus-ring-brand-primary 2026-09-24 15:38:51 +08:00
yixiangihsiang fdd14a0989 feat(web): unify UI materials and streamline file review 2026-09-24 14:58:54 +08:00
mektpoy 74a0c834f9 Merge remote-tracking branch 'origin/master' into fix/focus-ring-brand-primary
Only the ui-theme README pairing record conflicted; re-recorded. The stylesheet
corpus spec passes over master's new client sheets, so no ring needed realigning.
2026-09-24 14:49:16 +08:00
winewill fbb3fb770f fix(desktop): cancel pending quit decisions during installer exit 2026-09-24 14:36:02 +08:00
winewill 5637311d5a fix(desktop): confirm the first close with the shared shell dialog 2026-09-24 14:25:02 +08:00
winewill e6f135f15c fix(desktop): harden quit bypass and background-notice bookkeeping after review
- Only the definitive Windows session-end message bypasses the quit
  confirmation; the macOS power-off flag clears on the next focus or show
  because another application can cancel that shutdown.
- A bypassing quit disposes the pending confirmation so a late inspection
  result opens no box and an answered box cannot approve.
- Cancelling a quit that closing the welcome window started shows the
  welcome window again.
- The first-hide notice records its marker only after delivery and
  withdraws it on failure; the Windows quit dialog uses the multi-size ICO.
- windowShown settles when the awaited window is destroyed.
- Cross-link the partially superseded window-menus note; tidy docs.
2026-09-24 14:24:39 +08:00
winewill 4745934683 feat(desktop): hide the window on close and confirm interruptible quits
Closing the main window hides it on macOS and Windows; the page and the
Host keep running and the next show resumes the same document. Windows
gets a permanent tray icon (open / quit) and a one-time notification the
first time the window is hidden after installation.

Every ordinary quit entry asks the Host over a new quit-inspection IPC
request for active tasks (same rule as the update restart check) and
armed scheduled reminders (schedule family of workspace/session-activity
for loaded sessions). Nothing to interrupt quits silently; otherwise a
native message box explains what stops, with Quit as the default and
Cancel on Esc. Inspection failure or a missed two-second deadline counts
as running tasks. The installer restart, fatal recovery, the development
restart command, and OS session end skip the confirmation.

Also: defer the downloaded-update confirmation while the window is hidden,
render the tray ICO from the vector icon, and point the installer's
running-application message at the tray.

Closes #4013
2026-09-24 14:24:39 +08:00
Yichen Jiang 55b06e6f81 Merge pull request #5098 from deepseek-harness/worktree/model-api-key-autofill
fix(web): suppress saved-password autofill in API key inputs
2026-09-24 13:55:56 +08:00
winewill 1bc594d701 Merge pull request #5076 from deepseek-harness/feat/windows-update-restart
fix(desktop): clarify Windows updates and raise the restarted window
2026-09-24 13:41:12 +08:00
Yichen Jiang 11c0511271 fix(web): align remaining API key inputs with autofill policy 2026-09-24 12:32:10 +08:00
liukx0205 4f1a1289f5 fix(client): use blue focus rings in light and dark themes 2026-09-24 12:24:47 +08:00
liukx0205 e71fa92030 Merge master into fix/focus-ring-brand-primary 2026-09-24 12:05:19 +08:00
lsdsjy dd0578fadd Merge origin/master into fix/platform-webview-persistence 2026-09-24 11:05:40 +08:00
winewill a67119845d fix(desktop): align update fixtures and clear deferred startup focus 2026-09-24 01:18:52 +08:00
winewill a7e745de66 Merge master into feat/windows-update-restart 2026-09-24 01:11:36 +08:00
zhc 6233f998a2 merge: integrate current account bonus notices with onboarding 2026-09-23 23:43:53 +08:00
zhc 4fdcaf16b5 merge: integrate desktop shortcuts and refresh onboarding decisions 2026-09-23 23:34:17 +08:00
lsdsjy 6171ed6f5d Merge origin/master into feat/account-bonus-notices 2026-09-23 23:25:21 +08:00
mektpoy c3cd67a2e8 Merge remote-tracking branch 'origin/master' into fix/focus-ring-brand-primary
Only the bilingual pairing records conflicted. Master moved Agent Note records to
per-heading hashes, so this branch's note record was re-recorded in that format;
the ui-primitives and ui-theme README records were re-recorded unchanged. The
stylesheet corpus spec still passes over master's new client sheets, so no ring
needed realigning this time.
2026-09-23 22:43:43 +08:00
lsdsjy 311ab0524f Merge remote-tracking branch 'origin/master' into fix/platform-webview-persistence 2026-09-23 22:25:54 +08:00
lsdsjy 235b13ab12 Merge origin/master into feat/account-bonus-notices 2026-09-23 22:23:57 +08:00
07akioni 93b832f1b0 Merge pull request #4459 from deepseek-harness/feat/desktop-onboarding
feat(desktop): add device-local account onboarding
2026-09-23 22:21:18 +08:00
Xinyu Yang 4b03fefec1 Merge origin/master into feat/shortcuts-rework 2026-09-23 22:10:54 +08:00
lsdsjy 50293e4dd4 Merge origin/master into feat/account-bonus-notices 2026-09-23 22:05:41 +08:00
winewill d2a5490fa0 fix(desktop): clarify Windows updates and raise the restarted window 2026-09-23 21:25:54 +08:00
lsdsjy 9759ea2719 Merge origin/master into feat/account-provider-signout 2026-09-23 20:00:03 +08:00
mektpoy ef7f44662d Merge remote-tracking branch 'origin/master' into fix/focus-ring-brand-primary
ui-theme/README.md, README.zh.md and README.i18n.yaml conflicted again: master
extended the `design-platform.css` sentence with the `--dsw-alias-file-diff-*`
palette. Kept that sentence together with this branch's `focus.css` paragraphs
and the seven-sheet entry list, then re-recorded the pairing hashes.
2026-09-23 18:20:56 +08:00
lsdsjy 9987cae3ea fix(desktop): apply shared toast theme in welcome 2026-09-23 17:29:24 +08:00
lsdsjy 8f180cf45f fix(account): deliver credential expiry notices without replay 2026-09-23 17:26:01 +08:00
lsdsjy b8df537f07 fix(desktop): return to initial welcome page after sign-out 2026-09-23 15:28:12 +08:00
lsdsjy fff88f7375 fix(desktop): harden Platform storage cleanup and identity publication 2026-09-23 11:30:37 +08:00
lsdsjy 4283f62d01 fix(desktop): leave sign-in activation to the completion page 2026-09-23 11:11:44 +08:00
lsdsjy be3ecb4977 fix(desktop): persist account-scoped Platform page preferences 2026-09-23 10:55:33 +08:00
lsdsjy 3970cc974f feat(account): send client metadata with Platform requests 2026-09-22 22:42:11 +08:00
lsdsjy 318c83fa84 chore: merge master and restore PR validation 2026-09-22 22:25:13 +08:00
Xinyu Yang 6a82709a2b fix(shortcuts): preserve focus and tab layout, block overlay input 2026-09-22 21:02:32 +08:00
Xinyu Yang 91423ea1b4 revert: restore configurable Web and desktop shortcuts
Restore the feature removed by #4886 on current master. Preserve the current settings entry point, moving-menu behavior, and desktop update UI.
2026-09-22 21:02:32 +08:00
mektpoy fae37cd705 Merge remote-tracking branch 'origin/master' into fix/focus-ring-brand-primary
Conflicts and how they were resolved:

- ui-agent-preset/AgentPresetSection.module.css: master replaced the icon-only
  tooltip actions (`.iconButton`, `.iconDanger`, `.revealedPath`) with
  `.cardHelp` + `.helpButton`, which deleted the one declaration this branch
  edited. Took master's structure and re-applied the branch's change to the two
  `.cardMain:focus-visible` rings, which master kept unchanged.
- ui-theme/README.md and README.zh.md: master documented the separately exported
  `brand-font.css`; this branch documented `focus.css`. Kept both, with the
  dynamic entry's sheet list at seven sheets including `focus.css`.
  `README.i18n.yaml` re-recorded with `verify-translation-pairing --write`.
2026-09-22 20:37:05 +08:00
mektpoy 5925925d20 Merge remote-tracking branch 'origin/master' into fix/desktop-dev-runtime-target
# Conflicts:
#	apps/desktop/src/main.ts
2026-09-22 20:30:25 +08:00
mektpoy bca9cecc7d fix(client): keep pointer focus silent through descendant and editable rings
Pointer suppression previously cleared `outline-color` on the focused element
alone, so a ring painted by a descendant, a pseudo-element, or a `box-shadow`
stayed visible, and editable text controls lost the focus feedback they need on
click.

Ring colour now flows through `--dsw-focus-ring-color`, which component outlines
and focus-ring shadows read alongside the brand token. Every ring that inherits
the variable is suppressed together, and `body :focus-visible:not(:read-write)`
limits the suppression to rings while editable controls keep their own feedback.

Keyboard modality returns on Tab, Home, End, PageUp, or PageDown, and on focus
reaching a different control after a non-composing key. IME composition keys,
refocusing the same control, and window blur leave rings silent. The desktop
preload menubar suppresses its own ring inside its shadow root, where the
document-level attribute does not reach.
2026-09-22 20:28:10 +08:00
lsdsjy 5a3c316401 fix(desktop): deliver welcome expiry notice once across windows 2026-09-22 19:21:12 +08:00
winewill c22b226b18 fix: address review threads on the fatal-diagnostics PR
- Agent Notes: cross-link the new decision with the native fatal recovery
  and fail-loud release notes both ways, rewrite the older note's
  console-retention and dialog-detail facts in place, and state the report's
  actual bounds.
- crash-report: cut the rendered error section at 256 KiB and prune only
  files matching the generated crash-<time>-<source>.log syntax.
- main: backendReady follows the backend state except during shutdown, so a
  failure while tearing down a ready backend still reads as running.
- subprocess-local: the temporary-file-cleaner hint is appended only for
  ENOENT; other codes rely on the appended error.
- client-modules: describeError is module-private; BootModuleRow.url's
  JSDoc names its fallback role.
2026-09-22 18:20:12 +08:00
winewill 603a8fc7d3 Merge remote-tracking branch 'origin/master' into fix/fatal-diagnostics-and-crash-reports 2026-09-22 17:58:58 +08:00
winewill 7b2094d04d fix(desktop): keep the Host's original diagnostic in startup crash reports
A Host startup failure reached the crash report as a fresh Error built from
a message string three hops away from the original: the Host sent only
error.message over the fatal IPC event, DesktopHostProcess wrapped it in a
new Error, desktopErrorState flattened it to text, and main.ts wrapped that
text again. Stack, cause, code, and path were gone, and the Host's stderr
tail arriving with the later exit was blocked by the first-failure latch.

The Host now sends its complete inspected error alongside the message
(bounded to 64 KiB; carried over IPC rather than stderr because the two
race and the shell reports the first failure it sees). DesktopHostProcess
keeps it on DesktopHostFatalError.diagnostic, the backend error state
carries the original failure object, main.ts reports that object, and the
crash report prints the Host diagnostic verbatim in its own section.
2026-09-22 17:31:17 +08:00
lsdsjy 26af73ff50 chore: merge master account theme updates 2026-09-22 16:34:42 +08:00
lsdsjy 3b6a5399e8 docs(desktop): clarify login theme ownership 2026-09-22 15:49:20 +08:00
lsdsjy f50059e425 fix(desktop): theme workspace sign-in links 2026-09-22 15:34:58 +08:00