Commit Graph
209 Commits
Author SHA1 Message Date
winewill db7ee5f487 build(desktop): parallelize Windows signature cache hits 2026-09-20 15:32:37 +08:00
Tianyi Cui 580bdc7258 refactor: remove redundant unknown casts 2026-09-19 20:13:58 +08:00
Tianyi Cui 8b0b2dc1d8 Merge master b86916de into release/session-log-v4
Integrate the master tip observed for the final V4 landing preparation on
top of the already merged migration stack. Preserve the V4 writer, flat
message migration, extension policy, catalog validation and historical
recordings while bringing in upstream profile resolution and desktop/UI
changes.

Resolve four generated translation-pairing records from the combined
English/Chinese text. Keep this master checkpoint separate from any
integration fixes and retain all reviewed parent history. Follow-up
validation covers the affected launch/UI paths and migration replay.
2026-09-19 18:00:36 +08:00
imccyu cf3505b88e docs: call the package table the runtime resolution everywhere it is named
The generation note keeps generation for succession only and names the table, the interception, and the routes with the code's words; the CLI reference, Desktop, plugin-package-inventory, and loader-smoke READMEs, the bundled-runtime, agent-teams, plugin-bundles, and source-launch notes, and the client AGENTS guide follow. Pairing records re-recorded.
2026-09-19 17:06:35 +08:00
imccyu bffd317c8c Merge pull request #4570 from deepseek-harness/worktree-removelink
fix(boot): keep runtime-only profile resolution and real package anchors
2026-09-19 17:04:22 +08:00
imccyu 02fec3209e fix(boot): remove link-backend profile projections on profile load
removeLinkProjections unlinks the symlinks under a profile's node_modules whose target lies inside <profile>/.dsh-module-fallback/node_modules and then removes that directory; pnpm-installed packages and every other symlink stay. loadProfile and the Desktop applyRelease call it once per launch. Regression: with bundle A installed but deselected and bundle B selected, B's same-named plugin resolves instead of A's projected copy.
2026-09-19 16:34:07 +08:00
imccyu 0c342a81c4 docs(boot): record the one-time removal of link-backend profile projections
The lookup-order note, the cleanup-removal note, and the app-boot and Desktop READMEs state that profile load removes the .dsh-module-fallback projections the dsh 0.1.5 releases wrote into a profile, so a deselected bundle's projected plugin no longer shadows the same-named plugin the generation selects from another bundle.
2026-09-19 16:34:07 +08:00
imccyu 03e3a3bca0 refactor(desktop): note the runtime descriptor validation in applyRelease
applyRelease keeps readDesktopRuntime for its fail-loud validation after the cleanup consumer was removed.
2026-09-19 15:06:26 +08:00
imccyu 1c806e5a16 docs(desktop): record the profile cleanup removal
A simplification note records why production Desktop no longer cleans core-package copies out of the profile, keeps the 2026-09-15 motivation and rejected alternatives, and names the capability given up and the reintroduction conditions; the superseded 2026-09-15 note is consolidated into it. The bundled-runtime note drops its cleanup qualification paragraph, and the Desktop README describes launch preparation without the cleanup step.
2026-09-19 15:06:26 +08:00
Yif de74a45f60 feat(desktop): raise the main window minimum width to 520 2026-09-19 13:42:52 +08:00
imccyu 938b62c0aa refactor(desktop): drop link-era profile cleanup
Remove cleanProfileCorePackages and migrateDesktopProfileLinks with their specs; applyRelease keeps runtime validation, settings migration, and profile creation. A regression pins that installed packages, declarations, legacy state, and the lockfile survive a launch.
2026-09-19 13:29:13 +08:00
imccyu 9fd0a5ad52 refactor(boot): keep runtime-only profile resolution 2026-09-19 13:29:13 +08:00
Yif 8837c532d1 Merge remote-tracking branch 'origin/master' into feat/macos-sidebar-ui-and-drag-refine 2026-09-18 20:54:38 +08:00
Yif 761f53223a feat(desktop): align main window default and minimum size with Codex (1280x820, min 480x600) 2026-09-18 18:44:24 +08:00
Yif e9b928d993 Merge remote-tracking branch 'origin/master' into feat/macos-sidebar-ui-and-drag-refine
# Conflicts:
#	.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.i18n.yaml
#	.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.md
#	.agents/notes/implemented/feature/2026-09-13-macos-hidden-titlebar-vibrancy.zh.md
#	docs/subsystems/slots.i18n.yaml
#	docs/subsystems/slots.md
#	docs/subsystems/slots.zh.md
#	packages/client/ui-conversation/src/client/contract/slots.ts
#	packages/client/ui-conversation/src/client/skeleton/ConversationRoot.module.css
#	packages/client/ui-conversation/tests/skeleton.client.spec.tsx
#	packages/client/ui-sidebar/README.i18n.yaml
#	packages/client/ui-sidebar/README.md
#	packages/client/ui-sidebar/README.zh.md
#	packages/client/ui-sidebar/src/client/HeaderLeadingControls.tsx
#	packages/client/ui-sidebar/src/client/index.ts
#	packages/client/ui-sidebar/tests/apply.client.spec.tsx
#	packages/extensions/cordis-client-runner/src/client/slot-catalog.ts
2026-09-18 18:34:12 +08:00
Tianyi Cui 044cd4fb49 merge: integrate pinned master into session-log-v4 base
Merge master 01d96c168a84227374e3aa741e94ddfbb498e27e, observed when
this integration started, after the published 6de3db41 checkpoint. Keep
master's author history and preserve the release writer, adjacent
migrations, historical Session generations, and parent-owned catalogs.

Combine blank Session writer acquisition and superseded-startup
cancellation with the release branch's projection refresh and panel
preservation. A startup acquisition may finish after a later navigation,
but must not retain a stale main Session or reveal its Conversation.
Update the existing regression's retention expectation while preserving
its panel and active-navigation assertions.

Keep the release catalog loading, known-leaf, and parent availability
behavior alongside master's completed-turn status and aligned sidebar
icons. Regenerate the config locations and pair the combined README
contracts. Preserve upstream's Linux process-state assertion repair.
2026-09-18 18:21:47 +08:00
Kaige-Gao 1b622ae54c Merge master into feat/session-header-feedback 2026-09-18 17:47:22 +08:00
Kaige-Gao de3f4c24ea fix: address feedback menu review and Linux process assertion 2026-09-18 17:30:19 +08:00
winewill 870b0099c6 fix(desktop): retain packaging errors and restore unconfigured proxies 2026-09-18 16:36:33 +08:00
winewill fa6941971a Merge origin/master into perf/macos-packaging 2026-09-18 15:58:57 +08:00
Tianyi Cui c3cfe83d2e merge: update the session-log-v4 integration base from master
Merge a2acc7d3eb620bb52f09f7ea3b5a3a1c23353e18 after preserving the earlier
master checkpoint and its successful CI. Carry current provider input-history
handling, UI controls, agent targeting, and runner-concurrency changes into
the integration base without changing the Session migration feature layers.

Keep durable direct-child catalog semantics alongside the upstream running /
inactive vocabulary. Resolve the snapshot description conflicts by retaining
that upstream status text and the existing descendants-only diagnostic rule;
the source and all 53 JSON tool descriptions agree. Preserve parent-session
availability handling with the upstream stale-blank and batched-history fixes.

The merged application builds, all 41 documentation gates pass, and focused
provider, tool-control, and Session Controller tests pass (98, 29, and 125).
Recorded input changes come from master: one refreshed v3 list-agents sample
and three new v3 scenarios; no migration bumps an existing snapshot generation.
2026-09-18 15:52:56 +08:00
winewill 545ccdb6f9 test(desktop): load proxy lock fixture from source 2026-09-18 15:37:33 +08:00
winewill 750bf4988e fix(desktop): initialize Windows cache under stage ownership 2026-09-18 15:37:05 +08:00
winewill 7754a6fd49 test(desktop): isolate Windows cache path from host platform 2026-09-18 15:37:05 +08:00
winewill d4ed1d93d8 feat(desktop): share Windows runtime signature cache across worktrees 2026-09-18 15:37:05 +08:00
winewill 8dca1b7713 Merge master to synchronize desktop update dialogs 2026-09-18 15:27:03 +08:00
winewill 7313e8dcc7 Merge master and fix desktop packaging proxy locking and checks 2026-09-18 15:17:03 +08:00
winewill 0c3eb28276 test(desktop): await mandatory overlay fade after policy clearance 2026-09-18 14:59:30 +08:00
winewill 72d93cbcc2 fix(desktop): reset scroll when replacing update prompts 2026-09-18 14:59:30 +08:00
winewill a666209a59 fix(desktop): fade mandatory update overlays in place 2026-09-18 14:59:30 +08:00
winewill 299101077a fix(desktop): keep update dialog backdrop stationary across prompts 2026-09-18 14:59:30 +08:00
Yif 9ae6f0defa fix(client): mount the shell.leading seat on macOS only and cover the fullscreen relay 2026-09-18 14:28:07 +08:00
winewill 5ef7023b6c perf(desktop): cache verified macOS runtime signatures 2026-09-18 14:15:47 +08:00
Yif e44345c044 test(desktop): stub syncWindowFullscreen in preload-platform mocks 2026-09-18 13:32:53 +08:00
Tianyi Cui 8306ddaa14 merge: refresh session-log-v4 base from master
Merge master 0fdadce5189dcf13a00c2ed8293be95b9bb29c2c into the reviewed
Session V4 integration base. Preserve its V4 persistence and direct-catalog
subagent navigation while carrying forward current UI controls, decorative
icons, Desktop signing/runtime changes, and upstream tests.

Resolve lineage conflicts by retaining interaction-time catalog authority,
known-leaf handling and row order together with the shared status icons.
Keep both Desktop shell-routing regressions and one production route; master
now includes the route repair previously carried by this integration branch.

The full build, 41 documentation gates, two Desktop shell tests and 34 focused
Client lineage tests pass. Further built Web and packaging checks precede
publication. Preserve this pinned merge checkpoint before taking a newer
master tip, and propagate it through the reorganized feature stack.
2026-09-18 13:11:25 +08:00
winewill 1e390797e8 Merge branch 'refactor/desktop-update-domain-config' into perf/mac-packaging-timing 2026-09-18 12:08:57 +08:00
winewill 76a592e3ab refactor(desktop): configure test policy login origins 2026-09-18 11:57:56 +08:00
winewill e0264148b0 perf(desktop): configure macOS packaging concurrency and retain phase logs 2026-09-18 11:54:54 +08:00
Yif d66b9c81b1 fix(desktop): drop superseded preload.ts after merge
Upstream removed the standalone plugin manager and replaced this bridge
with preload-app.ts; the fullscreen sync it carried already lives there.
2026-09-18 11:36:21 +08:00
Yif e9def243e2 Merge origin/master into feat/macos-sidebar-ui-and-drag-refine
Keeps both window-chrome features: this branch's macOS shell.leading seat,
single drag owner, and fullscreen sync alongside upstream's Windows desktop
titlebar (#4407). ipc.ts and preload-app.ts merge both platforms' channels
and preload wiring; Tooltip merges upstream's suppression context with this
branch's pointer-focus suppression; slot-catalog regenerated.
2026-09-18 11:27:06 +08:00
Yif 8019d37d3f feat(client): frame-owned macOS window chrome with single drag owner
One 52px leadingBand in the AppFrame (frame's first child) plus the sidebar
logoRow are the only -webkit-app-region drag surfaces; everything interactive
subtracts itself through two global base.css rules (interactive elements and
body > :not(#root) overlay portals), so header controls, breadcrumb chips, and
strip tabs stay clickable under the band. A ui-theme stylesheet gate pins the
two-file drag allowlist. The frame publishes --dsh-frame-top-clearance (48px)
for entry pages (plugin manager list and detail) beside the existing
--dsh-frame-leading-clearance, replacing per-page hardcoded insets. The
shell.leading window-chrome seat moves the collapsed-sidebar reopen controls
from the conversation header to the frame. Sidebar vibrancy tint drops the
blue cast in dark mode and halves its fill opacity, light mode softens the
blue mix, and the logo row tightens 4px above New Session.
2026-09-18 11:08:13 +08:00
Tianyi Cui 863ffe83a6 test(desktop): type the application path mock as string
The shell asset regression substitutes a real package path through getAppPath, but the shared test harness inferred only the literal desktop-test-app. Vitest executed the test successfully while the repository TypeScript build rejected the path override.

Declare the mock return type as string to match Electron getAppPath and permit both fixture and real package paths. This changes only test typing; it adds no casts or production behavior. The focused production-routing regression passes after the correction.
2026-09-18 02:00:08 +08:00
Tianyi Cui 12e3d45cdc fix(desktop): stop copying the retired management preload
The workspace-update qualification runner still copied lib/preload.cjs after the standalone management preload and its build entry were removed. A clean Desktop build emits only the application, mandatory-update, and update-dialog preloads, so qualification failed with ENOENT before Electron could start; stale outputs could conceal that failure.

Remove only the obsolete copy-list entry. Keep all three current preloads required and retain ordinary copy failures. Executing the actual copy loop against artifacts from a fresh isolated Desktop build now copies exactly those three files byte-for-byte while lib/preload.cjs is absent; the same loop failed at that missing file before this change.
2026-09-18 01:53:37 +08:00
Tianyi Cui 8ae136f402 fix(desktop): serve shell-owned update assets
Ordinary and mandatory update windows still load dsh-app://shell documents after the standalone plugin manager was removed. The production protocol handler handled only the app hostname, so their existing HTML, scripts, and styles returned 404; mandatory-load failure deliberately retains the modal block.

Route the shell hostname to the packaged renderer directory through the existing static-asset helper. Retain its GET/HEAD, path-containment, MIME, and missing-file rules; keep isolated preloads and owned-window IPC authorization unchanged.

The regression imports the real main entry, captures its registered protocol callback, and reads all seven actual update assets through the real static helper. It fails with 404 before the fix and passes afterward, including HEAD, rejected methods, malformed paths, traversal, and unknown resources. Sixteen adjacent static/dialog/overlay tests pass, and the Desktop package builds from a fresh worktree.
2026-09-18 01:53:37 +08:00
winewill 6088ac7a85 perf(desktop): cache verified Windows signatures and isolate timestamps 2026-09-18 01:15:59 +08:00
winewill aa181c66e5 fix(desktop): preserve unpacked PE files and target runtime descriptors 2026-09-17 21:31:34 +08:00
winewill 702f9e4ff1 Restore desktop shell dialogs and guard destroyed windows on exit 2026-09-17 21:31:33 +08:00
winewill 3d2876f046 Run packaged smoke with production profile resolution 2026-09-17 21:31:32 +08:00
winewill 4d46bff152 Normalize dependency metadata before sealing desktop runtime 2026-09-17 21:31:32 +08:00
winewill 5a409fc771 fix(desktop): sign all Windows native dependencies before packaging 2026-09-17 21:31:31 +08:00