opencode-ghost 0.2.4 → 0.2.5

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
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.2.5] - 2026-09-25
11
+
12
+ ### Changed
13
+
14
+ - Slash-command argument hints are dimmed at the same opacity as every other
15
+ ghost; they keep the theme accent hue but no longer appear brighter than the
16
+ next-message and history ghosts.
10
17
  ## [0.2.4] - 2026-09-25
11
18
 
12
19
  ### Fixed
@@ -98,7 +105,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
98
105
  - Options for `model`, `acceptKeys`, `maxChars`, `idleDelayMs`,
99
106
  `recentMessages` and `system`.
100
107
 
101
- [Unreleased]: https://github.com/ozandogrultan/opencode-ghost/compare/v0.2.4...HEAD
108
+ [Unreleased]: https://github.com/ozandogrultan/opencode-ghost/compare/v0.2.5...HEAD
109
+ [0.2.5]: https://github.com/ozandogrultan/opencode-ghost/compare/v0.2.4...v0.2.5
102
110
  [0.2.4]: https://github.com/ozandogrultan/opencode-ghost/compare/v0.2.3...v0.2.4
103
111
  [0.2.3]: https://github.com/ozandogrultan/opencode-ghost/compare/v0.2.2...v0.2.3
104
112
  [0.2.2]: https://github.com/ozandogrultan/opencode-ghost/compare/v0.2.1...v0.2.2
package/README.md CHANGED
@@ -28,11 +28,10 @@ dimmed ghost text you accept with <kbd>Tab</kbd> (or <kbd>→</kbd>).
28
28
  message you already sent in the same session, the rest of it is ghosted in
29
29
  the box as well; Tab pulls the full line back. Also purely local.
30
30
  - **Distinct ghost styling.** Slash-command ghosts use the theme accent color;
31
- all other ghosts (history completion, next-message suggestion) are dimmed so
32
- they cannot be mistaken for typed text. A next-message suggestion that is
33
- wider than the prompt wraps onto extra rows and grows the prompt box (up to
34
- five rows) so it stays fully readable; other ghosts are clipped to the box and
35
- never spill past it.
31
+ every ghost is dimmed so it cannot be mistaken for typed text. A
32
+ next-message suggestion that is wider than the prompt wraps onto extra rows
33
+ and grows the prompt box (up to five rows) so it stays fully readable; other
34
+ ghosts are clipped to the box and never spill past it.
36
35
  - **`/suggest` toggles it.** State is stored in the plugin KV.
37
36
 
38
37
  ## Requirements
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-ghost",
3
- "version": "0.2.4",
3
+ "version": "0.2.5",
4
4
  "description": "Claude Code-style next-prompt suggestions in the opencode TUI, shown as dimmed ghost text and accepted with Tab. An opencode plugin.",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/src/tui.tsx CHANGED
@@ -21,6 +21,9 @@ const MAX_TRANSCRIPT_CHARS = 6000
21
21
  // this many rows; longer text is clipped. The host caps its editor at >= 6 rows
22
22
  // by default, so 5 stays inside that ceiling.
23
23
  const MAX_GHOST_LINES = 5
24
+ // Every ghost is drawn at this opacity so it always reads as a suggestion, not
25
+ // typed text. Slash-command ghosts keep the accent hue but are dimmed too.
26
+ const GHOST_OPACITY = 0.6
24
27
  const ENABLED_KEY = "ghost.enabled"
25
28
  const MODEL_KEY = "ghost.model"
26
29
 
@@ -493,11 +496,10 @@ const tui: TuiPlugin = async (api, rawOptions) => {
493
496
  let display = ""
494
497
  let insert = ""
495
498
  let wrap = false
496
- // Slash-command completions are tinted like commands and kept at full
497
- // strength; every other ghost (history, next-message suggestion) is dimmed
499
+ // Slash-command completions are tinted like commands; every ghost is dimmed
498
500
  // so it cannot be mistaken for typed text.
499
501
  const color = isSlash ? api.theme.current.accent : api.theme.current.textMuted
500
- const opacity = isSlash ? 1 : 0.6
502
+ const opacity = GHOST_OPACITY
501
503
  if (found) {
502
504
  const args = "args" in found ? found.args : undefined
503
505
  insert = found.insert ?? ""