opencode-navigator 0.26.0 → 0.27.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.27.1] - 2026-11-11
4
+
5
+ - Drag the Desktop mini-window by its header as well as its move handle, while keeping Dock a separate action. Match its surface and controls to OpenCode's light and dark themes.
6
+ - Use native Desktop switches and selectors for Skill trust and Todo configuration, and align multiline fields with the host theme and focus styles.
7
+ - Show a remaining-lifetime scale and time until expiry for banked reset credits with provider-supplied dates. Keep missing expiry explicit and prevent selecting expired credits for review.
8
+
9
+ ## [0.27.0] - 2026-11-11
10
+
11
+ - Add an experimental OpenCode Desktop interface with a native panel, narrow-screen drawer, and opt-in in-app mini-window. Move, resize, reset and redock it with the mouse or keyboard while keeping the selected session and filters.
12
+ - Bring Search Everything, Skills, MCP groups and presets, Quick Actions, and customizable toolbar pins to Desktop. Share private favorites, trust decisions and preferences with local TUI instances without duplicating monitoring.
13
+ - Add native Desktop settings with scoped section controls, groups, reviewed presets and project profiles, portable import/export, a seven-slide setup guide, About, browsable release history and editable GitHub Bug reports.
14
+ - Keep superseded Desktop configuration reads from showing a false error after a newer refresh, while preserving genuine failures and retry guidance.
15
+ - Show verified provider/account quotas in Desktop with explicit account linking and separately confirmed banked resets. Keep remote sessions isolated from local accounts and preserve unresolved reset attempts across retries.
16
+ - Support OpenCode 1.19.5 and 2.2.6 while preserving both TUI adapters, existing settings, pinned-source updates and read-only legacy Todo archives.
17
+
3
18
  ## [0.26.0] - 2026-11-06
4
19
 
5
20
  - Prevent background retries from accumulating cancellation listeners and preferences loading from waiting indefinitely on recovery markers.
package/HOST_API.md CHANGED
@@ -1,12 +1,119 @@
1
1
  # Public Host APIs And Remaining Gaps
2
2
 
3
- Navigator supports only OpenCode **1.19.5** and **2.2.5**, the current stable
3
+ Navigator supports only OpenCode **1.19.5** and **2.2.6**, the current stable
4
4
  release in each major line. Published SDK declarations and real-host checks
5
5
  define the boundary; internal host components are not plugin APIs.
6
6
 
7
+ ## Approved Desktop Integration Contract
8
+
9
+ Desktop support uses the independent `./gui-experimental` entry available from
10
+ Navigator 0.27.0, not the TUI entrypoint. Earlier packages do not include this GUI.
11
+ The approved target is OpenCode Desktop 2.2.6, with TUI 1.19.5 and 2.2.6 kept
12
+ behind explicit adapters. The published 2.2.6 plugin package preserves every TUI
13
+ declaration from 2.2.5; its changed declarations are GUI-specific.
14
+
15
+ | Capability | Published Desktop contract | Navigator integration constraint |
16
+ | --- | --- | --- |
17
+ | GUI loading | `./gui-experimental`, `@opencode/plugin/gui`, one CJS bundle through `gui/vite` | Load from global server configuration; a CLI-only plugin entry does not enable Desktop. Preserve the server plugin's historical identity. |
18
+ | Data and requests | Reactive session `server.data` and live `server.client` | Resolve the selected session's server on every operation; the plugin-level client is the desktop sidecar, not an arbitrary remote session. |
19
+ | Session identity | Host session keys include server identity; location can be unavailable during reconnect | Partition domain state and reject stale actions by server/session/location; never put credentials in cache keys. |
20
+ | Layout | Native side panels, host-controlled bottom placement, narrow drawers, panel-specific width | Use native containers first. The optional floating view is an in-app presentation of the same state, not a detached OS window. |
21
+ | Commands and composer | Native command registry and reactive routed composer/model | Map verified commands explicitly; never emulate GUI actions by fabricating terminal command events. |
22
+ | Dialogs and settings | Native nested dialogs, SettingsPage and settings/menu components | Share validation and action state, not terminal dialog renderers or focus loops. |
23
+ | Local operations | Desktop main, validated IPC, Node/Electron only in main | Renderer models have no filesystem, subprocess or token access. Preserve the existing private store and lock rather than copying preferences to GUI storage. |
24
+ | Remote operations | The selected server's public client and existing plugin RPC | Do not read local project files or use local provider credentials for a remote target. Missing server capabilities remain explicit. |
25
+ | Native windows | Public main context can inspect existing windows; no panel detach operation | Detached OS windows are outside this delivery. Do not mutate host DOM or use private app internals to simulate support. |
26
+
27
+ The GUI API is experimental. Browser Web is not a verified target in this cycle.
28
+ The renderer and headless models must remain independent of Electron so a later
29
+ Web adapter does not require a second implementation of product rules.
30
+
31
+ Verification uses an npm-style tarball in the official checksum-verified Linux
32
+ ARM64 Desktop 2.2.6 package under Xvfb. Native macOS/Windows and multiple live
33
+ Desktop windows are not claimed as real-host coverage; remote identity, independent
34
+ window leases and concurrent shared-store writes are synthetic contracts. The
35
+ unminified TUI remains limited to 360,000 bytes; the single-file GUI has its own
36
+ 600,000-byte budget (about 554 kB at the stage-10 baseline).
37
+
38
+ Native Settings temporarily has no mounted session and may have no active tab.
39
+ Navigator retains only a previously observed public session reference still
40
+ confirmed by the public tab list, server and location; Home, closing that tab or
41
+ changing its target clears it. Settings/profile operations use that reference's
42
+ live client/cache rather than substituting the sidecar.
43
+
44
+ Private favorites, trust, presets, account bindings and reset attempts remain in
45
+ the established filesystem preferences store/lock via typed main IPC. Native GUI
46
+ storage holds presentation only. Explicit Reload flushes writes, refreshes private
47
+ preferences and selected-server configured defaults, and clears temporary layout
48
+ overrides. Project profiles use the selected server RPC with exact file previews
49
+ and stale-file checks; workspace-placed filesystems are rejected until the public
50
+ server contract provides a verified placement-aware atomic write operation.
51
+
52
+ GUI permission actions open native Settings. No supported Desktop startup/Home
53
+ interception or LSP status contract was found; those terminal capabilities are not
54
+ simulated. Revisit the gaps when equivalent public APIs become available. Changelog
55
+ browsing is independent of the one-time version claim used by startup notes.
56
+
57
+ On narrow Desktop windows, Navigator uses **More → Navigator**, the host's
58
+ native drawer. The floating view redocks when the viewport becomes narrow.
59
+ Desktop 2.2.6 keeps drawer opening in its own mobile navigation; Navigator does
60
+ not click or move host elements to force it open. Revisit automatic drawer
61
+ opening when the public layout API exposes that operation.
62
+
63
+ GUI forms use `ctx.ui.Switch`, `TextInput`, `Select`, `Button` and the native
64
+ Settings rows rather than importing or bundling `@opencode/ui`. Desktop 2.2.6's
65
+ public UI facade has no multiline input, progress bar, disclosure row, or bookmark
66
+ icon. Those focused semantic controls remain plugin-owned, using the host theme's
67
+ surface, text, focus and elevation tokens. Remove these fallbacks when equivalent
68
+ public controls preserve their multiline, expanded/selected and progress semantics.
69
+
70
+ The Desktop model controls use the verified 2.2.6 commands `model.choose` and
71
+ `model.variant.cycle`. These IDs are version-audited mappings, not portable
72
+ TUI command names; a rejected dispatch reports that the control is unavailable.
73
+
74
+ The isolated Desktop 2.2.6 host also has a native dialog-context defect: opening
75
+ its command palette after a plugin dialog in a session can fail with
76
+ `Command context must be used within a context provider`. The same minimal
77
+ fixture reproduces this with Navigator disabled; Home does not reproduce it.
78
+ Navigator does not patch host contexts. Interaction smokes keep this native-only
79
+ probe separate and exercise subsequent plugin commands through the public
80
+ `commands.run` API. Recheck this limitation on the next audited Desktop target.
81
+
82
+ Sources: [GUI plugins](https://opencode.ai/docs/build/plugins/gui),
83
+ [TUI plugins](https://opencode.ai/docs/build/plugins/cli),
84
+ [RPC](https://opencode.ai/docs/build/plugins/rpc), and the published
85
+ `@opencode/plugin@2.2.6` declaration archive, audited on 2026-11-10.
86
+
7
87
  ## Host-Owned Services
8
88
 
9
- | Capability | OpenCode 1.19.5 | OpenCode 2.2.5 |
89
+ ### Dependency audit limits
90
+
91
+ The candidate's frozen install and peer graph pass, but its security audit is
92
+ not clean. The supported 1.x plugin pins an older Effect beta and Zod; its Effect
93
+ graph also carries TOML denial-of-service advisories. The supported 2.x utility
94
+ package pins Glob and Minimatch versions with denial-of-service advisories.
95
+ Navigator does not force incompatible transitive-major overrides or suppress the
96
+ audit. Removal depends on compatible upstream fixes in the supported host graph;
97
+ review these advisories again before publication.
98
+
99
+ ### Selected-server quota services
100
+
101
+ Desktop Codex reads and reset submissions run behind typed main-process IPC,
102
+ only for the host-verified `sameMachine` sidecar. Main rechecks the session
103
+ directory, live client, active connection and private account binding; it never
104
+ returns credentials or provider headers to the renderer. Remote sessions use
105
+ their selected server's quota RPC and never borrow the Desktop's local account.
106
+ Public session and quota-event locations expose only a directory, not a workspace
107
+ ID. Workspace requests retain explicit location guards, and quota observations
108
+ without sufficient workspace identity do not trigger an automatic read.
109
+
110
+ The ordinary Codex bucket is account-scoped even when `normalModelSlug` is null.
111
+ Missing reset-credit details do not erase the provider's available count. Reset
112
+ submission requires a separate confirmation and an authoritative persisted
113
+ attempt; uncertain retries retain its idempotency key. No credit is spent during
114
+ review, refresh or account linking.
115
+
116
+ | Capability | OpenCode 1.19.5 | OpenCode 2.2.6 |
10
117
  | --- | --- | --- |
11
118
  | Todo | Supported host Todo source/events | Public message cache, completed `todowrite` and revert boundary |
12
119
  | Skills | Host discovery and prompt insertion | Native Skill cache and `experimental.session.skill` with exact ID |
@@ -52,10 +159,10 @@ justify bypassing a native API.
52
159
 
53
160
  Both current hosts have isolated real-host checks. Historical installer fixtures
54
161
  exercise migration only; they do not extend the supported host matrix.
55
- The published 2.2.5 TUI context, plugin, index and Solid declarations are identical
56
- to 2.2.0. OpenTUI 0.8 retains the drawing-only paint-hook contract; renderer tests,
162
+ The published 2.2.6 TUI declarations are identical to 2.2.5. OpenTUI 0.8 retains
163
+ the drawing-only paint-hook contract; renderer tests,
57
164
  nested dialogs and frame-level typing probes run against the updated runtime.
58
- Development uses Bun 1.4.4 and OpenTUI 0.8.2, leaving Solid/OpenTUI external so the
165
+ Development uses Bun 1.4.4 and OpenTUI 0.8.3, leaving Solid/OpenTUI external so the
59
166
  host owns its runtime. The 1.x host ships older runtime modules; its actual smoke
60
167
  must pass rather than injecting the development modules into it.
61
168
 
@@ -67,7 +174,7 @@ renderer/FFI support. CI and package verification use Node 26.12.1.
67
174
  ### Deliberate Compatibility Pins
68
175
 
69
176
  - `web-tree-sitter` stays at **0.25.10**, the exact peer required by OpenTUI
70
- 0.8.2. Upgrade it when the supported host runtime publishes a compatible peer
177
+ 0.8.3. Upgrade it when the supported host runtime publishes a compatible peer
71
178
  contract; the independent 0.27 line is not a compatible substitution.
72
179
  - `typescript` is **6.0.3**, selected to match the complete published
73
180
  `@st1ggy/linter-config` **10.0.0** preset. SonarJS and typescript-eslint JS
package/LINT_COVERAGE.md CHANGED
@@ -12,6 +12,11 @@ beside their individual settings in `oxlint.config.ts`.
12
12
 
13
13
  ## Preserved Checks
14
14
 
15
+ - GUI-only overrides add native JSX accessibility checks for ARIA, labels/content,
16
+ keyboard parity and focusability while retaining every native plugin from the
17
+ published Solid preset. OpenTUI JSX is excluded from these HTML-specific rules.
18
+ Native host controls retain their own semantics; real Desktop keyboard checks
19
+ complement source linting.
15
20
  - Native ESLint, TypeScript, import and Unicorn rules remain enabled.
16
21
  - All published Solid, ESLint-core, import-x, stylistic, Unicorn, SonarJS and
17
22
  typescript-eslint JS plugins remain enabled.
package/PROVIDERS.md CHANGED
@@ -5,6 +5,15 @@ It never treats session token/cost totals as remaining provider quota. Subscript
5
5
  windows, API rate limits, configured capacities, and monetary balances are different
6
6
  measurements and are labelled separately.
7
7
 
8
+ The experimental Desktop entry shares quota normalization, refresh scheduling,
9
+ account binding and reset-attempt rules with TUI. Its renderer uses the selected
10
+ session's live server client/cache. Local Codex subprocess access is restricted to
11
+ typed Desktop-main IPC for a host-verified same-machine connection; remote or
12
+ unverified targets never borrow the Desktop's local account or binding. No tokens
13
+ or credential files are returned to the renderer. Remote provider reads use the
14
+ selected server's existing quota RPC. Missing capabilities and authentication
15
+ failures remain explicit rather than enabling an alternate credential reader.
16
+
8
17
  The external provider contracts were rechecked on 2026-10-06; the public
9
18
  OpenCode Console/Go contract was added on 2026-10-28. The runtime also includes providers from
10
19
  the host catalog; an unrecognized provider gets an explicit unverified-source state
package/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # OpenCode Navigator
2
2
 
3
- Search, navigate, and manage OpenCode sessions from the TUI. Navigator combines
3
+ Search, navigate, and manage OpenCode sessions from the TUI, with an experimental
4
+ OpenCode Desktop interface. Navigator combines
4
5
  Search Everything, task and subagent views, skills, MCP presets, and quick actions
5
6
  with a configurable sidebar.
6
7
 
@@ -44,7 +45,7 @@ collapsed. Use `Save current layout as default` in sidebar settings to reuse the
44
45
  current visible/hidden, expanded/collapsed, and ordering states in new sessions.
45
46
 
46
47
  **Only the latest stable release in each major line is supported: OpenCode
47
- 1.19.5 and 2.2.5.** Both have separate real-host checks. Older releases are not
48
+ 1.19.5 and 2.2.6.** Both have separate real-host checks. Older releases are not
48
49
  part of the supported compatibility matrix. The 2.2 integration uses OpenTUI 0.8
49
50
  and public host caches, events, keymap layers, and client APIs while retaining
50
51
  the separate 1.x adapter. See [Host API boundaries](HOST_API.md) for remaining
@@ -52,7 +53,7 @@ capability gaps and removal conditions. On OpenCode 2, Navigator reads the same
52
53
  the host sidebar, including completed `todowrite` calls and the current revert
53
54
  boundary. Viewing Todo needs no Navigator server plugin. OpenCode 2.1 exposes
54
55
  content and four statuses, without priorities or direct Todo CRUD. LSP is hidden on 2.x while retaining Subagents,
55
- Skills, Quick Actions, MCP, Search, settings, and presets. All interface icons use Nerd Font glyphs by
56
+ Skills, Quick Actions, MCP, Search, settings, and presets. All TUI interface icons use Nerd Font glyphs by
56
57
  default (Codicons for controls, keyboard symbols for hints, language logos for LSP). Use a Nerd Fonts v3
57
58
  terminal font, or select **Settings → Behavior → Icon style → Text fallback**.
58
59
  The switch applies to the entire interface, including Quick Actions, search
@@ -271,6 +272,74 @@ in a separate JSON file and set `OPENCODE_CONFIG` to its path **only when
271
272
  launching OpenCode 2.x**. The TUI configuration in `cli.json` remains separate;
272
273
  the OpenCode 1.x launch must not load Navigator's 2.x server plugin.
273
274
 
275
+ ### Experimental OpenCode Desktop
276
+
277
+ Navigator 0.27.0 and newer also export `./gui-experimental` for **OpenCode Desktop
278
+ 2.2.6**. This is not browser Web support or a detached operating-system window.
279
+ Earlier Navigator versions do not include the GUI export.
280
+
281
+ Desktop discovers the GUI from its **global server plugin configuration**,
282
+ `~/.config/opencode/opencode.json` (or the equivalent XDG location), not from
283
+ `cli.json` or `tui.json`. Merge its package entry with existing plugins rather
284
+ than replacing the configuration:
285
+
286
+ ```jsonc
287
+ {
288
+ "$schema": "https://opencode.ai/config.json",
289
+ "plugins": [{ "package": "opencode-navigator" }],
290
+ }
291
+ ```
292
+
293
+ For a pinned local installation, use its reviewed package directory instead of
294
+ the npm package name; that directory must include its runtime dependencies.
295
+ Do not add this v2 server package to a configuration shared with OpenCode 1.x;
296
+ keep the separate v2 launch configuration described above. The same package
297
+ contains independent TUI, server, RPC and GUI entries.
298
+
299
+ - Open **Open Navigator** from the command palette after selecting a session.
300
+ The native panel can be placed beside or below the chat with host controls.
301
+ Narrow windows use **More → Navigator**.
302
+ - Choose **Float** for an opt-in mini-window inside the application. It follows
303
+ the selected session, hides on Home and yields to native dialogs. Move, resize,
304
+ reset and redock controls support keyboard input too. Both placements share
305
+ one monitoring runtime and filters; switching does not duplicate polling.
306
+ Drag the mini-window by its header or move handle; Dock remains a separate
307
+ action. Its surface follows the current OpenCode theme.
308
+ - **Navigator settings** opens native Settings with Global/Worktree scope,
309
+ section controls, groups, trust, presets, portable/project profiles, About,
310
+ release history and reviewed Bug reports. **Reload preferences** imports
311
+ changes from other local Navigator instances explicitly.
312
+ - Favorites, trust, account bindings, reset attempts and presets use the existing
313
+ private preferences file and lock shared with local TUI instances. Only window
314
+ placement lives in the native GUI store. Project profiles and configuration
315
+ requests use the selected server, including remote servers.
316
+ - Todo is native and read-only; chat owns edits. Legacy Navigator tasks remain a
317
+ read-only archive. LSP and startup/Home interception are not exposed by this
318
+ Desktop contract. Permissions opens native host Settings rather than toggling
319
+ a simulated mode. Terminal fonts, corner masks and terminal shortcuts are not
320
+ GUI settings; Desktop does not need a Nerd Font or the corner font.
321
+ - Provider quotas retain verified account scope. Local Codex access requires a
322
+ verified same-machine connection; a remote session never borrows its credentials
323
+ or private binding. Banked resets always require separate confirmation.
324
+
325
+ The candidate is tested as an npm-style tarball in the official checksum-verified
326
+ Linux ARM64 Desktop package on Xvfb. Native macOS/Windows, browser Web and multiple
327
+ live Desktop windows are not claimed as real-host verification targets. Local,
328
+ remote and multi-consumer guards have separate synthetic contract tests.
329
+ See [Host API boundaries](HOST_API.md) for the native command-palette limitation.
330
+ The manual Prepare Release workflow generated and byte-verified all 29 GUI
331
+ captures using the real Desktop renderer on a virtual display. The terminal
332
+ gallery above is rendered separately through Ghostty.
333
+
334
+ ![Desktop Search Everything with a synthetic Skill](screenshots/gui/02-desktop-search-skills.png)
335
+
336
+ ![Desktop mini-window preserving the current Todo filter](screenshots/gui/14-desktop-mini-window.png)
337
+
338
+ ![Desktop layout preview with a separate Apply action](screenshots/gui/07-desktop-layout-preview.png)
339
+
340
+ See the [Desktop gallery](screenshots/README.md#experimental-desktop) for account
341
+ linking, quotas, reviewed resets, profiles, onboarding and Bug reports.
342
+
274
343
  ### Install the corner font
275
344
 
276
345
  **Required for rounded multiline selections in Nerd Font mode.** Run the font
@@ -636,7 +705,10 @@ separate muted guidance.
636
705
 
637
706
  The header's **Banked Resets** button appears when credits or an unresolved attempt
638
707
  exist. It displays the provider's available count, optional credit
639
- details, statuses, and expiry. Selecting a credit first checks fresh eligibility
708
+ details, statuses, and expiry. In Desktop, dated credits show a shrinking
709
+ remaining-lifetime scale and time until expiry, calculated from the provider's
710
+ grant and expiry timestamps. Missing dates never produce a fabricated percentage;
711
+ expired credits cannot be selected for review. Selecting a credit first checks fresh eligibility
640
712
  and opens a separate confirmation tied to the current account and model. Cancel
641
713
  or Escape returns to the credit list without spending anything.
642
714
 
@@ -995,6 +1067,8 @@ Consumer installations retain upstream metadata; see [Host APIs](HOST_API.md).
995
1067
  ```sh
996
1068
  bun run test
997
1069
  bun run test:e2e
1070
+ bun run test:gui
1071
+ bun run test:e2e:gui
998
1072
  bun run typecheck
999
1073
  bun run lint
1000
1074
  bun run lint:fix
@@ -1008,8 +1082,11 @@ bun run screenshots:verify
1008
1082
  bun run check
1009
1083
  ```
1010
1084
 
1011
- `bun run check` runs the tests, TypeScript, Oxlint, bundle-size guard, and Oxfmt
1012
- check. The unminified TUI bundle is limited to 360,000 bytes.
1085
+ `bun run check` runs the TUI and browser-conditioned GUI tests, separate JSX
1086
+ typechecks, Oxlint, bundle-size guards, and Oxfmt. The unminified TUI bundle is
1087
+ limited to 360,000 bytes; the independent single-file GUI budget is 600,000 bytes
1088
+ (stage-10 measured baseline: about 554 kB). DOM accessibility checks apply only
1089
+ to GUI modules, never to terminal renderables.
1013
1090
  Font generation is a separate development task: `bun run font:build` and
1014
1091
  `bun run font:check` use `uv` and the pinned FontTools dependency. Users install
1015
1092
  the already generated font; Python and FontTools are not needed at runtime.
@@ -1026,6 +1103,15 @@ requires Docker with Linux ARM64 support. These commands are available for harne
1026
1103
  development; the committed release captures are generated by the manual
1027
1104
  `Prepare Release` GitHub Actions workflow.
1028
1105
 
1106
+ That workflow also runs `bun run screenshots:gui` and
1107
+ `bun run screenshots:gui:verify`. They use the real packaged Desktop renderer on
1108
+ Xvfb, not Ghostty, with synthetic sessions, providers and reports. The second run
1109
+ compares the PNGs byte-for-byte. Fixed renderer and synthetic main clocks,
1110
+ full software rasterization and disabled capture-time animations stabilize scenes
1111
+ without stopping interaction timers or adding comparison tolerances. GUI
1112
+ capture commands reject non-CI invocation; ordinary Desktop smoke tests never
1113
+ take screenshots. New captures and their visual review remain a pre-release gate.
1114
+
1029
1115
  ## Publishing
1030
1116
 
1031
1117
  Publishing is handled by `.github/workflows/publish.yml` when a GitHub Release
@@ -1,4 +1,5 @@
1
1
  var SIDEBAR_SECTIONS=["limits","todo","subagents","skills","quick_actions","lsp","mcp"]
2
+ var QUICK_ACTION_IDS=["session.rename","session.timeline","session.copy","session.export","session.compact","session.list","session.new","session.fork","messages.copy","session.first","session.last","session.messages_last_user","session.message.next","session.message.previous","permission.mode"]
2
3
  var SECTION_DEFINITIONS=[{name:"limits",label:"Limits"},{name:"todo",label:"Todo"},{name:"subagents",label:"Subagents"},{name:"skills",label:"Skills"},{name:"quick_actions",label:"Quick actions"},{name:"lsp",label:"LSP"},{name:"mcp",label:"MCP"}];
3
4
  var MAX_LIMITS_REFRESH_MINUTES=Math.floor(2147483647 / 60000);
4
5
  var PLUGIN_ID="opencode-navigator"
@@ -6,4 +7,4 @@ var TOGGLE_COMMAND=`${PLUGIN_ID}.toggle`
6
7
  var FOCUS_COMMAND=`${PLUGIN_ID}.focus`
7
8
  var SEARCH_COMMAND=`${PLUGIN_ID}.search`
8
9
  var DEFAULT_SEARCH_KEY="ctrl+shift+k"
9
- export{SIDEBAR_SECTIONS,SECTION_DEFINITIONS,PLUGIN_ID,DEFAULT_SEARCH_KEY}
10
+ export{SIDEBAR_SECTIONS,QUICK_ACTION_IDS,SECTION_DEFINITIONS,PLUGIN_ID,DEFAULT_SEARCH_KEY}