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.
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iclavue",
3
- "version": "10.4.6",
3
+ "version": "10.4.7",
4
4
  "description": "Clavue: execution-first AI coding CLI with direct repo tools, provider routing, native workflows, MCP integration, and long-session recovery",
5
5
  "keywords": [
6
6
  "iclavue",