iclavue 10.4.6 → 10.4.7
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 +5 -5
- package/dist/clavue.js +1 -1
- package/dist/cli.js +126 -59
- package/dist/mao-command.js +1 -1
- package/dist/native/clavue-pager +0 -0
- package/dist/native/clavue-pager-darwin-arm64 +0 -0
- package/dist/native/manifest.json +2 -2
- package/dist/openai-responses-adapter.js +1 -1
- package/dist/provider-setup.js +1 -1
- package/docs/clavue-pager-parity-audit-2026-07-09.md +187 -0
- package/package.json +1 -1
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# Clavue Pager ↔ Ink parity audit (2026-07-09)
|
|
2
|
+
|
|
3
|
+
Multi-agent audit of the **native Journal Shell** (default UI) vs Ink REPL.
|
|
4
|
+
Goal: catch up on product-critical surfaces; innovate on interaction, not invent a second product.
|
|
5
|
+
|
|
6
|
+
**Status of this session’s code (local, not published):**
|
|
7
|
+
|
|
8
|
+
| Item | Status |
|
|
9
|
+
|------|--------|
|
|
10
|
+
| Compact ↔ tool fold (real `AppModel.compact`) | ✅ Done |
|
|
11
|
+
| Ctrl+, open `/settings` | ✅ Done |
|
|
12
|
+
| Always-allow list in `/settings` (list + revoke + clear) | ✅ Done |
|
|
13
|
+
| `session.prefs` a2p for compact/verbose | ✅ Done |
|
|
14
|
+
| streamlined tool start/end id bug | ✅ Fixed |
|
|
15
|
+
| tool.end `detail` for expand body | ✅ Partial (up to 4k) |
|
|
16
|
+
| **Ctrl+C cancel-then-quit (2s double)** | ✅ Done |
|
|
17
|
+
| **`/doctor` local diagnostics** | ✅ Done |
|
|
18
|
+
| **`/mcp` list + enable/disable** | ✅ Done |
|
|
19
|
+
| **`/memory` paths list** | ✅ Done |
|
|
20
|
+
| **`/team` list/check status** | ✅ Done |
|
|
21
|
+
| **`/permissions` expanded status** | ✅ Done |
|
|
22
|
+
| **`/login` `/logout` clear paths** | ✅ Done |
|
|
23
|
+
| **`/parallel` status + how-to** | ✅ Done |
|
|
24
|
+
| **`/plugin` list** | ✅ Done |
|
|
25
|
+
| **`/model` Grok panel picker** | ✅ Done |
|
|
26
|
+
| **`/copy` clipboard** | ✅ Done |
|
|
27
|
+
| **Shift+Enter multiline** | ✅ Done |
|
|
28
|
+
| **Permission cycle + trustedOps** | ✅ Done |
|
|
29
|
+
| **assistant.delta / thinking stream fidelity** | ✅ Improved |
|
|
30
|
+
| **complete.rs catalog honesty** | ✅ Aligned local |
|
|
31
|
+
| Full interactive wizards (mcp UI, plugin market, team dialog, parallel firepower UI) | 📋 Still ink / CLI deep |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## What already works well (do not regress)
|
|
36
|
+
|
|
37
|
+
| Area | Notes |
|
|
38
|
+
|------|--------|
|
|
39
|
+
| Prompt / Esc cancel | Works |
|
|
40
|
+
| ↑ history + locked input box | 10.4.6+ local |
|
|
41
|
+
| Shift+Tab mode (3-way) + y/a/n | Works |
|
|
42
|
+
| `/provider` Grok panel | Profile activate + doctor/validate |
|
|
43
|
+
| `/settings` Grok panel | Compact/verbose/mode/locale/always-allow |
|
|
44
|
+
| `/resume` picker | Works |
|
|
45
|
+
| `/goal` `/loop` `/compact` (agent NI) | Agent-forward |
|
|
46
|
+
| Parallel strip, outcome card, ctx header | Works |
|
|
47
|
+
| Locale-aware `/` catalog | Works |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## P0 — default product path broken in pager
|
|
52
|
+
|
|
53
|
+
| # | Gap | Severity | Direction |
|
|
54
|
+
|---|-----|----------|-----------|
|
|
55
|
+
| 1 | `/login` `/logout` | P0 | Text bridge or mini panel; cannot onboard in default UI |
|
|
56
|
+
| 2 | `/mcp` manage | P0 | List/enable/disable text or panel rows |
|
|
57
|
+
| 3 | `/plugin` marketplace | P0 | At least list + enable; full UI → ink honest |
|
|
58
|
+
| 4 | `/memory` editor | P0 | Open path + list files; edit may stay ink |
|
|
59
|
+
| 5 | `/team` dialog | P0 | Status text + list; dialog later |
|
|
60
|
+
| 6 | `/parallel` firepower | P0 | Status/ledger first; full orchestration ink-ok if honest |
|
|
61
|
+
| 7 | `/permissions` rules editor | P0 | Mode+always-allow done; rules summary + link |
|
|
62
|
+
| 8 | `/model` interactive picker | P0 | Panel of recent/models; meta+p |
|
|
63
|
+
| 9 | `/doctor` | P0 | Headless doctor text into journal/panel |
|
|
64
|
+
| 10 | Ctrl+C = hard quit | P0 | First Ctrl+C cancel turn; second quit |
|
|
65
|
+
| 11 | No image paste | P0 | Optional later; document gap |
|
|
66
|
+
| 12 | Real `assistant.delta` stream | P0 | Emitter in fromStreamJson / stream events |
|
|
67
|
+
| 13 | Thinking stream + real duration | P0 | No 500 hard cap only |
|
|
68
|
+
| 14 | Static `complete.rs` lies (`agent` for ink-only) | P0 | Align kinds with `buildSlashCatalog` |
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## P1 — important workflows thin or wrong
|
|
73
|
+
|
|
74
|
+
| # | Gap | Direction |
|
|
75
|
+
|---|-----|-----------|
|
|
76
|
+
| 1 | Permission cycle missing bypass/trusted | Expand cycle or label “advanced via /mode” |
|
|
77
|
+
| 2 | Multiline prompt (Shift+Enter) | Input mode |
|
|
78
|
+
| 3 | `/copy` `/export` clipboard | OSC52 / pbcopy |
|
|
79
|
+
| 4 | Markdown tables | markdown.rs |
|
|
80
|
+
| 5 | Ctrl+O semantic ≠ Ink (transcript vs verbose) | Keep verbose; document; optional transcript mode |
|
|
81
|
+
| 6 | meta+o fast / meta+t thinking | Bridge toggles |
|
|
82
|
+
| 7 | `/cost` `/usage` `/context` deep | Richer snapshots |
|
|
83
|
+
| 8 | `/diff` beyond --stat | File list + open |
|
|
84
|
+
| 9 | Provider create/edit in-pager | Subset or deep-link CLI |
|
|
85
|
+
| 10 | Theme/editorMode affect pager | Wire or mark Ink-only in panel |
|
|
86
|
+
| 11 | Hydrate thinking/outcome denser | sessionHydrate |
|
|
87
|
+
| 12 | Multi-pending permission queue UI | model + duplex |
|
|
88
|
+
| 13 | External editor Ctrl+G | optional |
|
|
89
|
+
| 14 | Protocol doc drift | Update clavue-ui-v1.md |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## P2 — secondary
|
|
94
|
+
|
|
95
|
+
Stickers, install wizards, remote QR, voice, message actions, bash mode, statusline setup, etc. Honest ink stubs OK if catalog kind is `ink`.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Implementation priority (suggested sprints)
|
|
100
|
+
|
|
101
|
+
### Sprint A — Trust & density
|
|
102
|
+
- [x] Compact real fold
|
|
103
|
+
- [x] Ctrl+, settings
|
|
104
|
+
- [x] Always-allow management
|
|
105
|
+
- [x] tool detail + streamlined id fix
|
|
106
|
+
- [x] Ctrl+C interrupt-then-quit
|
|
107
|
+
- [x] complete.rs kind honesty
|
|
108
|
+
|
|
109
|
+
### Sprint B — Auth & tools surface
|
|
110
|
+
- [x] `/doctor` text bridge
|
|
111
|
+
- [x] `/mcp` list + enable/disable
|
|
112
|
+
- [x] `/login` / `/logout` clear paths
|
|
113
|
+
- [x] `/model` panel picker
|
|
114
|
+
- [x] `/memory` paths · `/team` status · `/plugin` list · `/parallel` status
|
|
115
|
+
|
|
116
|
+
### Sprint C — Stream fidelity
|
|
117
|
+
- [x] assistant.delta (+ content_block_delta)
|
|
118
|
+
- [x] thinking larger cap + duration ms
|
|
119
|
+
- [x] Multiline Shift/Alt+Enter + `/copy`
|
|
120
|
+
|
|
121
|
+
### Sprint D — Remaining deep UIs
|
|
122
|
+
- [x] MCP panel (list/toggle enable)
|
|
123
|
+
- [x] Permissions panel (mode + always-allow + rule counts)
|
|
124
|
+
- [x] Markdown GFM tables in journal
|
|
125
|
+
- [x] Theme light/dark → pager palette (`ui.theme`)
|
|
126
|
+
- [x] Parallel/team richer status text
|
|
127
|
+
- [x] Multi-pending permission queue (FIFO modal)
|
|
128
|
+
- [x] Richer `/cost` `/usage` `/context` (session rollup + bar)
|
|
129
|
+
- [x] Richer `/diff` (name-status + untracked + patch preview)
|
|
130
|
+
- [x] Alt+T thinking · Alt+O fast model · bracketed paste
|
|
131
|
+
- [x] Image path paste → `@path` token (binary paste still terminal-limited)
|
|
132
|
+
- [x] Provider create/edit CLI deep-link rows in panel
|
|
133
|
+
- [ ] Full MCP/plugin/team/parallel **wizards** (still CLI/Ink for create/edit UI)
|
|
134
|
+
- [ ] Raw image binary paste / screenshot buffer (OS/terminal dependent)
|
|
135
|
+
|
|
136
|
+
### Sprint E — polish (this wave)
|
|
137
|
+
- [x] Permission queue UI (+N waiting)
|
|
138
|
+
- [x] sessionStats → slash bridges
|
|
139
|
+
- [x] silent panel.action for hotkeys
|
|
140
|
+
|
|
141
|
+
### Sprint F — review fixes (migration smoothness)
|
|
142
|
+
- [x] `/cost` delta from cumulative `total_cost_usd` / usage (no triangular double-count)
|
|
143
|
+
- [x] `--include-partial-messages` on duplex + live attach
|
|
144
|
+
- [x] Stable `assistant.delta`/`final` blockId (live stream pin)
|
|
145
|
+
- [x] Thinking / auto-compact toggle restarts agent
|
|
146
|
+
- [x] Panel open no longer clears `running`
|
|
147
|
+
- [x] Editor mode honest (Ink-only notice)
|
|
148
|
+
- [x] Cancel clears tools/permissions ledger
|
|
149
|
+
- [x] Alt+O no cross-provider model invent
|
|
150
|
+
|
|
151
|
+
### Sprint G — migrate onboarding
|
|
152
|
+
- [x] Rich `/help` `/keys` `/help migrate` `/whats-new`
|
|
153
|
+
- [x] `/theme` local · `/export` to `.clavue/exports` or clipboard
|
|
154
|
+
- [x] Session migrate tip notice + changelog lines
|
|
155
|
+
- [x] Settings: duration toggle · keys/migrate/classic Ink rows
|
|
156
|
+
- [x] Catalog honesty for theme/export/keybindings/release-notes
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Design rules (from Grok settings + Clavue)
|
|
161
|
+
|
|
162
|
+
1. **Panels for switch/list**, not full wizards (provider create stays CLI).
|
|
163
|
+
2. **Three-way sync**: header · panel · slash/key.
|
|
164
|
+
3. **Catalog honesty**: never mark ink-only as `agent`.
|
|
165
|
+
4. **Compact** = fold noise; **verbose** = expand detail; independent.
|
|
166
|
+
5. **No publish without explicit user confirm.**
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## File anchors
|
|
171
|
+
|
|
172
|
+
- Pager: `pager/src/main.rs`, `pager/src/model.rs`, `pager/src/complete.rs`
|
|
173
|
+
- Bridge: `src/uiProtocol/slashBridge.ts`, `duplexSession.ts`, `settingsPanel.ts`, `fromStreamJson.ts`
|
|
174
|
+
- Registry: `src/commands.ts`
|
|
175
|
+
- Ink keys: `src/keybindings/defaultBindings.ts`
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## How to try current local work (no npm publish)
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
npm install -g /Users/lu/codebase/claude-code-source
|
|
183
|
+
clavue
|
|
184
|
+
# Ctrl+, or /settings
|
|
185
|
+
# Compact on/off → tool grouping changes
|
|
186
|
+
# Permission a → then /settings → Always-allow list → revoke
|
|
187
|
+
```
|
package/package.json
CHANGED