@qzsy/dsh-workspace-combobox 0.0.0-stage → 0.1.0

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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 qzsy
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,76 @@
1
- # Temporary Holding Version
1
+ # @qzsy/dsh-workspace-combobox
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ > Packaged from the local DSH plugin dsh-workspace-combobox; published under the @qzsy scope.
4
+
5
+ ## Install
6
+
7
+ ~~~bash
8
+ dsh plugin add @qzsy/dsh-workspace-combobox
9
+ ~~~
10
+
11
+ ## Upstream README
12
+
13
+ # Workspace Combobox for DSH
14
+
15
+ A persistent DeepSeek Harness Client plugin that upgrades the workspace chooser
16
+ above the New Session composer:
17
+
18
+ - **The picker becomes a combobox.** The dropdown that opens from the workspace
19
+ chip is replaced by a focused search field plus a keyboard-driven list. It
20
+ matches workspace **names and full paths** with one mixed-script query:
21
+ Han characters (`群星`), full pinyin (`qunxing`), pinyin initials (`qx`),
22
+ English subsequences (`flut`), and mixed forms (`qunxing-erp`, `群erp`).
23
+ Matched characters are highlighted; arrows move, Enter picks, Escape closes.
24
+ - **`Ctrl+.` switches workspace from anywhere.** A frame-wide switcher opens
25
+ over the current surface — including sessions where the New Session picker is
26
+ not rendered — with the same search, in the roomier dialog layout. Enter
27
+ **starts a new conversation in that Workspace** (`uiWorkspace.startSession`)
28
+ instead of reopening the Workspace's latest session. The binding is a normal
29
+ editable command (`workspace.combobox`) in Settings → Keyboard shortcuts.
30
+
31
+ Sizing is deliberately split: the picker above the composer stays compact
32
+ (single-line rows, 380 px wide), while the frame-wide dialog keeps the larger
33
+ palette dimensions and full paths.
34
+
35
+ ## Where it plugs in
36
+
37
+ | Surface | Mechanism |
38
+ | --- | --- |
39
+ | New Session workspace dropdown | A `conversation.hero.workspace` occupant registered at `priority: -1`. The slot registry renders the lowest priority, so it shadows the shipped picker panel registered at 0. The trigger chip, open/close state, `selectedId`, and `onPick` still come from the conversation owner. The panel renders through a React portal on `document.body`, like the shipped menu, so no transformed or clipped ancestor can displace it. |
40
+ | Frame-wide switcher | A `shell.overlay` entry (`workspace-combobox.switcher`) driven by the `workspace.combobox` shortcut command. |
41
+ | Search | The MIT [`text-search-engine`](https://github.com/cjinhuo/text-search-engine) browser build is vendored and injected into the client module, because the client module table cannot resolve npm packages at runtime. |
42
+
43
+ Replacing the picker panel removes the shipped `conversation.hero.workspace.directoryFlow`
44
+ hole, so this plugin also renders its own **Add workspace…** row: it calls
45
+ `uiWorkspace.pickDirectory()`, registers the path through `workspaces.create()`,
46
+ and then picks the new workspace.
47
+
48
+ ## Install
49
+
50
+ Installed into the current profile with `plugin_manager install_bundle` and the
51
+ absolute package directory. No build step is needed at install time: `client.js`
52
+ is a plain-JS `__ModuleLoader__` module that only requires `react`, with the
53
+ vendored engine already inlined.
54
+
55
+ ## Files
56
+
57
+ - `package.json` — bundle manifest (`dsh.bundle.patch`, `dsh.client`, display resources)
58
+ - `cordis.patch.yml` — inserts the Host row
59
+ - `index.js` — Host half (no-op; everything is client-side)
60
+ - `client.js` — the combobox, the frame-wide switcher, the shortcut, and the
61
+ vendored-engine region
62
+ - `vendor/` — vendored engine build and its MIT license
63
+ - `scripts/sync-vendor-engine.mjs` — regenerates the engine region after a
64
+ vendor update
65
+ - `locale/en.json`, `locale/zh.json` — Plugin Manager title/description
66
+ - `icon.svg` — original artwork
67
+
68
+ ## Limits
69
+
70
+ - The trigger chip above the composer belongs to the conversation owner and is
71
+ not replaceable by a slot occupant, so the typing happens inside the opened
72
+ panel (a true combobox), not in the chip itself.
73
+ - Workspaces are ordered by latest session activity; the search ranking prefers
74
+ title hits over path hits.
75
+ - The picker replacement shadows shipped UI. Uninstalling the bundle restores the
76
+ shipped picker immediately.
@@ -0,0 +1,3 @@
1
+ - insert:
2
+ - id: workspace-combobox
3
+ name: '@qzsy/dsh-workspace-combobox'