VS Code 0.1.4: live alternative commits undo one character instead of the whole addition
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- rust, typescript, vscode
- Lĩnh vực
- devtools
Hướng nghiên cứu
The live proposals are applied one WorkspaceEdit at a time in the VS Code host adapter at vs-code-terraphim-it/src/alternativeControl.ts (around line 113), so native Undo sees each keystroke-level change. Start by reading that adapter and the browser reference test tests/web_alt_panel_live_undo.rs, then write a failing actual-host regression that types sequentially, commits with Enter, and checks that one Undo restores the prior source. Done means one native Undo and one Redo cover each committed addition, with Escape cancellation leaving no partial synonym.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Released failure
Terraphim It 0.1.4 (publisher applied-knowledge-systems), installed from the released VSIX, breaks the existing R-4.3 grouped-undo contract in the actual VS Code custom editor. Reproduced in VS Code 1.126.0, Linux ARM64 with sequential native keyboard input; this is not a mocked host or a direct replacement of the input value.
Release source: 3e0fe24fb57614f96c0907359105c52fa3c615aa. VSIX SHA-256: f29d23a37683127c1050002fee83045027f9dda5642f892eaf7d2b1fbc8b0af5. Bundled editor: v0.1.0-rc.2, source 25ad3b16a1bebab6edd767a7efd1ace7b25c82ad.
Reproduction
- Open a fresh Markdown document containing
Pass me a paperclip. Drop this.plus a second paragraph in Alternative Control. - Select
paperclip, open the alternatives panel, typeerasersequentially into New alternative, press Enter and save. - Type
thumbtacksequentially into New alternative, press Enter and save. - Close the panel with Escape, then press Ctrl+Z once and save after the visible update settles.
Expected: Pass me an eraser. Drop this. and exactly the pre-thumbtack annotation state, in one native undo operation.
Actual saved body: Pass me a thumbtac. Drop this.. The annotation still contains the third alternative, now thumbtac, active at index 2. Ctrl+Shift+Z restores the complete thumbtack document byte-for-byte.
Saved-output SHA-256:
- After eraser:
7c221d598f774f64db42f1bb575147c9c4dfb70e285624ba9de5d0caf582e610. - After thumbtack:
51a591d2764c8e09f50a10dce3c60338523fc8b43b82e79a6303d90c24f69a6b. - Redo: the same thumbtack hash above.
Requirement and source cause
The editor traceability R-4.3 and real browser regression require the whole typed addition to be one undo step on Enter/leaving. Historical editor #106 implemented this for the browser; it does not qualify native VS Code history.
The released host adapter applies each live proposal using a separate WorkspaceEdit. The shared panel folds its own local surface history, while the VS Code adapter routes Undo to native history. The local fold therefore cannot merge the edits already accepted by VS Code.
Acceptance
- Add a failing actual-host regression before changing production behavior; preserve sequential typing and saved body plus annotations.
- Enter, blur, tab/panel close each commit one complete typed addition; one native Undo restores exact prior source, one Redo restores exact committed source.
- Escape/empty-input cancellation restores the pre-addition state without retaining a partial synonym; include the observed related cancellation case in regression investigation.
- Preserve native Save/Save All/autosave, crash/reload recovery, stale external edits and split-view safety. Do not trade these for buffering without real saved-output proof.
- Reuse existing Rust document/synonym engine and supported public VS Code APIs; no private history API, repeated-Undo workaround, or local-only history presented as native history.
- Requalify a new immutable released VSIX before closing.
Duplicate search in this repository for undo, alternative history, and "Alternative Control" found no matching defect on 15 October 2026. No release change or fix is claimed here.
- Ngôn ngữ chính
- Rust
- Star
- 86
- Fork
- 5
- Merge trung bình
- 3 giờ 2 phút
- Pull request đã merge (30 ngày)
- 31
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của terraphim/terraphim-ai
-
Bad documentation for end userĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
terraphim/terraphim-ai#1005 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
terraphim_rlm: require a per-sub-result verification plan (recheck / control / independent route)Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
terraphim/terraphim-ai#969 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
terraphim/terraphim-ai#968 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
terraphim/terraphim-ai#967 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
terraphim/terraphim-ai#966 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của terraphim/terraphim-ai
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
could docs good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày
-
README em inglêsĐang mởgood first issue help wanted priority:p2 type:docs
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
lucacasanova/homedeck#122 ·
-
needs-triage
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
bherbruck/solvecraft#11729 · 1 bình luận · 1 reaction ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày