@toddzheng024/dscode-desktop 0.7.33 → 0.7.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +8 -7
  2. package/cordis.patch.yml +5 -4
  3. package/docs/CHANGELOG.md +18 -1
  4. package/docs/browser-use.md +38 -21
  5. package/docs/custom-providers.md +3 -3
  6. package/docs/demo.md +77 -11
  7. package/docs/hub-distribution.md +33 -6
  8. package/docs/memory.md +1 -1
  9. package/docs/plugin-hub.md +26 -59
  10. package/docs/releases/0.7.33.md +12 -5
  11. package/docs/releases/0.7.34.md +24 -0
  12. package/docs/releases/0.7.35.md +31 -0
  13. package/docs/triggers.md +1 -1
  14. package/locale/en.json +1 -1
  15. package/locale/zh-cn.json +1 -1
  16. package/package.json +3 -8
  17. package/plugins/auto-review/index.mjs +2 -2
  18. package/plugins/browser/config.mjs +2 -2
  19. package/plugins/browser/desktop-client.mjs +22 -9
  20. package/plugins/browser/desktop-host.mjs +5 -0
  21. package/plugins/code-review/baseline.mjs +2 -2
  22. package/plugins/compaction/threshold.mjs +2 -1
  23. package/plugins/credentials/index.mjs +11 -0
  24. package/plugins/custom/desktop-client.mjs +12 -9
  25. package/plugins/desktop/client.mjs +135 -161
  26. package/plugins/desktop/desktop-client.mjs +50 -0
  27. package/plugins/desktop/index.mjs +1 -0
  28. package/plugins/desktop/settings.css +36 -0
  29. package/plugins/desktop-workspace/index.mjs +2 -2
  30. package/plugins/dscode/desktop-client.mjs +3 -3
  31. package/plugins/dscode/index.mjs +2 -2
  32. package/plugins/email/desktop-client.mjs +5 -5
  33. package/plugins/email/desktop-host.mjs +2 -2
  34. package/plugins/grok/billing.mjs +2 -1
  35. package/plugins/grok/index.mjs +2 -1
  36. package/plugins/grok/status.mjs +2 -1
  37. package/plugins/jev/index.mjs +2 -1
  38. package/plugins/memory/index.mjs +2 -2
  39. package/plugins/opencode-go/index.mjs +2 -1
  40. package/plugins/opencode-go/usage.mjs +2 -1
  41. package/plugins/openrouter/index.mjs +2 -1
  42. package/plugins/providers/desktop-client.mjs +22 -15
  43. package/plugins/session-bridge/index.mjs +2 -3
  44. package/plugins/session-cards/index.mjs +2 -2
  45. package/plugins/session-metrics/desktop-client.mjs +3 -3
  46. package/plugins/session-metrics/index.mjs +2 -1
  47. package/plugins/session-metrics/view.mjs +4 -3
  48. package/plugins/triggers/desktop-client.mjs +15 -9
  49. package/plugins/triggers/desktop-host.mjs +2 -2
  50. package/plugins/tui-tools/doctor.mjs +2 -1
  51. package/plugins/tui-tools/index.mjs +2 -1
  52. package/plugins/hub/catalog.mjs +0 -82
  53. package/plugins/hub/desktop-client.mjs +0 -114
  54. package/plugins/hub/desktop-host.mjs +0 -129
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  DSCODE adds a coding preset, browser workflows, cross-session collaboration,
4
4
  memory and task management to the official DeepSeek Harness Desktop application.
5
5
 
6
- **Version:** 0.7.33 · **Harness runtime:** 0.2.0-rc.2
6
+ **Version:** 0.7.35 · **Harness runtime:** 0.2.0-rc.2
7
7
 
8
8
  Preview release candidate; publication is a separate step.
9
9
 
@@ -37,8 +37,9 @@ desktop_dsh='/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/b
37
37
  "$desktop_dsh" plugin --profile desktop add /absolute/path/to/dscode-desktop.tgz --ignore-scripts
38
38
  ```
39
39
 
40
- Restart Desktop, select the **DSCODE** preset, select a workspace, and configure
41
- the model under **Settings → DSCODE models** or **DSCODE accounts**.
40
+ Fully quit and reopen Desktop. In **Settings → General**, enable **Show coding view**; enable **Agent presets** in Plugins if disabled. Create a new session and select **DSCODE** and a workspace. Use an existing model from the normal model picker.
41
+
42
+ **Settings → DSCODE** contains setup, Models, Accounts and Schedules at the same level. Models and Accounts add optional providers; they are not required for existing Desktop accounts. **Plugins → DSCODE · Community** opens the same page. The package activation notice explains the required restart.
42
43
 
43
44
  Installation through the official **Plugins → Add plugin** interface was checked
44
45
  on macOS Desktop 0.2.0-rc.2. Public npm installation instructions accompany a
@@ -47,7 +48,7 @@ public release; a candidate build alone does not publish a package.
47
48
  ## Install a published version
48
49
 
49
50
  After this version is available on npm, enter
50
- `@toddzheng024/dscode-desktop@0.7.33` in **Plugins → Add plugin**,
51
+ `@toddzheng024/dscode-desktop@0.7.35` in **Plugins → Add plugin**,
51
52
  review the installation, install, then choose **Enable now**. Using the exact
52
53
  version keeps the installation tied to these instructions and compatibility
53
54
  requirements. The `preview` tag tracks the current Desktop preview release.
@@ -81,9 +82,9 @@ configuration and the user patch. Keep a backup before migrating your own state.
81
82
  - Durable session messaging, source-backed memory and opt-in scheduling.
82
83
  - Email inbox, IMAP/Gmail setup and explicit message-to-session delivery.
83
84
  - Independent code review, optional automatic permission review and diagnostics.
84
- - Plugin Hub search, categories and details, read-only conversation discovery,
85
- and reviewed installation through the official plugin manager. Enable and
86
- configure installed plugins in **Settings → Plugins**; see `docs/plugin-hub.md`.
85
+
86
+ Plugin Hub is not bundled: this package does not add its settings page, catalog
87
+ connection or discovery tools. See `docs/plugin-hub.md` for version boundaries.
87
88
 
88
89
  Use the bundled guides under `docs/` for individual settings and boundaries.
89
90
  The terminal's state directory may differ from Desktop's; sharing credentials
package/cordis.patch.yml CHANGED
@@ -42,14 +42,14 @@
42
42
  - insert:
43
43
  - id: dscode-credentials
44
44
  name: "@toddzheng024/dscode-desktop/credentials"
45
+ config:
46
+ desktop: true
45
47
  - id: dscode-desktop-workspace
46
48
  name: "@toddzheng024/dscode-desktop/workspace"
47
49
  - id: dscode-custom
48
50
  name: "@toddzheng024/dscode-desktop/custom"
49
51
  - id: dscode-desktop
50
52
  name: "@toddzheng024/dscode-desktop"
51
- - id: dscode-hub
52
- name: "@toddzheng024/dscode-desktop/hub"
53
53
  - id: dscode-openrouter
54
54
  name: "@toddzheng024/dscode-desktop/openrouter"
55
55
  config:
@@ -92,8 +92,6 @@
92
92
  cursorVisualization: visible
93
93
  - id: dscode-desktop-triggers
94
94
  name: "@toddzheng024/dscode-desktop/triggers"
95
- - id: dscode-browser
96
- name: "@toddzheng024/dscode-desktop/browser"
97
95
  - id: dscode-auto-review
98
96
  name: "@toddzheng024/dscode-desktop/auto-review"
99
97
 
@@ -431,3 +429,6 @@
431
429
 
432
430
  - id: present
433
431
  name: '@deepseek-ai/dsh-tool-present'
432
+
433
+ - id: dscode-browser
434
+ name: '@toddzheng024/dscode-desktop/browser'
package/docs/CHANGELOG.md CHANGED
@@ -6,7 +6,24 @@ Per-release notes live in [`docs/releases/`](releases/); the entries below summa
6
6
 
7
7
  <!-- Add upcoming changes under Unreleased. -->
8
8
 
9
- ## [Unreleased]
9
+ ## [0.7.35] - 2026-10-08
10
+
11
+ - Promote the verified Desktop package to both `preview` and `latest` so default installations receive this fix instead of 0.7.33. Promotion requires a matching public-install receipt.
12
+
13
+ - Scope Desktop browser tools, skill and command to DSCODE sessions. Standard sessions no longer inherit the DSCODE browser entry; TUI Browser Use keeps its existing integration.
14
+ - Group setup, Models, Accounts and Schedules under one DSCODE settings page, using Harness theme tokens and compact controls. Add a community-labeled Plugins item and an activation notice with full-restart and preset-selection instructions.
15
+ - Prefer existing native Desktop credentials and save new Desktop keys to the native store. Terminal credentials remain a legacy fallback; explicit removal clears both copies. Existing Desktop models do not require a separate DSCODE login.
16
+
17
+ - Remove bundled Plugin Hub functionality from the Desktop package: no Hub settings page, catalog endpoint, conversation discovery tools, source files or Hub-specific runtime dependencies. DSCODE's catalog listing and release synchronization remain available; this does not publish a standalone Hub Desktop plugin. Already published 0.7.34 packages retain their previous contents; update to 0.7.35 to remove the integration.
18
+ - Update the Desktop demo and browser guide to distinguish DSCODE's integration features from official Harness Browser Use, and replace bundled-Hub qualification with checks that the package and running Host contain no Hub integration.
19
+
20
+ ## [0.7.34] - 2026-10-08
21
+
22
+ - Fix Desktop activation without an exported `DSH_HOME`: workspace discovery, email, scheduling and automatic review now resolve the native Harness home, including the default `~/.dsh`, blank overrides and supported tilde paths.
23
+ - Keep browser state, memory, session communication/cards, delegation, review baselines, provider caches, diagnostics and usage records under that same resolved home. The terminal launcher continues to map its `DSCODE_HOME` into `DSH_HOME`; explicit memory and audit directories remain supported. Credentials and mail retain their existing account-store locations. This change does not move previously misplaced state automatically.
24
+ - Public Desktop installation qualification now runs with `DSH_HOME` absent and requires all four affected components to activate. The native Host and signed macOS lifecycle verifiers also support this default-home scenario.
25
+ - The demo guide separates DSCODE's workflow from the Hub's discovery contribution and adds a Desktop walkthrough draft with setup, reset and qualification boundaries. The existing terminal recording instructions remain available. Release-note links also work when read on GitHub Releases or as downloaded Markdown.
26
+ - Desktop Hub publication retries the npm propagation window where the exact version is visible but the Hub still reports `package_not_found` or an older index. Retries are bounded; policy/credential failures and integrity mismatches still stop publication.
10
27
 
11
28
  ## [0.7.33] - 2026-10-08
12
29
 
@@ -5,6 +5,27 @@ DevTools MCP. Chrome starts only when you use `/browser start` or the agent call
5
5
  `browser_start`. No MCP configuration or separate npm installation is needed.
6
6
  Google Chrome is required for browser tasks; ordinary coding does not need it.
7
7
 
8
+ ## Relationship to official Harness Browser Use
9
+
10
+ Official Harness already provides a [Browser Use framework and experimental
11
+ providers](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/browser-use/README.md),
12
+ including Chrome DevTools MCP, Playwright MCP and Stagehand. Basic page browsing,
13
+ clicking, typing, screenshots and developer inspection are not unique DSCODE
14
+ features. Backend and Session lifecycle plumbing overlap with upstream work.
15
+
16
+ DSCODE adds its own per-origin access and separate Developer grants, screenshot
17
+ point annotations delivered to the conversation, and explicit login handoff and
18
+ resume controls. The sections below describe their behavior and limits. These
19
+ are DSCODE integration features; this guide does not claim that every upstream
20
+ provider lacks equivalent capabilities.
21
+
22
+ The official [Browser sidebar](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/client/ui-sidebar-browser/README.md)
23
+ embeds a web view and does not itself register model tools. DSCODE's Browser
24
+ preview captures an external Chrome connection. It does not drive that embedded
25
+ web view, share its login state automatically, or present a live browser stream.
26
+ Persistent profiles, Chrome attachment and experimental extension/WebMCP support
27
+ are additional DSCODE connection choices, not evidence of better task quality.
28
+
8
29
  ## Start a task
9
30
 
10
31
  From this checkout, run `npm start`, then ask:
@@ -52,8 +73,9 @@ running. A new start gets fresh page IDs; interrupted actions are never replayed
52
73
  | `/browser use extension` | Experimental: share selected existing Chrome tabs through the DSCODE extension, without enabling a browser-wide remote-debugging port. |
53
74
 
54
75
  Stop all session browsers before changing defaults. These settings persist in
55
- `browser/config.json` under `DSH_HOME` (or `DSCODE_HOME`, falling back to
56
- `~/.dscode`). They apply to future starts. The agent cannot change browser mode
76
+ `browser/config.json` under the native Harness home: a nonblank `DSH_HOME`,
77
+ otherwise `~/.dsh`. The terminal launcher maps `DSCODE_HOME` into `DSH_HOME`.
78
+ They apply to future starts. The agent cannot change browser mode
57
79
  through a tool. Dedicated profiles are separate from personal Chrome profiles;
58
80
  log in directly in the visible window when needed. The agent should keep that
59
81
  tab and hand control to you for login or 2FA, then inspect the same page again.
@@ -623,8 +645,8 @@ The source checkout can also package the DSCODE agent preset, custom-model
623
645
  and account settings, browser preview, durable session communication, cross-session
624
646
  memory and opt-in task scheduling together. Ordinary builds remain private;
625
647
  the separate [release process](hub-distribution.md#desktop-release-candidate-and-publication)
626
- qualifies a public candidate for 0.2.0-rc.2. Public npm distribution is still
627
- pending. The package does
648
+ qualifies a public candidate for 0.2.0-rc.2. The Desktop preview is published on npm as
649
+ `@toddzheng024/dscode-desktop@0.7.35`. The package does
628
650
  not yet include all DSCODE Host services. Its experimental
629
651
  [native Computer Use adapter](computer-use.md) has passed helper and lifecycle
630
652
  checks; window observation, screenshots and input await qualification with
@@ -632,9 +654,9 @@ macOS Accessibility permission.
632
654
  Choose this package or the browser-only bundle; enabling both duplicates their
633
655
  browser services.
634
656
 
635
- The current candidate's package name is `@toddzheng024/dscode-desktop`. It also
636
- includes [Plugin Hub](plugin-hub.md) for community discovery and installation
637
- through the official manager. The earlier private
657
+ The Desktop plugin's package name is `@toddzheng024/dscode-desktop`. Version 0.7.35
658
+ removes bundled [Plugin Hub](plugin-hub.md) functionality; older 0.7.33 and 0.7.34
659
+ packages still include it. The earlier private
638
660
  `@toddzheng024/dscode-desktop-preset-probe` must be removed before installing
639
661
  this package; both register the same DSCODE components. Back up your Desktop
640
662
  state first. A separate macOS Desktop 0.2.0-rc.2 migration check preserved
@@ -716,20 +738,15 @@ desktop_package='/absolute/path/printed-by-pack-command.tgz'
716
738
  "$desktop_dsh" plugin --profile desktop add "$desktop_package" --ignore-scripts
717
739
  ```
718
740
 
719
- Reopen Desktop, choose **DSCODE** for a new session, and configure a model under
720
- **Settings → DSCODE models**, or connect a supported account under
721
- **Settings → DSCODE accounts**. Browser preview is available in the right sidebar.
722
- **Settings → DSCODE schedules** manages tasks for an open DSCODE session and
723
- explicitly enables or stops delivery. Its launch preference is saved; Desktop
724
- must remain open to deliver tasks. See [Desktop scheduling](triggers.md#experimental-desktop-scheduling)
725
- for restart, removal and permission behavior, and current qualification limits.
726
-
727
- The account page saves or removes the shared OpenRouter API key. Changes also
728
- affect terminal sessions and native routes reading that same credential file;
729
- environment-owned keys remain read-only. The saved key is never returned to the
730
- form. Choose **DSCODE OpenRouter** in the model picker for DSCODE reasoning
731
- controls, including Ultra on supported models. The native OpenRouter route
732
- remains available separately.
741
+ Fully quit and reopen Desktop after installing or updating. In **Settings → General**, enable **Show coding view** and enable **Agent presets** in Plugins if disabled. Create a new session with **DSCODE**; existing sessions keep their original preset. Choose a model from the normal picker to reuse an existing Desktop account.
742
+
743
+ In 0.7.35 and later, **Settings → DSCODE** groups Get started, Models, Accounts and Schedules as peer entries and follows the host's light/dark theme. **Plugins → DSCODE · Community** opens the same setup page. Models and Accounts are optional additions. Published 0.7.34 still has separate settings pages.
744
+
745
+ Browser tools, the browser skill and `/browser` are mounted only in DSCODE sessions. Standard sessions retain their existing tools, and the DSCODE preview explains the preset boundary instead of starting a browser there. TUI Browser Use remains enabled through its existing composition. The Desktop package still supplies shared credential and subagent compatibility services; this scope change does not remove those Host adapters.
746
+
747
+ **Settings → DSCODE → Schedules** manages tasks for an open DSCODE session and explicitly enables or stops delivery. Its launch preference is saved; Desktop must remain open to deliver tasks. See [Desktop scheduling](triggers.md#experimental-desktop-scheduling) for restart, removal and permission behavior, and current qualification limits.
748
+
749
+ Desktop credentials now prefer the existing native store and save new keys there. Existing terminal keys remain a fallback when no native key is present; saving a Desktop key does not replace the terminal key. Explicit key removal clears both copies to prevent a legacy key from becoming active again. Environment-owned keys remain read-only, and the saved key is never returned to the form. Choose **DSCODE OpenRouter** for DSCODE reasoning controls, including Ultra on supported models. The native OpenRouter route remains available separately.
733
750
 
734
751
  For Grok, run `grok login` in a terminal and refresh the account status. DSCODE
735
752
  reads `~/.grok/auth.json` without changing or refreshing its tokens. For OpenCode
@@ -36,7 +36,7 @@ editor and discovering models again does not replace it with a server-reported
36
36
  output limit. Models whose output budget has never been edited can still adopt
37
37
  the server's reported value.
38
38
 
39
- In Desktop's **Settings → DSCODE models**, **Discover models** immediately merges the returned models into the draft. Existing models keep their order, thinking mode and image-input choice; new models are appended. Reported limits refresh unless you have edited that value, including an output budget you deliberately left blank. Models absent from the response remain in the draft. Choose **Save provider** to persist the changes.
39
+ In Desktop's **Settings → DSCODE → Models**, **Discover models** immediately merges the returned models into the draft. Existing models keep their order, thinking mode and image-input choice; new models are appended. Reported limits refresh unless you have edited that value, including an output budget you deliberately left blank. Models absent from the response remain in the draft. Choose **Save provider** to persist the changes.
40
40
 
41
41
  Thinking defaults to the server's behavior. Identified oMLX models also offer Off/On in the editor and Off/On in `/effort` (the stored effort IDs are `off` and `high`). Other custom APIs do not receive guessed reasoning parameters. Native Responses reasoning items and Anthropic thinking signatures are retained for replay to the same service, model and protocol.
42
42
 
@@ -44,7 +44,7 @@ Thinking defaults to the server's behavior. Identified oMLX models also offer Of
44
44
 
45
45
  In the model editor, set **Input → Text and images** only when that model and endpoint support image input. Existing configurations and newly discovered models default to **Text only**; DSCODE does not infer vision support from a model name. Discovery preserves your explicit choice. Changing the base URL, API format or model ID resets the editor's image choice to **Text only**, so enable it again for the new deployment.
46
46
 
47
- In the [experimental Desktop package](browser-use.md#install-the-experimental-combined-desktop-package), open **Settings → DSCODE models**, select the saved provider, enable the model's **Accepts images** checkbox and choose **Save provider**. Select that saved model in the session's model picker. The same explicit capability setting and request-image limits apply in both interfaces. The settings test checks text, streaming and tools; it does not test image understanding.
47
+ In the [experimental Desktop package](browser-use.md#install-the-experimental-combined-desktop-package), open **Settings → DSCODE → Models**, select the saved provider, enable the model's **Accepts images** checkbox and choose **Save provider**. Select that saved model in the session's model picker. The same explicit capability setting and request-image limits apply in both interfaces. The settings test checks text, streaming and tools; it does not test image understanding.
48
48
 
49
49
  All three protocols can send user images, browser annotation screenshots and images returned by tools. DSCODE reads their durable attachments and sends image bytes to the configured API: Chat Completions uses `image_url` data URLs, Responses uses `input_image`, and Anthropic Messages uses base64 `image` blocks. Tool screenshots follow their tool result as user image content. Enabling this option does not add vision capability to a text-only server.
50
50
 
@@ -64,7 +64,7 @@ Automatic review follows its configured model route. When that route is Custom,
64
64
 
65
65
  ## Persistence
66
66
 
67
- Service and model configuration lives in `~/.dscode/providers.yaml`; keys use the existing owner-only `~/.dscode/credentials.yaml` store. Provider records contain no key values. Each service receives a stable `custom-…` ID and a derived `DSCODE_CUSTOM_CUSTOM_…_API_KEY` credential reference. An environment variable with that exact reference takes precedence over the saved key, following the existing credential-store rules.
67
+ Service and model configuration lives in `~/.dscode/providers.yaml`; terminal keys use the existing owner-only `~/.dscode/credentials.yaml` store. In Desktop 0.7.35 and later, existing native credentials take precedence and new keys are saved to the native Harness store (`~/.dsh/.credentials.yaml` by default). Old DSCODE keys remain a fallback; explicit removal clears both copies to avoid reactivating a legacy key. Provider records contain no key values. Each service receives a stable `custom-…` ID and a derived `DSCODE_CUSTOM_CUSTOM_…_API_KEY` credential reference. An environment variable with that exact reference takes precedence over the saved key, following the existing credential-store rules.
68
68
 
69
69
  Configuration is shared across projects and installed versions, written atomically, and reloaded by other running Hosts. Stale editors cannot overwrite newer configuration. Renaming a service preserves its ID, so persisted sessions continue to resolve it. Removing a provider removes its route and writable stored credential; it does not reroute existing sessions or delete their history. An environment-supplied key remains in the environment. If it masks a stored key, clear the environment override before removing the provider to remove that stored key too.
70
70
 
package/docs/demo.md CHANGED
@@ -1,15 +1,81 @@
1
- # The 90-second demo
1
+ # Demo guide
2
2
 
3
- Most coding agents work alone. This script shows the three things DSCODE does
4
- instead — sessions that can see each other, an independent reviewer for code and
5
- for approvals, and side questions that never disturb the main conversation — in
6
- an order a stranger can follow.
3
+ ## Desktop feature summary
4
+
5
+ The 0.7.35 Desktop preview installs into official Harness Desktop.
6
+ Its qualified target is macOS Apple Silicon with runtime **0.2.0-rc.2**.
7
+ This version removes bundled Hub functionality. Demonstrate DSCODE on its own
8
+ and state which version is being shown.
9
+
10
+ | Area | What the user gains | Boundary |
11
+ | --- | --- | --- |
12
+ | DSCODE coding workflow | A DSCODE preset with custom model/account settings, session communication, memory, usage and delegation views | Terminal-only panels retain their terminal UI; model behavior depends on the configured provider. |
13
+ | DSCODE browser integration | Per-site and Developer permissions, screenshot preview and point annotations delivered to the conversation, manual login handoff | Official Harness already has Browser Use. DSCODE connects external Chrome; it does not enhance or share login state with the official embedded browser. |
14
+ | DSCODE optional services | Email inbox integration and scheduled work | Account configuration and explicit opt-in are required. Desktop must stay open for scheduled delivery. |
15
+
16
+ Hub community discovery belongs in a separate product demo. The removal does
17
+ not deliver a standalone Hub Desktop package. See [Plugin Hub](plugin-hub.md)
18
+ for the behavior of earlier published versions.
19
+
20
+ ## Five-minute Desktop walkthrough draft
21
+
22
+ Allow separate time for downloads and account setup. This complete timed
23
+ walkthrough has not been rehearsed with a live model.
24
+
25
+ ### Prepare
26
+
27
+ 1. Use a disposable Desktop profile and scratch workspace. For the published
28
+ demo, install `@toddzheng024/dscode-desktop@0.7.35` through **Plugins → Add
29
+ plugin**, then choose **Enable now**. Fully quit and reopen Desktop after
30
+ updating. Hub is separate from this package. For local development builds,
31
+ follow the [installation guide](browser-use.md#install-the-experimental-combined-desktop-package)
32
+ and identify the checkout being demonstrated.
33
+ 2. Select the **DSCODE** preset when creating the session. Harness 0.2.0-rc.2
34
+ gates the preset picker behind **Show coding view**; ensure that option and
35
+ the Agent presets UI are enabled before recording. A Standard session does
36
+ not acquire the complete DSCODE preset just because the package is installed.
37
+ 3. Configure a model in private, confirm one short response and install Chrome.
38
+ For annotations, choose a model that accepts images. Do not record API keys,
39
+ account login or personal workspace contents.
40
+ 4. Rehearse one small coding task and the browser annotation with that model.
41
+ Keep the matching release page or local-build information ready. A local
42
+ build must not be presented as the published 0.7.35 archive.
43
+
44
+ ### Walkthrough
45
+
46
+ | Approximate time | Action | Point to explain |
47
+ | --- | --- | --- |
48
+ | 0:00–0:30 | Show the enabled DSCODE plugin and a DSCODE session. | Existing DSH Desktop users can add the coding workflow through a plugin. |
49
+ | 0:30–2:00 | Run the rehearsed small coding task in the scratch workspace. | Show actual changes and verification; model quality is not established by the installation checks. |
50
+ | 2:00–4:00 | Ask the agent to open https://example.com. Grant that origin if requested. In **Browser preview**, refresh, select a point, enter “Summarize the text at this point” and choose **Send annotation**. | Basic browsing overlaps official Browser Use. The demonstrated DSCODE additions are the permission controls and screenshot/point handoff into the conversation. |
51
+ | 4:00–4:30 | Open the session usage view; show the delegation view only if the task actually delegated. | Views reflect the current DSCODE session and available records. |
52
+ | 4:30–5:00 | Show the matching install specification and release notes, or label the local build. | Published availability and an unreleased change are distinct states. |
53
+
54
+ ### Rehearsal and reset
55
+
56
+ - Reopen Desktop after a package update. Confirm both plugin activation and a
57
+ working new DSCODE session before starting the recording.
58
+ - Refresh the screenshot and select a new point after navigation or expiry.
59
+ Image understanding needs an image-capable model. Describe text-only delivery
60
+ as text-only.
61
+ - Stop the session browser between rehearsals. Its Chrome profile and login
62
+ state are separate from the official embedded browser.
63
+ - Keep standalone DMG delivery, Hub integration, coordinated update/changelog
64
+ UI, Profile rollback and native Computer Use permission qualification out of
65
+ this demo's claims. See [Browser use](browser-use.md) and the
66
+ [0.7.35 release notes](releases/0.7.35.md) for published behavior and limits.
67
+
68
+ ## The 90-second terminal demo
69
+
70
+ The terminal script shows sessions that can see each other, an independent
71
+ reviewer for code and approvals, and side questions that leave the main
72
+ conversation's context unchanged.
7
73
 
8
74
  The recording lands in `assets/demo.gif`; put that image directly under the
9
- README tagline. Every command below is real, so the demo is reproducible: the
10
- only unpredictable part is the model's own wording.
75
+ README tagline. Rehearse the commands below with the selected model before
76
+ recording: response quality and timing are not established by this script.
11
77
 
12
- ## Record it
78
+ ### Record it
13
79
 
14
80
  ```sh
15
81
  brew install asciinema agg
@@ -39,12 +105,12 @@ Before you hit record:
39
105
  or full home paths). Any interface language works; the captions below are
40
106
  English.
41
107
 
42
- ## Shot list
108
+ ### Shot list
43
109
 
44
110
  | Time | Screen | Do this | Say this (captions) |
45
111
  |---|---|---|---|
46
112
  | 0:00–0:06 | Shell in the scratch repo | `dscode` | "A coding agent in your terminal — macOS, local, one pinned harness." |
47
- | 0:06–0:22 | TUI, main session | Type `Add a bounds check to parse() in parser.ts and run the tests.` | "It reads the file, edits it, runs the tests." |
113
+ | 0:06–0:22 | TUI, main session | Type `Trim whitespace and ignore empty fields in parse() in parser.ts. Add and run tests.` | "It reads the file, edits it, runs the tests." |
48
114
  | 0:22–0:36 | Same terminal | `/btw why would the first turn have a cold cache?` — leave the main turn running | "A side question runs in its own read-only child session. The answer never enters the main conversation." |
49
115
  | 0:36–0:56 | Second terminal | `dscode sessions` then `dscode send <the other session id> --steer "review the change in parser.ts and reply with what you would change"` | "Two sessions on one machine can find each other, hand work over and answer." |
50
116
  | 0:56–1:06 | Back in the first terminal | Show the reply arriving (`/mailbox`, or the agent's `read_session`/`send_session` tools if you asked it to hand the review over itself) | "The answer comes back as a message, not as a new task." |
@@ -60,7 +126,7 @@ Two beats worth keeping if you have the seconds:
60
126
  - `/agents` at the end: the `/btw` child session is a real, read-only session,
61
127
  not a hidden prompt.
62
128
 
63
- ## Reproduce it without recording
129
+ ### Reproduce it without recording
64
130
 
65
131
  ```sh
66
132
  npm i -g @toddzheng024/dscode
@@ -33,6 +33,24 @@ The default state directory is `~/.local/share/dscode-hub`, overridable with `DS
33
33
 
34
34
  A user who already has dsh-hub installed can apply directly, but must use pnpm 10.15.1, set a dedicated `DSH_HOME` and `DSH_AGENTS_HOME`, and set `npm_config_ignore_scripts=true` on the install command. The launcher is recommended because it unifies those conditions.
35
35
 
36
+ ### Desktop users
37
+
38
+ Install the official Harness Desktop application with embedded runtime
39
+ 0.2.0-rc.2. In **Plugins → Add plugin**, enter
40
+ `@toddzheng024/dscode-desktop@0.7.35`, review and install, then choose
41
+ **Enable now**. Fully quit and reopen Desktop, enable **Show coding view** and
42
+ **Agent presets**, then create a DSCODE session and choose an existing model.
43
+ The Desktop preview is qualified on macOS Apple Silicon. See
44
+ [Desktop installation](browser-use.md#install-the-experimental-combined-desktop-package)
45
+ for archive checksums, migration and removal, and [Plugin Hub](plugin-hub.md)
46
+ for the separation between DSCODE and Hub.
47
+
48
+ Version 0.7.34 fixes the 0.7.33 activation error “4 entries did not activate”
49
+ when Desktop starts without `DSH_HOME`. Update to the current 0.7.35 package and
50
+ enable it again; exporting a shell variable is unnecessary. Default Desktop
51
+ state uses `~/.dsh`, as resolved by Harness. Publication now verifies installation
52
+ and the affected components with that default environment.
53
+
36
54
  ## Release checklist
37
55
 
38
56
  Cutting a release from this repository, in order. The rule that matters most: **the git tag must equal `v<package.json version>`, and that version must not already be on npm from a different build.**
@@ -118,8 +136,8 @@ node scripts/verify-desktop-registry.mjs .research/desktop-release-runtime --loc
118
136
  `prepare:desktop` provisions exact direct dependencies with install scripts
119
137
  disabled; it refuses to overwrite an unrelated project. `release:desktop`
120
138
  builds a public candidate only for Harness 0.2.0-rc.2, then unpacks those exact
121
- bytes for Host startup/restart, browser, annotation, isolation and authenticated
122
- Hub RPC checks. The source runtime is checked for unintended changes. The
139
+ bytes for Host startup/restart, browser, annotation and isolation checks, plus
140
+ checks that Hub files, UI, tools and endpoint are absent. The source runtime is checked for unintended changes. The
123
141
  local install rehearsal additionally resolves dependencies in a new native
124
142
  Harness profile and boots the installed package; it does not establish public
125
143
  npm availability or drive the Electron UI.
@@ -137,15 +155,24 @@ npm run publish:desktop -- credentials
137
155
  npm run publish:desktop -- npm
138
156
  npm run publish:desktop -- hub
139
157
  npm run publish:desktop -- verify
158
+ npm run publish:desktop -- promote
140
159
  ```
141
160
 
142
161
  Each phase checks the archive and receipt again. The npm phase publishes with
143
162
  `--tag preview`; an existing version is reusable only with identical integrity.
144
163
  The Hub phase syncs the package and requires the exact version, integrity and
145
- Desktop compatibility to resolve. The final phase downloads public bytes,
164
+ Desktop compatibility to resolve. A newly published package can appear on
165
+ the npm version endpoint before the Hub can fetch its package index. In this
166
+ post-publication phase, `package_not_found` and an index missing the exact
167
+ version retry up to 40 times, 15 seconds apart. Other rejections and credential
168
+ errors stop immediately; the final integrity and compatibility checks still
169
+ apply. The final phase downloads public bytes,
146
170
  checks their SHA-256, and installs the exact npm version into a new native
147
- Harness profile before booting it and checking the preset and Hub RPC. The
148
- result is saved as `artifacts/local/desktop-public-install.json`. No model
171
+ Harness profile before booting it and checking the preset and absence of bundled Hub tools and endpoint. The
172
+ result is saved as `artifacts/local/desktop-public-install.json`. The `promote`
173
+ phase requires this public receipt to match the candidate, then updates npm
174
+ `latest` to the same version as `preview`. Both entry points serve the current
175
+ qualified preview; the Desktop support boundary remains unchanged. No model
149
176
  account is used, and no real-model quality claim follows from these probes.
150
177
 
151
178
  The existing npm token must permit the new Desktop package. Successful `whoami`
@@ -153,7 +180,7 @@ proves authentication only; the first publish establishes write permission.
153
180
  Desktop publication does not replace the terminal profile, create a DMG, or
154
181
  implement an automatic Desktop updater. GitHub Release attaches the Desktop
155
182
  archive, checksum and instructions alongside the terminal assets. Follow the
156
- [Plugin Hub guide](plugin-hub.md) for discovery and official management.
183
+ [Plugin Hub guide](plugin-hub.md) for the separation from DSCODE and earlier-version behavior.
157
184
 
158
185
  ### Login-free publishing (local machine)
159
186
 
package/docs/memory.md CHANGED
@@ -59,7 +59,7 @@ renderer interaction with the slash commands.
59
59
 
60
60
  A SQLite lease coordinates multiple processes and the background holds a heartbeat; a source session under recovery, an expired lease and a clear operation all stop an old result from committing. The consolidation model has no shell, MCP, file-write or delegation tools, and file paths are determined by the plugin.
61
61
 
62
- Directory resolution order: plugin `root` → `DSCODE_MEMORY_HOME` → `$DSCODE_HOME/memories` → `$DSH_HOME/memories` → `~/.local/share/dscode-hub/memories`. A source launch normally uses the project's `.runtime/memories`, and an npm launch uses the launcher's state directory. To share memory between installations, set the same `DSCODE_MEMORY_HOME` explicitly.
62
+ Directory resolution order: plugin `root` → `DSCODE_MEMORY_HOME` → the native Harness home plus `memories`. Harness resolves a nonblank `DSH_HOME` (including supported tilde paths), otherwise `~/.dsh`. A source launch normally sets the project's `.runtime` as that home; the npm launcher maps its `DSCODE_HOME` into `DSH_HOME`. To share memory between installations, set the same `DSCODE_MEMORY_HOME` explicitly. Version 0.7.34 does not automatically move memory left in an earlier fallback directory.
63
63
 
64
64
  ```text
65
65
  memories/
@@ -1,68 +1,35 @@
1
- # Plugin Hub in Harness Desktop
1
+ # DSCODE and Plugin Hub
2
2
 
3
- The DSCODE Desktop candidate includes **Settings → Plugin Hub**, backed by
4
- [DSH Plugin Hub](https://dshpluginhub.ai). It uses the same public catalog as
5
- the Hub website and CLI. No Hub login is required to browse.
3
+ DSCODE and [DSH Plugin Hub](https://dshpluginhub.ai) are separate products.
4
+ Installing DSCODE should not also install a Hub browsing interface.
6
5
 
7
- ## Find and inspect plugins
6
+ ## Version 0.7.35 and later
8
7
 
9
- Enter a package name or describe a capability, optionally choose a category,
10
- and select **Search**. **Load more plugins** continues the current search.
11
- Open **View details** to read the description, repository, license, weekly
12
- downloads, publisher indicators, reported security checks and declared
13
- compatibility. The website link opens the corresponding Hub listing.
8
+ The Desktop build no longer includes the Hub settings page, Host endpoint,
9
+ `plugin_hub_search` or `plugin_hub_info` tools, Hub source files or Hub-specific
10
+ runtime dependencies. DSCODE sessions do not require the community catalog to
11
+ start or use coding and browser features.
14
12
 
15
- Publisher verification and a passing scan do not guarantee safety. Missing,
16
- failed and incomplete scans remain visible. Compatibility declarations come
17
- from the catalog; the official installer also checks the actual package.
13
+ The package retains its catalog listing metadata so people can discover DSCODE
14
+ through Hub. Release-time catalog synchronization and the terminal launcher's
15
+ existing Hub distribution mechanism remain in place. Neither adds the Desktop
16
+ Hub interface to a user's DSCODE installation.
18
17
 
19
- In a DSCODE conversation, ask the agent to find a plugin. The read-only
20
- `plugin_hub_search` and `plugin_hub_info` tools use the same catalog and Desktop
21
- compatibility checks. These tools do not install plugins, change the Profile
22
- or expose account credentials. Catalog descriptions are third-party data.
23
- The native Standard preset does not receive these tools.
18
+ Hub discovery is available on the separate website. This change does not publish
19
+ a standalone Hub Desktop plugin or move Hub into the official Plugins page.
24
20
 
25
- ## Install and enable
21
+ ## Published versions 0.7.33 and 0.7.34
26
22
 
27
- 1. Open the package details and choose **Review installation**.
28
- 2. Review the exact npm package, version and registry returned by the official
29
- plugin manager, alongside the Hub's scan and compatibility information.
30
- 3. Choose **Confirm installation**. The official manager downloads the package
31
- and dependencies. **Cancel installation** requests cancellation through that
32
- manager; the displayed outcome determines whether it completed in time.
33
- 4. Select **Manage installed plugin**, then enable and configure it in the
34
- official **Settings → Plugins** page.
23
+ These releases still contain **Settings → Plugin Hub**, catalog search and
24
+ categories, package details, and the two read-only discovery tools in DSCODE
25
+ sessions. Their installation handoff delegates to the official plugin manager;
26
+ enabling, configuration and removal stay in **Settings → Plugins**.
35
27
 
36
- Installation leaves the plugin disabled. Enabling third-party plugins runs
37
- their code in the Host. Build-script approvals, enable/disable, configuration
38
- and removal remain with the official plugin manager. When it reports a failure,
39
- cancellation, override or restart requirement, the Hub preserves that outcome.
40
- It does not report every completed package command as successful activation.
28
+ Installing or reinstalling 0.7.34 will therefore not remove the bundled Hub.
29
+ Update to `@toddzheng024/dscode-desktop@0.7.35` using the [Desktop installation guide](browser-use.md#install-the-experimental-combined-desktop-package).
30
+ Fully quit and reopen Desktop after updating; an already running Host may keep
31
+ the old plugin modules loaded.
41
32
 
42
- An installation preview expires after five minutes. Reopen the preview if it
43
- expires. Closing and reopening the Hub page recovers the latest operation while
44
- the same Host remains running. After a Host restart, check **Plugins** before
45
- retrying; the Hub's operation history is not persisted.
46
-
47
- ## Current boundaries
48
-
49
- - The first integration installs the catalog's latest exact npm version. It
50
- checks DSH and Node ranges, platform, interface support, withdrawal and
51
- deprecation. Git/tarball-only entries remain discoverable but are not installed
52
- through this integration.
53
- - Already available bundles link to official management. This page does not
54
- replace them, select older versions, check for updates or roll back a Profile.
55
- - Searches cover the community catalog, including packages for other Harness
56
- interfaces. Details explain when a package does not fit this Desktop.
57
- - The DSCODE terminal package and Desktop package are separate entries. A
58
- terminal-only package is not made Desktop-compatible by appearing in search.
59
- - Search queries and package lookups go to `api.dshpluginhub.ai`. Provider keys,
60
- conversation text, workspace files and local credentials are not sent by this
61
- catalog client. The agent may include task terms in a query you ask it to make.
62
- - This guide describes the source candidate. Public Desktop npm distribution is still
63
- being qualified. Official Add plugin installation, Hub installation with
64
- handoff to official management, and migration from the legacy probe name
65
- have passed on macOS Desktop 0.2.0-rc.2.
66
-
67
- See [Desktop candidate installation](browser-use.md#install-the-experimental-combined-desktop-package)
68
- and [distribution](hub-distribution.md) for package setup and release status.
33
+ Historical Hub installation and UI verification applies to those earlier
34
+ versions. It does not establish availability of a separate Hub Desktop package.
35
+ See [distribution](hub-distribution.md) for release gates.
@@ -1,12 +1,12 @@
1
1
  # DSCODE 0.7.33
2
2
 
3
- This release candidate packages DSCODE for official Harness Desktop, adds community plugin discovery through our Plugin Hub, and establishes a separate Desktop publication path alongside the terminal release.
3
+ This release packages DSCODE for official Harness Desktop, adds community plugin discovery through our Plugin Hub, and establishes a separate Desktop publication path alongside the terminal release.
4
4
 
5
5
  - **Formal Desktop plugin:** `@toddzheng024/dscode-desktop` has an icon, English/Chinese display metadata, package-specific instructions and an exact Harness peer version. It adds coding, browser preview, collaboration, memory, email and opt-in scheduling to the official application. The qualified target is macOS Apple Silicon with Harness runtime `0.2.0-rc.2`. Other runtime candidates remain private. A standalone application, DMG and automatic Desktop updates are deferred.
6
6
  - **Plugin Hub:** native Settings and read-only conversation tools share the Hub API and schema. Search, categories, numbered pagination and details expose compatibility and reported security information. Installation requires an exact npm version, official inspection and explicit confirmation. New plugins remain disabled, and the UI opens official management for enabling, configuration and removal. Git-only entries remain visible without installation; Hub Profile application and rollback are outside this integration. A reported scan result is not a guarantee about plugin behavior.
7
7
  - **Installation and migration:** official Add plugin accepts the archive, followed by Enable now. Users of the earlier private probe remove its old package name before installing the formal package, because both register the same components. The migration check verifies preserved sessions, credentials, configuration and user patches; keep a backup for your own state. Ordinary same-name replacement, incompatible-update refusal, removal and reinstallation have separate lifecycle checks.
8
8
  - **Reproducible distribution steps:** an independent Desktop runtime builds a public candidate, then the exact archive is unpacked and exercised through native Host startup/restart and browser probes. Publication verifies its checksums, version, compatibility and qualification receipt, publishes with the npm `preview` tag, synchronizes the Hub and checks the served public bytes. GitHub assets include the archive, checksum, installation README and release notes. Public availability is established by successful publication and registry verification, not by a local build.
9
- - **Browser and model workflows:** this version includes the browser and custom-provider work accumulated since 0.7.32. Browser access uses site and Developer grants, document-bound WebMCP discovery, explicit handoff and retained tabs. Desktop previews keep annotation drafts across navigation and permission changes while rejecting expired or replaced documents. Custom services support Chat Completions, Responses and Anthropic Messages, optional images, manual model limits and cancellable discovery/tests. The detailed fixes and boundaries are recorded in the [changelog](../CHANGELOG.md).
9
+ - **Browser and model workflows:** this version includes the browser and custom-provider work accumulated since 0.7.32. Browser access uses site and Developer grants, document-bound WebMCP discovery, explicit handoff and retained tabs. Desktop previews keep annotation drafts across navigation and permission changes while rejecting expired or replaced documents. Custom services support Chat Completions, Responses and Anthropic Messages, optional images, manual model limits and cancellable discovery/tests. The detailed fixes and boundaries are recorded in the [changelog](https://github.com/qiz029/dscode/blob/main/docs/CHANGELOG.md).
10
10
 
11
11
  Verification: `npm run check` passed on the release implementation (1,067
12
12
  unit/component cases, 79.99% full-source line coverage, both TypeScript checks,
@@ -23,8 +23,15 @@ The official macOS application separately installed and enabled the private
23
23
  formal archive, and its Hub installed `dsh-theme-plugin@0.3.3` disabled and
24
24
  opened official management. A native lifecycle check migrated the old probe
25
25
  name and preserved state. Those rendered GUI/migration observations used the
26
- private 0.7.32 candidate. Public npm publication and the post-publication
27
- installation check remain pending; the retained local receipts do not prove
28
- that users can already download this version from the registry.
26
+ private 0.7.32 candidate. The launcher, terminal bundle and Desktop plugin were subsequently published
27
+ to npm at 0.7.33, and the Hub lists both the terminal profile and Desktop plugin.
28
+ The final release run passed 1,068 unit/component cases at 79.98% coverage and
29
+ all other maintained gates. Public Desktop installation, the installed Host
30
+ and Hub RPC passed in CI. A separate fresh public terminal installation passed
31
+ startup configuration, terminal imports and Hub doctor. The GitHub Desktop
32
+ archive and checksum match the qualified npm bytes. The first two publication
33
+ attempts encountered npm propagation delay; rerunning the same verified
34
+ artifacts completed publication without changing versions or bytes. Detailed
35
+ receipts and boundaries are recorded in [Verification](https://github.com/qiz029/dscode/blob/main/docs/verification.md).
29
36
 
30
37
  Unverified paths: real-model task quality, native Computer Use screenshot/input with macOS Accessibility permission, other OS/architecture/runtime combinations, and third-party plugin behavior after enabling. General remote HTTP MCP retains separate runtime compatibility/security work. Scripted model fixtures and browser probes do not establish live model quality. Demo preparation is deferred until distribution is ready.
@@ -0,0 +1,24 @@
1
+ # DSCODE 0.7.34
2
+
3
+ This release fixes Desktop plugin activation during a normal application launch without an exported `DSH_HOME`.
4
+
5
+ - **Default Desktop home:** workspace discovery, email, scheduling and automatic permission review previously refused to activate unless `DSH_HOME` was explicitly set. They now use the same native home resolver as Harness: a nonblank override, including supported tilde paths, or `~/.dsh`. Users seeing “4 entries did not activate” in 0.7.33 can install `@toddzheng024/dscode-desktop@0.7.34` and enable it again. No shell environment setup is required.
6
+ - **Consistent local state:** browser permissions/configuration, memory, session cards and messaging, delegation, review baselines, provider caches, diagnostics and usage resolve that same home. Explicit memory/audit directories remain supported, and the terminal launcher still translates `DSCODE_HOME` into its native Harness home. Shared account credentials and mail keep their existing locations. Old fallback data is not migrated automatically.
7
+ - **Installation qualification:** public installation now deliberately omits `DSH_HOME` and checks workspace, email, scheduling and automatic-review activation. A package cannot pass the publication gate using only an explicitly configured home. Native Host and signed macOS lifecycle verifiers also accept a default-home scenario. The earlier 0.7.33 checks set `DSH_HOME`, which concealed this activation failure.
8
+ - **Distribution maintenance:** this release includes bounded retries for npm-to-Hub propagation and the Desktop/Hub demo guide added after 0.7.33. Versioned release notes, checksums, compatibility and installation instructions continue to ship with the package.
9
+
10
+ Verification: the default-home native Host reproduced the original activation
11
+ failure before the fix and passed startup/restart after it. The signed macOS
12
+ application passed installation, upgrade, incompatible-update refusal, removal
13
+ and reinstallation with `DSH_HOME` absent, including state preservation and
14
+ browser checks. `npm run check` passed 1,073 unit/component cases at 80.17%
15
+ full-source line coverage, both TypeScript checks, native integration, package
16
+ checks and 63 eval cases. Eight focused home-resolution/release-gate tests also
17
+ passed. The exact Desktop candidate passed native Host startup/restart and
18
+ browser qualification. Installation receipts and public release status are
19
+ recorded in the [verification record](https://github.com/qiz029/dscode/blob/main/docs/verification.md).
20
+
21
+ The Desktop target remains macOS Apple Silicon with Harness runtime 0.2.0-rc.2.
22
+ Live-model task quality, native Computer Use Accessibility qualification and
23
+ other platform/runtime combinations are not established by these checks. This
24
+ release does not provide a standalone DMG or migrate old fallback data.