@zerwiz/sessrumnir 0.1.8-alpha → 0.1.10

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 (445) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.yml +99 -0
  2. package/.github/ISSUE_TEMPLATE/config.yml +8 -0
  3. package/.github/ISSUE_TEMPLATE/feature_request.yml +46 -0
  4. package/.github/PULL_REQUEST_TEMPLATE.md +56 -0
  5. package/.github/SUPPORT.md +18 -0
  6. package/.github/workflows/build.yml +133 -0
  7. package/AGENTS.md +499 -0
  8. package/CLA.md +63 -0
  9. package/CONTRIBUTING.md +233 -0
  10. package/README.md +2 -8
  11. package/bin/sessrumnir.js +14 -16
  12. package/docs/CNAME +1 -0
  13. package/docs/favicon.ico +0 -0
  14. package/docs/icon-512.png +0 -0
  15. package/docs/index.html +441 -0
  16. package/docs/robots.txt +4 -0
  17. package/docs/screenshots/Screenshot_20260824_181929.png +0 -0
  18. package/docs/screenshots/Screenshot_20260824_182005.png +0 -0
  19. package/docs/screenshots/Screenshot_20260824_182020.png +0 -0
  20. package/docs/screenshots/Screenshot_20260824_182039.png +0 -0
  21. package/docs/screenshots/Screenshot_20260824_182117.png +0 -0
  22. package/docs/screenshots/Screenshot_20260824_182225.png +0 -0
  23. package/docs/screenshots/Screenshot_20260824_182248.png +0 -0
  24. package/docs/screenshots/Screenshot_20260824_182322.png +0 -0
  25. package/docs/screenshots/Screenshot_20260824_182340.png +0 -0
  26. package/docs/sitemap.xml +9 -0
  27. package/electron.vite.config.ts +49 -0
  28. package/eslint.config.mjs +75 -0
  29. package/i18next.config.ts +33 -0
  30. package/install.sh +144 -0
  31. package/out/main/index.js +28 -94
  32. package/out/preload/index.js +266 -549
  33. package/out/renderer/assets/{index-CgJYtdL8.js → index-9xqYEypA.js} +128 -343
  34. package/out/renderer/assets/{index-CyRDW9WV.css → index-DaKov4Fl.css} +171 -529
  35. package/out/renderer/assets/pi-logo-B48rElrT.svg +27 -0
  36. package/out/renderer/index.html +4 -4
  37. package/package.json +16 -31
  38. package/resources/icons/generate_icons.py +61 -11
  39. package/resources/icons/icon-128.png +0 -0
  40. package/resources/icons/icon-16.png +0 -0
  41. package/resources/icons/icon-256.png +0 -0
  42. package/resources/icons/icon-32.png +0 -0
  43. package/resources/icons/icon-48.png +0 -0
  44. package/resources/icons/icon-512.png +0 -0
  45. package/resources/icons/icon-64.png +0 -0
  46. package/resources/icons/icon.png +0 -0
  47. package/resources/icons/icon.svg +25 -53
  48. package/resources/linux/after-install.sh +1 -1
  49. package/resources/linux/after-remove.sh +1 -1
  50. package/resources/locales/en/translation.json +66 -71
  51. package/resources/permission-rules.ts +1 -1
  52. package/resources/pi-desktop-permissions.ts +1 -1
  53. package/scripts/check-semantic-colors.mjs +57 -0
  54. package/scripts/postinstall.js +117 -0
  55. package/src/main/activity-stats.test.ts +240 -0
  56. package/src/main/activity-stats.ts +596 -0
  57. package/src/main/agent-detection.test.ts +25 -0
  58. package/src/main/agent-detection.ts +114 -0
  59. package/src/main/app-data-paths.test.ts +90 -0
  60. package/src/main/app-data-paths.ts +95 -0
  61. package/src/main/app-log.test.ts +114 -0
  62. package/src/main/app-log.ts +210 -0
  63. package/src/main/archived-sessions.test.ts +50 -0
  64. package/src/main/archived-sessions.ts +95 -0
  65. package/src/main/attachment-reader.test.ts +56 -0
  66. package/src/main/attachment-reader.ts +52 -0
  67. package/src/main/auto-tag.test.ts +38 -0
  68. package/src/main/auto-tag.ts +75 -0
  69. package/src/main/autostart-linux.test.ts +56 -0
  70. package/src/main/autostart-linux.ts +58 -0
  71. package/src/main/cmd-escape.test.ts +424 -0
  72. package/src/main/cmd-escape.ts +186 -0
  73. package/src/main/council-manager.test.ts +167 -0
  74. package/src/main/council-manager.ts +265 -0
  75. package/src/main/diagnostics-report.test.ts +140 -0
  76. package/src/main/diagnostics-report.ts +91 -0
  77. package/src/main/diagnostics.ts +111 -0
  78. package/src/main/editor-guard.test.ts +59 -0
  79. package/src/main/editor-guard.ts +50 -0
  80. package/src/main/extension-ui-ipc.test.ts +299 -0
  81. package/src/main/extension-ui-ipc.ts +117 -0
  82. package/src/main/file-service.test.ts +279 -0
  83. package/src/main/file-service.ts +652 -0
  84. package/src/main/fs-errors.ts +42 -0
  85. package/src/main/get-messages-trim.test.ts +77 -0
  86. package/src/main/get-messages-trim.ts +97 -0
  87. package/src/main/git-conveyor.test.ts +305 -0
  88. package/src/main/git-conveyor.ts +338 -0
  89. package/src/main/git-worktree.test.ts +101 -0
  90. package/src/main/git-worktree.ts +201 -0
  91. package/src/main/i18n.ts +31 -0
  92. package/src/main/index.ts +560 -0
  93. package/src/main/ipc/active-engine.ts +15 -0
  94. package/src/main/ipc/context.ts +58 -0
  95. package/src/main/ipc/council-handlers.ts +126 -0
  96. package/src/main/ipc/diagnostics-handlers.ts +8 -0
  97. package/src/main/ipc/file-handlers.ts +96 -0
  98. package/src/main/ipc/git-conveyor-handlers.ts +55 -0
  99. package/src/main/ipc/model-handlers.ts +33 -0
  100. package/src/main/ipc/models-config-handlers.ts +80 -0
  101. package/src/main/ipc/notes-handlers.ts +65 -0
  102. package/src/main/ipc/package-handlers.ts +330 -0
  103. package/src/main/ipc/permission-rules-handlers.ts +223 -0
  104. package/src/main/ipc/pi-handlers.ts +136 -0
  105. package/src/main/ipc/pi-start-options.ts +150 -0
  106. package/src/main/ipc/run-pi-cli.ts +53 -0
  107. package/src/main/ipc/session-handlers.ts +491 -0
  108. package/src/main/ipc/settings.ts +120 -0
  109. package/src/main/ipc/skills-mcp-handlers.ts +192 -0
  110. package/src/main/ipc/system-handlers.ts +97 -0
  111. package/src/main/ipc/tag-handlers.ts +69 -0
  112. package/src/main/ipc/terminal-handlers.ts +41 -0
  113. package/src/main/ipc/theme-handlers.ts +131 -0
  114. package/src/main/ipc/update-handlers.ts +61 -0
  115. package/src/main/ipc/validation.ts +45 -0
  116. package/src/main/ipc/workflow-handlers.ts +108 -0
  117. package/src/main/ipc/workspace-activity-wiring.ts +179 -0
  118. package/src/main/ipc/workspace-handlers.ts +133 -0
  119. package/src/main/ipc-handlers.ts +98 -0
  120. package/src/main/map-concurrent.test.ts +80 -0
  121. package/src/main/map-concurrent.ts +30 -0
  122. package/src/main/models-file.test.ts +114 -0
  123. package/src/main/models-file.ts +89 -0
  124. package/src/main/notes-manager.test.ts +64 -0
  125. package/src/main/notes-manager.ts +183 -0
  126. package/src/main/notify-decision.test.ts +39 -0
  127. package/src/main/notify-decision.ts +25 -0
  128. package/src/main/omp-fork-points.test.ts +119 -0
  129. package/src/main/omp-fork-points.ts +105 -0
  130. package/src/main/omp-plugin-list.test.ts +94 -0
  131. package/src/main/omp-plugin-list.ts +103 -0
  132. package/src/main/package-catalog.test.ts +157 -0
  133. package/src/main/package-catalog.ts +166 -0
  134. package/src/main/package-updates.test.ts +149 -0
  135. package/src/main/package-updates.ts +185 -0
  136. package/src/main/path-authorization.test.ts +64 -0
  137. package/src/main/path-authorization.ts +31 -0
  138. package/src/main/pi-binary-resolution.test.ts +582 -0
  139. package/src/main/pi-binary-resolution.ts +649 -0
  140. package/src/main/pi-event-router.test.ts +388 -0
  141. package/src/main/pi-event-router.ts +290 -0
  142. package/src/main/pi-paths.test.ts +134 -0
  143. package/src/main/pi-paths.ts +74 -0
  144. package/src/main/pi-rpc-manager.test.ts +467 -0
  145. package/src/main/pi-rpc-manager.ts +1319 -0
  146. package/src/main/process-tree.test.ts +94 -0
  147. package/src/main/renderer-origin.test.ts +33 -0
  148. package/src/main/renderer-origin.ts +35 -0
  149. package/src/main/session-lineage-reader.test.ts +317 -0
  150. package/src/main/session-lineage-reader.ts +111 -0
  151. package/src/main/session-metadata.test.ts +508 -0
  152. package/src/main/session-metadata.ts +526 -0
  153. package/src/main/session-name.test.ts +71 -0
  154. package/src/main/session-name.ts +69 -0
  155. package/src/main/session-paths.test.ts +110 -0
  156. package/src/main/session-paths.ts +88 -0
  157. package/src/main/session-tags.test.ts +61 -0
  158. package/src/main/session-tags.ts +253 -0
  159. package/src/main/session-trash.test.ts +66 -0
  160. package/src/main/session-trash.ts +65 -0
  161. package/src/main/skills-discovery.test.ts +149 -0
  162. package/src/main/skills-discovery.ts +179 -0
  163. package/src/main/startup-launch.ts +63 -0
  164. package/src/main/terminal-service.ts +96 -0
  165. package/src/main/theme-store.test.ts +440 -0
  166. package/src/main/theme-store.ts +495 -0
  167. package/src/main/tray-decision.test.ts +46 -0
  168. package/src/main/tray-decision.ts +49 -0
  169. package/src/main/tray-manager.ts +220 -0
  170. package/src/main/tsconfig.json +20 -0
  171. package/src/main/window-background.test.ts +29 -0
  172. package/src/main/window-background.ts +16 -0
  173. package/src/main/workflow-discovery.test.ts +252 -0
  174. package/src/main/workflow-monitor.test.ts +371 -0
  175. package/src/main/workflow-monitor.ts +1020 -0
  176. package/src/main/workspace-activity.test.ts +227 -0
  177. package/src/main/workspace-activity.ts +215 -0
  178. package/src/main/workspace-manager.test.ts +680 -0
  179. package/src/main/workspace-manager.ts +1199 -0
  180. package/src/main/workspace-trust.test.ts +78 -0
  181. package/src/main/workspace-trust.ts +84 -0
  182. package/src/preload/index.ts +661 -0
  183. package/src/preload/tsconfig.json +20 -0
  184. package/src/renderer/index.html +18 -0
  185. package/src/renderer/public/theme-boot.js +30 -0
  186. package/src/renderer/src/app.tsx +194 -0
  187. package/src/renderer/src/assets/openmoji-color.woff2 +0 -0
  188. package/src/renderer/src/assets/pi-logo.svg +27 -0
  189. package/src/renderer/src/assets.d.ts +7 -0
  190. package/src/renderer/src/components/chat-code-highlight.ts +239 -0
  191. package/src/renderer/src/components/chat-file-link.ts +140 -0
  192. package/src/renderer/src/components/chat-input.tsx +729 -0
  193. package/src/renderer/src/components/chat-panel-widths.test.ts +137 -0
  194. package/src/renderer/src/components/chat-panel-widths.ts +88 -0
  195. package/src/renderer/src/components/chat-panel.tsx +500 -0
  196. package/src/renderer/src/components/chat-project-picker.tsx +193 -0
  197. package/src/renderer/src/components/chat-search.tsx +251 -0
  198. package/src/renderer/src/components/code-editor-highlight.ts +85 -0
  199. package/src/renderer/src/components/code-editor-language.test.ts +19 -0
  200. package/src/renderer/src/components/code-editor-language.ts +88 -0
  201. package/src/renderer/src/components/code-editor.tsx +128 -0
  202. package/src/renderer/src/components/command-palette.tsx +315 -0
  203. package/src/renderer/src/components/command-results.tsx +80 -0
  204. package/src/renderer/src/components/composer-permission-menu.tsx +91 -0
  205. package/src/renderer/src/components/context-menu.tsx +457 -0
  206. package/src/renderer/src/components/copy-button.tsx +36 -0
  207. package/src/renderer/src/components/council-panels.tsx +193 -0
  208. package/src/renderer/src/components/custom-models-editor.tsx +330 -0
  209. package/src/renderer/src/components/diagnostics-panel.tsx +380 -0
  210. package/src/renderer/src/components/diff-viewer.tsx +318 -0
  211. package/src/renderer/src/components/error-boundary.tsx +38 -0
  212. package/src/renderer/src/components/extension-ui-dialog-helpers.test.ts +43 -0
  213. package/src/renderer/src/components/extension-ui-dialog-helpers.ts +51 -0
  214. package/src/renderer/src/components/extension-ui-dialog.tsx +484 -0
  215. package/src/renderer/src/components/file-tree.tsx +754 -0
  216. package/src/renderer/src/components/git-conveyor-actions.tsx +246 -0
  217. package/src/renderer/src/components/home-screen.tsx +393 -0
  218. package/src/renderer/src/components/image-viewer.tsx +100 -0
  219. package/src/renderer/src/components/line-numbered-code.tsx +58 -0
  220. package/src/renderer/src/components/markdown-renderer.tsx +237 -0
  221. package/src/renderer/src/components/message-bubble.tsx +1006 -0
  222. package/src/renderer/src/components/mission-control.tsx +306 -0
  223. package/src/renderer/src/components/model-selector.tsx +219 -0
  224. package/src/renderer/src/components/note-picker.tsx +155 -0
  225. package/src/renderer/src/components/notes-panel.tsx +437 -0
  226. package/src/renderer/src/components/package-browser.tsx +604 -0
  227. package/src/renderer/src/components/permission-mode.test.ts +22 -0
  228. package/src/renderer/src/components/permission-mode.ts +49 -0
  229. package/src/renderer/src/components/permission-rules-editor-helpers.test.ts +44 -0
  230. package/src/renderer/src/components/permission-rules-editor-helpers.ts +35 -0
  231. package/src/renderer/src/components/permission-rules-editor.tsx +226 -0
  232. package/src/renderer/src/components/permission-selector.tsx +104 -0
  233. package/src/renderer/src/components/resize-handle.tsx +51 -0
  234. package/src/renderer/src/components/review-rail.tsx +194 -0
  235. package/src/renderer/src/components/session-menu-position.test.ts +22 -0
  236. package/src/renderer/src/components/session-menu-position.ts +34 -0
  237. package/src/renderer/src/components/session-panel.tsx +711 -0
  238. package/src/renderer/src/components/session-runtime-indicator.tsx +43 -0
  239. package/src/renderer/src/components/settings-panel.tsx +1360 -0
  240. package/src/renderer/src/components/sidebar-activity.test.ts +47 -0
  241. package/src/renderer/src/components/sidebar-activity.ts +76 -0
  242. package/src/renderer/src/components/sidebar-session-labels.test.ts +73 -0
  243. package/src/renderer/src/components/sidebar-session-labels.ts +47 -0
  244. package/src/renderer/src/components/sidebar.tsx +1045 -0
  245. package/src/renderer/src/components/skills-panel.tsx +159 -0
  246. package/src/renderer/src/components/stats-panel.tsx +368 -0
  247. package/src/renderer/src/components/status-bar.tsx +251 -0
  248. package/src/renderer/src/components/status-popover.tsx +481 -0
  249. package/src/renderer/src/components/streaming-bubble.tsx +128 -0
  250. package/src/renderer/src/components/subagent-progress.tsx +254 -0
  251. package/src/renderer/src/components/task-launcher.tsx +168 -0
  252. package/src/renderer/src/components/terminal.tsx +203 -0
  253. package/src/renderer/src/components/theme-editor-helpers.test.ts +35 -0
  254. package/src/renderer/src/components/theme-editor-helpers.ts +35 -0
  255. package/src/renderer/src/components/theme-editor.tsx +440 -0
  256. package/src/renderer/src/components/theme-gallery.tsx +373 -0
  257. package/src/renderer/src/components/thinking-level-selector.tsx +85 -0
  258. package/src/renderer/src/components/timeline.tsx +289 -0
  259. package/src/renderer/src/components/tool-call-icon.ts +32 -0
  260. package/src/renderer/src/components/workflow-navigator.tsx +901 -0
  261. package/src/renderer/src/components/workspace-tabs.tsx +241 -0
  262. package/src/renderer/src/global.d.ts +8 -0
  263. package/src/renderer/src/hooks/use-folder-drop.ts +101 -0
  264. package/src/renderer/src/hooks.test.ts +88 -0
  265. package/src/renderer/src/hooks.ts +586 -0
  266. package/src/renderer/src/i18n.test.ts +54 -0
  267. package/src/renderer/src/i18n.ts +89 -0
  268. package/src/renderer/src/index.css +378 -0
  269. package/src/renderer/src/main.tsx +31 -0
  270. package/src/renderer/src/message-grouping.test.ts +422 -0
  271. package/src/renderer/src/message-grouping.ts +410 -0
  272. package/src/renderer/src/message-parsing.test.ts +86 -0
  273. package/src/renderer/src/message-parsing.ts +166 -0
  274. package/src/renderer/src/store-external-prompts.test.ts +161 -0
  275. package/src/renderer/src/store-session-transitions.test.ts +2090 -0
  276. package/src/renderer/src/store-timeline.test.ts +52 -0
  277. package/src/renderer/src/store-turn-error.test.ts +136 -0
  278. package/src/renderer/src/store.ts +3712 -0
  279. package/src/renderer/src/subagent-detection.test.ts +55 -0
  280. package/src/renderer/src/theme/engine.test.ts +29 -0
  281. package/src/renderer/src/theme/engine.ts +20 -0
  282. package/src/renderer/src/themes/breeze-claudius.json +69 -0
  283. package/src/renderer/src/themes/breeze-dark.json +69 -0
  284. package/src/renderer/src/themes/breeze-light.json +69 -0
  285. package/src/renderer/src/themes/builtin-themes.test.ts +58 -0
  286. package/src/renderer/src/themes/dark.json +46 -0
  287. package/src/renderer/src/themes/gruvbox.json +69 -0
  288. package/src/renderer/src/themes/index.ts +50 -0
  289. package/src/renderer/src/themes/light.json +46 -0
  290. package/src/renderer/src/themes/nord.json +69 -0
  291. package/src/renderer/src/utils/debounced-buffer.test.ts +81 -0
  292. package/src/renderer/src/utils/debounced-buffer.ts +57 -0
  293. package/src/renderer/src/utils/format-relative-time.test.ts +62 -0
  294. package/src/renderer/src/utils/format-relative-time.ts +28 -0
  295. package/src/renderer/src/utils/heatmap-grid.test.ts +57 -0
  296. package/src/renderer/src/utils/heatmap-grid.ts +41 -0
  297. package/src/renderer/src/utils/ipc-error.test.ts +22 -0
  298. package/src/renderer/src/utils/ipc-error.ts +12 -0
  299. package/src/renderer/src/utils/model-search.test.ts +63 -0
  300. package/src/renderer/src/utils/model-search.ts +20 -0
  301. package/src/renderer/src/utils/planning-prompt.test.ts +31 -0
  302. package/src/renderer/src/utils/planning-prompt.ts +27 -0
  303. package/src/renderer/src/utils/preview-load-error.test.ts +15 -0
  304. package/src/renderer/src/utils/preview-load-error.ts +22 -0
  305. package/src/renderer/src/utils/process-status-label.test.ts +13 -0
  306. package/src/renderer/src/utils/process-status-label.ts +19 -0
  307. package/src/renderer/src/utils/quick-switcher.test.ts +68 -0
  308. package/src/renderer/src/utils/quick-switcher.ts +52 -0
  309. package/src/renderer/src/utils/rank-file-results.test.ts +46 -0
  310. package/src/renderer/src/utils/rank-file-results.ts +23 -0
  311. package/src/renderer/src/utils/relative-time.tsx +25 -0
  312. package/src/renderer/src/utils/session-title.test.ts +98 -0
  313. package/src/renderer/src/utils/session-title.ts +58 -0
  314. package/src/renderer/src/utils/stale-guard.test.ts +29 -0
  315. package/src/renderer/src/utils/stale-guard.ts +20 -0
  316. package/src/renderer/src/utils/theme.test.ts +174 -0
  317. package/src/renderer/src/utils/theme.ts +159 -0
  318. package/src/renderer/src/utils/workflow-runs.test.ts +130 -0
  319. package/src/renderer/src/utils/workflow-runs.ts +84 -0
  320. package/src/renderer/tsconfig.json +24 -0
  321. package/src/shared/agent-engine-label.test.ts +27 -0
  322. package/src/shared/agent-engine-label.ts +31 -0
  323. package/src/shared/app-settings.test.ts +25 -0
  324. package/src/shared/app-settings.ts +23 -0
  325. package/src/shared/council-config.test.ts +300 -0
  326. package/src/shared/council-config.ts +356 -0
  327. package/src/shared/default-settings.ts +39 -0
  328. package/src/shared/folder-drop.test.ts +118 -0
  329. package/src/shared/folder-drop.ts +74 -0
  330. package/src/shared/fork-point.test.ts +30 -0
  331. package/src/shared/fork-point.ts +24 -0
  332. package/src/shared/i18n/i18next.d.ts +10 -0
  333. package/src/shared/i18n/index.test.ts +51 -0
  334. package/src/shared/i18n/index.ts +50 -0
  335. package/src/shared/i18n/languages.ts +12 -0
  336. package/src/shared/i18n/locale-checks.ts +98 -0
  337. package/src/shared/i18n/locales.test.ts +92 -0
  338. package/src/shared/i18n/pseudo.test.ts +39 -0
  339. package/src/shared/i18n/pseudo.ts +44 -0
  340. package/src/shared/i18n/resolve.test.ts +43 -0
  341. package/src/shared/i18n/resolve.ts +41 -0
  342. package/src/shared/i18n/resources.ts +11 -0
  343. package/src/shared/ipc-contracts.ts +1536 -0
  344. package/src/shared/models-config.test.ts +124 -0
  345. package/src/shared/models-config.ts +167 -0
  346. package/src/shared/package-filter.ts +19 -0
  347. package/src/shared/package-spec.test.ts +51 -0
  348. package/src/shared/package-spec.ts +25 -0
  349. package/src/shared/path-compare.test.ts +38 -0
  350. package/src/shared/path-compare.ts +76 -0
  351. package/src/shared/permission-mode.ts +8 -0
  352. package/src/shared/pi-command.test.ts +165 -0
  353. package/src/shared/pi-command.ts +139 -0
  354. package/src/shared/product-name.ts +5 -0
  355. package/src/shared/session-lineage.test.ts +103 -0
  356. package/src/shared/session-lineage.ts +50 -0
  357. package/src/shared/session-preview.test.ts +93 -0
  358. package/src/shared/session-preview.ts +56 -0
  359. package/src/shared/sidebar-width.test.ts +58 -0
  360. package/src/shared/sidebar-width.ts +37 -0
  361. package/src/shared/theme/builtin-ids.ts +11 -0
  362. package/src/shared/theme/resolve.test.ts +66 -0
  363. package/src/shared/theme/resolve.ts +29 -0
  364. package/src/shared/theme/syntax-defaults.ts +24 -0
  365. package/src/shared/theme/theme-file.test.ts +88 -0
  366. package/src/shared/theme/theme-file.ts +132 -0
  367. package/src/shared/theme/tokens.test.ts +35 -0
  368. package/src/shared/theme/tokens.ts +79 -0
  369. package/src/shared/tsconfig.json +17 -0
  370. package/src/shared/untrusted-data.test.ts +32 -0
  371. package/src/shared/untrusted-data.ts +22 -0
  372. package/src/shared/version-compare.test.ts +33 -0
  373. package/src/shared/version-compare.ts +50 -0
  374. package/src/shared/workflow-control.ts +33 -0
  375. package/tsconfig.json +26 -0
  376. package/bin/sessrumnir-web.sh +0 -117
  377. package/out/renderer/assets/cormorant-cyrillic-400-normal-C8QS47vb.woff2 +0 -0
  378. package/out/renderer/assets/cormorant-cyrillic-400-normal-D3EsxgFc.woff +0 -0
  379. package/out/renderer/assets/cormorant-cyrillic-500-normal-B7dJQtg-.woff +0 -0
  380. package/out/renderer/assets/cormorant-cyrillic-500-normal-BLlg2W5x.woff2 +0 -0
  381. package/out/renderer/assets/cormorant-cyrillic-600-normal-BcIsDXzC.woff2 +0 -0
  382. package/out/renderer/assets/cormorant-cyrillic-600-normal-CBymlcNF.woff +0 -0
  383. package/out/renderer/assets/cormorant-cyrillic-ext-400-normal-Bgrpe4p1.woff +0 -0
  384. package/out/renderer/assets/cormorant-cyrillic-ext-400-normal-BlcaxZtM.woff2 +0 -0
  385. package/out/renderer/assets/cormorant-cyrillic-ext-500-normal-CdQuyvtc.woff +0 -0
  386. package/out/renderer/assets/cormorant-cyrillic-ext-500-normal-pZw22qtS.woff2 +0 -0
  387. package/out/renderer/assets/cormorant-cyrillic-ext-600-normal-Dr-wLyOm.woff +0 -0
  388. package/out/renderer/assets/cormorant-cyrillic-ext-600-normal-dLR2-a_v.woff2 +0 -0
  389. package/out/renderer/assets/cormorant-latin-400-normal-BGH8Vunh.woff2 +0 -0
  390. package/out/renderer/assets/cormorant-latin-400-normal-C3_-2Ua-.woff +0 -0
  391. package/out/renderer/assets/cormorant-latin-500-normal-Dj3SQ6fR.woff +0 -0
  392. package/out/renderer/assets/cormorant-latin-500-normal-EBdSCOD3.woff2 +0 -0
  393. package/out/renderer/assets/cormorant-latin-600-normal-B254Xisw.woff2 +0 -0
  394. package/out/renderer/assets/cormorant-latin-600-normal-DUW-TI76.woff +0 -0
  395. package/out/renderer/assets/cormorant-latin-ext-400-normal-DuQ88yz3.woff2 +0 -0
  396. package/out/renderer/assets/cormorant-latin-ext-400-normal-DuXFa1Dr.woff +0 -0
  397. package/out/renderer/assets/cormorant-latin-ext-500-normal-AH9qog1s.woff2 +0 -0
  398. package/out/renderer/assets/cormorant-latin-ext-500-normal-DAuUCO41.woff +0 -0
  399. package/out/renderer/assets/cormorant-latin-ext-600-normal-CD-dlDpD.woff +0 -0
  400. package/out/renderer/assets/cormorant-latin-ext-600-normal-D3T6BBXG.woff2 +0 -0
  401. package/out/renderer/assets/cormorant-vietnamese-400-normal-C-RiYxEf.woff2 +0 -0
  402. package/out/renderer/assets/cormorant-vietnamese-400-normal-DmUuA7Y2.woff +0 -0
  403. package/out/renderer/assets/cormorant-vietnamese-500-normal-DsPuwQHi.woff2 +0 -0
  404. package/out/renderer/assets/cormorant-vietnamese-500-normal-tGBW_mI7.woff +0 -0
  405. package/out/renderer/assets/cormorant-vietnamese-600-normal-Dar_cCT6.woff2 +0 -0
  406. package/out/renderer/assets/cormorant-vietnamese-600-normal-GIs8CF2x.woff +0 -0
  407. package/out/renderer/assets/ibm-plex-mono-cyrillic-300-normal-Ba-HN6uq.woff +0 -0
  408. package/out/renderer/assets/ibm-plex-mono-cyrillic-300-normal-ByB2hQUF.woff2 +0 -0
  409. package/out/renderer/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2 +0 -0
  410. package/out/renderer/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff +0 -0
  411. package/out/renderer/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff +0 -0
  412. package/out/renderer/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2 +0 -0
  413. package/out/renderer/assets/ibm-plex-mono-cyrillic-ext-300-normal-B8O3uHbr.woff +0 -0
  414. package/out/renderer/assets/ibm-plex-mono-cyrillic-ext-300-normal-BbtBtHoB.woff2 +0 -0
  415. package/out/renderer/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff +0 -0
  416. package/out/renderer/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2 +0 -0
  417. package/out/renderer/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff +0 -0
  418. package/out/renderer/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2 +0 -0
  419. package/out/renderer/assets/ibm-plex-mono-latin-300-normal-BPU54Tw3.woff +0 -0
  420. package/out/renderer/assets/ibm-plex-mono-latin-300-normal-BRS-C4KA.woff2 +0 -0
  421. package/out/renderer/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
  422. package/out/renderer/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
  423. package/out/renderer/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
  424. package/out/renderer/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
  425. package/out/renderer/assets/ibm-plex-mono-latin-ext-300-normal-BEtQ2wm2.woff2 +0 -0
  426. package/out/renderer/assets/ibm-plex-mono-latin-ext-300-normal-CQbCaAQ4.woff +0 -0
  427. package/out/renderer/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2 +0 -0
  428. package/out/renderer/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff +0 -0
  429. package/out/renderer/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2 +0 -0
  430. package/out/renderer/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff +0 -0
  431. package/out/renderer/assets/ibm-plex-mono-vietnamese-300-normal-B6fSpYYV.woff +0 -0
  432. package/out/renderer/assets/ibm-plex-mono-vietnamese-300-normal-CpdbWO_2.woff2 +0 -0
  433. package/out/renderer/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2 +0 -0
  434. package/out/renderer/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff +0 -0
  435. package/out/renderer/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff +0 -0
  436. package/out/renderer/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2 +0 -0
  437. package/out/renderer/assets/newsreader-latin-ext-wght-italic-DFS986qL.woff2 +0 -0
  438. package/out/renderer/assets/newsreader-latin-ext-wght-normal-C-3rgBeH.woff2 +0 -0
  439. package/out/renderer/assets/newsreader-latin-wght-italic-Bxi8ein9.woff2 +0 -0
  440. package/out/renderer/assets/newsreader-latin-wght-normal-CCVVNp6i.woff2 +0 -0
  441. package/out/renderer/assets/newsreader-vietnamese-wght-italic-xAqemagA.woff2 +0 -0
  442. package/out/renderer/assets/newsreader-vietnamese-wght-normal-Czsa-EzN.woff2 +0 -0
  443. package/out/renderer/assets/pi-logo-8LswgQgB.svg +0 -17
  444. package/out/shared/src/shared/tsconfig.tsbuildinfo +0 -1
  445. package/resources/ymir-sessrumnir.desktop.in +0 -12
@@ -0,0 +1,99 @@
1
+ name: Bug report
2
+ description: Something's broken or behaving wrong
3
+ title: "[Bug]: "
4
+ labels: ["bug"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thanks for taking the time to file a bug. The more detail you give, the faster we can fix it.
10
+
11
+ - type: textarea
12
+ id: what-happened
13
+ attributes:
14
+ label: What happened?
15
+ description: A clear description of what went wrong.
16
+ placeholder: "When I clicked X, the app did Y, but I expected Z."
17
+ validations:
18
+ required: true
19
+
20
+ - type: textarea
21
+ id: reproduce
22
+ attributes:
23
+ label: Steps to reproduce
24
+ description: Tell us how to make the bug happen again.
25
+ placeholder: |
26
+ 1. Open Pi Desktop
27
+ 2. Click '...'
28
+ 3. See error
29
+ validations:
30
+ required: true
31
+
32
+ - type: textarea
33
+ id: expected
34
+ attributes:
35
+ label: What did you expect?
36
+ description: What should have happened instead?
37
+ validations:
38
+ required: true
39
+
40
+ - type: dropdown
41
+ id: os
42
+ attributes:
43
+ label: Operating system
44
+ options:
45
+ - Linux (AppImage)
46
+ - macOS (.dmg / .zip)
47
+ - Windows (portable .exe)
48
+ - Built from source
49
+ - Other
50
+ validations:
51
+ required: true
52
+
53
+ - type: input
54
+ id: os-version
55
+ attributes:
56
+ label: OS version
57
+ description: "e.g. Ubuntu 24.04, Fedora 40, Windows 11 22H2"
58
+ validations:
59
+ required: true
60
+
61
+ - type: input
62
+ id: pi-desktop-version
63
+ attributes:
64
+ label: Pi Desktop version
65
+ description: "Open Diagnostics and copy the App version line. Example: 0.1.8-alpha"
66
+ validations:
67
+ required: true
68
+
69
+ - type: input
70
+ id: pi-version
71
+ attributes:
72
+ label: Pi agent version
73
+ description: "Run `pi --version` in a terminal. If Pi isn't installed, write 'not installed'."
74
+ validations:
75
+ required: true
76
+
77
+ - type: textarea
78
+ id: logs
79
+ attributes:
80
+ label: Logs or error messages
81
+ description: |
82
+ Anything from the DevTools console (View > Toggle DevTools), the terminal you launched the app from, or an on-screen error.
83
+ render: shell
84
+
85
+ - type: textarea
86
+ id: screenshots
87
+ attributes:
88
+ label: Screenshots
89
+ description: Drag-and-drop images here if they help show the problem.
90
+
91
+ - type: checkboxes
92
+ id: checks
93
+ attributes:
94
+ label: Before submitting
95
+ options:
96
+ - label: I searched existing issues and didn't find a duplicate.
97
+ required: true
98
+ - label: I'm on the latest release listed at https://github.com/FaqFirebase/pi-desktop/releases
99
+ required: true
@@ -0,0 +1,8 @@
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: Pi coding agent (the underlying CLI)
4
+ url: https://github.com/earendil-works/pi/issues
5
+ about: If the bug is in Pi itself (the agent we wrap), report it upstream here.
6
+ - name: Pi Desktop releases
7
+ url: https://github.com/FaqFirebase/pi-desktop/releases
8
+ about: Grab the latest build before opening a bug.
@@ -0,0 +1,46 @@
1
+ name: Feature request
2
+ description: Suggest a new feature or improvement
3
+ title: "[Feature]: "
4
+ labels: ["enhancement"]
5
+ body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ Thanks for the suggestion. Help us understand the problem first — that's usually where the best solutions come from.
10
+
11
+ - type: textarea
12
+ id: problem
13
+ attributes:
14
+ label: What problem does this solve?
15
+ description: What are you trying to do that's awkward or impossible today?
16
+ placeholder: "When I'm doing X, I have to manually do Y every time, and it would be much faster if..."
17
+ validations:
18
+ required: true
19
+
20
+ - type: textarea
21
+ id: solution
22
+ attributes:
23
+ label: What would you like to see?
24
+ description: A clear description of the feature or change you want.
25
+ validations:
26
+ required: true
27
+
28
+ - type: textarea
29
+ id: alternatives
30
+ attributes:
31
+ label: Alternatives you've considered
32
+ description: Other approaches you've thought about, or workarounds you're using now.
33
+
34
+ - type: textarea
35
+ id: extra
36
+ attributes:
37
+ label: Anything else?
38
+ description: Mockups, links to similar features in other apps, etc.
39
+
40
+ - type: checkboxes
41
+ id: checks
42
+ attributes:
43
+ label: Before submitting
44
+ options:
45
+ - label: I searched existing issues and didn't find a duplicate.
46
+ required: true
@@ -0,0 +1,56 @@
1
+ <!--
2
+ Thanks for contributing to Pi Desktop!
3
+
4
+ Before you open this PR, please read CONTRIBUTING.md:
5
+ https://github.com/FaqFirebase/pi-desktop/blob/master/CONTRIBUTING.md
6
+
7
+ Two things people miss most often:
8
+ 1. PRs must target the `Dev` branch, not `master`.
9
+ 2. Commit messages follow Conventional Commits: <type>(<scope>): <subject>
10
+ -->
11
+
12
+ ## Summary
13
+
14
+ <!-- What does this PR do, and why? A few sentences is fine. -->
15
+
16
+ ## Related issues
17
+
18
+ <!-- Link issues this PR addresses, e.g. "Closes #123". Write "None" if there isn't one. -->
19
+
20
+ ## Type of change
21
+
22
+ <!-- Check all that apply. -->
23
+
24
+ - [ ] `feat` — New feature
25
+ - [ ] `fix` — Bug fix
26
+ - [ ] `docs` — Documentation
27
+ - [ ] `refactor` — Code restructuring (no behavior change)
28
+ - [ ] `test` — Adding or updating tests
29
+ - [ ] `chore` — Build process, dependencies, tooling
30
+ - [ ] `perf` — Performance improvement
31
+ - [ ] `style` — Formatting (no code change)
32
+
33
+ ## How was this tested?
34
+
35
+ <!--
36
+ Describe how you verified the change: manual steps in the app,
37
+ new/updated tests, platforms tested (Linux/Windows), etc.
38
+ -->
39
+
40
+ ## Screenshots
41
+
42
+ <!-- For UI changes, add before/after screenshots. Delete this section otherwise. -->
43
+
44
+ ## Checklist
45
+
46
+ - [ ] This PR targets the `Dev` branch (not `master`)
47
+ - [ ] `npm run typecheck` passes
48
+ - [ ] `npm run lint` passes
49
+ - [ ] `npx tsx --test` passes
50
+ - [ ] `npm run build` succeeds
51
+ - [ ] The app launches and works (`npm run dev`) with no regressions
52
+ - [ ] Tests added or updated for changed modules (colocated `*.test.ts`)
53
+ - [ ] Electron security posture preserved (context isolation, IPC through preload bridge, validated payloads)
54
+ - [ ] Commit messages follow [Conventional Commits](https://www.conventionalcommits.org/)
55
+ - [ ] If AI-assisted, the agent was pointed at [`AGENTS.md`](https://github.com/FaqFirebase/pi-desktop/blob/master/AGENTS.md) and its Final Delivery Checklist
56
+ - [ ] I have read and agree to the [CLA](https://github.com/FaqFirebase/pi-desktop/blob/master/CLA.md)
@@ -0,0 +1,18 @@
1
+ # Support
2
+
3
+ ## Response times
4
+
5
+ Issues are monitored on weekdays. Weekend issues are not handled unless urgent (crash on launch, data loss, security).
6
+
7
+ If your issue is urgent, label it **urgent** and briefly explain why in the description.
8
+
9
+ ## Before opening an issue
10
+
11
+ - Check the [existing issues](https://github.com/FaqFirebase/pi-desktop/issues) for duplicates.
12
+ - Make sure you are on the [latest release](https://github.com/FaqFirebase/pi-desktop/releases).
13
+ - If the problem is in the Pi agent itself (not the GUI), report it [upstream](https://github.com/earendil-works/pi/issues).
14
+
15
+ ## Links
16
+
17
+ - [Releases](https://github.com/FaqFirebase/pi-desktop/releases)
18
+ - [Pi agent issues](https://github.com/earendil-works/pi/issues)
@@ -0,0 +1,133 @@
1
+ name: Build
2
+
3
+ # Nothing builds on a normal push. Builds are manual: a workflow dispatch
4
+ # (Actions tab / gh CLI) builds all three platforms and uploads the
5
+ # installers as artifacts — no release. Pushing a version tag (e.g.
6
+ # v0.0.3-alpha), the deliberate "create a release" step, builds all three
7
+ # and publishes a GitHub prerelease.
8
+ on:
9
+ push:
10
+ tags:
11
+ - 'v*'
12
+ workflow_dispatch:
13
+
14
+ # Cancel superseded runs for the same ref to save runner time.
15
+ concurrency:
16
+ group: build-${{ github.ref }}
17
+ cancel-in-progress: true
18
+
19
+ jobs:
20
+ verify:
21
+ name: Lint & test
22
+ runs-on: ubuntu-latest
23
+ steps:
24
+ - name: Checkout
25
+ uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
26
+
27
+ - name: Set up Node.js
28
+ uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
29
+ with:
30
+ node-version: '22'
31
+ cache: 'npm'
32
+
33
+ - name: Install dependencies
34
+ run: npm ci
35
+
36
+ - name: Lint
37
+ run: npm run lint
38
+
39
+ - name: Unit tests
40
+ # `**` glob file-args to `--test` need a newer Node than the pinned
41
+ # runner version supports, so enumerate files with `find` instead of
42
+ # relying on the shell/runtime to expand the pattern. `resources/` holds
43
+ # the shared permission-rules engine's tests, so include it too.
44
+ run: npx --no-install tsx --test $(find src resources -name '*.test.ts')
45
+
46
+ build:
47
+ name: Build (${{ matrix.os }})
48
+ needs: verify
49
+ runs-on: ${{ matrix.os }}
50
+ strategy:
51
+ fail-fast: false
52
+ matrix:
53
+ include:
54
+ - os: ubuntu-latest
55
+ eb_args: '--linux AppImage'
56
+ artifacts: |
57
+ release/*.AppImage
58
+ - os: windows-latest
59
+ eb_args: '--win nsis portable'
60
+ artifacts: |
61
+ release/*.exe
62
+ - os: macos-latest
63
+ eb_args: '--mac dmg zip'
64
+ artifacts: |
65
+ release/*.dmg
66
+ release/*.zip
67
+
68
+ steps:
69
+ - name: Checkout
70
+ uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
71
+
72
+ - name: Set up Node.js
73
+ uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
74
+ with:
75
+ node-version: '20'
76
+ cache: 'npm'
77
+
78
+ # Runs postinstall, which rebuilds native modules (node-pty) for Electron.
79
+ # NOTE: confirmed (2026-06-08) that the windows-latest runner's bundled
80
+ # Visual Studio already includes the Spectre-mitigated MSVC libs node-pty
81
+ # needs — it compiles here with no explicit install step. An earlier
82
+ # vs_installer step worked but added ~4 min for nothing, so it was removed.
83
+ # (People building from source on their own machines may still need those
84
+ # libs — see README.)
85
+ - name: Install dependencies
86
+ run: npm ci
87
+
88
+ - name: Type-check
89
+ run: npm run typecheck
90
+
91
+ - name: Build renderer/main/preload
92
+ run: npm run build
93
+
94
+ - name: Package with electron-builder
95
+ shell: bash
96
+ run: npx --no-install electron-builder ${{ matrix.eb_args }} --publish never
97
+ env:
98
+ # No certificates in alpha — don't attempt to sign the macOS app.
99
+ CSC_IDENTITY_AUTO_DISCOVERY: 'false'
100
+
101
+ - name: Upload installers
102
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
103
+ with:
104
+ name: installers-${{ matrix.os }}
105
+ path: ${{ matrix.artifacts }}
106
+ if-no-files-found: error
107
+ retention-days: 14
108
+
109
+ release:
110
+ name: Publish prerelease
111
+ needs: build
112
+ if: startsWith(github.ref, 'refs/tags/v')
113
+ runs-on: ubuntu-latest
114
+ permissions:
115
+ contents: write
116
+ steps:
117
+ - name: Download all installers
118
+ uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
119
+ with:
120
+ path: dist
121
+ merge-multiple: true
122
+
123
+ # Attaches the built installers to the release for this tag. If you
124
+ # pre-created the release in the GitHub UI with your own notes, those
125
+ # notes are preserved (no generate_release_notes, no body input). If the
126
+ # tag was pushed without a release, one is created with an empty body.
127
+ - name: Attach installers to the release
128
+ uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2
129
+ with:
130
+ prerelease: true
131
+ make_latest: false
132
+ fail_on_unmatched_files: true
133
+ files: dist/**/*