@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.
Files changed (81) hide show
  1. package/CHANGELOG.md +328 -0
  2. package/CONTRIBUTING.md +119 -0
  3. package/CONTRIBUTING.zh-CN.md +106 -0
  4. package/LICENSE +201 -0
  5. package/README.md +33 -2
  6. package/README.zh-CN.md +34 -0
  7. package/RELEASE.md +213 -0
  8. package/config.example.json +9 -0
  9. package/dist/src/pi/chunks/chunk-4RHJAL4S.js +200 -0
  10. package/dist/src/pi/chunks/chunk-UUXVCTOS.js +819 -0
  11. package/dist/src/pi/chunks/config-ui-LO3DVQFC.js +8073 -0
  12. package/dist/src/pi/chunks/runtime-services-BVQBAAWT.js +19569 -0
  13. package/dist/src/pi/commands.js +126 -0
  14. package/dist/src/pi/config-ui.js +127 -0
  15. package/dist/src/pi/connection.js +237 -0
  16. package/dist/src/pi/context.js +30 -0
  17. package/dist/src/pi/diagnostic-renderer.js +326 -0
  18. package/dist/src/pi/diagnostic-types.js +1 -0
  19. package/dist/src/pi/diagnostics.js +104 -0
  20. package/dist/src/pi/discovery.js +135 -0
  21. package/dist/src/pi/effect-boundary.js +5 -0
  22. package/dist/src/pi/ide-host.js +68 -0
  23. package/dist/src/pi/index.js +636 -0
  24. package/dist/src/pi/install.js +308 -0
  25. package/dist/src/pi/reconnect.js +57 -0
  26. package/dist/src/pi/runtime-loader.js +38 -0
  27. package/dist/src/pi/runtime-services.js +356 -0
  28. package/dist/src/pi/safety.js +61 -0
  29. package/dist/src/pi/selection.js +18 -0
  30. package/dist/src/pi/state.js +13 -0
  31. package/dist/src/pi/ui.js +304 -0
  32. package/dist/src/pi/zed.js +409 -0
  33. package/dist/src/shared/config-options.js +45 -0
  34. package/dist/src/shared/config.js +183 -0
  35. package/dist/src/shared/display-width.js +99 -0
  36. package/dist/src/shared/effect-errors.js +36 -0
  37. package/dist/src/shared/effect-runtime.js +36 -0
  38. package/dist/src/shared/effect-schema.js +120 -0
  39. package/dist/src/shared/errors.js +48 -0
  40. package/dist/src/shared/format.js +92 -0
  41. package/dist/src/shared/ide-server.js +167 -0
  42. package/dist/src/shared/jsonrpc-guard.js +12 -0
  43. package/dist/src/shared/lock-file-heartbeat.js +58 -0
  44. package/dist/src/shared/lock-file.js +50 -0
  45. package/dist/src/shared/paths.js +79 -0
  46. package/dist/src/shared/platform.js +57 -0
  47. package/dist/src/shared/protocol.js +3 -0
  48. package/dist/src/shared/schema.js +37 -0
  49. package/dist/src/shared/version.js +1 -0
  50. package/dist/src/shared/ws.js +8 -0
  51. package/docs/explanation/architecture.md +123 -0
  52. package/docs/explanation/discovery.md +113 -0
  53. package/docs/explanation/effect.md +127 -0
  54. package/docs/how-to/install-jetbrains.md +58 -0
  55. package/docs/how-to/install-neovim.md +138 -0
  56. package/docs/how-to/install-vscode.md +75 -0
  57. package/docs/how-to/install-zed.md +70 -0
  58. package/docs/how-to/troubleshoot-connection.md +103 -0
  59. package/docs/how-to/use-wsl2.md +90 -0
  60. package/docs/reference/commands.md +59 -0
  61. package/docs/reference/configuration.md +101 -0
  62. package/docs/reference/feature-parity.md +26 -0
  63. package/docs/reference/protocol.md +71 -0
  64. package/docs/specs/ide-protocol.md +215 -0
  65. package/docs/tutorials/get-started.md +133 -0
  66. package/docs/zh-CN/explanation/architecture.md +93 -0
  67. package/docs/zh-CN/explanation/discovery.md +71 -0
  68. package/docs/zh-CN/explanation/effect.md +90 -0
  69. package/docs/zh-CN/how-to/install-jetbrains.md +49 -0
  70. package/docs/zh-CN/how-to/install-neovim.md +126 -0
  71. package/docs/zh-CN/how-to/install-vscode.md +67 -0
  72. package/docs/zh-CN/how-to/install-zed.md +56 -0
  73. package/docs/zh-CN/how-to/troubleshoot-connection.md +85 -0
  74. package/docs/zh-CN/how-to/use-wsl2.md +75 -0
  75. package/docs/zh-CN/reference/commands.md +54 -0
  76. package/docs/zh-CN/reference/configuration.md +94 -0
  77. package/docs/zh-CN/reference/feature-parity.md +21 -0
  78. package/docs/zh-CN/reference/protocol.md +54 -0
  79. package/docs/zh-CN/tutorials/get-started.md +101 -0
  80. package/package.json +86 -4
  81. 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))
@@ -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)。