@saifymatteo/pi-x-ide 0.0.0-stage → 1.20.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.
- package/CHANGELOG.md +328 -0
- package/CONTRIBUTING.md +119 -0
- package/CONTRIBUTING.zh-CN.md +106 -0
- package/LICENSE +201 -0
- package/README.md +33 -2
- package/README.zh-CN.md +34 -0
- package/RELEASE.md +213 -0
- package/config.example.json +9 -0
- package/dist/src/pi/chunks/chunk-4RHJAL4S.js +200 -0
- package/dist/src/pi/chunks/chunk-UUXVCTOS.js +819 -0
- package/dist/src/pi/chunks/config-ui-LO3DVQFC.js +8073 -0
- package/dist/src/pi/chunks/runtime-services-BVQBAAWT.js +19569 -0
- package/dist/src/pi/commands.js +126 -0
- package/dist/src/pi/config-ui.js +127 -0
- package/dist/src/pi/connection.js +237 -0
- package/dist/src/pi/context.js +30 -0
- package/dist/src/pi/diagnostic-renderer.js +326 -0
- package/dist/src/pi/diagnostic-types.js +1 -0
- package/dist/src/pi/diagnostics.js +104 -0
- package/dist/src/pi/discovery.js +135 -0
- package/dist/src/pi/effect-boundary.js +5 -0
- package/dist/src/pi/ide-host.js +68 -0
- package/dist/src/pi/index.js +636 -0
- package/dist/src/pi/install.js +308 -0
- package/dist/src/pi/reconnect.js +57 -0
- package/dist/src/pi/runtime-loader.js +38 -0
- package/dist/src/pi/runtime-services.js +356 -0
- package/dist/src/pi/safety.js +61 -0
- package/dist/src/pi/selection.js +18 -0
- package/dist/src/pi/state.js +13 -0
- package/dist/src/pi/ui.js +304 -0
- package/dist/src/pi/zed.js +409 -0
- package/dist/src/shared/config-options.js +45 -0
- package/dist/src/shared/config.js +183 -0
- package/dist/src/shared/display-width.js +99 -0
- package/dist/src/shared/effect-errors.js +36 -0
- package/dist/src/shared/effect-runtime.js +36 -0
- package/dist/src/shared/effect-schema.js +120 -0
- package/dist/src/shared/errors.js +48 -0
- package/dist/src/shared/format.js +92 -0
- package/dist/src/shared/ide-server.js +167 -0
- package/dist/src/shared/jsonrpc-guard.js +12 -0
- package/dist/src/shared/lock-file-heartbeat.js +58 -0
- package/dist/src/shared/lock-file.js +50 -0
- package/dist/src/shared/paths.js +79 -0
- package/dist/src/shared/platform.js +57 -0
- package/dist/src/shared/protocol.js +3 -0
- package/dist/src/shared/schema.js +37 -0
- package/dist/src/shared/version.js +1 -0
- package/dist/src/shared/ws.js +8 -0
- package/docs/explanation/architecture.md +123 -0
- package/docs/explanation/discovery.md +113 -0
- package/docs/explanation/effect.md +127 -0
- package/docs/how-to/install-jetbrains.md +58 -0
- package/docs/how-to/install-neovim.md +138 -0
- package/docs/how-to/install-vscode.md +75 -0
- package/docs/how-to/install-zed.md +70 -0
- package/docs/how-to/troubleshoot-connection.md +103 -0
- package/docs/how-to/use-wsl2.md +90 -0
- package/docs/reference/commands.md +59 -0
- package/docs/reference/configuration.md +101 -0
- package/docs/reference/feature-parity.md +26 -0
- package/docs/reference/protocol.md +71 -0
- package/docs/specs/ide-protocol.md +215 -0
- package/docs/tutorials/get-started.md +133 -0
- package/docs/zh-CN/explanation/architecture.md +93 -0
- package/docs/zh-CN/explanation/discovery.md +71 -0
- package/docs/zh-CN/explanation/effect.md +90 -0
- package/docs/zh-CN/how-to/install-jetbrains.md +49 -0
- package/docs/zh-CN/how-to/install-neovim.md +126 -0
- package/docs/zh-CN/how-to/install-vscode.md +67 -0
- package/docs/zh-CN/how-to/install-zed.md +56 -0
- package/docs/zh-CN/how-to/troubleshoot-connection.md +85 -0
- package/docs/zh-CN/how-to/use-wsl2.md +75 -0
- package/docs/zh-CN/reference/commands.md +54 -0
- package/docs/zh-CN/reference/configuration.md +94 -0
- package/docs/zh-CN/reference/feature-parity.md +21 -0
- package/docs/zh-CN/reference/protocol.md +54 -0
- package/docs/zh-CN/tutorials/get-started.md +101 -0
- package/package.json +86 -4
- package/schemas/config.json +77 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [1.20.1](https://github.com/balaenis/pi-x-ide/compare/v1.20.0...v1.20.1) (2026-09-21)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **jetbrains:** run pi through cmd.exe in native Windows projects ([a3c4581](https://github.com/balaenis/pi-x-ide/commit/a3c45816ad03beda2937a4ed5825e838e8447b87))
|
|
9
|
+
* **jetbrains:** run pi through cmd.exe in native Windows projects ([f7ba6a2](https://github.com/balaenis/pi-x-ide/commit/f7ba6a211032a201ce49f0ca7df41f76795998df))
|
|
10
|
+
|
|
11
|
+
## [1.20.0](https://github.com/balaenis/pi-x-ide/compare/v1.19.5...v1.20.0) (2026-09-08)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* add contextPlacement option to control editor context reminder placement ([34f20ab](https://github.com/balaenis/pi-x-ide/commit/34f20ab6add40c05e22d830409b9aa0aa44ec5cf))
|
|
17
|
+
* add contextPlacement option to control editor context reminder placement ([7aadd0f](https://github.com/balaenis/pi-x-ide/commit/7aadd0f0b7d1bc9d477cfff90f653173f5352f60))
|
|
18
|
+
|
|
19
|
+
## [1.19.5](https://github.com/balaenis/pi-x-ide/compare/v1.19.4...v1.19.5) (2026-08-20)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Bug Fixes
|
|
23
|
+
|
|
24
|
+
* **discovery:** keep live IDE locks and refresh owned locks via heartbeat ([bd5e98a](https://github.com/balaenis/pi-x-ide/commit/bd5e98a704fb7eb33fcae37d45c40d87a337e465)), closes [#50](https://github.com/balaenis/pi-x-ide/issues/50)
|
|
25
|
+
* preserve live IDE locks across long sessions ([8ffa912](https://github.com/balaenis/pi-x-ide/commit/8ffa9120bd447cc2caecbc995695819b7b638d3b))
|
|
26
|
+
|
|
27
|
+
## [1.19.4](https://github.com/balaenis/pi-x-ide/compare/v1.19.3...v1.19.4) (2026-07-30)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Bug Fixes
|
|
31
|
+
|
|
32
|
+
* **pi:** add trailing newline when pasting selection mention ([a09b159](https://github.com/balaenis/pi-x-ide/commit/a09b159ce42b7191f92e04fde93d153b4ccee193))
|
|
33
|
+
|
|
34
|
+
## [1.19.3](https://github.com/balaenis/pi-x-ide/compare/v1.19.2...v1.19.3) (2026-07-23)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Bug Fixes
|
|
38
|
+
|
|
39
|
+
* **pi-error-routing:** replace console.error with pi ui.notify for extension errors ([dda5c09](https://github.com/balaenis/pi-x-ide/commit/dda5c099de8c9d2321b24e28c1dac64ba516e9c0))
|
|
40
|
+
|
|
41
|
+
## [1.19.2](https://github.com/balaenis/pi-x-ide/compare/v1.19.1...v1.19.2) (2026-07-22)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
### Bug Fixes
|
|
45
|
+
|
|
46
|
+
* **pi:** stop stale extension ctx from spamming the console ([a2b557e](https://github.com/balaenis/pi-x-ide/commit/a2b557ef90fadf9ebaa80de98cdbfc5f9a90ccdb))
|
|
47
|
+
* **pi:** stop stale extension ctx from spamming the console ([#43](https://github.com/balaenis/pi-x-ide/issues/43)) ([a2b557e](https://github.com/balaenis/pi-x-ide/commit/a2b557ef90fadf9ebaa80de98cdbfc5f9a90ccdb))
|
|
48
|
+
|
|
49
|
+
## [1.19.1](https://github.com/balaenis/pi-x-ide/compare/v1.19.0...v1.19.1) (2026-07-22)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
### Bug Fixes
|
|
53
|
+
|
|
54
|
+
* **pi:** eliminate host-package runtime imports from compiled output ([bde0c10](https://github.com/balaenis/pi-x-ide/commit/bde0c102917b3dc7da7825c14f2d3f585fd443d1))
|
|
55
|
+
|
|
56
|
+
## [1.19.0](https://github.com/balaenis/pi-x-ide/compare/v1.18.0...v1.19.0) (2026-07-22)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
### Features
|
|
60
|
+
|
|
61
|
+
* **pi:** split extension into lightweight shell and heavy runtime via code splitting ([4c25cdc](https://github.com/balaenis/pi-x-ide/commit/4c25cdcddc16a4b39c1fddf83a0d052d5a8432ee))
|
|
62
|
+
|
|
63
|
+
## [1.18.0](https://github.com/balaenis/pi-x-ide/compare/v1.17.0...v1.18.0) (2026-07-21)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
### Features
|
|
67
|
+
|
|
68
|
+
* add status_display option, rename fix_prompt to fixPrompt ([d9b37d5](https://github.com/balaenis/pi-x-ide/commit/d9b37d515ddfe27125bc4ef21146101333bee136))
|
|
69
|
+
* **pi:** add /ide settings dialog with global and project scope config ([1095a89](https://github.com/balaenis/pi-x-ide/commit/1095a89dbbde34c6bafd8d15547a913f92b8efae))
|
|
70
|
+
|
|
71
|
+
## [1.17.0](https://github.com/balaenis/pi-x-ide/compare/v1.16.3...v1.17.0) (2026-07-21)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
### Features
|
|
75
|
+
|
|
76
|
+
* adopt Effect for Pi-side errors, schema, IO, and fibers ([0c3c622](https://github.com/balaenis/pi-x-ide/commit/0c3c6220e29aca86363e1e594f3068cb51d63288))
|
|
77
|
+
* **shared:** add Effect tagged errors and boundary runners ([4ac61c2](https://github.com/balaenis/pi-x-ide/commit/4ac61c293b522251cac2abf778177fcd3ac32b8f))
|
|
78
|
+
* **shared:** validate protocol payloads with Effect Schema ([c37f3d4](https://github.com/balaenis/pi-x-ide/commit/c37f3d47e9e4b7830e779ab087ef91caef2c94b8))
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
### Bug Fixes
|
|
82
|
+
|
|
83
|
+
* **pi:** harden reconnect fiber fire-clear and lifecycle tests ([aedbbb6](https://github.com/balaenis/pi-x-ide/commit/aedbbb6fb8987b83b1bf29bedf485fc5481e7c5e))
|
|
84
|
+
* **pi:** restore connect timeout cleanup order before terminate ([21dd4a7](https://github.com/balaenis/pi-x-ide/commit/21dd4a76f12722a9bc3a9c07f5ae2e63ba6d035a))
|
|
85
|
+
|
|
86
|
+
## [1.16.3](https://github.com/balaenis/pi-x-ide/compare/v1.16.2...v1.16.3) (2026-07-06)
|
|
87
|
+
|
|
88
|
+
### Bug Fixes
|
|
89
|
+
|
|
90
|
+
- **jetbrains:** avoid internal API for plugin version ([d7d1be7](https://github.com/balaenis/pi-x-ide/commit/d7d1be7fa8ccda4e0bbb105cd8552dc8858453ce))
|
|
91
|
+
|
|
92
|
+
## [1.16.2](https://github.com/balaenis/pi-x-ide/compare/v1.16.1...v1.16.2) (2026-07-04)
|
|
93
|
+
|
|
94
|
+
### Bug Fixes
|
|
95
|
+
|
|
96
|
+
- **jetbrains:** avoid internal plugin manager API ([efc694d](https://github.com/balaenis/pi-x-ide/commit/efc694d4885294cd01fbe039ef142dd62631eabf))
|
|
97
|
+
|
|
98
|
+
## [1.16.1](https://github.com/balaenis/pi-x-ide/compare/v1.16.0...v1.16.1) (2026-06-30)
|
|
99
|
+
|
|
100
|
+
### Bug Fixes
|
|
101
|
+
|
|
102
|
+
- **release:** update version marker for release-please ([351f71a](https://github.com/balaenis/pi-x-ide/commit/351f71adbf0e721d5d22ef57d30ad55270ff453b))
|
|
103
|
+
|
|
104
|
+
## [1.16.0](https://github.com/balaenis/pi-x-ide/compare/v1.15.2...v1.16.0) (2026-06-30)
|
|
105
|
+
|
|
106
|
+
### Features
|
|
107
|
+
|
|
108
|
+
- **pi:** render diagnostic-fix requests as custom TUI messages ([82d1821](https://github.com/balaenis/pi-x-ide/commit/82d18219cdfdfbb48689d6812db093396f229f4d))
|
|
109
|
+
|
|
110
|
+
## [1.15.2](https://github.com/balaenis/pi-x-ide/compare/v1.15.1...v1.15.2) (2026-06-29)
|
|
111
|
+
|
|
112
|
+
### Bug Fixes
|
|
113
|
+
|
|
114
|
+
- **pi:** resolve package version from package root ([9a5db66](https://github.com/balaenis/pi-x-ide/commit/9a5db66780b85203730825abfd5f95d24b2c3a87))
|
|
115
|
+
|
|
116
|
+
## [1.15.1](https://github.com/balaenis/pi-x-ide/compare/v1.15.0...v1.15.1) (2026-06-29)
|
|
117
|
+
|
|
118
|
+
### Bug Fixes
|
|
119
|
+
|
|
120
|
+
- **ui:** use grapheme-aware width for CJK-safe IDE status bar truncation ([9513960](https://github.com/balaenis/pi-x-ide/commit/95139605c36926be7e0ecb1553f823d3639a2b65))
|
|
121
|
+
|
|
122
|
+
## [1.15.0](https://github.com/balaenis/pi-x-ide/compare/v1.14.0...v1.15.0) (2026-06-23)
|
|
123
|
+
|
|
124
|
+
### Features
|
|
125
|
+
|
|
126
|
+
- **context:** wrap editor context in SELECTED_CONTEXT_MARKER for precise detection ([341e957](https://github.com/balaenis/pi-x-ide/commit/341e957e6f9ea32f60a90645f8fafa2e814bf267))
|
|
127
|
+
|
|
128
|
+
## [1.14.0](https://github.com/balaenis/pi-x-ide/compare/v1.13.1...v1.14.0) (2026-06-22)
|
|
129
|
+
|
|
130
|
+
### Features
|
|
131
|
+
|
|
132
|
+
- **jetbrains:** add JetBrains IDE plugin with lock-file, selection-tracking, and WebSocket server ([401e65d](https://github.com/balaenis/pi-x-ide/commit/401e65d50ed00f2803324c954560551f9ebe5c70)), closes [#47](https://github.com/balaenis/pi-x-ide/issues/47)
|
|
133
|
+
- **jetbrains:** add plugin icons, toolbar group, and icon references to actions ([ab5b0c4](https://github.com/balaenis/pi-x-ide/commit/ab5b0c483d004b2cc1d5950acbbdab9af8b9d9b6))
|
|
134
|
+
- **jetbrains:** add signing and publishPlugin support for JetBrains Marketplace ([d86f5e0](https://github.com/balaenis/pi-x-ide/commit/d86f5e0ec2769eeaec5a90b4c117c40d08e4df4e))
|
|
135
|
+
- **jetbrains:** run pi through login shell for proper PATH setup on native Unix and WSL ([7bf2924](https://github.com/balaenis/pi-x-ide/commit/7bf2924918692481c80a78fffd3ccffa67b166d3))
|
|
136
|
+
- **wsl:** add WSL-aware IDE discovery and cross-platform host resolution ([d8bd2e4](https://github.com/balaenis/pi-x-ide/commit/d8bd2e42687a79022a47337149169f03f1034b21))
|
|
137
|
+
|
|
138
|
+
## [1.13.1](https://github.com/balaenis/pi-x-ide/compare/v1.13.0...v1.13.1) (2026-06-20)
|
|
139
|
+
|
|
140
|
+
### Bug Fixes
|
|
141
|
+
|
|
142
|
+
- **vscode:** run pi through login shell in tmux terminal ([bee8563](https://github.com/balaenis/pi-x-ide/commit/bee8563bfde5623eb08d1db40260e50ea6ff2d94))
|
|
143
|
+
|
|
144
|
+
## [1.13.0](https://github.com/balaenis/pi-x-ide/compare/v1.12.0...v1.13.0) (2026-06-19)
|
|
145
|
+
|
|
146
|
+
### Features
|
|
147
|
+
|
|
148
|
+
- add error containment boundaries across all extension entry points ([064e725](https://github.com/balaenis/pi-x-ide/commit/064e72589f18979e57024166692627de7464edf0))
|
|
149
|
+
|
|
150
|
+
### Bug Fixes
|
|
151
|
+
|
|
152
|
+
- guard stale extension context callbacks ([316b1c1](https://github.com/balaenis/pi-x-ide/commit/316b1c1cea974229c8bef94a94d105b31cc76796))
|
|
153
|
+
- **pi:** guard stale connection callbacks and extension ctx errors ([094975c](https://github.com/balaenis/pi-x-ide/commit/094975c0081a48fb08ae226f4d8f64b5b38b5084))
|
|
154
|
+
|
|
155
|
+
## [1.12.0](https://github.com/balaenis/pi-x-ide/compare/v1.11.1...v1.12.0) (2026-06-16)
|
|
156
|
+
|
|
157
|
+
### Features
|
|
158
|
+
|
|
159
|
+
- **ui:** add animated spinner for connecting state ([ae82969](https://github.com/balaenis/pi-x-ide/commit/ae82969223f79c6ce28315337e846888738649aa))
|
|
160
|
+
|
|
161
|
+
## [1.11.1](https://github.com/balaenis/pi-x-ide/compare/v1.11.0...v1.11.1) (2026-06-15)
|
|
162
|
+
|
|
163
|
+
### Bug Fixes
|
|
164
|
+
|
|
165
|
+
- **ci:** Modify the rules guide and trigger once release pr ([f468f5a](https://github.com/balaenis/pi-x-ide/commit/f468f5ab8d61227b1d16faf2719f218a17829ecc))
|
|
166
|
+
|
|
167
|
+
## [1.11.0](https://github.com/balaenis/pi-x-ide/compare/v1.10.0...v1.11.0) (2026-06-14)
|
|
168
|
+
|
|
169
|
+
### Features
|
|
170
|
+
|
|
171
|
+
- **diagnostics:** send diagnostic context to one connected Pi client instead of broadcasting ([9681fd4](https://github.com/balaenis/pi-x-ide/commit/9681fd4dcf88aad1a43a5c1d002219a2477c5279))
|
|
172
|
+
|
|
173
|
+
### Bug Fixes
|
|
174
|
+
|
|
175
|
+
- **diagnostics:** escape primary context line marker to avoid markdown blockquote interpretation ([c2f005e](https://github.com/balaenis/pi-x-ide/commit/c2f005e8cd16c2743838d2e79d0ca0987a2e0a8d))
|
|
176
|
+
|
|
177
|
+
## [1.10.0](https://github.com/balaenis/pi-x-ide/compare/v1.9.0...v1.10.0) (2026-06-14)
|
|
178
|
+
|
|
179
|
+
### Features
|
|
180
|
+
|
|
181
|
+
- **diagnostics:** add configurable fix prompt for IDE diagnostics ([ca8621c](https://github.com/balaenis/pi-x-ide/commit/ca8621c6050c37ed921e20efcb4dd38907b1cbb9))
|
|
182
|
+
- **nvim:** verify sidecar binary against GitHub Release SHA-256 digest ([0cc1d9b](https://github.com/balaenis/pi-x-ide/commit/0cc1d9bf1ee5ef8f30d50374ffe68953c242d4ce))
|
|
183
|
+
- **vscode:** add Fix with Pi suggest quick action for diagnostics ([e8dc6d5](https://github.com/balaenis/pi-x-ide/commit/e8dc6d56543afb1d8019bcede0a540cacd440c6d))
|
|
184
|
+
- **vscode:** add Pi: Send diagnostic quick fix action ([d53d72b](https://github.com/balaenis/pi-x-ide/commit/d53d72bb1030f58da7f82136a75b95da2568f28a))
|
|
185
|
+
- **vscode:** hide pi terminal from user initially and show without stealing focus ([15ca612](https://github.com/balaenis/pi-x-ide/commit/15ca6121a4c25a1ed68cb6631372b5a100c77a7b))
|
|
186
|
+
|
|
187
|
+
### Bug Fixes
|
|
188
|
+
|
|
189
|
+
- **pi:** wrap diagnostic context message with marker on both sides ([592da42](https://github.com/balaenis/pi-x-ide/commit/592da424d16a190c958eac86a70045405e91e936))
|
|
190
|
+
|
|
191
|
+
## [1.9.0](https://github.com/balaenis/pi-x-ide/compare/v1.8.0...v1.9.0) (2026-06-13)
|
|
192
|
+
|
|
193
|
+
### Features
|
|
194
|
+
|
|
195
|
+
- **vscode:** add useTmux setting to open Pi through tmux ([93cec4d](https://github.com/balaenis/pi-x-ide/commit/93cec4de9f2f51312db4c3a4672b2f2ffe2ddc61))
|
|
196
|
+
|
|
197
|
+
### Bug Fixes
|
|
198
|
+
|
|
199
|
+
- **pi/install:** filter out unknown-reason candidates from auto-install ([375449b](https://github.com/balaenis/pi-x-ide/commit/375449b2306d8fa1098a30a0176eff9dc5f602e2))
|
|
200
|
+
|
|
201
|
+
## [1.8.0](https://github.com/balaenis/pi-x-ide/compare/v1.7.0...v1.8.0) (2026-06-12)
|
|
202
|
+
|
|
203
|
+
### Features
|
|
204
|
+
|
|
205
|
+
- **attach:** make TUI attach shortcut configurable via PI_X_IDE_ATTACH_SHORTCUT ([20a7e9c](https://github.com/balaenis/pi-x-ide/commit/20a7e9c80644d4a46cdc4459c7394faa7f3e21e5))
|
|
206
|
+
- **ide:** register Ctrl+Alt+K shortcut in Pi TUI for /ide attach ([9803840](https://github.com/balaenis/pi-x-ide/commit/9803840f73bc965dae3e0e0a53f7fccae173e2d7))
|
|
207
|
+
|
|
208
|
+
## [1.7.0](https://github.com/balaenis/pi-x-ide/compare/v1.6.0...v1.7.0) (2026-06-12)
|
|
209
|
+
|
|
210
|
+
### Features
|
|
211
|
+
|
|
212
|
+
- **zed:** add configurable poll interval env var and clean up env schema ([04d870e](https://github.com/balaenis/pi-x-ide/commit/04d870e88d756a2faea998e741f8893bc95c3a31))
|
|
213
|
+
|
|
214
|
+
## [1.6.0](https://github.com/balaenis/pi-x-ide/compare/v1.5.1...v1.6.0) (2026-06-12)
|
|
215
|
+
|
|
216
|
+
### Features
|
|
217
|
+
|
|
218
|
+
- **mise:** add compile and compile:all tasks ([517e9cd](https://github.com/balaenis/pi-x-ide/commit/517e9cdfe533294f69d71021680b471662104a32))
|
|
219
|
+
- **pi:** limit reconnect attempts and add handshake timeout ([4dc855e](https://github.com/balaenis/pi-x-ide/commit/4dc855e715f1b8bf141a0f055962af53ac581696))
|
|
220
|
+
|
|
221
|
+
## [1.5.1](https://github.com/balaenis/pi-x-ide/compare/v1.5.0...v1.5.1) (2026-06-11)
|
|
222
|
+
|
|
223
|
+
### Bug Fixes
|
|
224
|
+
|
|
225
|
+
- **nvim:** capture sidecar download stderr and handle job start failure ([eae98bf](https://github.com/balaenis/pi-x-ide/commit/eae98bfd7cd313f2e57b4c5665255df6ef30d25f))
|
|
226
|
+
|
|
227
|
+
## [1.5.0](https://github.com/balaenis/pi-x-ide/compare/v1.4.3...v1.5.0) (2026-06-11)
|
|
228
|
+
|
|
229
|
+
### Features
|
|
230
|
+
|
|
231
|
+
- **nvim:** auto-download sidecar binary from GitHub Releases ([85f8e0a](https://github.com/balaenis/pi-x-ide/commit/85f8e0a395cb12f436bf972628d0306e78ee0bf5))
|
|
232
|
+
- **nvim:** compile sidecar to standalone binary via bun ([c7b0763](https://github.com/balaenis/pi-x-ide/commit/c7b07632a5d5a683c48f7517334bc4033cb8d556))
|
|
233
|
+
|
|
234
|
+
## [1.4.3](https://github.com/balaenis/pi-x-ide/compare/v1.4.2...v1.4.3) (2026-06-11)
|
|
235
|
+
|
|
236
|
+
### Bug Fixes
|
|
237
|
+
|
|
238
|
+
- always create a fresh Pi terminal instead of reusing existing ([6ad4438](https://github.com/balaenis/pi-x-ide/commit/6ad4438acdd41ea6464c62a0f0ac2858b0c2f2d7))
|
|
239
|
+
|
|
240
|
+
## [1.4.2](https://github.com/balaenis/pi-x-ide/compare/v1.4.1...v1.4.2) (2026-06-11)
|
|
241
|
+
|
|
242
|
+
### Bug Fixes
|
|
243
|
+
|
|
244
|
+
- **pi:** normalize Windows drive letter to uppercase for path matching ([cb4e8ad](https://github.com/balaenis/pi-x-ide/commit/cb4e8adef41d2d80cf2577c3e33879c5aaceb52b))
|
|
245
|
+
- **pi:** skip extensionless search on Windows to avoid matching shell scripts ([bb47f76](https://github.com/balaenis/pi-x-ide/commit/bb47f761c7388f316c10d2a6eae53b839e486322))
|
|
246
|
+
- **pi:** update install notification on connection success or failure ([46a8901](https://github.com/balaenis/pi-x-ide/commit/46a8901fb271c4c4c6931c02f4da33794224f638))
|
|
247
|
+
- update notification messages to reference `/ide` instead of `/ide auto` ([cc27727](https://github.com/balaenis/pi-x-ide/commit/cc277274d1e0fda23e8fbf3e597de9924d2863f5))
|
|
248
|
+
|
|
249
|
+
## [1.4.1](https://github.com/balaenis/pi-x-ide/compare/v1.4.0...v1.4.1) (2026-06-11)
|
|
250
|
+
|
|
251
|
+
### Bug Fixes
|
|
252
|
+
|
|
253
|
+
- **docs:** replace lazy.nvim `rtp` with `init` block in install instructions ([1f186ff](https://github.com/balaenis/pi-x-ide/commit/1f186fffa6e050e495fcece71a8ddc185a4f217d))
|
|
254
|
+
- **nvim:** safely stop timer with pcall to prevent errors ([22c422e](https://github.com/balaenis/pi-x-ide/commit/22c422e53057eb2ed7c1b2b343851d751a936632))
|
|
255
|
+
|
|
256
|
+
## [1.4.0](https://github.com/balaenis/pi-x-ide/compare/v1.3.0...v1.4.0) (2026-06-11)
|
|
257
|
+
|
|
258
|
+
### Features
|
|
259
|
+
|
|
260
|
+
- **config:** support pi config env overrides ([1aa20c1](https://github.com/balaenis/pi-x-ide/commit/1aa20c1027ec2172c5ca86cdfb4c1fb362d616b1))
|
|
261
|
+
|
|
262
|
+
## [1.3.0](https://github.com/balaenis/pi-x-ide/compare/v1.2.0...v1.3.0) (2026-06-10)
|
|
263
|
+
|
|
264
|
+
### Features
|
|
265
|
+
|
|
266
|
+
- **vscode:** cache selection snapshot when terminal tab is active ([785f834](https://github.com/balaenis/pi-x-ide/commit/785f834a5092ec77944e7659ca0efa2c6a94f74b))
|
|
267
|
+
- **zed:** add Zed editor integration with SQLite polling ([90da726](https://github.com/balaenis/pi-x-ide/commit/90da726a4d997446f3d05d0b3fb9a439572bec9f))
|
|
268
|
+
- **zed:** support WSL+Windows path normalization for cross-OS Zed DB access ([963e975](https://github.com/balaenis/pi-x-ide/commit/963e975eb3e4824b8e46015ae324bfcc8c33f6c0))
|
|
269
|
+
|
|
270
|
+
### Performance Improvements
|
|
271
|
+
|
|
272
|
+
- **zed:** skip DB snapshot when WAL unchanged, checkpoint into snapshot ([76a6dab](https://github.com/balaenis/pi-x-ide/commit/76a6dab7e6af78a534d9f7401901b1df813dd039))
|
|
273
|
+
|
|
274
|
+
## [1.2.0](https://github.com/balaenis/pi-x-ide/compare/v1.1.0...v1.2.0) (2026-06-10)
|
|
275
|
+
|
|
276
|
+
### Features
|
|
277
|
+
|
|
278
|
+
- **vscode:** add editor toolbar button to open Pi terminal ([6289dbd](https://github.com/balaenis/pi-x-ide/commit/6289dbdab4ba8414231cc38c883724f7a56efcb5))
|
|
279
|
+
|
|
280
|
+
### Bug Fixes
|
|
281
|
+
|
|
282
|
+
- **pi:** restrict auto-connect to direct workspace matches ([6899dda](https://github.com/balaenis/pi-x-ide/commit/6899dda792571e2a51402f235d45c7ff3667eeb2))
|
|
283
|
+
|
|
284
|
+
## [1.1.0](https://github.com/balaenis/pi-x-ide/compare/v1.0.5...v1.1.0) (2026-06-10)
|
|
285
|
+
|
|
286
|
+
### Features
|
|
287
|
+
|
|
288
|
+
- **pi:** auto-install IDE extension and add /ide install command ([cbaeb11](https://github.com/balaenis/pi-x-ide/commit/cbaeb11dcd897790f68941b84b297505b370dac6)), closes [#6](https://github.com/balaenis/pi-x-ide/issues/6)
|
|
289
|
+
|
|
290
|
+
## [1.0.5](https://github.com/balaenis/pi-x-ide/compare/v1.0.4...v1.0.5) (2026-06-10)
|
|
291
|
+
|
|
292
|
+
### Bug Fixes
|
|
293
|
+
|
|
294
|
+
- build vsix error display name is taken ([477a044](https://github.com/balaenis/pi-x-ide/commit/477a0447b7c4fbfa0f582c47c649ea0e5c5983bd))
|
|
295
|
+
|
|
296
|
+
## [1.0.4](https://github.com/balaenis/pi-x-ide/compare/v1.0.3...v1.0.4) (2026-06-10)
|
|
297
|
+
|
|
298
|
+
### Bug Fixes
|
|
299
|
+
|
|
300
|
+
- build vsix error ([fab6668](https://github.com/balaenis/pi-x-ide/commit/fab66685ce416fa170a939d74564ca75d480ae50))
|
|
301
|
+
|
|
302
|
+
## [1.0.3](https://github.com/balaenis/pi-x-ide/compare/v1.0.2...v1.0.3) (2026-06-10)
|
|
303
|
+
|
|
304
|
+
### Bug Fixes
|
|
305
|
+
|
|
306
|
+
- force release ([6525d08](https://github.com/balaenis/pi-x-ide/commit/6525d083f661d40a7a9506e8cc93db3fd34a6893))
|
|
307
|
+
|
|
308
|
+
## [1.0.2](https://github.com/balaenis/pi-x-ide/compare/v1.0.1...v1.0.2) (2026-06-10)
|
|
309
|
+
|
|
310
|
+
### Bug Fixes
|
|
311
|
+
|
|
312
|
+
- release workflows ([30f6b70](https://github.com/balaenis/pi-x-ide/commit/30f6b70492746f376b5b0520aefc44be687603d1))
|
|
313
|
+
|
|
314
|
+
## [1.0.1](https://github.com/balaenis/pi-x-ide/compare/v1.0.0...v1.0.1) (2026-06-10)
|
|
315
|
+
|
|
316
|
+
### Bug Fixes
|
|
317
|
+
|
|
318
|
+
- test release pipeline ([2d887b8](https://github.com/balaenis/pi-x-ide/commit/2d887b8a27da44c116e4e6a42c69727c469c873d))
|
|
319
|
+
|
|
320
|
+
## 1.0.0 (2026-06-09)
|
|
321
|
+
|
|
322
|
+
### Features
|
|
323
|
+
|
|
324
|
+
- **ci:** add CI/CD workflows and release automation ([a989bfc](https://github.com/balaenis/pi-x-ide/commit/a989bfc2ed39644d9543e4f8a28ece48a0596612))
|
|
325
|
+
- **pi:** add argument completions for ide command ([bc95e88](https://github.com/balaenis/pi-x-ide/commit/bc95e887172ebea5b86263d330c16bad00de3047))
|
|
326
|
+
- **protocol:** broadcast selection_cleared when no active editor ([3fd4c32](https://github.com/balaenis/pi-x-ide/commit/3fd4c328e906b29c83fb61d8dfe6d84ba753b180))
|
|
327
|
+
- **vscode:** add extension icon and branding assets ([efb71b5](https://github.com/balaenis/pi-x-ide/commit/efb71b5852f6ea81097079c8b42f052a2bd67053))
|
|
328
|
+
- **vscode:** send editor selection snapshot on client init ([a268483](https://github.com/balaenis/pi-x-ide/commit/a2684832ba1f3f36ad73cf45a70ae8b76cc61270))
|
package/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
# Contributing to Pi × IDE
|
|
2
|
+
|
|
3
|
+
This guide covers building the project, testing each IDE integration locally, and
|
|
4
|
+
cutting a release. For user-facing setup and usage, see the
|
|
5
|
+
[documentation](README.md#documentation).
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
- Node.js ≥ 26
|
|
10
|
+
- bun ≥ 1.3 (`packageManager` declared as `bun@1.3.14`)
|
|
11
|
+
- VS Code ≥ 1.120.0 (VS Code extension only)
|
|
12
|
+
- Neovim ≥ 0.9 (Neovim plugin only)
|
|
13
|
+
- JDK 21 (JetBrains plugin only; Gradle can download the toolchain automatically)
|
|
14
|
+
|
|
15
|
+
[mise](https://mise.jdx.dev/) manages the toolchain. Run `mise install` in the
|
|
16
|
+
repo root to install the declared versions.
|
|
17
|
+
|
|
18
|
+
## Install & build
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
git clone https://github.com/saifymatteo/pi-x-ide.git
|
|
22
|
+
cd pi-x-ide
|
|
23
|
+
mise run setup
|
|
24
|
+
mise run build
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
To load the local build without installing globally:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
pi -e ./src/pi/index.ts
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Tasks
|
|
34
|
+
|
|
35
|
+
All build and check commands are defined as `mise run` tasks (see `.mise/tasks/`):
|
|
36
|
+
|
|
37
|
+
| Command | Description |
|
|
38
|
+
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- |
|
|
39
|
+
| `mise run build` | Build Pi-side TypeScript -> `dist/` + Neovim sidecar -> `ide-plugins/nvim/bin/` + VS Code bundle -> `ide-plugins/vscode/out/` |
|
|
40
|
+
| `mise run typecheck` | Type-check only (no output files) |
|
|
41
|
+
| `mise run test` | Build + run unit tests |
|
|
42
|
+
| `mise run package:vsix` | Package the VS Code extension as a VSIX |
|
|
43
|
+
| `mise run compile:jetbrains` | Compile and test the JetBrains plugin with Gradle |
|
|
44
|
+
| `mise run package:jetbrains` | Package the JetBrains plugin ZIP under `ide-plugins/jetbrains/build/distributions/` |
|
|
45
|
+
| `mise run verify:jetbrains` | Run the IntelliJ Plugin Verifier for the configured target IDE |
|
|
46
|
+
| `mise run check:config-schema` | Verify `schemas/config.json` is in sync with the config registry |
|
|
47
|
+
|
|
48
|
+
## Test the VS Code extension locally
|
|
49
|
+
|
|
50
|
+
### Option 1: F5 Extension Development Host (recommended)
|
|
51
|
+
|
|
52
|
+
1. Open the **project root** in VS Code.
|
|
53
|
+
2. Go to the **Run and Debug** panel (`Ctrl+Shift+D`).
|
|
54
|
+
3. Select **Run Pi x IDE VS Code Extension**.
|
|
55
|
+
4. Press **F5**:
|
|
56
|
+
- The `preLaunchTask` automatically runs `mise run build`.
|
|
57
|
+
- A new VS Code window titled `[Extension Development Host]` opens.
|
|
58
|
+
|
|
59
|
+
### Option 2: Package a VSIX and install
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
mise run package:vsix
|
|
63
|
+
cd ide-plugins/vscode && code --install-extension dist/pi-x-ide-$(node -p "require('./package.json').version").vsix
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
The extension installed this way runs in all VS Code windows, independent of the
|
|
67
|
+
F5 Extension Development Host.
|
|
68
|
+
|
|
69
|
+
### Verify the extension is running
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
ls -l ~/.pi/pi-x-ide/lock
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
You should see a file like `vscode-12345-48123.lock`. If not, run
|
|
76
|
+
**Developer: Reload Window** in VS Code.
|
|
77
|
+
|
|
78
|
+
## Test the JetBrains plugin locally
|
|
79
|
+
|
|
80
|
+
Run a sandbox IDE:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
cd ide-plugins/jetbrains
|
|
84
|
+
./gradlew runIde
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Build the installable plugin ZIP:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
mise run package:jetbrains
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
The ZIP is written under `ide-plugins/jetbrains/build/distributions/`. For a smoke
|
|
94
|
+
test, open this repository in the sandbox IDE, start `pi` from the same directory,
|
|
95
|
+
open and select text in a local file, then press `Ctrl+Alt+K` or run
|
|
96
|
+
**Pi x IDE: Attach Selection**. Pi should receive an `@relative/path#Lx-Ly`
|
|
97
|
+
mention.
|
|
98
|
+
|
|
99
|
+
## Configuration schema
|
|
100
|
+
|
|
101
|
+
When you add or change a Pi-side configuration option or environment variable that
|
|
102
|
+
should be configurable through `~/.pi/config.json`, update the registry in
|
|
103
|
+
`src/shared/config-options.ts` and regenerate the schema:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
mise run generate:config-schema
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Then verify it is in sync:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
mise run check:config-schema
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Release
|
|
116
|
+
|
|
117
|
+
This project uses [Release Please](https://github.com/googleapis/release-please)
|
|
118
|
+
with [Conventional Commits](https://www.conventionalcommits.org/) to automate
|
|
119
|
+
versioning and publishing. See [RELEASE.md](RELEASE.md) for the full release guide.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# 贡献 Pi × IDE
|
|
2
|
+
|
|
3
|
+
本指南介绍如何构建项目、本地测试各 IDE 集成以及发布流程。面向用户的使用说明见 [文档](README.zh-CN.md#文档)。
|
|
4
|
+
|
|
5
|
+
## 环境依赖
|
|
6
|
+
|
|
7
|
+
- Node.js ≥ 26
|
|
8
|
+
- bun ≥ 1.3(`packageManager` 声明为 `bun@1.3.14`)
|
|
9
|
+
- VS Code ≥ 1.120.0(仅 VS Code 扩展需要)
|
|
10
|
+
- Neovim ≥ 0.9(仅 Neovim 插件需要)
|
|
11
|
+
- JDK 21(仅 JetBrains 插件需要;Gradle 可自动下载 toolchain)
|
|
12
|
+
|
|
13
|
+
[mise](https://mise.jdx.dev/) 管理工具链。在仓库根目录运行 `mise install` 即可安装声明的版本。
|
|
14
|
+
|
|
15
|
+
## 安装与构建
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
git clone https://github.com/saifymatteo/pi-x-ide.git
|
|
19
|
+
cd pi-x-ide
|
|
20
|
+
mise run setup
|
|
21
|
+
mise run build
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
加载本地构建(无需全局安装):
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
pi -e ./src/pi/index.ts
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## 任务
|
|
31
|
+
|
|
32
|
+
所有构建与检查命令都定义为 `mise run` 任务(见 `.mise/tasks/`):
|
|
33
|
+
|
|
34
|
+
| 命令 | 说明 |
|
|
35
|
+
| ------------------------------ | -------------------------------------------------------------------------------------------------------------------------- |
|
|
36
|
+
| `mise run build` | 编译 Pi 侧 TypeScript -> `dist/` + Neovim sidecar -> `ide-plugins/nvim/bin/` + VS Code bundle -> `ide-plugins/vscode/out/` |
|
|
37
|
+
| `mise run typecheck` | 类型检查(不产出文件) |
|
|
38
|
+
| `mise run test` | 编译 + 运行单元测试 |
|
|
39
|
+
| `mise run package:vsix` | 打包 VS Code 扩展为 VSIX |
|
|
40
|
+
| `mise run compile:jetbrains` | 用 Gradle 编译并测试 JetBrains 插件 |
|
|
41
|
+
| `mise run package:jetbrains` | 将 JetBrains 插件打包为 `ide-plugins/jetbrains/build/distributions/` 下的 ZIP |
|
|
42
|
+
| `mise run verify:jetbrains` | 对配置的目标 IDE 运行 IntelliJ Plugin Verifier |
|
|
43
|
+
| `mise run check:config-schema` | 验证 `schemas/config.json` 与配置注册表是否同步 |
|
|
44
|
+
|
|
45
|
+
## 本地测试 VS Code 扩展
|
|
46
|
+
|
|
47
|
+
### 方式一:F5 启动 Extension Development Host(推荐)
|
|
48
|
+
|
|
49
|
+
1. 用 VS Code 打开 **项目根目录**。
|
|
50
|
+
2. 进入 **Run and Debug** 面板(`Ctrl+Shift+D`)。
|
|
51
|
+
3. 选择 **Run Pi x IDE VS Code Extension**。
|
|
52
|
+
4. 按 **F5**:
|
|
53
|
+
- preLaunchTask 会自动执行 `mise run build`。
|
|
54
|
+
- 打开一个标题包含 `[Extension Development Host]` 的新 VS Code 窗口。
|
|
55
|
+
|
|
56
|
+
### 方式二:打包 VSIX 后安装
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
mise run package:vsix
|
|
60
|
+
cd ide-plugins/vscode && code --install-extension dist/pi-x-ide-$(node -p "require('./package.json').version").vsix
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
这样安装的扩展在所有 VS Code 窗口中运行,不依赖 F5 Extension Host。
|
|
64
|
+
|
|
65
|
+
### 验证扩展是否运行
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
ls -l ~/.pi/pi-x-ide/lock
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
应看到类似 `vscode-12345-48123.lock` 的文件。如果没有,在 VS Code 中执行 **Developer: Reload Window**。
|
|
72
|
+
|
|
73
|
+
## 本地测试 JetBrains 插件
|
|
74
|
+
|
|
75
|
+
运行 sandbox IDE:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
cd ide-plugins/jetbrains
|
|
79
|
+
./gradlew runIde
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
构建可安装的插件 ZIP:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
mise run package:jetbrains
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
ZIP 会输出到 `ide-plugins/jetbrains/build/distributions/`。Smoke test:在 sandbox IDE 中打开本仓库,从同一目录启动 `pi`,打开并选择一个本地文件中的文本,然后按 `Ctrl+Alt+K` 或运行 **Pi x IDE: Attach Selection**。Pi 应收到 `@relative/path#Lx-Ly` mention。
|
|
89
|
+
|
|
90
|
+
## 配置 schema
|
|
91
|
+
|
|
92
|
+
当你新增或修改需要通过 `~/.pi/config.json` 配置的 Pi 侧配置项或环境变量时,更新 `src/shared/config-options.ts` 中的注册表并重新生成 schema:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
mise run generate:config-schema
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
然后验证是否同步:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
mise run check:config-schema
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## 发布
|
|
105
|
+
|
|
106
|
+
本项目使用 [Release Please](https://github.com/googleapis/release-please) 和 [Conventional Commits](https://www.conventionalcommits.org/) 来自动化版本管理和发布流程。详见 [RELEASE.md](RELEASE.md)。
|