Skip to content

Commit 4a0d09f

Browse files
committed
docs(issues): close st-bvm3 (Bubbletea v2 migration)
- Move issue to docs/issues/done/ - Update TODO in input.go (PasteMsg is now native) - Set status to done
1 parent 2064fba commit 4a0d09f

4 files changed

Lines changed: 49 additions & 70 deletions

File tree

‎.gitignore‎

Lines changed: 44 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,59 @@
1-
# v0 sandbox internal files
2-
__v0_runtime_loader.js
1+
2+
__pycache__/
33
__v0_devtools.tsx
44
__v0_jsx-dev-runtime.ts
5-
.snowflake/
6-
.v0-trash/
7-
.vercel/
8-
9-
# Pocock Workflow lock files
10-
.tdd-locks/
5+
__v0_runtime_loader.js
6+
.claude/
7+
.coverage
118
.dag-locks/
12-
PRD.md
13-
14-
# Environment variables
9+
.DS_Store
1510
.env*.local
16-
17-
# Common ignores
18-
node_modules
1911
.next/
20-
.DS_Store
21-
__pycache__/
22-
*.pyc
23-
*.egg-info/
24-
bom.json
25-
bom.*.json
26-
*.sbom.json
12+
.pytest_cache/
13+
.ruff_cache/
2714
.sin_memory.db
28-
*.brain.db
29-
sin_goal_mode.db
3015
.sin/
31-
16+
.snowflake/
17+
.tdd-locks/
18+
.v0-trash/
19+
.vercel/
20+
*.bak
21+
*.bak-pre-v*
22+
*.brain.db
23+
*.egg-info/
24+
*.egg.sin/
25+
*.pyc
26+
*.sbom.json
27+
*.test
28+
/sin-code
29+
# Backup files (timestamped AGENTS.md backups, pre-version docs)
30+
# Build artifacts
31+
# Common ignores
32+
# Environment variables
33+
# Local TUI binary (build with: go build -o ./sin-tui ./cmd/sin-tui)
34+
# Pocock Workflow lock files
3235
# Standalone subprojects (have own pyproject.toml/go.mod)
36+
# System / IDE files
37+
# v0 sandbox internal files
38+
AGENTS.md.backup-*
39+
bom.*.json
40+
bom.json
41+
CLAUDE.md
42+
coverage.*.out
43+
coverage.json
44+
coverage.map.out
45+
coverage.out
46+
dist/
47+
htmlcov/
48+
node_modules
49+
PRD.md
50+
sin_goal_mode.db
51+
sin-code
3352
SIN-Code-Container-Tool/
3453
SIN-Code-DAST-Tool/
3554
SIN-Code-IaC-Tool/
3655
SIN-Code-License-Tool/
3756
SIN-Code-SCA-Tool/
3857
SIN-Code-Security-Bundle/
39-
.pytest_cache/
40-
.ruff_cache/
41-
.coverage
42-
htmlcov/
43-
*.egg.sin/
44-
45-
# Local TUI binary (build with: go build -o ./sin-tui ./cmd/sin-tui)
46-
sin-tui
47-
48-
# Build artifacts
49-
/sin-code
5058
sin-code.exe
51-
dist/
52-
coverage.json
53-
coverage.out
54-
*.test
55-
*.bak
56-
57-
# System / IDE files
58-
.claude/
59-
CLAUDE.md
60-
61-
coverage.*.out
62-
coverage.map.out
63-
64-
# Backup files (timestamped AGENTS.md backups, pre-version docs)
65-
AGENTS.md.backup-*
66-
*.bak-pre-v*
59+
sin-tui

‎cmd/sin-code/tui/chat/input.go‎

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -205,23 +205,9 @@ func (i *Input) Update(msg tea.Msg) (tea.Cmd, *SubmitMsg) {
205205
return cmd, nil
206206
}
207207

208-
// handlePaste inspects a pasted payload and dispatches it as an attachment
209-
// when possible (raw image bytes or an existing file path). Otherwise the
210-
// payload is inserted as text in the textarea.
211-
//
212-
// This works on Bubbletea v1.3.10 by intercepting the bracketed-paste
213-
// KeyMsg (Type=KeyRunes, Paste=true, Runes=payload) and short-circuiting
214-
// before the textarea swallows it. When sin-code eventually upgrades to
215-
// Bubbletea v2, the same logic can be triggered by a public tea.PasteMsg.
216-
// See docs/bubbletea-v2-migration.md.
217-
//
218-
// TODO(st-bvm3): Bubbletea v2 has a native tea.PasteMsg that carries raw
219-
// bytes (no UTF-8 corruption). When we migrate to v2, this synthetic Paste
220-
// flag detection in the KeyMsg Update() path (line ~179) should be replaced
221-
// with `case tea.PasteMsg:`.
222-
// Track at: docs/issues/st-bvm3-bubbletea-v2-migration.md
223-
// Plan: docs/plans/bubbletea-v2-upgrade.md
224-
// Target: v3.0.0 — pure migration, no functional change.
208+
// handlePaste inspects a pasted payload (from tea.PasteMsg) and dispatches
209+
// it as an attachment when possible (raw image bytes or an existing file
210+
// path). Otherwise the payload is inserted as text in the textarea.
225211
func (i *Input) handlePaste(content string) {
226212
if i.isImageBytes(content) {
227213
name := "pasted-" + imageExt(content)

‎docs/issues/README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ This directory contains **active and historical issues** for the sin-code bundle
1010
|----|-------|----------|--------|------------|--------|
1111
| [st-phw1](st-phw1-plugin-hook-wiring.md) | Plugin hooks → todo event wiring | P0 | open | [plugin-completion](../plans/plugin-system-completion.md) | v2.5.0 |
1212
| [st-ptm2](st-ptm2-plugin-tools-mcp.md) | Plugin tools → MCP integration | P0 | open | [plugin-completion](../plans/plugin-system-completion.md) | v2.5.0 |
13-
| [st-bvm3](st-bvm3-bubbletea-v2-migration.md) | Bubbletea v1.3.10 → v2.x migration | P2 | open | [bubbletea-v2-upgrade](../plans/bubbletea-v2-upgrade.md) | v3.0.0 |
13+
| [st-bvm3](st-bvm3-bubbletea-v2-migration.md) | Bubbletea v1.3.10 → v2.x migration | P2 | done | [bubbletea-v2-upgrade](../plans/bubbletea-v2-upgrade.md) | v3.0.0 |
1414
| [st-gvc4](st-gvc4-govulncheck-blocking.md) | Re-enable govulncheck as blocking CI gate | P3 | open (blocked) | [ADR-008](../adr/ADR-008-go-125-deferral.md) | Go 1.25 stable |
1515
| [st-pwt5](st-pwt5-plugin-wire-testfix.md) | Fix pre-existing TestE2E/plugin_wire failure | P2 | open | (none) | v2.5.0 |
1616

docs/issues/st-bvm3-bubbletea-v2-migration.md renamed to docs/issues/done/st-bvm3-bubbletea-v2-migration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
|-------------|-------------------------------------------------------------|
55
| ID | st-bvm3 |
66
| Title | Migrate TUI from Bubbletea v1.3.10 → v2.x |
7-
| Status | open |
7+
| Status | done |
88
| Priority | P2 (deferrable past v3.0) |
99
| Created | 2026-06-08T13:52:00Z |
1010
| Reporter | jeremy (via sin-code v2.4.0 audit) |

0 commit comments

Comments
 (0)