pi-cloud 2.0.2 → 2.0.3

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 (108) hide show
  1. package/.env.example +7 -1
  2. package/CHANGELOG.md +22 -0
  3. package/client/dist/.vite/manifest.json +335 -322
  4. package/client/dist/assets/{EditorPanel-CVtykOZb.css → EditorPanel-05eppUGB.css} +1 -1
  5. package/client/dist/assets/{EditorPanel-CmUoE78w.js → EditorPanel-DjSEzAcA.js} +196 -194
  6. package/client/dist/assets/GitChangesView-C19K76Go.css +1 -0
  7. package/client/dist/assets/GitChangesView-CzdZfPVS.js +4 -0
  8. package/client/dist/assets/GitHistoryView-CY510Ujt.css +1 -0
  9. package/client/dist/assets/GitHistoryView-DAW-MXtb.js +3 -0
  10. package/client/dist/assets/MemoryCenter-pR90CW4C.js +1 -0
  11. package/client/dist/assets/{PhCaretLeft.vue-mR6H4iil.js → PhCaretLeft.vue-DvBClUvX.js} +1 -1
  12. package/client/dist/assets/{PhFolderOpen.vue-CBZCIEKc.js → PhFolderOpen.vue-3LXINHx8.js} +1 -1
  13. package/client/dist/assets/SettingsDialog-Bq1Z3DZI.js +5 -0
  14. package/client/dist/assets/SettingsDialog-DQPiq1vt.css +1 -0
  15. package/client/dist/assets/TaskInboxPanel-BPLcGRv9.js +1 -0
  16. package/client/dist/assets/{TerminalPanel-BKnITvmW.js → TerminalPanel-cKyF8WQc.js} +1 -1
  17. package/client/dist/assets/{abnfDiagram-VCTEODGH-C0onveOK.js → abnfDiagram-VCTEODGH-E5SFS0yC.js} +1 -1
  18. package/client/dist/assets/{arc-BtnkAKcM.js → arc-DycaAm6T.js} +1 -1
  19. package/client/dist/assets/{architectureDiagram-5GKGNRK7-BWzkt3mg.js → architectureDiagram-5GKGNRK7-DuhHAhfl.js} +1 -1
  20. package/client/dist/assets/{blockDiagram-NRAW4CY4-B5U3jj5J.js → blockDiagram-NRAW4CY4-CtGRxwRI.js} +1 -1
  21. package/client/dist/assets/{c4Diagram-UCG6FXSJ-BijI8bRn.js → c4Diagram-UCG6FXSJ-BiiMxfZp.js} +1 -1
  22. package/client/dist/assets/channel-C5r64Ao4.js +1 -0
  23. package/client/dist/assets/{chunk-2Q5K7J3B-BEieUt6C.js → chunk-2Q5K7J3B-CDZ0_s8n.js} +1 -1
  24. package/client/dist/assets/{chunk-5VM5RSS4-DK306biR.js → chunk-5VM5RSS4-sB3leBwr.js} +1 -1
  25. package/client/dist/assets/{chunk-F27PBJKO-jkwA9GYW.js → chunk-F27PBJKO-D8iWeCQF.js} +1 -1
  26. package/client/dist/assets/{chunk-G27WJ6UU-DnVXeFY7.js → chunk-G27WJ6UU-DD2fIuBW.js} +1 -1
  27. package/client/dist/assets/{chunk-JWPE2WC7-DpOSXvW8.js → chunk-JWPE2WC7-B3xxW2KI.js} +1 -1
  28. package/client/dist/assets/{chunk-LCL6LL3I-BD7QKy4w.js → chunk-LCL6LL3I-C21DLXxq.js} +1 -1
  29. package/client/dist/assets/{chunk-POPQ4Y6H-BqLcddFA.js → chunk-POPQ4Y6H-I4QgfJZx.js} +1 -1
  30. package/client/dist/assets/{chunk-SVP7TREG-C9GhrbFg.js → chunk-SVP7TREG-VbaUClr5.js} +1 -1
  31. package/client/dist/assets/{chunk-XXDRQBXY-jQoIqp5a.js → chunk-XXDRQBXY-DLw3kW40.js} +1 -1
  32. package/client/dist/assets/classDiagram-DTDB5LWJ-ClxIA4Iz.js +1 -0
  33. package/client/dist/assets/classDiagram-v2-JRS7N3AN-ClxIA4Iz.js +1 -0
  34. package/client/dist/assets/{cose-bilkent-JH36ORCC-DNt10hsx.js → cose-bilkent-JH36ORCC-BOamffmB.js} +1 -1
  35. package/client/dist/assets/{cssMode-D5VnGCRL.js → cssMode-CBdHgd4L.js} +1 -1
  36. package/client/dist/assets/{cynefin-OW5HDTMX-wI0wNPcp.js → cynefin-OW5HDTMX-rQvby0lk.js} +1 -1
  37. package/client/dist/assets/{cynefinDiagram-5FMLGOSQ-DwksvA8r.js → cynefinDiagram-5FMLGOSQ-BZWSzmhI.js} +1 -1
  38. package/client/dist/assets/{dagre-3AP2YEHR-ZY-MhFWR.js → dagre-3AP2YEHR-CSYQ78mc.js} +1 -1
  39. package/client/dist/assets/{diagram-S7CK7UJ4-BKaJVqZu.js → diagram-S7CK7UJ4-TDm0jY-y.js} +1 -1
  40. package/client/dist/assets/{diagram-UQ7AKVKN-DAaE-rA1.js → diagram-UQ7AKVKN-BEK9v3UO.js} +1 -1
  41. package/client/dist/assets/{diagram-VSXAHHWV-CJJ9xyap.js → diagram-VSXAHHWV-DN1fDjHm.js} +1 -1
  42. package/client/dist/assets/{diagram-VX7I27RA-4Er142Er.js → diagram-VX7I27RA-Dps0-Oiv.js} +1 -1
  43. package/client/dist/assets/{diagram-Z3DM3KII-eEe26_w-.js → diagram-Z3DM3KII-_HuCaT7o.js} +1 -1
  44. package/client/dist/assets/{ebnfDiagram-PWID7BFC-Dshy_lHs.js → ebnfDiagram-PWID7BFC-DM20IsBH.js} +1 -1
  45. package/client/dist/assets/{erDiagram-SSCWMZ5O-k7LwDRbW.js → erDiagram-SSCWMZ5O-Wa0fYRpx.js} +1 -1
  46. package/client/dist/assets/{flowDiagram-A5DVABFB-7_X479bX.js → flowDiagram-A5DVABFB-GI8ygHcX.js} +1 -1
  47. package/client/dist/assets/{freemarker2-B7Gu__z_.js → freemarker2-BDOhjTEG.js} +1 -1
  48. package/client/dist/assets/{ganttDiagram-EL5Y4UJY-5WmBzvON.js → ganttDiagram-EL5Y4UJY-VWo3tmSh.js} +1 -1
  49. package/client/dist/assets/{gitGraphDiagram-WWUBYQGX-CGTy36Lq.js → gitGraphDiagram-WWUBYQGX-BACh_dfL.js} +1 -1
  50. package/client/dist/assets/{handlebars-DRBRCJNd.js → handlebars-VtJCRZXm.js} +1 -1
  51. package/client/dist/assets/{html-6prUe0kc.js → html-QKZpDpWm.js} +1 -1
  52. package/client/dist/assets/{htmlMode-DWoHKeAk.js → htmlMode-CcbYa-9U.js} +1 -1
  53. package/client/dist/assets/index-7hqurJ6S.css +1 -0
  54. package/client/dist/assets/index-BEdzBcRP.js +407 -0
  55. package/client/dist/assets/{index-GTyUzvDG.js → index-CnAFHum-.js} +1 -1
  56. package/client/dist/assets/{infoDiagram-RXCK75RN-DZVb1P4d.js → infoDiagram-RXCK75RN-HyxwzqeC.js} +1 -1
  57. package/client/dist/assets/{ishikawaDiagram-5VMMS53U-CMgYHU70.js → ishikawaDiagram-5VMMS53U-DW12nYAB.js} +1 -1
  58. package/client/dist/assets/{javascript-Celvl7cV.js → javascript-BH2NT4f9.js} +1 -1
  59. package/client/dist/assets/{journeyDiagram-EYS64GPL-BnqHXNJS.js → journeyDiagram-EYS64GPL-cZq67mKh.js} +1 -1
  60. package/client/dist/assets/{jsonMode-DLC0POfi.js → jsonMode-DBFCjAht.js} +1 -1
  61. package/client/dist/assets/{kanban-definition-3QL26DDD-BeStEVi-.js → kanban-definition-3QL26DDD-CTl6MllY.js} +1 -1
  62. package/client/dist/assets/{layout-B8XEB-tZ.js → layout-COJhPF_X.js} +1 -1
  63. package/client/dist/assets/{linear-C1qdgmvA.js → linear-CISlOH8-.js} +1 -1
  64. package/client/dist/assets/{liquid-CiU5o5FX.js → liquid-CJMBQvrh.js} +1 -1
  65. package/client/dist/assets/{lspLanguageFeatures-BXNRwtlE.js → lspLanguageFeatures-DW0GDbKY.js} +1 -1
  66. package/client/dist/assets/{mdx-CfTUs1eY.js → mdx-DbvY5p5Q.js} +1 -1
  67. package/client/dist/assets/{mermaid.core-CFpSBIjf.js → mermaid.core-6wQEj5oY.js} +31 -31
  68. package/client/dist/assets/{mindmap-definition-FBJOCRG2-CUNP7NW4.js → mindmap-definition-FBJOCRG2-BmDs-Kvc.js} +1 -1
  69. package/client/dist/assets/{pegDiagram-XKGWAZYB-bRD6LI7t.js → pegDiagram-XKGWAZYB-B9lhiwTj.js} +1 -1
  70. package/client/dist/assets/{pieDiagram-E7YTZNPT-CUE2D9Mz.js → pieDiagram-E7YTZNPT-BK2wOrkg.js} +1 -1
  71. package/client/dist/assets/{python-rOgKTqjK.js → python-Dhvww05H.js} +1 -1
  72. package/client/dist/assets/{quadrantDiagram-AXDQQJYC-zDDE2XzB.js → quadrantDiagram-AXDQQJYC-BwrSFUdz.js} +1 -1
  73. package/client/dist/assets/{railroadDiagram-O6MQD6OU-3TRS2gLn.js → railroadDiagram-O6MQD6OU-OKUE5uEt.js} +1 -1
  74. package/client/dist/assets/{razor-DhEzBZvo.js → razor-C-_EHJcK.js} +1 -1
  75. package/client/dist/assets/{requirementDiagram-EFPCY7ZU-Cgm0MiBG.js → requirementDiagram-EFPCY7ZU-BL_P4bjE.js} +1 -1
  76. package/client/dist/assets/{sankeyDiagram-P5KCCOFB-DzQfpaqZ.js → sankeyDiagram-P5KCCOFB-Cj1I06hb.js} +1 -1
  77. package/client/dist/assets/{sequenceDiagram-WJ2MYXX4-D_eKGGY5.js → sequenceDiagram-WJ2MYXX4-D0L0IdkF.js} +1 -1
  78. package/client/dist/assets/{sizeCapture-X5ZJPWSS-BVFpPdEZ.js → sizeCapture-X5ZJPWSS-CEV3-bek.js} +1 -1
  79. package/client/dist/assets/{stateDiagram-HBIQ2CUA-Bvp5OM6x.js → stateDiagram-HBIQ2CUA-BOD-54ip.js} +1 -1
  80. package/client/dist/assets/stateDiagram-v2-4QOOHH4V-Bqqdavzk.js +1 -0
  81. package/client/dist/assets/{swimlanes-XN3QIQJK-B497DW3A.js → swimlanes-XN3QIQJK-CGiwYks4.js} +1 -1
  82. package/client/dist/assets/swimlanesDiagram-VK2B7HYN-CgwmAjfg.js +8 -0
  83. package/client/dist/assets/{timeline-definition-24CTP7MA-BHAeybVL.js → timeline-definition-24CTP7MA-ZgPnjDG_.js} +1 -1
  84. package/client/dist/assets/{tsMode-BKQ7PNBK.js → tsMode-DT5jMTFM.js} +1 -1
  85. package/client/dist/assets/{typescript-0T3kV3Fw.js → typescript-BjCX65yY.js} +1 -1
  86. package/client/dist/assets/{useTerminal-D0Eg4ohV.js → useTerminal-BHIbuphG.js} +1 -1
  87. package/client/dist/assets/{vennDiagram-4TSXK5OY-C3aoPRLD.js → vennDiagram-4TSXK5OY-Ca2MxBLC.js} +1 -1
  88. package/client/dist/assets/{wardleyDiagram-VM6X3IG4-D45EDW-W.js → wardleyDiagram-VM6X3IG4-Bqzt0pcq.js} +1 -1
  89. package/client/dist/assets/{workers-nJulRuKZ.js → workers-BIdikAp3.js} +1 -1
  90. package/client/dist/assets/{xml-Dm41fNV2.js → xml-CwVKr8bK.js} +1 -1
  91. package/client/dist/assets/{xychartDiagram-S5SC5T6Z-CCfr24LB.js → xychartDiagram-S5SC5T6Z-CpU075HP.js} +1 -1
  92. package/client/dist/assets/{yaml-BHs6-_Vy.js → yaml-wprV8sgi.js} +1 -1
  93. package/client/dist/index.html +2 -2
  94. package/package.json +1 -1
  95. package/server/dist/index.js +863 -263
  96. package/client/dist/assets/GitHistoryView-BZF9vYG5.css +0 -1
  97. package/client/dist/assets/GitHistoryView-v-2M8_wB.js +0 -2
  98. package/client/dist/assets/MemoryCenter-C7FlmiQa.js +0 -1
  99. package/client/dist/assets/SettingsDialog-BaIuifOT.css +0 -1
  100. package/client/dist/assets/SettingsDialog-CmkVcpN6.js +0 -5
  101. package/client/dist/assets/TaskInboxPanel-CZiNlRVB.js +0 -1
  102. package/client/dist/assets/channel-Fc9PxOLB.js +0 -1
  103. package/client/dist/assets/classDiagram-DTDB5LWJ-D6WMV2bo.js +0 -1
  104. package/client/dist/assets/classDiagram-v2-JRS7N3AN-D6WMV2bo.js +0 -1
  105. package/client/dist/assets/index-D8pylZiM.css +0 -1
  106. package/client/dist/assets/index-nLzofEMh.js +0 -407
  107. package/client/dist/assets/stateDiagram-v2-4QOOHH4V-CM3P74Kw.js +0 -1
  108. package/client/dist/assets/swimlanesDiagram-VK2B7HYN-DAMUXB40.js +0 -8
package/.env.example CHANGED
@@ -30,7 +30,7 @@ PI_CLOUD_COOKIE_SECURE=false
30
30
  # Enable only when requests always pass through a trusted reverse proxy.
31
31
  PI_CLOUD_TRUST_PROXY=false
32
32
 
33
- # Emergency 2FA recovery only. Keep false during normal operation.
33
+ # Emergency 2FA recovery only. Bypasses TOTP, but not password verification. Keep false during normal operation.
34
34
  SKIP_2FA_VERIFY=false
35
35
 
36
36
 
@@ -41,6 +41,12 @@ SKIP_2FA_VERIFY=false
41
41
  # Custom SQLite database path. Defaults to the user configuration directory.
42
42
  # PI_CLOUD_DB_PATH=/home/youruser/.config/pi-cloud/pi-cloud.sqlite
43
43
 
44
+ # Base64-encoded 32-byte key for encrypting credentials stored in SQLite.
45
+ # Generate with: openssl rand -base64 32
46
+ # If unset, Pi Cloud creates <database-path>.credentials.key with owner-only permissions.
47
+ # Back up the key separately; losing or changing it makes stored credentials unrecoverable.
48
+ # PI_CLOUD_CREDENTIAL_ENCRYPTION_KEY=
49
+
44
50
  # Comma-separated directories the file browser and terminal may access.
45
51
  # Defaults to the current user's home directory.
46
52
  # PI_CLOUD_ALLOWED_ROOTS=/home/youruser/git/github,/home/youruser/projects
package/CHANGELOG.md CHANGED
@@ -2,6 +2,28 @@
2
2
 
3
3
  All notable changes to Pi Cloud are documented here.
4
4
 
5
+ ## [2.0.3] - 2026-09-19
6
+
7
+ ### Added
8
+
9
+ - Added a dedicated Git Commit view with staged and unstaged diff browsing, file, hunk, and selected-line staging, commit and amend controls, and push support.
10
+ - Added on-demand AI explanations for pending and historical Git diff hunks, with a customizable explanation prompt.
11
+ - Added image annotations with zooming, panning, color tones, flattened PNG export, and customizable annotation-tool shortcuts shared with PDF previews.
12
+ - Added per-tab workspace restoration after refresh for the editor, active file, task inbox, and terminal visibility and display mode.
13
+
14
+ ### Changed
15
+
16
+ - Stored TOTP secrets, Git hosting tokens, and gateway credentials are now encrypted in SQLite with an environment-managed or automatically generated key; existing plaintext credentials are migrated on startup.
17
+ - Enabling or disabling two-factor authentication and clearing the audit log now require password reauthentication and, when enabled, the current TOTP code.
18
+ - Annotation sidecars are now stored in a hidden `.annotations` directory, while legacy sidecars remain readable.
19
+ - Empty `@` file searches now list all workspace files with recent files first instead of showing only recent files, and search results are no longer limited to ten suggestions.
20
+
21
+ ### Fixed
22
+
23
+ - Reject Feishu webhook requests when no verification token is configured.
24
+ - Prevent PDF wheel zoom without Ctrl or Command, and keep text annotations within page bounds.
25
+ - Serialize Git index and commit operations to prevent concurrent staging or commit updates from racing.
26
+
5
27
  ## [2.0.2] - 2026-09-12
6
28
 
7
29
  ### Added