dsh-reference-anything 0.2.0 → 0.2.2

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/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  One `@` to reference them all.
10
10
 
11
- **English** · [简体中文](./README_zh-CN.md) · [News](#news) · [Roadmap](#future-roadmap) · [Installation](#installation) · [Usage](#usage) · [Report Bug][github-issues-link]
11
+ **English** · [简体中文](./README_zh-CN.md) · [News](#news) · [Roadmap](#roadmap) · [Installation](#installation) · [Usage](#usage) · [Report Bug][github-issues-link]
12
12
 
13
13
  <!-- SHIELD GROUP -->
14
14
 
@@ -24,35 +24,24 @@ One `@` to reference them all.
24
24
 
25
25
  Within the unified `@` menu of DeepSeek Harness (DSH), reference commands, Skills, workspace files/folders, DSH sessions, and historical conversations from ChatGPT, Claude, Gemini, DeepSeek, Grok, and Kimi.
26
26
 
27
- This plugin reuses already-logged-in AI conversation windows via OpenCLI and only keeps conversation titles locally. The agent decides whether and when to fetch the remote conversation content on demand.
27
+ This plugin uses OpenCLI to access historical conversations through AI chat sessions that are already logged in. By default, only conversation titles are stored locally, and the agent fetches remote content on demand. An optional offline-mirror mode stores the latest complete conversation bodies locally.
28
28
 
29
29
  ## News
30
30
 
31
- - **2026-08-18 · v0.2.0** — A redesigned Conversations settings page with local session statistics, paginated management, Provider/Profile selection, and sync status checks.
31
+ - **2026-08-19 · v0.2.2** — Added automatic version checks and in-settings updates, Pill/Raw text input rendering modes, and reusable background browser sessions for more reliable OpenCLI synchronization and input interactions.
32
+ - **2026-08-18 · v0.2.0** — A redesigned Reference Anything settings page with local session statistics, paginated management, Provider/Profile selection, and sync status checks.
32
33
  - **2026-08-18** — Introduced on-demand read protocol: references default to safe pointers, and the agent reads the body and attachments only after authorization.
33
34
  - **2026-08-17** — Unified ChatGPT, Claude, Gemini, DeepSeek, Grok, and Kimi under the DSH `@` menu.
34
35
 
35
36
  ## Roadmap
36
37
 
37
38
  - [ ] Support referencing historical conversations from other local agents
38
- - [ ] Support more AI conversation platforms (ideas welcome!)
39
+ - [ ] Support more keyword matching rules, including blacklists and whitelists, especially for file search
40
+ - [ ] Support more AI conversation platforms
41
+ - [ ] Provide a quieter AI conversation synchronization mechanism
39
42
  - [ ] Support referencing applications or browser windows currently open on the computer
40
43
  - [ ] More ideas are welcome in Issues
41
44
 
42
- ## Architecture
43
-
44
- ```text
45
- DSH Web @Conversations
46
- ↕ Host Remote
47
- DSH Host + reference_anything local mirror
48
- ↕ execFile(opencli, argv)
49
- opencli-plugin-dsh-chat-history
50
- ↕ OpenCLI daemon + official Browser Bridge
51
- ChatGPT / Claude / Gemini / DeepSeek / Grok / Kimi
52
- ```
53
-
54
- This does not include the legacy standalone DeepSeek CDP / `--remote-debugging-port` collector. All six platforms use the OpenCLI Provider adapter path, avoiding duplicate browser-reading implementations.
55
-
56
45
  ## Installation
57
46
 
58
47
  Prerequisites:
@@ -69,30 +58,38 @@ dsh plugin --profile web add dsh-reference-anything
69
58
  For development, the repository can still be installed from a local path:
70
59
 
71
60
  ```powershell
72
- dsh plugin --profile web add D:\dsh-reference-anything
61
+ # Run from the repository root
62
+ dsh plugin --profile web add .
73
63
  ```
74
64
 
75
- After installing the DSH plugin, open `Settings → Conversations → Availability check` in DSH Web and click **Install all**. It discovers OpenCLI, installs or upgrades it through npm when missing or outdated, installs the OpenCLI adapters bundled in the npm package, starts or refreshes Browser Bridge, and immediately opens the OpenCLI Browser Bridge page in the [Chrome Web Store](https://chromewebstore.google.com/detail/opencli/ildkmabpimmkaediidaifkhjpohdnifk). Confirm the extension installation, then return and click **Check again**. Any remaining failed check displays its own recovery action.
65
+ After installing the DSH plugin, open `Settings → Reference Anything → Availability check` in DSH Web (restart DSH first if this settings entry is not yet visible), then click **One-click setup**. It discovers OpenCLI; installs or upgrades it globally through npm when it is missing or older than `1.8.6`; installs the bundled adapters for all six platforms; starts or refreshes Browser Bridge; and opens the OpenCLI Browser Bridge page in the [Chrome Web Store](https://chromewebstore.google.com/detail/opencli/ildkmabpimmkaediidaifkhjpohdnifk). Confirm the extension installation, then return and click **Recheck setup**. Any remaining failed check displays its own recovery action.
76
66
 
77
- You can also complete the steps manually:
67
+ You can also install OpenCLI and the conversation adapter manually, then start Browser Bridge:
78
68
 
79
69
  ```powershell
80
- opencli plugin install file:///D:/dsh-reference-anything/opencli-plugin
70
+ npm install --global "@jackwener/opencli@>=1.8.6"
71
+ opencli plugin install file:///C:/path/to/dsh-reference-anything/opencli-plugin
72
+ opencli daemon restart
81
73
  ```
82
74
 
83
- Browser extensions cannot be silently installed from a webpage; confirm the installation in the Chrome Web Store or use “Load unpacked” from [OpenCLI Releases](https://github.com/jackwener/opencli/releases). If the browser blocks the store popup, the settings page keeps a normal fallback link. When multiple browser profiles are connected, select and apply one directly in the failed check. Global npm installation remains subject to OS permissions; failures retain their original diagnostic in the settings page.
75
+ Replace `C:/path/to/dsh-reference-anything` with the repository location. Browser extensions cannot be silently installed from a webpage; confirm the installation in the Chrome Web Store, or download an extension package from [OpenCLI Releases](https://github.com/jackwener/opencli/releases) and use “Load unpacked.” If the browser blocks the store popup, the settings page keeps a normal fallback link. When multiple browser profiles are connected, select and apply one directly in the failed check. Global npm installation remains subject to OS permissions; failures retain their original diagnostic in the settings page.
84
76
 
85
77
  ## Usage
86
78
 
87
- 1. Open `Settings → Conversations` in DSH Web.
88
- 2. Check the status of the OpenCLI CLI, daemon, Browser Bridge, and adapters.
89
- 3. Select a Chrome Profile and click `Sync all`, or sync a single Provider.
79
+ 1. Open `Settings → Reference Anything` in DSH Web.
80
+ 2. Under **Availability check**, confirm that OpenCLI, Browser Bridge, the browser extension, and the conversation adapter are ready.
81
+ 3. Under **External conversation sync settings**, choose a connected browser Profile, history storage mode, and sync mode. Then click **Sync enabled sources now**, or sync an individual Provider from its card.
90
82
  4. Type `@` in the input box and choose from the `Files and folders`, `DSH sessions`, or `External conversations` groups.
91
83
  5. Type a keyword to filter candidates, for example `@cache-design`.
92
84
 
85
+ The default **Read bodies on demand** mode stores only the title index locally and uses the browser when an agent reads a reference. Choose **Store full bodies locally** for offline reading and full-text search; this mode keeps only the latest version of each conversation. The settings page also lets you enable or disable each `@` group, reorder groups, set their maximum result counts (six per group by default), and switch between Pill and Raw text input rendering. The plugin checks npm for updates when it loads; restart DSH after installing an update from the settings page.
86
+
87
+ > [!WARNING]
88
+ > To protect your account and conversation data, external conversations are imported and synchronized through OpenCLI using your existing logged-in browser session. A browser window may temporarily open during use or synchronization, and it may display OpenCLI debugging information. This is expected—please do not be alarmed or close the window manually; wait for the operation to finish.
89
+
93
90
  ### Search
94
91
 
95
- The `@` menu contains five groups: `Commands`, `Skills`, `Files and folders`, `DSH sessions`, and `External conversations`. The first two appear only when `@` is at the beginning of the draft. Each group shows up to five results when the query is empty, and up to eight after a query is entered.
92
+ The `@` menu contains five groups: `Commands`, `Skills`, `Files and folders`, `DSH sessions`, and `External conversations`. The first two appear only when `@` is at the beginning of the draft. Each group shows up to six results by default. Under `Settings → Reference Anything → General`, you can enable or disable groups, reorder them, and set each limit from 1 to 50.
96
93
 
97
94
  #### @Commands — DSH native commands
98
95
 
@@ -133,7 +130,7 @@ Supports historical conversations from ChatGPT, Claude, Gemini, DeepSeek, Grok,
133
130
 
134
131
  **Search capabilities:**
135
132
  - **Title match:** fuzzy search on conversation titles
136
- - **Content search:** if title matches are insufficient, the conversation body is searched and matching excerpts are shown in the candidate list
133
+ - **Content search:** available only in **Store full bodies locally** mode; if title matches are insufficient, synchronized bodies are searched and matching excerpts are shown in the candidate list
137
134
  - **Provider and account isolation:** history is maintained separately by Provider and account scope
138
135
  - `@` search uses the account scope cached by the latest sync and never probes the browser; after a sync observes an account switch, it exposes only that account while older rows remain available in conversation management for cleanup
139
136
 
@@ -144,6 +141,9 @@ Supports historical conversations from ChatGPT, Claude, Gemini, DeepSeek, Grok,
144
141
 
145
142
  Opening the source URL happens only in the UI; the URL is never injected into model context. The initial reference contains only a safe pointer; if the model needs the body, it calls `reference_read` on demand.
146
143
 
144
+ > [!NOTE]
145
+ > Due to DSH's current underlying length limit for References, external-conversation references temporarily use a compatibility layer implemented by this plugin instead of relying entirely on DSH's native reference presentation. As a result, some interactions may behave differently or encounter issues in certain scenarios. We have raised this limitation in DSH Discussions; when a future DSH release provides the necessary support, we will update the plugin promptly and migrate to a more native implementation.
146
+
147
147
  ---
148
148
 
149
149
  **General notes:**
@@ -151,7 +151,21 @@ Opening the source URL happens only in the UI; the URL is never injected into mo
151
151
  - Without a type prefix, all groups are searched at once.
152
152
  - For full browsing across groups: sessions are listed on the settings page, while commands and skills use the native `/` panel.
153
153
 
154
- ## Model-facing Protocol
154
+ ## How External Conversation References Work
155
+
156
+ ```text
157
+ DSH Web @Conversations
158
+ ↕ Host Remote
159
+ DSH Host + reference_anything local mirror
160
+ ↕ execFile(opencli, argv)
161
+ opencli-plugin-dsh-chat-history
162
+ ↕ OpenCLI daemon + official Browser Bridge
163
+ ChatGPT / Claude / Gemini / DeepSeek / Grok / Kimi
164
+ ```
165
+
166
+ This does not include the legacy standalone DeepSeek CDP / `--remote-debugging-port` collector. All six platforms use the OpenCLI Provider adapter path, avoiding duplicate browser-reading implementations.
167
+
168
+ ### Model-facing Protocol
155
169
 
156
170
  A reference produces an untrusted-data envelope alongside the current user request. The initial envelope contains only pointers and never the conversation body:
157
171
 
@@ -187,7 +201,7 @@ A reference produces an untrusted-data envelope alongside the current user reque
187
201
  - Sync stores attachment metadata and same-origin locators, not temporary signed URLs. Attachments are classified as `image` or `file`; empty URLs and site-root paths are not marked as available.
188
202
  - Unreadable attachments add a model-facing notice such as `[User attached 1 image; image contents were not included]` without altering the original conversation text.
189
203
 
190
- ## Sync and Storage
204
+ ### Sync and Storage
191
205
 
192
206
  The `reference_anything` storage domain contains:
193
207