iclavue 10.5.0 → 10.5.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.
@@ -0,0 +1,128 @@
1
+ # Clavue 10.5.1 Reliability Retro — multi-agent audit
2
+
3
+ > Date: 2026-07-11
4
+ > Agents: explore (plan-vs-applied), explore (binary wiring), general review, formal [reviewer]
5
+ > Artifacts: `/var/folders/.../grok-review-8fd406fe.md` + this doc
6
+
7
+ ## Verdict
8
+
9
+ | Layer | Status |
10
+ |-------|--------|
11
+ | Core interaction code (viewport, sticky band, prompt_sel, Ctrl+J) | **Applied** |
12
+ | Reliability blockers found by review | **Fixed in tree this session** |
13
+ | npm **complete reliable ship** | **Not yet** — uncommitted; global shell still `iclavue@10.5.0`; multi-OS binary gap; release gate soft on pager |
14
+
15
+ **Ship posture:** ship-with-fixes → blockers below fixed in working tree; still need commit + `check:release` + publish + optional multi-triple pack.
16
+
17
+ ---
18
+
19
+ ## Designed / configured but not fully applied (before this fix pass)
20
+
21
+ ### CRITICAL / HIGH (user-visible or ship risk)
22
+
23
+ | ID | Finding | Status after fix pass |
24
+ |----|---------|------------------------|
25
+ | C1 | Hard `\n` drafts blocked ↑ history via `wants_prompt_history_keys` | **Fixed** — no blanket `\n` deny |
26
+ | C2 | Soft-wrap width split-brain (`term_cols-6` vs `width-4`) | **Fixed** — `prompt_content_wrap_width` single source |
27
+ | C3 | Prompt drag release outside dock left selection stuck / no copy | **Fixed** — `finalize_prompt_drag` |
28
+ | C4 | Release gate does not hard-require staged native pager | **Open** (process) |
29
+ | C5 | Global npm 10.5.0 + hot-replace binary only; tree 10.5.1 uncommitted | **Open** (publish) |
30
+ | H1 | `keys.rs` / `/keys` missing Ctrl+J, soft-wrap ↑↓, prompt select | **Fixed** |
31
+ | H2 | Contract “prompt selection not supported” contradicted code | **Fixed** |
32
+ | H3 | Home/End buffer-wide vs plan “logical line” | **Open** (product decision) |
33
+ | H4 | Permission modal can cover prompt | **Open** |
34
+ | H5 | Node tests mostly source greps, not handle_key | **Open** (partial: more unit tests) |
35
+ | H6 | Multi-OS: npm ships host triple only; other platforms → Ink | **Open** (packaging) |
36
+ | H7 | Version matrix noise: cargo 0.1.0, p2a hello 0.2.1, pagerVersion 0.1.0 | **Open** |
37
+
38
+ ### MEDIUM / LOW
39
+
40
+ - Sticky model budget 5 vs layout paint ≤3 (overflow can vanish)
41
+ - Selected body `usize::MAX` paint risk on huge tools
42
+ - Dead mouse-capture “native select” comments (cleaned)
43
+ - No 10.5.1 release-notes / website pack
44
+ - PTY/ANSI visual matrix still optional
45
+ - Plan DoD checkboxes still claim open release items
46
+
47
+ ---
48
+
49
+ ## What **is** solidly applied
50
+
51
+ - PromptViewport soft-wrap + above/below banners
52
+ - Bottom-first layout; sticky Tier-0 band outside journal scroll
53
+ - App-level prompt select + highlight + Ctrl+Y
54
+ - Soft-wrap ↑↓ + Ctrl+J newline
55
+ - TurnPhase / FlightSnapshot progress strip
56
+ - Tier-0 never hidden by compact
57
+ - Needs Input one-Enter → `/parallel needs`
58
+ - Ctrl+C / Esc ladders
59
+ - CJK/narrow caps; paste spill to file
60
+ - Binary resolution: package `dist/native` preferred over cwd
61
+
62
+ ---
63
+
64
+ ## Runtime version matrix (this machine)
65
+
66
+ | Surface | Value |
67
+ |---------|-------|
68
+ | Working tree `package.json` | **10.5.1** |
69
+ | Published npm (global) | **10.5.0** (+ hot-replaced pager binary) |
70
+ | `dist/native/manifest.json` | version 10.5.1, pagerVersion 0.1.0, darwin-arm64 |
71
+ | Cargo crate | 0.1.0 |
72
+ | Protocol | ui/v1 |
73
+
74
+ Hot-replace works: overwrite `…/iclavue/dist/native/clavue-pager*`. No package↔binary version gate.
75
+
76
+ ---
77
+
78
+ ## Fix pass completed this session (post-review)
79
+
80
+ 1. `prompt_content_wrap_width` — layout / paint / hit / caret / ↑↓
81
+ 2. Multi-line history fallthrough
82
+ 3. Prompt drag finalize outside dock; clear prompt_sel on journal click
83
+ 4. `keys.rs` + contract out-of-scope
84
+ 5. `kill_to_end` / `kill_word_before` clear selection
85
+ 6. Caret-loop simplified
86
+ 7. Unit tests: wrap parity, multi-line history
87
+ 8. `cargo test` **43/43**; staged + global binary updated
88
+
89
+ ---
90
+
91
+ ## Remaining checklist for “完整可靠” 10.5.1
92
+
93
+ ### Must before publish
94
+
95
+ - [ ] Commit all sources + staged `dist/native`
96
+ - [ ] Add `docs/clavue-v10.5.1-release-notes.md` (UI reliability bullet list)
97
+ - [ ] `npm run check:release` green (consider hard-adding `pager:stage` + `cargo test`)
98
+ - [ ] Explicit **确认发布** → `npm publish`
99
+ - [ ] Post: `npx -y iclavue@10.5.1 --version`
100
+ - [ ] Manual TTY smoke 80×24 + 60×20: sticky, multi-line, select/copy, Ctrl+J
101
+
102
+ ### Should (10.5.1 or 10.5.2)
103
+
104
+ - [ ] Logical-line Home/End (or document buffer-wide)
105
+ - [ ] Permission modal confined to journal band
106
+ - [ ] Selected body paint soft-cap
107
+ - [ ] Sticky overflow `+N more` when layout caps strip
108
+ - [ ] Multi-triple native binaries in npm (or documented Ink fallback)
109
+ - [ ] Align pagerVersion / cargo hello with package version
110
+
111
+ ### Optional
112
+
113
+ - [ ] PTY golden matrix
114
+ - [ ] Website VERSION deploy
115
+ - [ ] Extract pure key-dispatch for integration tests
116
+
117
+ ---
118
+
119
+ ## Agent consensus
120
+
121
+ | Agent | One-line |
122
+ |-------|----------|
123
+ | Explore plan-vs-applied | Core wired; history + release gate + help drift main gaps |
124
+ | Explore binary wiring | Resolution OK; multi-OS + soft gate + version chaos block “complete” |
125
+ | General review | No ship until wrap-width + multi-line history fixed |
126
+ | Formal reviewer | **ship-with-fixes**; same top blockers |
127
+
128
+ After this fix pass, code-level ship-with-fixes blockers are addressed; **process/publish** remains.
@@ -65,15 +65,19 @@ Also: **Ctrl+U** clears draft anytime (kill line).
65
65
  |-----|--------|
66
66
  | Printable | Insert at caret |
67
67
  | Backspace / Delete | Delete before / after caret |
68
- | ← → Home End | Move caret |
69
- | Ctrl+A / Ctrl+E | Line start / end |
68
+ | ← → | Move caret by char |
69
+ | Home / End · Ctrl+A / Ctrl+E | **Logical line** start / end (`\n` delimited) |
70
70
  | Ctrl+U | Clear entire draft |
71
71
  | Ctrl+K | Kill caret → end |
72
72
  | Ctrl+W | Kill word before caret |
73
73
  | Ctrl+D | Delete forward |
74
- | Shift/Alt+Enter | Newline (no send) |
74
+ | Ctrl+J / Ctrl+Enter / Shift+Enter / Alt+Enter | Newline (no send). **Ctrl+J** is the reliable path on macOS terminals |
75
75
  | Enter | Send (or run local `/`); **empty** + Needs Input open → `/parallel needs` panel |
76
- | ↑ ↓ | Prompt history (if not in `/` menu) |
76
+ | ↑ ↓ | Move caret by **soft-wrap display row** when draft has >1 display row; else history (↑ from top) |
77
+ | Ctrl+Y (prompt focus) | Copy **selection** if any, else entire draft |
78
+ | Mouse drag on prompt | **App-level** select → release copies (native select cannot survive TUI redraw) |
79
+ | Tab | Toggle prompt ↔ scrollback |
80
+ | ↑ ↓ (history) | Prompt history only when caret cannot move within draft display rows |
77
81
  | Ctrl+P / Ctrl+N | Prompt history (always) |
78
82
  | Ctrl+R | Reverse history search (match draft · again = older) |
79
83
  | Ctrl+S | Resume session picker |
@@ -105,6 +109,7 @@ Also: **Ctrl+U** clears draft anytime (kill line).
105
109
  | Enter (other) | Return focus to prompt |
106
110
  | y | Copy selected block body |
107
111
  | Y | Copy selected block summary |
112
+ | Ctrl+Y | Copy full retained transcript |
108
113
  | Type / Backspace | Return to prompt + edit |
109
114
  | Alt+↑↓ | From prompt: enter scrollback (one step) |
110
115
  | Shift+↑↓ (from prompt) | Enter scrollback + jump user turn |
@@ -195,7 +200,7 @@ Shell paints; engine executes. Switching shell does not change tools/models/rout
195
200
  |------|------|
196
201
  | Full vim mode in native pager | `/ink` → classic shell · or future opt-in |
197
202
  | Fullscreen block viewer | Later |
198
- | Multi-cursor / selection in prompt | Not supported |
203
+ | Multi-cursor / non-contiguous selection in prompt | Not supported (single-range drag select + Ctrl+Y **is** supported) |
199
204
  | True binary image paste without path | OS/terminal limited; use file + `@path` |
200
205
 
201
206
  ---
@@ -38,3 +38,12 @@ date version clavue_measured_pct clavue_total_pct claim_ok provider_matrix eval_
38
38
  2026-07-11 10.5.0 96.7 94.3 1 - - - - - clavue
39
39
  2026-07-11 10.5.0 96.7 94.3 1 - - - - - clavue
40
40
  2026-07-11 10.5.0 96.7 94.3 1 - - - - - clavue
41
+ 2026-07-11 10.5.0 96.7 94.3 1 - - - - - clavue
42
+ 2026-07-11 10.5.0 96.7 94.3 1 - - - - - clavue
43
+ 2026-07-11 10.5.0 96.7 94.3 1 - - - - - clavue
44
+ 2026-07-11 10.5.1 96.7 94.3 1 - - - - - clavue
45
+ 2026-07-11 10.5.1 96.7 94.3 1 - - - - - clavue
46
+ 2026-07-11 10.5.1 96.7 94.3 1 - - - - - clavue
47
+ 2026-07-11 10.5.2 96.7 94.3 1 - - - - - clavue
48
+ 2026-07-11 10.5.2 96.7 94.3 1 - - - - - clavue
49
+ 2026-07-11 10.5.2 96.7 94.3 1 - - - - - clavue
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iclavue",
3
- "version": "10.5.0",
3
+ "version": "10.5.2",
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",