opencode-navigator 0.27.0 → 0.27.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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.27.2] - 2026-11-11
4
+
5
+ - Keep Desktop Settings fields and actions inside their rows at narrow widths, with readable labels and compact group creation.
6
+ - Reorder Desktop sections, Quick Actions, toolbar pins and button icons by dragging their handles, or use Space and arrow keys to move them with the keyboard. Escape cancels an unfinished move.
7
+ - Show download and installation progress in place of the running version in TUI and inline in Desktop About. Show real percentages only when byte totals are available; otherwise show the active stage.
8
+ - Bring Desktop section arrows, loading indicators and Todo rows closer to native OpenCode. Completed and cancelled tasks use muted, struck-through text with distinct status icons.
9
+ - Remove duplicate model and reasoning-effort selectors from the Desktop sidebar. Select them below chat instead; Limits continue to follow the active model.
10
+
11
+ ## [0.27.1] - 2026-11-11
12
+
13
+ - 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.
14
+ - Use native Desktop switches and selectors for Skill trust and Todo configuration, and align multiline fields with the host theme and focus styles.
15
+ - 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.
16
+
3
17
  ## [0.27.0] - 2026-11-11
4
18
 
5
19
  - 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.
package/HOST_API.md CHANGED
@@ -60,9 +60,35 @@ Desktop 2.2.6 keeps drawer opening in its own mobile navigation; Navigator does
60
60
  not click or move host elements to force it open. Revisit automatic drawer
61
61
  opening when the public layout API exposes that operation.
62
62
 
63
- The Desktop model controls use the verified 2.2.6 commands `model.choose` and
64
- `model.variant.cycle`. These IDs are version-audited mappings, not portable
65
- TUI command names; a rejected dispatch reports that the control is unavailable.
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
+ Desktop model and reasoning-effort selection belongs to the native chat controls.
71
+ Navigator does not duplicate these selectors in its sidebar. Limits continue to
72
+ follow the host's reactive selected model; the TUI retains its model/variant controls.
73
+
74
+ The public UI facade also has no sortable list or tab component. Accessible
75
+ ordering and selection retain focused wrappers, with native controls wherever
76
+ their public props preserve the required semantics. `Ui.MenuItem` is not a generic
77
+ list row: the host requires it to render inside a menu. Section disclosure keeps
78
+ `aria-expanded` on its semantic button and uses a native icon with fixed geometry.
79
+ Revisit these wrappers when the host exposes equivalent accessible components.
80
+
81
+ The native Todo popover has no public content slot. Composer pill contributions
82
+ are adjacent pills, not extensions of native Todo, so Navigator cannot add search
83
+ or tabs there through Desktop 2.2.6's public API. Its read-only Todo rows follow
84
+ the native `todo-pill.tsx`/`todo-pill.css` geometry, status colors and completed or
85
+ cancelled strikethrough. `TodoGlyph` is private; remove the focused SVG fallback
86
+ when an equivalent public Todo/status component is available.
87
+
88
+ Native package installation provides no byte totals or intermediate transfer
89
+ events. Main IPC publishes the actual active stage to Desktop windows; the owned
90
+ snapshot installer optionally streams bounded stage records to TUI. Neither path
91
+ fabricates transfer percentages or bypasses confirmation and source guards.
66
92
 
67
93
  The isolated Desktop 2.2.6 host also has a native dialog-context defect: opening
68
94
  its command palette after a plugin dialog in a session can fail with
package/README.md CHANGED
@@ -303,29 +303,43 @@ contains independent TUI, server, RPC and GUI entries.
303
303
  the selected session, hides on Home and yields to native dialogs. Move, resize,
304
304
  reset and redock controls support keyboard input too. Both placements share
305
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.
306
308
  - **Navigator settings** opens native Settings with Global/Worktree scope,
307
309
  section controls, groups, trust, presets, portable/project profiles, About,
308
310
  release history and reviewed Bug reports. **Reload preferences** imports
309
311
  changes from other local Navigator instances explicitly.
312
+ - Reorder sections, Quick Actions, toolbar pins and button icons by dragging
313
+ their handles. With the keyboard, focus a handle, press Space, use Up/Down,
314
+ then press Space to drop or Escape to cancel. Icon changes remain drafts until saved.
310
315
  - Favorites, trust, account bindings, reset attempts and presets use the existing
311
316
  private preferences file and lock shared with local TUI instances. Only window
312
317
  placement lives in the native GUI store. Project profiles and configuration
313
318
  requests use the selected server, including remote servers.
314
319
  - Todo is native and read-only; chat owns edits. Legacy Navigator tasks remain a
315
- read-only archive. LSP and startup/Home interception are not exposed by this
320
+ read-only archive. Completed and cancelled rows use muted, struck-through text
321
+ and native-style status indicators. Search and tabs remain in Navigator because
322
+ the host does not expose an extension point inside its own Todo popover.
323
+ LSP and startup/Home interception are not exposed by this
316
324
  Desktop contract. Permissions opens native host Settings rather than toggling
317
325
  a simulated mode. Terminal fonts, corner masks and terminal shortcuts are not
318
326
  GUI settings; Desktop does not need a Nerd Font or the corner font.
319
327
  - Provider quotas retain verified account scope. Local Codex access requires a
320
328
  verified same-machine connection; a remote session never borrows its credentials
321
329
  or private binding. Banked resets always require separate confirmation.
330
+ Model and reasoning-effort selection stays in the native chat controls, not
331
+ the Navigator sidebar; quotas still follow the selected model.
332
+ - During a confirmed update, About shows the installation stage inline.
333
+ The TUI temporarily replaces the running-version label with progress.
334
+ Percentages require real byte totals; opaque native installers show an
335
+ indeterminate indicator instead.
322
336
 
323
337
  The candidate is tested as an npm-style tarball in the official checksum-verified
324
338
  Linux ARM64 Desktop package on Xvfb. Native macOS/Windows, browser Web and multiple
325
339
  live Desktop windows are not claimed as real-host verification targets. Local,
326
340
  remote and multi-consumer guards have separate synthetic contract tests.
327
341
  See [Host API boundaries](HOST_API.md) for the native command-palette limitation.
328
- The manual Prepare Release workflow generated and byte-verified all 27 GUI
342
+ The manual Prepare Release workflow generated and byte-verified all 31 GUI
329
343
  captures using the real Desktop renderer on a virtual display. The terminal
330
344
  gallery above is rendered separately through Ghostty.
331
345
 
@@ -333,6 +347,10 @@ gallery above is rendered separately through Ghostty.
333
347
 
334
348
  ![Desktop mini-window preserving the current Todo filter](screenshots/gui/14-desktop-mini-window.png)
335
349
 
350
+ ![Production Todo rows with four synthetic task states](screenshots/gui/30-desktop-todo-states.png)
351
+
352
+ ![Production update indicators with synthetic transfer and installation stages](screenshots/gui/31-desktop-update-stages.png)
353
+
336
354
  ![Desktop layout preview with a separate Apply action](screenshots/gui/07-desktop-layout-preview.png)
337
355
 
338
356
  See the [Desktop gallery](screenshots/README.md#experimental-desktop) for account
@@ -703,7 +721,10 @@ separate muted guidance.
703
721
 
704
722
  The header's **Banked Resets** button appears when credits or an unresolved attempt
705
723
  exist. It displays the provider's available count, optional credit
706
- details, statuses, and expiry. Selecting a credit first checks fresh eligibility
724
+ details, statuses, and expiry. In Desktop, dated credits show a shrinking
725
+ remaining-lifetime scale and time until expiry, calculated from the provider's
726
+ grant and expiry timestamps. Missing dates never produce a fabricated percentage;
727
+ expired credits cannot be selected for review. Selecting a credit first checks fresh eligibility
707
728
  and opens a separate confirmation tied to the current account and model. Cancel
708
729
  or Escape returns to the credit list without spending anything.
709
730