studiograph 1.3.48-next.63 → 1.3.48-next.65

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 (191) hide show
  1. package/dist/core/graph.d.ts +30 -2
  2. package/dist/core/graph.js +114 -44
  3. package/dist/core/graph.js.map +1 -1
  4. package/dist/server/routes/messages-api.js +2 -1
  5. package/dist/server/routes/messages-api.js.map +1 -1
  6. package/dist/server/ws-hub.d.ts +6 -0
  7. package/dist/server/ws-hub.js.map +1 -1
  8. package/dist/services/folder-creation.js +30 -15
  9. package/dist/services/folder-creation.js.map +1 -1
  10. package/dist/services/message-service.d.ts +1 -1
  11. package/dist/services/message-service.js +2 -1
  12. package/dist/services/message-service.js.map +1 -1
  13. package/dist/web/_app/immutable/assets/2.DG_-dozo.css +1 -0
  14. package/dist/web/_app/immutable/assets/{4.BrNsJ1qz.css → 4.CazPb4Rr.css} +1 -1
  15. package/dist/web/_app/immutable/assets/AgentOverlay.kOHyQOWd.css +1 -0
  16. package/dist/web/_app/immutable/assets/ChatPanel.C-pIaCIG.css +1 -0
  17. package/dist/web/_app/immutable/assets/FolderMutationDialogs.BMRF6Z3z.css +1 -0
  18. package/dist/web/_app/immutable/assets/FolderPicker.B5KdvRYl.css +1 -0
  19. package/dist/web/_app/immutable/assets/assets.GJJRVPUJ.css +1 -0
  20. package/dist/web/_app/immutable/assets/button.BlLm4Dg1.css +1 -0
  21. package/dist/web/_app/immutable/assets/dialog.BxVal_19.css +1 -0
  22. package/dist/web/_app/immutable/assets/inline-list.DORLo4xF.css +1 -0
  23. package/dist/web/_app/immutable/assets/notifications.clodJdp5.css +1 -0
  24. package/dist/web/_app/immutable/assets/{dialog.DE0lUEff.css → select.6kk_9oaf.css} +1 -1
  25. package/dist/web/_app/immutable/chunks/{C5fGU2m1.js → 7lhYQApC2.js} +1 -1
  26. package/dist/web/_app/immutable/chunks/{CE7L6Zpe.js → AsXn_b4h.js} +1 -1
  27. package/dist/web/_app/immutable/chunks/B1r9ozhS.js +1 -0
  28. package/dist/web/_app/immutable/chunks/B9cgR3IZ.js +1 -0
  29. package/dist/web/_app/immutable/chunks/BDZ6uuRG2.js +1 -0
  30. package/dist/web/_app/immutable/chunks/BDlMzeIh2.js +1 -0
  31. package/dist/web/_app/immutable/chunks/{BL2hTQS5.js → BEYCzKe22.js} +3 -3
  32. package/dist/web/_app/immutable/chunks/BGzsVXnL2.js +1 -0
  33. package/dist/web/_app/immutable/chunks/BJbeDCQJ.js +2 -0
  34. package/dist/web/_app/immutable/chunks/BMBNIYsi.js +1 -0
  35. package/dist/web/_app/immutable/chunks/{2cShlZEM.js → BSYl11hA.js} +1 -1
  36. package/dist/web/_app/immutable/chunks/BSbYAaUq.js +1 -0
  37. package/dist/web/_app/immutable/chunks/BSesTdXW2.js +5 -0
  38. package/dist/web/_app/immutable/chunks/BTpYXtNe2.js +1 -0
  39. package/dist/web/_app/immutable/chunks/Bb2ELe0P.js +23 -0
  40. package/dist/web/_app/immutable/chunks/{bfG3CkQL2.js → BcdIU8-62.js} +1 -1
  41. package/dist/web/_app/immutable/chunks/{Dc3SQAqp2.js → Bgv0F77Q.js} +1 -1
  42. package/dist/web/_app/immutable/chunks/BiaKYq_8.js +3 -0
  43. package/dist/web/_app/immutable/chunks/{ecoVpAPo.js → BjLHzSM8.js} +1 -1
  44. package/dist/web/_app/immutable/chunks/{BEoSxHXx.js → BkVn1vAY2.js} +1 -1
  45. package/dist/web/_app/immutable/chunks/{DfaEdm9t.js → BmXnwghe2.js} +1 -1
  46. package/dist/web/_app/immutable/chunks/BokkGefb.js +3 -0
  47. package/dist/web/_app/immutable/chunks/BuEyZEf1.js +3 -0
  48. package/dist/web/_app/immutable/chunks/BvEs0QRa.js +1 -0
  49. package/dist/web/_app/immutable/chunks/{DvxVwYfa.js → BvlK99-O2.js} +1 -1
  50. package/dist/web/_app/immutable/chunks/ByBgrG532.js +1 -0
  51. package/dist/web/_app/immutable/chunks/{Cecl4vCM.js → BydIen7o2.js} +1 -1
  52. package/dist/web/_app/immutable/chunks/C0txqlF7.js +1 -0
  53. package/dist/web/_app/immutable/chunks/C18uYe0f.js +1 -0
  54. package/dist/web/_app/immutable/chunks/C1Wszk402.js +1 -0
  55. package/dist/web/_app/immutable/chunks/{C2XIdrC92.js → C7hLhzLl2.js} +1 -1
  56. package/dist/web/_app/immutable/chunks/{C2XTIieD.js → C930YH0y.js} +1 -1
  57. package/dist/web/_app/immutable/chunks/CA0mkXdc.js +1 -0
  58. package/dist/web/_app/immutable/chunks/CCkefr6g2.js +8 -0
  59. package/dist/web/_app/immutable/chunks/{D3X1MnaE2.js → CEVODSXQ2.js} +1 -1
  60. package/dist/web/_app/immutable/chunks/CI_TVdTP.js +2 -0
  61. package/dist/web/_app/immutable/chunks/CK44skoP.js +1 -0
  62. package/dist/web/_app/immutable/chunks/CVsIVVD5.js +1 -0
  63. package/dist/web/_app/immutable/chunks/{B82gW5OH.js → CW-DMu5i2.js} +1 -1
  64. package/dist/web/_app/immutable/chunks/CXXc3_Hn2.js +1 -0
  65. package/dist/web/_app/immutable/chunks/C_Vz2_rz2.js +1 -0
  66. package/dist/web/_app/immutable/chunks/{DCoVSfrp.js → Cdbxvnhk.js} +1 -1
  67. package/dist/web/_app/immutable/chunks/ClOsujUW.js +1 -0
  68. package/dist/web/_app/immutable/chunks/{KMkTq8Df.js → Custl8CX.js} +1 -1
  69. package/dist/web/_app/immutable/chunks/CvQOpth2.js +1 -0
  70. package/dist/web/_app/immutable/chunks/CwWix3ZJ.js +1 -0
  71. package/dist/web/_app/immutable/chunks/{CHM-HZFF2.js → D0MnEQO52.js} +1 -1
  72. package/dist/web/_app/immutable/chunks/D26bnC0n2.js +1 -0
  73. package/dist/web/_app/immutable/chunks/D5n0SLm62.js +1 -0
  74. package/dist/web/_app/immutable/chunks/D8rJNKpJ.js +1 -0
  75. package/dist/web/_app/immutable/chunks/{DvWUjt8K2.js → DCzmuUDt2.js} +1 -1
  76. package/dist/web/_app/immutable/chunks/DGA4WvP62.js +1 -0
  77. package/dist/web/_app/immutable/chunks/DGY3H8pE.js +1 -0
  78. package/dist/web/_app/immutable/chunks/{Dx6Jstp2.js → DI6agslL2.js} +1 -1
  79. package/dist/web/_app/immutable/chunks/DKCx3VFw.js +1 -0
  80. package/dist/web/_app/immutable/chunks/{BAfssLkd.js → DTixN1ym.js} +1 -1
  81. package/dist/web/_app/immutable/chunks/DUToZr3O.js +1 -0
  82. package/dist/web/_app/immutable/chunks/DWaVATyl.js +1 -0
  83. package/dist/web/_app/immutable/chunks/{D96sWocG.js → DXPx0xgu2.js} +1 -1
  84. package/dist/web/_app/immutable/chunks/D_xpwQgP2.js +1 -0
  85. package/dist/web/_app/immutable/chunks/{BK5MhE1G.js → DcGNUrbP2.js} +1 -1
  86. package/dist/web/_app/immutable/chunks/DekNTWVq2.js +1 -0
  87. package/dist/web/_app/immutable/chunks/Di8yNtKb.js +1 -0
  88. package/dist/web/_app/immutable/chunks/Dl4enVrP2.js +1 -0
  89. package/dist/web/_app/immutable/chunks/{bvTpYMwz.js → Dq9djwGf.js} +1 -1
  90. package/dist/web/_app/immutable/chunks/Drq_gNaH.js +1 -0
  91. package/dist/web/_app/immutable/chunks/Drx0IZi52.js +5 -0
  92. package/dist/web/_app/immutable/chunks/{DkqAgmv_.js → DuVgPbSB.js} +1 -1
  93. package/dist/web/_app/immutable/chunks/Dx2bPlw62.js +1 -0
  94. package/dist/web/_app/immutable/chunks/DzjQg1jN.js +1 -0
  95. package/dist/web/_app/immutable/chunks/GhNJsy2_2.js +1 -0
  96. package/dist/web/_app/immutable/chunks/{DTh1khwh.js → HdT-rxnR.js} +1 -1
  97. package/dist/web/_app/immutable/chunks/QHl-MliC2.js +1 -0
  98. package/dist/web/_app/immutable/chunks/QXlmPNNC.js +2 -0
  99. package/dist/web/_app/immutable/chunks/RkVRDv3z2.js +1 -0
  100. package/dist/web/_app/immutable/chunks/SVa9roPd.js +1 -0
  101. package/dist/web/_app/immutable/chunks/{CNbcPeuZ.js → ZRS_h5W0.js} +1 -1
  102. package/dist/web/_app/immutable/chunks/belA-n0_2.js +7 -0
  103. package/dist/web/_app/immutable/chunks/{BPRoR5qN.js → ctaa2nlY.js} +1 -1
  104. package/dist/web/_app/immutable/chunks/dmiQdwhb2.js +1 -0
  105. package/dist/web/_app/immutable/chunks/{CfNEi5WM.js → ggLP9rl9.js} +1 -1
  106. package/dist/web/_app/immutable/chunks/{DlUG32rD2.js → o8njo6L22.js} +1 -1
  107. package/dist/web/_app/immutable/chunks/{D8XLAg62.js → sc5y1Uza.js} +1 -1
  108. package/dist/web/_app/immutable/chunks/t227R--W.js +2 -0
  109. package/dist/web/_app/immutable/chunks/tkoak_ED2.js +1 -0
  110. package/dist/web/_app/immutable/chunks/uqxmB78b.js +1 -0
  111. package/dist/web/_app/immutable/chunks/zHqq1ZG92.js +64 -0
  112. package/dist/web/_app/immutable/entry/app.BWtss44O.js +2 -0
  113. package/dist/web/_app/immutable/entry/start.Bg-61GDl.js +1 -0
  114. package/dist/web/_app/immutable/nodes/0.BOj9W-wV.js +2 -0
  115. package/dist/web/_app/immutable/nodes/{1.B-iUDeoY.js → 1.C8t44Th0.js} +1 -1
  116. package/dist/web/_app/immutable/nodes/10.BvWXnqvj.js +1 -0
  117. package/dist/web/_app/immutable/nodes/11.B-IcU6uR.js +1 -0
  118. package/dist/web/_app/immutable/nodes/12.B1Ln6ch-.js +1 -0
  119. package/dist/web/_app/immutable/nodes/13.4g-XEQOx.js +1 -0
  120. package/dist/web/_app/immutable/nodes/2.gBSAO5Uk.js +130 -0
  121. package/dist/web/_app/immutable/nodes/3.BXLaFv_Q.js +2 -0
  122. package/dist/web/_app/immutable/nodes/4.CTSung1a.js +11 -0
  123. package/dist/web/_app/immutable/nodes/5.B-HaUigK.js +1 -0
  124. package/dist/web/_app/immutable/nodes/{6.B4BMqp62.js → 6.DQQtbKgu.js} +1 -1
  125. package/dist/web/_app/immutable/nodes/{7.CXmGS-GY.js → 7.F0gt9uWd.js} +1 -1
  126. package/dist/web/_app/immutable/nodes/8.CT0Uib-E.js +1 -0
  127. package/dist/web/_app/immutable/nodes/9.Deq_Ncma.js +1 -0
  128. package/dist/web/_app/version.json +1 -1
  129. package/dist/web/index.html +19 -18
  130. package/package.json +1 -1
  131. package/dist/web/_app/immutable/assets/2.CzCmNBRY.css +0 -1
  132. package/dist/web/_app/immutable/assets/inline-list.rzNXAp-v.css +0 -1
  133. package/dist/web/_app/immutable/chunks/65i-Btx7.js +0 -1
  134. package/dist/web/_app/immutable/chunks/A3-aknun.js +0 -1
  135. package/dist/web/_app/immutable/chunks/B3Vu74c4.js +0 -1
  136. package/dist/web/_app/immutable/chunks/B3lz72kL.js +0 -1
  137. package/dist/web/_app/immutable/chunks/B6qKe5ae2.js +0 -1
  138. package/dist/web/_app/immutable/chunks/B9PG22sW2.js +0 -1
  139. package/dist/web/_app/immutable/chunks/BKTFRkeZ.js +0 -3
  140. package/dist/web/_app/immutable/chunks/BXlWEOtB.js +0 -1
  141. package/dist/web/_app/immutable/chunks/BfQgIer3.js +0 -1
  142. package/dist/web/_app/immutable/chunks/BvUEzZwm.js +0 -1
  143. package/dist/web/_app/immutable/chunks/C00Nawmf.js +0 -23
  144. package/dist/web/_app/immutable/chunks/CCg0vb2A.js +0 -1
  145. package/dist/web/_app/immutable/chunks/CI2CywAq.js +0 -5
  146. package/dist/web/_app/immutable/chunks/CIYh18JI2.js +0 -5
  147. package/dist/web/_app/immutable/chunks/CPf2yg73.js +0 -2
  148. package/dist/web/_app/immutable/chunks/CSJn3OuH2.js +0 -1
  149. package/dist/web/_app/immutable/chunks/CTH6P5rr2.js +0 -1
  150. package/dist/web/_app/immutable/chunks/CXMFwi0a.js +0 -1
  151. package/dist/web/_app/immutable/chunks/CbJry73t2.js +0 -1
  152. package/dist/web/_app/immutable/chunks/CjlZhQuo.js +0 -1
  153. package/dist/web/_app/immutable/chunks/D8R_B4rx2.js +0 -1
  154. package/dist/web/_app/immutable/chunks/DGU5v_5n.js +0 -1
  155. package/dist/web/_app/immutable/chunks/DGkxftB-.js +0 -1
  156. package/dist/web/_app/immutable/chunks/DOlzgfsF.js +0 -1
  157. package/dist/web/_app/immutable/chunks/DXWMrMc_.js +0 -2
  158. package/dist/web/_app/immutable/chunks/DZWdnHt82.js +0 -1
  159. package/dist/web/_app/immutable/chunks/DdUfx5cq.js +0 -1
  160. package/dist/web/_app/immutable/chunks/DigaJI1D2.js +0 -2
  161. package/dist/web/_app/immutable/chunks/Dw6QlhwO.js +0 -7
  162. package/dist/web/_app/immutable/chunks/EjHVjmDt.js +0 -3
  163. package/dist/web/_app/immutable/chunks/pISG8ERJ.js +0 -2
  164. package/dist/web/_app/immutable/chunks/sGBYj9fx.js +0 -1
  165. package/dist/web/_app/immutable/chunks/y7YYCduM2.js +0 -1
  166. package/dist/web/_app/immutable/entry/app.COcEpbcA.js +0 -2
  167. package/dist/web/_app/immutable/entry/start.BIuyA_3U.js +0 -1
  168. package/dist/web/_app/immutable/nodes/0.BFz6U57b.js +0 -2
  169. package/dist/web/_app/immutable/nodes/10.B5rRG3uc.js +0 -1
  170. package/dist/web/_app/immutable/nodes/11.Dzp8QIgx.js +0 -1
  171. package/dist/web/_app/immutable/nodes/12.Cg3SWjmx.js +0 -1
  172. package/dist/web/_app/immutable/nodes/13.CFWtcuIB.js +0 -1
  173. package/dist/web/_app/immutable/nodes/2.FHeAEzwq.js +0 -201
  174. package/dist/web/_app/immutable/nodes/3.BV1zH-f8.js +0 -2
  175. package/dist/web/_app/immutable/nodes/4.Cj74Agii.js +0 -11
  176. package/dist/web/_app/immutable/nodes/5.BN4tZQtz.js +0 -1
  177. package/dist/web/_app/immutable/nodes/8.DVz1bvj1.js +0 -1
  178. package/dist/web/_app/immutable/nodes/9.ecJkFnyM.js +0 -1
  179. /package/dist/web/_app/immutable/assets/{Copy.Bepw-r0F.css → Information.Bepw-r0F.css} +0 -0
  180. /package/dist/web/_app/immutable/assets/{StopFilledAlt.BaRwO0NM.css → SearchField.BaRwO0NM.css} +0 -0
  181. /package/dist/web/_app/immutable/chunks/{BhyxKDga.js → 2uhRJf0Q.js} +0 -0
  182. /package/dist/web/_app/immutable/chunks/{Bv52Rfrv.js → BOvJ-m40.js} +0 -0
  183. /package/dist/web/_app/immutable/chunks/{D5xweKNB2.js → BlWWfgJF.js} +0 -0
  184. /package/dist/web/_app/immutable/chunks/{hzurA9KY2.js → CaOW4NOR.js} +0 -0
  185. /package/dist/web/_app/immutable/chunks/{D4-uJBsB.js → Cd54IAIO.js} +0 -0
  186. /package/dist/web/_app/immutable/chunks/{DmLxGtJx.js → Csjjp0Sq.js} +0 -0
  187. /package/dist/web/_app/immutable/chunks/{DsUwN4QQ.js → Cx3EIG-Y2.js} +0 -0
  188. /package/dist/web/_app/immutable/chunks/{C9lzo1Xw.js → DYbojjaP.js} +0 -0
  189. /package/dist/web/_app/immutable/chunks/{YIJPpGoa2.js → DzbBNbmQ.js} +0 -0
  190. /package/dist/web/_app/immutable/chunks/{Bp8iWC-t.js → H4oTdCzS.js} +0 -0
  191. /package/dist/web/_app/immutable/chunks/{CkmRWGr2.js → xLgxpWxP.js} +0 -0
@@ -203,10 +203,38 @@ export declare class BaseGraphManager {
203
203
  * entries in any folder — not just the legacy {plural-type}/ dirs.
204
204
  */
205
205
  listEntityTypes(): string[];
206
+ /**
207
+ * Folder lifecycle: a directory is treated as a first-class persistent
208
+ * object. It exists from the moment it's created (createFolder, the destination
209
+ * of a moved entry, etc.) until it's explicitly removed via a folder-level
210
+ * operation (deleteFolder, renameFolder, moveFolderToRepo). Entry-level
211
+ * operations (create, delete, move, transfer) never decide whether a folder
212
+ * lives or dies.
213
+ *
214
+ * `listFolders()` requires either a .md child or a .gitkeep marker for a
215
+ * directory to surface in the API, so the two helpers below are the single
216
+ * place that adds and removes the marker:
217
+ *
218
+ * - `ensureFolderMarker` — call after an op that may have left `dir`
219
+ * without .md children. Writes `.gitkeep` and returns its path so the
220
+ * caller can stage it in the same commit.
221
+ * - `removeFolderMarker` — call after an op that placed an .md into `dir`.
222
+ * Drops a now-redundant `.gitkeep` so the repo stays tidy.
223
+ *
224
+ * Both no-op for the repo root (always implicit) and for paths that don't
225
+ * exist. Both return `null` when nothing changed.
226
+ */
227
+ private ensureFolderMarker;
228
+ private removeFolderMarker;
206
229
  /**
207
230
  * Walk up from `dir`, removing each directory that became empty after a
208
- * delete or move. Stops at the repo root. Silently no-ops if a directory
209
- * is missing, non-empty, or can't be removed.
231
+ * folder-level removal (deleteFolder, renameFolder, moveFolderToRepo).
232
+ * Stops at the repo root. Silently no-ops if a directory is missing,
233
+ * non-empty, or can't be removed.
234
+ *
235
+ * NOT called by entry-level operations (create/delete/move/transfer) —
236
+ * they preserve folder structure regardless of whether they emptied a
237
+ * directory. Use `ensureFolderMarker` instead for those paths.
210
238
  */
211
239
  private pruneEmptyAncestors;
212
240
  /**
@@ -5,7 +5,7 @@
5
5
  * Integrates Git, Markdown, and Asset services.
6
6
  */
7
7
  import { join, dirname, relative } from 'path';
8
- import { existsSync, readdirSync, statSync, writeFileSync, mkdirSync } from 'fs';
8
+ import { existsSync, readdirSync, rmSync, statSync, writeFileSync, mkdirSync } from 'fs';
9
9
  import { GitService } from '../services/git.js';
10
10
  import { MarkdownService } from '../services/markdown.js';
11
11
  import { AssetService } from '../services/assets/index.js';
@@ -291,6 +291,9 @@ export class BaseGraphManager {
291
291
  content,
292
292
  wikilinks: this.markdownService.extractWikilinks(content, validatedData),
293
293
  });
294
+ // The folder now has an .md child, so any pre-existing .gitkeep is
295
+ // redundant. Drop it as part of the same commit so the repo stays tidy.
296
+ const removedMarker = this.removeFolderMarker(dirname(entityPath));
294
297
  this.invalidateIndex();
295
298
  if (this.gitService && !skipCommit) {
296
299
  const transaction = this.gitService.createTransaction();
@@ -300,6 +303,14 @@ export class BaseGraphManager {
300
303
  entityId,
301
304
  filePath: entityPath,
302
305
  });
306
+ if (removedMarker) {
307
+ transaction.add({
308
+ operation: 'delete',
309
+ entityType,
310
+ entityId,
311
+ filePath: removedMarker,
312
+ });
313
+ }
303
314
  const message = commitMessage || `Create ${entityType}: ${entityId}`;
304
315
  await transaction.commit(user ?? this.gitUser, message);
305
316
  }
@@ -456,8 +467,12 @@ export class BaseGraphManager {
456
467
  // Verify entity exists
457
468
  const existing = this.get(entityType, entityId);
458
469
  // Delete the flat entity file
459
- const { rmSync } = await import('fs');
460
470
  rmSync(existing.path, { force: true });
471
+ // Folder lifecycle: deleting an entry never deletes its containing folder.
472
+ // If this was the last .md in the folder, write a .gitkeep so it stays
473
+ // visible to listFolders() (and therefore to the sidebar). A user who
474
+ // wants the folder gone calls deleteFolder() explicitly.
475
+ const addedMarker = this.ensureFolderMarker(dirname(existing.path));
461
476
  this.invalidateIndex();
462
477
  if (this.gitService) {
463
478
  const transaction = this.gitService.createTransaction();
@@ -467,13 +482,17 @@ export class BaseGraphManager {
467
482
  entityId,
468
483
  filePath: existing.path,
469
484
  });
485
+ if (addedMarker) {
486
+ transaction.add({
487
+ operation: 'create',
488
+ entityType,
489
+ entityId,
490
+ filePath: addedMarker,
491
+ });
492
+ }
470
493
  const message = commitMessage || `Delete ${entityType}: ${entityId}`;
471
494
  await transaction.commit(user ?? this.gitUser, message);
472
495
  }
473
- // Walk back up from the deleted file's directory and drop any directories
474
- // that became empty. Mirrors the legacy pruneEmptyTypeDir cleanup but
475
- // works for arbitrary nested folders too.
476
- await this.pruneEmptyAncestors(dirname(existing.path));
477
496
  // Remove from vector index (fire-and-forget, non-fatal)
478
497
  this.vectorService?.delete(this.repoName, entityType, entityId).catch(err => console.warn(`[vector] delete failed for ${entityType}/${entityId}:`, err.message));
479
498
  }
@@ -590,18 +609,22 @@ export class BaseGraphManager {
590
609
  throw new Error(`Path already occupied: ${normalized}/${entityId}.md`);
591
610
  }
592
611
  mkdirSync(dirname(newPath), { recursive: true });
593
- const { renameSync, rmSync } = await import('fs');
612
+ const { renameSync } = await import('fs');
594
613
  renameSync(existing.path, newPath);
614
+ // Folder lifecycle: source stays addressable via .gitkeep if it lost its
615
+ // last .md; destination drops any redundant .gitkeep now that it has one.
616
+ const filesToCommit = [existing.path, newPath];
617
+ const addedSourceMarker = this.ensureFolderMarker(dirname(existing.path));
618
+ if (addedSourceMarker)
619
+ filesToCommit.push(addedSourceMarker);
620
+ const removedDestMarker = this.removeFolderMarker(dirname(newPath));
621
+ if (removedDestMarker)
622
+ filesToCommit.push(removedDestMarker);
595
623
  this.invalidateIndex();
596
624
  if (this.gitService) {
597
625
  const message = commitMessage || `Move ${entityType}: ${entityId} → ${normalized || '(root)'}`;
598
- this.gitService.commitFiles([existing.path, newPath], message, user ?? this.gitUser);
626
+ this.gitService.commitFiles(filesToCommit, message, user ?? this.gitUser);
599
627
  }
600
- // Intentionally NOT pruning empty ancestors here. Move is a relocation,
601
- // not a destructive intent — the user set up the folder structure on
602
- // purpose and shouldn't lose it just because they emptied a folder out.
603
- // delete()/deleteFolder()/renameFolder() still prune for their own
604
- // semantics (the source path is gone).
605
628
  return this.get(entityType, entityId);
606
629
  }
607
630
  /**
@@ -623,10 +646,66 @@ export class BaseGraphManager {
623
646
  }
624
647
  return [...types].sort();
625
648
  }
649
+ /**
650
+ * Folder lifecycle: a directory is treated as a first-class persistent
651
+ * object. It exists from the moment it's created (createFolder, the destination
652
+ * of a moved entry, etc.) until it's explicitly removed via a folder-level
653
+ * operation (deleteFolder, renameFolder, moveFolderToRepo). Entry-level
654
+ * operations (create, delete, move, transfer) never decide whether a folder
655
+ * lives or dies.
656
+ *
657
+ * `listFolders()` requires either a .md child or a .gitkeep marker for a
658
+ * directory to surface in the API, so the two helpers below are the single
659
+ * place that adds and removes the marker:
660
+ *
661
+ * - `ensureFolderMarker` — call after an op that may have left `dir`
662
+ * without .md children. Writes `.gitkeep` and returns its path so the
663
+ * caller can stage it in the same commit.
664
+ * - `removeFolderMarker` — call after an op that placed an .md into `dir`.
665
+ * Drops a now-redundant `.gitkeep` so the repo stays tidy.
666
+ *
667
+ * Both no-op for the repo root (always implicit) and for paths that don't
668
+ * exist. Both return `null` when nothing changed.
669
+ */
670
+ ensureFolderMarker(dir) {
671
+ if (dir === this.repoPath)
672
+ return null;
673
+ if (!existsSync(dir))
674
+ return null;
675
+ const entries = readdirSync(dir);
676
+ const hasMd = entries.some(e => e.endsWith('.md') && !e.startsWith('.'));
677
+ if (hasMd)
678
+ return null;
679
+ const keepPath = join(dir, '.gitkeep');
680
+ if (existsSync(keepPath))
681
+ return null;
682
+ writeFileSync(keepPath, '');
683
+ return keepPath;
684
+ }
685
+ removeFolderMarker(dir) {
686
+ if (dir === this.repoPath)
687
+ return null;
688
+ if (!existsSync(dir))
689
+ return null;
690
+ const keepPath = join(dir, '.gitkeep');
691
+ if (!existsSync(keepPath))
692
+ return null;
693
+ const entries = readdirSync(dir);
694
+ const hasMd = entries.some(e => e.endsWith('.md') && !e.startsWith('.'));
695
+ if (!hasMd)
696
+ return null; // marker still load-bearing
697
+ rmSync(keepPath, { force: true });
698
+ return keepPath;
699
+ }
626
700
  /**
627
701
  * Walk up from `dir`, removing each directory that became empty after a
628
- * delete or move. Stops at the repo root. Silently no-ops if a directory
629
- * is missing, non-empty, or can't be removed.
702
+ * folder-level removal (deleteFolder, renameFolder, moveFolderToRepo).
703
+ * Stops at the repo root. Silently no-ops if a directory is missing,
704
+ * non-empty, or can't be removed.
705
+ *
706
+ * NOT called by entry-level operations (create/delete/move/transfer) —
707
+ * they preserve folder structure regardless of whether they emptied a
708
+ * directory. Use `ensureFolderMarker` instead for those paths.
630
709
  */
631
710
  async pruneEmptyAncestors(dir) {
632
711
  const { rmSync } = await import('fs');
@@ -1194,7 +1273,7 @@ export class BaseGraphManager {
1194
1273
  }
1195
1274
  if (moves.length === 0)
1196
1275
  return { moved: 0 };
1197
- const { renameSync, cpSync, rmSync, writeFileSync } = await import('fs');
1276
+ const { renameSync, cpSync } = await import('fs');
1198
1277
  mkdirSync(targetDir, { recursive: true });
1199
1278
  for (const m of moves) {
1200
1279
  try {
@@ -1210,33 +1289,22 @@ export class BaseGraphManager {
1210
1289
  }
1211
1290
  }
1212
1291
  }
1213
- // Preserve source subfolders that just became empty. listFolders() only
1214
- // returns a directory if it contains a .md file or .gitkeep without this
1215
- // step a user who moved every entry out of a subfolder would see the
1216
- // subfolder disappear from the sidebar (and any open route to it shows the
1217
- // empty state). Drop a .gitkeep so the folder stays addressable until the
1218
- // user explicitly deletes it. Skip for the repo root and for paths that
1219
- // already have a .gitkeep.
1220
- const gitkeepPaths = [];
1221
- const visitedDirs = new Set();
1292
+ // Folder lifecycle: ensure markers in every source dir we may have
1293
+ // emptied, drop the marker in the (single) target dir now that it has
1294
+ // .md children. Helpers no-op for the repo root and for paths that
1295
+ // are already in the right state, so calling them per dir is cheap.
1296
+ const sourceMarkers = [];
1297
+ const visitedSourceDirs = new Set();
1222
1298
  for (const m of moves) {
1223
1299
  const sourceDir = dirname(m.src);
1224
- if (sourceDir === this.repoPath)
1225
- continue;
1226
- if (visitedDirs.has(sourceDir))
1227
- continue;
1228
- visitedDirs.add(sourceDir);
1229
- if (!existsSync(sourceDir))
1230
- continue;
1231
- const remaining = readdirSync(sourceDir).filter(n => !n.startsWith('.') && n.endsWith('.md'));
1232
- if (remaining.length > 0)
1233
- continue;
1234
- const keepPath = join(sourceDir, '.gitkeep');
1235
- if (existsSync(keepPath))
1300
+ if (visitedSourceDirs.has(sourceDir))
1236
1301
  continue;
1237
- writeFileSync(keepPath, '');
1238
- gitkeepPaths.push(keepPath);
1302
+ visitedSourceDirs.add(sourceDir);
1303
+ const added = this.ensureFolderMarker(sourceDir);
1304
+ if (added)
1305
+ sourceMarkers.push(added);
1239
1306
  }
1307
+ const removedTargetMarker = target.removeFolderMarker(targetDir);
1240
1308
  this.invalidateIndex();
1241
1309
  if (target !== this)
1242
1310
  target.invalidateIndex();
@@ -1246,15 +1314,17 @@ export class BaseGraphManager {
1246
1314
  : `${target.repoName}:${targetNormalized || '(root)'}`;
1247
1315
  const sourceMessage = options?.commitMessage ?? `Move ${moves.length} entries → ${where}`;
1248
1316
  if (this.gitService) {
1249
- const paths = target === this
1250
- ? [...moves.map(m => m.src), ...moves.map(m => m.dst), ...gitkeepPaths]
1251
- : [...moves.map(m => m.src), ...gitkeepPaths];
1252
- this.gitService.commitFiles(paths, sourceMessage, user);
1317
+ const sourcePaths = [...moves.map(m => m.src), ...sourceMarkers];
1318
+ const dstStaging = target === this
1319
+ ? [...moves.map(m => m.dst), ...(removedTargetMarker ? [removedTargetMarker] : [])]
1320
+ : [];
1321
+ this.gitService.commitFiles([...sourcePaths, ...dstStaging], sourceMessage, user);
1253
1322
  }
1254
1323
  if (target !== this && target.gitService) {
1255
1324
  const targetMessage = options?.commitMessage
1256
1325
  ?? `Receive ${moves.length} entries from ${this.repoName}`;
1257
- target.gitService.commitFiles(moves.map(m => m.dst), targetMessage, user);
1326
+ const targetPaths = [...moves.map(m => m.dst), ...(removedTargetMarker ? [removedTargetMarker] : [])];
1327
+ target.gitService.commitFiles(targetPaths, targetMessage, user);
1258
1328
  }
1259
1329
  return { moved: moves.length };
1260
1330
  }
@@ -1 +1 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/core/graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/core/graph.ts"],"names":[],"mappings":"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"}
@@ -144,10 +144,11 @@ export async function registerMessagesApiRoutes(fastify, messageService, authSer
144
144
  const now = new Date().toISOString();
145
145
  const folder = scope === 'workspace' ? null : message.folder;
146
146
  for (const u of mentionedUsers) {
147
- messageService.createNotification(u.id, folder, message.id, senderName, preview);
147
+ const notificationId = messageService.createNotification(u.id, folder, message.id, senderName, preview);
148
148
  wsHub.broadcastToUser(String(u.id), {
149
149
  type: 'user_mention',
150
150
  userId: u.id,
151
+ notificationId,
151
152
  folder,
152
153
  messageId: message.id,
153
154
  mentionerName: senderName,