mirror-mind 0.0.1 → 0.33.0

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 (474) hide show
  1. package/.claude/hooks/log-assistant-reply.sh +85 -0
  2. package/.claude/hooks/log-session-end.sh +85 -0
  3. package/.claude/hooks/log-user-prompt.sh +85 -0
  4. package/.claude/hooks/mirror-inject.sh +85 -0
  5. package/.claude/hooks/session-start.sh +85 -0
  6. package/.gemini/hooks/log-assistant.sh +85 -0
  7. package/.gemini/hooks/log-user.sh +85 -0
  8. package/.gemini/hooks/session-end.sh +85 -0
  9. package/.gemini/hooks/session-start.sh +85 -0
  10. package/.pi/extensions/mirror-logger.ts +646 -0
  11. package/.pi/skills/mm-backup/SKILL.md +21 -0
  12. package/.pi/skills/mm-build/SKILL.md +1206 -0
  13. package/.pi/skills/mm-consolidate/SKILL.md +112 -0
  14. package/.pi/skills/mm-consult/SKILL.md +70 -0
  15. package/.pi/skills/mm-conversations/SKILL.md +16 -0
  16. package/.pi/skills/mm-discard/SKILL.md +39 -0
  17. package/.pi/skills/mm-explore/SKILL.md +255 -0
  18. package/.pi/skills/mm-help/SKILL.md +74 -0
  19. package/.pi/skills/mm-identity/SKILL.md +96 -0
  20. package/.pi/skills/mm-journal/SKILL.md +16 -0
  21. package/.pi/skills/mm-journey/SKILL.md +23 -0
  22. package/.pi/skills/mm-journeys/SKILL.md +15 -0
  23. package/.pi/skills/mm-memories/SKILL.md +17 -0
  24. package/.pi/skills/mm-mirror/SKILL.md +98 -0
  25. package/.pi/skills/mm-mute/SKILL.md +18 -0
  26. package/.pi/skills/mm-new/SKILL.md +18 -0
  27. package/.pi/skills/mm-recall/SKILL.md +17 -0
  28. package/.pi/skills/mm-release-notes/SKILL.md +52 -0
  29. package/.pi/skills/mm-seed/SKILL.md +19 -0
  30. package/.pi/skills/mm-shadow/SKILL.md +117 -0
  31. package/.pi/skills/mm-soul/SKILL.md +502 -0
  32. package/.pi/skills/mm-tasks/SKILL.md +24 -0
  33. package/.pi/skills/mm-update/SKILL.md +32 -0
  34. package/.pi/skills/mm-week/SKILL.md +28 -0
  35. package/.pi/skills/mm-welcome/SKILL.md +24 -0
  36. package/AGENTS.md +188 -0
  37. package/README.md +126 -9
  38. package/bin/loader.js +67 -0
  39. package/bin/mirror-hook.js +7 -0
  40. package/bin/mirror.js +7 -0
  41. package/docs/releases/index.md +100 -0
  42. package/docs/releases/pending-cutoffs.md +510 -0
  43. package/docs/releases/v0.10.0.md +123 -0
  44. package/docs/releases/v0.10.1.md +66 -0
  45. package/docs/releases/v0.10.10.md +51 -0
  46. package/docs/releases/v0.10.11.md +39 -0
  47. package/docs/releases/v0.10.12.md +57 -0
  48. package/docs/releases/v0.10.13.md +35 -0
  49. package/docs/releases/v0.10.14.md +42 -0
  50. package/docs/releases/v0.10.15.md +53 -0
  51. package/docs/releases/v0.10.16.md +35 -0
  52. package/docs/releases/v0.10.17.md +43 -0
  53. package/docs/releases/v0.10.2.md +64 -0
  54. package/docs/releases/v0.10.3.md +78 -0
  55. package/docs/releases/v0.10.4.md +42 -0
  56. package/docs/releases/v0.10.5.md +57 -0
  57. package/docs/releases/v0.10.6.md +47 -0
  58. package/docs/releases/v0.10.7.md +53 -0
  59. package/docs/releases/v0.10.8.md +49 -0
  60. package/docs/releases/v0.10.9.md +37 -0
  61. package/docs/releases/v0.11.0.md +86 -0
  62. package/docs/releases/v0.12.0.md +67 -0
  63. package/docs/releases/v0.13.0.md +64 -0
  64. package/docs/releases/v0.14.0.md +68 -0
  65. package/docs/releases/v0.15.0.md +48 -0
  66. package/docs/releases/v0.16.0.md +50 -0
  67. package/docs/releases/v0.16.1.md +55 -0
  68. package/docs/releases/v0.16.2.md +36 -0
  69. package/docs/releases/v0.17.0.md +50 -0
  70. package/docs/releases/v0.17.1.md +58 -0
  71. package/docs/releases/v0.17.2.md +42 -0
  72. package/docs/releases/v0.17.3.md +58 -0
  73. package/docs/releases/v0.18.0.md +84 -0
  74. package/docs/releases/v0.18.1.md +51 -0
  75. package/docs/releases/v0.18.2.md +69 -0
  76. package/docs/releases/v0.19.0.md +85 -0
  77. package/docs/releases/v0.19.1.md +46 -0
  78. package/docs/releases/v0.20.0.md +85 -0
  79. package/docs/releases/v0.21.0.md +61 -0
  80. package/docs/releases/v0.21.1.md +47 -0
  81. package/docs/releases/v0.22.0.md +77 -0
  82. package/docs/releases/v0.22.1.md +42 -0
  83. package/docs/releases/v0.23.0.md +105 -0
  84. package/docs/releases/v0.24.0.md +125 -0
  85. package/docs/releases/v0.25.0.md +107 -0
  86. package/docs/releases/v0.26.0.md +139 -0
  87. package/docs/releases/v0.26.1.md +65 -0
  88. package/docs/releases/v0.26.2.md +43 -0
  89. package/docs/releases/v0.27.0.md +63 -0
  90. package/docs/releases/v0.28.0.md +59 -0
  91. package/docs/releases/v0.29.0.md +61 -0
  92. package/docs/releases/v0.29.1.md +59 -0
  93. package/docs/releases/v0.29.2.md +59 -0
  94. package/docs/releases/v0.29.3.md +93 -0
  95. package/docs/releases/v0.30.0.md +75 -0
  96. package/docs/releases/v0.30.1.md +93 -0
  97. package/docs/releases/v0.30.2.md +66 -0
  98. package/docs/releases/v0.31.0.md +122 -0
  99. package/docs/releases/v0.31.1.md +142 -0
  100. package/docs/releases/v0.31.10.md +118 -0
  101. package/docs/releases/v0.31.11.md +88 -0
  102. package/docs/releases/v0.31.12.md +105 -0
  103. package/docs/releases/v0.31.13.md +99 -0
  104. package/docs/releases/v0.31.14.md +97 -0
  105. package/docs/releases/v0.31.2.md +115 -0
  106. package/docs/releases/v0.31.3.md +142 -0
  107. package/docs/releases/v0.31.4.md +117 -0
  108. package/docs/releases/v0.31.5.md +155 -0
  109. package/docs/releases/v0.31.6.md +132 -0
  110. package/docs/releases/v0.31.7.md +132 -0
  111. package/docs/releases/v0.31.8.md +120 -0
  112. package/docs/releases/v0.31.9.md +120 -0
  113. package/docs/releases/v0.32.0.md +261 -0
  114. package/docs/releases/v0.32.1.md +59 -0
  115. package/docs/releases/v0.33.0.md +164 -0
  116. package/docs/releases/v0.8.0.md +118 -0
  117. package/docs/releases/v0.9.0.md +98 -0
  118. package/docs/releases/v0.9.1.md +83 -0
  119. package/package.json +102 -6
  120. package/plugins/mirror-mind/.claude-plugin/plugin.json +17 -0
  121. package/plugins/mirror-mind/hooks/hooks.json +62 -0
  122. package/plugins/mirror-mind/hooks/log-assistant-reply.sh +98 -0
  123. package/plugins/mirror-mind/hooks/log-session-end.sh +98 -0
  124. package/plugins/mirror-mind/hooks/log-user-prompt.sh +98 -0
  125. package/plugins/mirror-mind/hooks/mirror-inject.sh +98 -0
  126. package/plugins/mirror-mind/hooks/session-start.sh +98 -0
  127. package/plugins/mirror-mind/skills/mm-backup/SKILL.md +27 -0
  128. package/plugins/mirror-mind/skills/mm-build/SKILL.md +1206 -0
  129. package/plugins/mirror-mind/skills/mm-consolidate/SKILL.md +112 -0
  130. package/plugins/mirror-mind/skills/mm-consult/SKILL.md +83 -0
  131. package/plugins/mirror-mind/skills/mm-conversations/SKILL.md +17 -0
  132. package/plugins/mirror-mind/skills/mm-discard/SKILL.md +40 -0
  133. package/plugins/mirror-mind/skills/mm-explore/SKILL.md +241 -0
  134. package/plugins/mirror-mind/skills/mm-help/SKILL.md +104 -0
  135. package/plugins/mirror-mind/skills/mm-identity/SKILL.md +96 -0
  136. package/plugins/mirror-mind/skills/mm-journal/SKILL.md +21 -0
  137. package/plugins/mirror-mind/skills/mm-journey/SKILL.md +37 -0
  138. package/plugins/mirror-mind/skills/mm-journeys/SKILL.md +15 -0
  139. package/plugins/mirror-mind/skills/mm-memories/SKILL.md +20 -0
  140. package/plugins/mirror-mind/skills/mm-mirror/SKILL.md +67 -0
  141. package/plugins/mirror-mind/skills/mm-mute/SKILL.md +18 -0
  142. package/plugins/mirror-mind/skills/mm-new/SKILL.md +18 -0
  143. package/plugins/mirror-mind/skills/mm-recall/SKILL.md +17 -0
  144. package/plugins/mirror-mind/skills/mm-release-notes/SKILL.md +31 -0
  145. package/plugins/mirror-mind/skills/mm-seed/SKILL.md +15 -0
  146. package/plugins/mirror-mind/skills/mm-shadow/SKILL.md +117 -0
  147. package/plugins/mirror-mind/skills/mm-soul/SKILL.md +488 -0
  148. package/plugins/mirror-mind/skills/mm-tasks/SKILL.md +36 -0
  149. package/plugins/mirror-mind/skills/mm-update/SKILL.md +30 -0
  150. package/plugins/mirror-mind/skills/mm-week/SKILL.md +46 -0
  151. package/plugins/mirror-mind/skills/mm-welcome/SKILL.md +22 -0
  152. package/scripts/codex-hooks/session-end.sh +85 -0
  153. package/scripts/codex-hooks/session-start.sh +85 -0
  154. package/scripts/codex-mirror.sh +48 -0
  155. package/templates/identity/README.md +119 -0
  156. package/templates/identity/ego/behavior.yaml +52 -0
  157. package/templates/identity/ego/constraints.yaml +15 -0
  158. package/templates/identity/ego/identity.yaml +43 -0
  159. package/templates/identity/journeys/personal-growth.yaml +39 -0
  160. package/templates/identity/organization/identity.yaml +24 -0
  161. package/templates/identity/organization/principles.yaml +17 -0
  162. package/templates/identity/personas/coach.yaml +94 -0
  163. package/templates/identity/personas/designer.yaml +93 -0
  164. package/templates/identity/personas/doctor.yaml +96 -0
  165. package/templates/identity/personas/engineer.yaml +77 -0
  166. package/templates/identity/personas/financial.yaml +97 -0
  167. package/templates/identity/personas/prompt-engineer.yaml +122 -0
  168. package/templates/identity/personas/researcher.yaml +88 -0
  169. package/templates/identity/personas/strategist.yaml +91 -0
  170. package/templates/identity/personas/teacher.yaml +95 -0
  171. package/templates/identity/personas/therapist.yaml +91 -0
  172. package/templates/identity/personas/thinker.yaml +74 -0
  173. package/templates/identity/personas/writer.yaml +76 -0
  174. package/templates/identity/self/config.yaml +16 -0
  175. package/templates/identity/self/soul.yaml +105 -0
  176. package/templates/identity/user/identity.yaml +30 -0
  177. package/ts/src/backup/staging.ts +62 -0
  178. package/ts/src/backup/zipBackup.ts +267 -0
  179. package/ts/src/backup/zipReader.ts +109 -0
  180. package/ts/src/backup/zipWriter.ts +148 -0
  181. package/ts/src/builder/activeCheckpoint.ts +134 -0
  182. package/ts/src/builder/aggregateStatus.ts +34 -0
  183. package/ts/src/builder/approve.ts +149 -0
  184. package/ts/src/builder/argv.ts +292 -0
  185. package/ts/src/builder/ariadMethod.ts +536 -0
  186. package/ts/src/builder/artifacts/artifactSurfaces.ts +106 -0
  187. package/ts/src/builder/artifacts/artifactWriter.ts +113 -0
  188. package/ts/src/builder/artifacts/closureArtifacts.ts +199 -0
  189. package/ts/src/builder/artifacts/deliveryStoryArtifacts.ts +316 -0
  190. package/ts/src/builder/artifacts/planArtifacts.ts +242 -0
  191. package/ts/src/builder/artifacts/scaffoldSections.ts +273 -0
  192. package/ts/src/builder/artifacts/scaffoldState.ts +227 -0
  193. package/ts/src/builder/artifacts/storyFiles.ts +61 -0
  194. package/ts/src/builder/artifacts/storyIndex.ts +166 -0
  195. package/ts/src/builder/cadence.ts +59 -0
  196. package/ts/src/builder/card.ts +192 -0
  197. package/ts/src/builder/checkpointRefused.ts +66 -0
  198. package/ts/src/builder/closure.ts +964 -0
  199. package/ts/src/builder/commands.ts +2053 -0
  200. package/ts/src/builder/cursorPosition.ts +176 -0
  201. package/ts/src/builder/cursorTransitions.ts +77 -0
  202. package/ts/src/builder/deliveryCursor.ts +577 -0
  203. package/ts/src/builder/deliveryStoryClosure.ts +521 -0
  204. package/ts/src/builder/deliveryStoryPlan.ts +536 -0
  205. package/ts/src/builder/deliveryStoryReady.ts +160 -0
  206. package/ts/src/builder/deliveryStoryRoadmapClosure.ts +151 -0
  207. package/ts/src/builder/expand.ts +336 -0
  208. package/ts/src/builder/flowUnit.ts +339 -0
  209. package/ts/src/builder/homeSurface.ts +122 -0
  210. package/ts/src/builder/implementationGuard.ts +125 -0
  211. package/ts/src/builder/index.ts +11 -0
  212. package/ts/src/builder/lifecycleRefusal.ts +92 -0
  213. package/ts/src/builder/lifecycleRibbon.ts +159 -0
  214. package/ts/src/builder/load.ts +313 -0
  215. package/ts/src/builder/methodAdoption.ts +113 -0
  216. package/ts/src/builder/methodDefinition.ts +429 -0
  217. package/ts/src/builder/methodInspection.ts +371 -0
  218. package/ts/src/builder/plan.ts +408 -0
  219. package/ts/src/builder/planPreauthorization.ts +265 -0
  220. package/ts/src/builder/prepare.ts +225 -0
  221. package/ts/src/builder/projectPaths.ts +64 -0
  222. package/ts/src/builder/pull.ts +356 -0
  223. package/ts/src/builder/pullCandidates.ts +463 -0
  224. package/ts/src/builder/pullCandidatesRender.ts +238 -0
  225. package/ts/src/builder/refinementField.ts +93 -0
  226. package/ts/src/builder/releaseIntent.ts +173 -0
  227. package/ts/src/builder/resumeState.ts +84 -0
  228. package/ts/src/builder/resumeSurface.ts +149 -0
  229. package/ts/src/builder/roadmapGrammar.ts +300 -0
  230. package/ts/src/builder/roadmapScan.ts +97 -0
  231. package/ts/src/builder/roadmapScope.ts +210 -0
  232. package/ts/src/builder/scopePhrases.ts +146 -0
  233. package/ts/src/builder/storyPaths.ts +196 -0
  234. package/ts/src/builder/storyPlanPreauthorization.ts +287 -0
  235. package/ts/src/builder/surfaceProtocol.ts +42 -0
  236. package/ts/src/builder/templateGeneration.ts +148 -0
  237. package/ts/src/builder/transition.ts +178 -0
  238. package/ts/src/consult/args.ts +99 -0
  239. package/ts/src/consult/core.ts +122 -0
  240. package/ts/src/consult/modelCatalog.ts +55 -0
  241. package/ts/src/consult/render.ts +47 -0
  242. package/ts/src/conversation/append.ts +414 -0
  243. package/ts/src/conversation/backfill.ts +387 -0
  244. package/ts/src/conversation/closeTail.ts +467 -0
  245. package/ts/src/conversation/extraction.ts +333 -0
  246. package/ts/src/conversation/extractionDriver.ts +130 -0
  247. package/ts/src/conversation/extractionRun.ts +70 -0
  248. package/ts/src/conversation/hookPayload.ts +51 -0
  249. package/ts/src/conversation/journeyInference.ts +165 -0
  250. package/ts/src/conversation/journeyRepair.ts +114 -0
  251. package/ts/src/conversation/lifecycleFaces.ts +197 -0
  252. package/ts/src/conversation/lifecycleWrites.ts +313 -0
  253. package/ts/src/conversation/listing.ts +77 -0
  254. package/ts/src/conversation/logger.ts +851 -0
  255. package/ts/src/conversation/loggerCli.ts +321 -0
  256. package/ts/src/conversation/loggerRuntime.ts +259 -0
  257. package/ts/src/conversation/metadataLifecycle.ts +443 -0
  258. package/ts/src/conversation/recall.ts +66 -0
  259. package/ts/src/conversation/sessionComposites.ts +258 -0
  260. package/ts/src/conversation/sessionImport.ts +90 -0
  261. package/ts/src/conversation/transcriptBackfill.ts +141 -0
  262. package/ts/src/cultivation/applyActions.ts +241 -0
  263. package/ts/src/cultivation/cluster.ts +86 -0
  264. package/ts/src/cultivation/consolidationStore.ts +281 -0
  265. package/ts/src/cultivation/promptContext.ts +62 -0
  266. package/ts/src/cultivation/propose.ts +305 -0
  267. package/ts/src/cultivation/scan.ts +155 -0
  268. package/ts/src/db/backupGate.ts +47 -0
  269. package/ts/src/db/bootstrap.ts +108 -0
  270. package/ts/src/db/bootstrapLock.ts +223 -0
  271. package/ts/src/db/copyGuard.ts +60 -0
  272. package/ts/src/db/database.ts +397 -0
  273. package/ts/src/db/decode.ts +66 -0
  274. package/ts/src/db/ftsIntegrity.ts +41 -0
  275. package/ts/src/db/migrateOnOpen.ts +214 -0
  276. package/ts/src/db/migrations.ts +576 -0
  277. package/ts/src/db/readyOnOpen.ts +35 -0
  278. package/ts/src/db/rowDecode.ts +42 -0
  279. package/ts/src/db/schema.ts +432 -0
  280. package/ts/src/db/schemaInventory.ts +225 -0
  281. package/ts/src/db/schemaInventorySnapshot.ts +2107 -0
  282. package/ts/src/db/schemaState.ts +91 -0
  283. package/ts/src/db/schemaTsDivergence.ts +114 -0
  284. package/ts/src/descriptor/descriptorRead.ts +49 -0
  285. package/ts/src/docs/docsLint.ts +265 -0
  286. package/ts/src/explorer/handoff.ts +522 -0
  287. package/ts/src/explorer/render.ts +335 -0
  288. package/ts/src/explorer/story.ts +769 -0
  289. package/ts/src/explorer/transition.ts +72 -0
  290. package/ts/src/extensions/bindings.ts +170 -0
  291. package/ts/src/extensions/catalog.ts +249 -0
  292. package/ts/src/extensions/catalogCommands.ts +513 -0
  293. package/ts/src/extensions/catalogWrites.ts +652 -0
  294. package/ts/src/extensions/contextRuntime.ts +325 -0
  295. package/ts/src/extensions/dispatch.ts +374 -0
  296. package/ts/src/extensions/errors.ts +24 -0
  297. package/ts/src/extensions/manifest.ts +356 -0
  298. package/ts/src/extensions/migrations.ts +350 -0
  299. package/ts/src/extraction/conversation.ts +304 -0
  300. package/ts/src/extraction/conversationMetadata.ts +206 -0
  301. package/ts/src/extraction/fencing.ts +106 -0
  302. package/ts/src/extraction/json.ts +17 -0
  303. package/ts/src/extraction/prompts.ts +470 -0
  304. package/ts/src/frontDoor/args.ts +30 -0
  305. package/ts/src/frontDoor/argvShape.ts +106 -0
  306. package/ts/src/frontDoor/buildLoadRuntime.ts +139 -0
  307. package/ts/src/frontDoor/buildRoute.ts +398 -0
  308. package/ts/src/frontDoor/cli.ts +1872 -0
  309. package/ts/src/frontDoor/cloneRoleGuard.ts +98 -0
  310. package/ts/src/frontDoor/consultRoute.ts +50 -0
  311. package/ts/src/frontDoor/contentTailRoute.ts +239 -0
  312. package/ts/src/frontDoor/conversationLoggerRoute.ts +83 -0
  313. package/ts/src/frontDoor/cultivationRoute.ts +210 -0
  314. package/ts/src/frontDoor/dbPath.ts +131 -0
  315. package/ts/src/frontDoor/dbSafetyToolsRoute.ts +240 -0
  316. package/ts/src/frontDoor/exploreRoute.ts +572 -0
  317. package/ts/src/frontDoor/extensionCatalogRoute.ts +252 -0
  318. package/ts/src/frontDoor/frontDoorLog.ts +57 -0
  319. package/ts/src/frontDoor/identityWrite.ts +36 -0
  320. package/ts/src/frontDoor/journeyWriteRoute.ts +26 -0
  321. package/ts/src/frontDoor/lifecycleWriteRoute.ts +110 -0
  322. package/ts/src/frontDoor/liveBackup.ts +100 -0
  323. package/ts/src/frontDoor/mirrorModeRoute.ts +163 -0
  324. package/ts/src/frontDoor/namedRefusal.ts +35 -0
  325. package/ts/src/frontDoor/nodeSupport.ts +24 -0
  326. package/ts/src/frontDoor/render/consolidate.ts +199 -0
  327. package/ts/src/frontDoor/render/conversations.ts +33 -0
  328. package/ts/src/frontDoor/render/cultivationShared.ts +21 -0
  329. package/ts/src/frontDoor/render/descriptor.ts +20 -0
  330. package/ts/src/frontDoor/render/detectPersona.ts +50 -0
  331. package/ts/src/frontDoor/render/icons.ts +13 -0
  332. package/ts/src/frontDoor/render/identity.ts +59 -0
  333. package/ts/src/frontDoor/render/identityRows.ts +17 -0
  334. package/ts/src/frontDoor/render/inspectPersona.ts +53 -0
  335. package/ts/src/frontDoor/render/journeyStatus.ts +78 -0
  336. package/ts/src/frontDoor/render/journeys.ts +79 -0
  337. package/ts/src/frontDoor/render/list.ts +41 -0
  338. package/ts/src/frontDoor/render/memories.ts +67 -0
  339. package/ts/src/frontDoor/render/recall.ts +49 -0
  340. package/ts/src/frontDoor/render/shadow.ts +155 -0
  341. package/ts/src/frontDoor/render/tasks.ts +99 -0
  342. package/ts/src/frontDoor/render/tasksImportSync.ts +63 -0
  343. package/ts/src/frontDoor/render/week.ts +113 -0
  344. package/ts/src/frontDoor/routing.ts +1001 -0
  345. package/ts/src/frontDoor/runtimeRoute.ts +623 -0
  346. package/ts/src/frontDoor/searchRoute.ts +166 -0
  347. package/ts/src/frontDoor/seedPaths.ts +98 -0
  348. package/ts/src/frontDoor/sessionStartWelcomeRoute.ts +166 -0
  349. package/ts/src/frontDoor/soulRoute.ts +433 -0
  350. package/ts/src/frontDoor/stdinSource.ts +37 -0
  351. package/ts/src/frontDoor/tasksImportSyncRoute.ts +110 -0
  352. package/ts/src/frontDoor/tasksWriteRoute.ts +101 -0
  353. package/ts/src/frontDoor/usage.ts +176 -0
  354. package/ts/src/guards/claudePlugin.ts +298 -0
  355. package/ts/src/guards/packContents.ts +306 -0
  356. package/ts/src/guards/piSourcedSkills.ts +70 -0
  357. package/ts/src/guards/retiredRouteShadows.ts +57 -0
  358. package/ts/src/guards/retiredSurfaces.ts +564 -0
  359. package/ts/src/hooks/claude.ts +214 -0
  360. package/ts/src/hooks/codex.ts +45 -0
  361. package/ts/src/hooks/gemini.ts +126 -0
  362. package/ts/src/hooks/main.ts +109 -0
  363. package/ts/src/hooks/mirrorState.ts +71 -0
  364. package/ts/src/hooks/payload.ts +73 -0
  365. package/ts/src/hooks/runtime.ts +179 -0
  366. package/ts/src/hooks/runtimeDetection.ts +34 -0
  367. package/ts/src/identity/applyConsolidationIdentityUpdate.ts +67 -0
  368. package/ts/src/identity/descriptorGenerate.ts +162 -0
  369. package/ts/src/identity/identityEdit.ts +143 -0
  370. package/ts/src/identity/identityKey.ts +77 -0
  371. package/ts/src/identity/identityRead.ts +69 -0
  372. package/ts/src/identity/identityStore.ts +80 -0
  373. package/ts/src/identity/journeyListing.ts +53 -0
  374. package/ts/src/identity/personaInspect.ts +44 -0
  375. package/ts/src/identity/personaListing.ts +37 -0
  376. package/ts/src/identity/setIdentity.ts +64 -0
  377. package/ts/src/index.ts +231 -0
  378. package/ts/src/init/init.ts +111 -0
  379. package/ts/src/journey/journeyOptions.ts +131 -0
  380. package/ts/src/journey/journeyRemoval.ts +158 -0
  381. package/ts/src/journey/journeyStatus.ts +149 -0
  382. package/ts/src/journey/journeySyncFile.ts +87 -0
  383. package/ts/src/journey/journeyWrite.ts +203 -0
  384. package/ts/src/journey/parentJourney.ts +41 -0
  385. package/ts/src/journey/validateParentJourney.ts +55 -0
  386. package/ts/src/mcp/boundary.ts +151 -0
  387. package/ts/src/mcp/guards.ts +244 -0
  388. package/ts/src/mcp/main.ts +121 -0
  389. package/ts/src/mcp/payload.ts +141 -0
  390. package/ts/src/mcp/protocol.ts +141 -0
  391. package/ts/src/mcp/readModels.ts +241 -0
  392. package/ts/src/mcp/registry.ts +201 -0
  393. package/ts/src/mcp/serve.ts +120 -0
  394. package/ts/src/mcp/tools/deterministic.ts +137 -0
  395. package/ts/src/mcp/tools/providerCrossing.ts +187 -0
  396. package/ts/src/mcp/wire.ts +8 -0
  397. package/ts/src/memory/journal.ts +180 -0
  398. package/ts/src/memory/listing.ts +107 -0
  399. package/ts/src/memory/memoryWrite.ts +88 -0
  400. package/ts/src/memory/reinforcement.ts +35 -0
  401. package/ts/src/mirror/context.ts +161 -0
  402. package/ts/src/mirror/defaultResolution.ts +199 -0
  403. package/ts/src/mirror/mirrorForm.ts +43 -0
  404. package/ts/src/mirror/orchestration.ts +364 -0
  405. package/ts/src/mirror/reception.ts +194 -0
  406. package/ts/src/mirror/render.ts +75 -0
  407. package/ts/src/mirror/runtimeSession.ts +205 -0
  408. package/ts/src/mode/operatingMode.ts +148 -0
  409. package/ts/src/observability/callOutcome.ts +115 -0
  410. package/ts/src/observability/inspectLedger.ts +329 -0
  411. package/ts/src/observability/ledgerHooks.ts +126 -0
  412. package/ts/src/observability/llmCalls.ts +154 -0
  413. package/ts/src/persona/detectPersona.ts +81 -0
  414. package/ts/src/planning/promptAssembly.ts +111 -0
  415. package/ts/src/planning/weekPending.ts +81 -0
  416. package/ts/src/planning/weekPlan.ts +183 -0
  417. package/ts/src/planning/weekSave.ts +117 -0
  418. package/ts/src/providers/config.ts +189 -0
  419. package/ts/src/providers/cost.ts +64 -0
  420. package/ts/src/providers/credits.ts +204 -0
  421. package/ts/src/providers/embedding.ts +321 -0
  422. package/ts/src/providers/familyProviders.ts +147 -0
  423. package/ts/src/providers/llm.ts +334 -0
  424. package/ts/src/providers/openrouter.ts +244 -0
  425. package/ts/src/providers/redaction.ts +110 -0
  426. package/ts/src/providers/replay.ts +15 -0
  427. package/ts/src/providers/transport.ts +410 -0
  428. package/ts/src/repair/encodingRepair.ts +253 -0
  429. package/ts/src/runtime/backup.ts +151 -0
  430. package/ts/src/runtime/channel.ts +146 -0
  431. package/ts/src/runtime/config.ts +168 -0
  432. package/ts/src/runtime/diagnose.ts +686 -0
  433. package/ts/src/runtime/git.ts +510 -0
  434. package/ts/src/runtime/installKind.ts +220 -0
  435. package/ts/src/runtime/migrate.ts +154 -0
  436. package/ts/src/runtime/packageIdentity.ts +102 -0
  437. package/ts/src/runtime/releaseNotes.ts +244 -0
  438. package/ts/src/runtime/status.ts +557 -0
  439. package/ts/src/runtime/strategies/clone.ts +200 -0
  440. package/ts/src/runtime/strategies/package.ts +328 -0
  441. package/ts/src/runtime/treeRoot.ts +30 -0
  442. package/ts/src/runtime/update.ts +445 -0
  443. package/ts/src/runtime/updateGate.ts +40 -0
  444. package/ts/src/runtime/updatePipeline.ts +159 -0
  445. package/ts/src/runtime/version.ts +36 -0
  446. package/ts/src/runtime/wiring.ts +130 -0
  447. package/ts/src/search/memorySearch.ts +338 -0
  448. package/ts/src/search/ranker.ts +154 -0
  449. package/ts/src/seed/seed.ts +256 -0
  450. package/ts/src/seed/seedYaml.ts +133 -0
  451. package/ts/src/soul/apply.ts +218 -0
  452. package/ts/src/soul/harvest.ts +267 -0
  453. package/ts/src/soul/prompts/soul_beauty_voice.md +103 -0
  454. package/ts/src/soul/prompts/soul_self_voice.md +219 -0
  455. package/ts/src/soul/prompts/soul_wisdom_voice.md +121 -0
  456. package/ts/src/soul/prompts.ts +85 -0
  457. package/ts/src/soul/render.ts +358 -0
  458. package/ts/src/soul/state.ts +212 -0
  459. package/ts/src/soul/transition.ts +37 -0
  460. package/ts/src/tasks/journeyPathParse.ts +113 -0
  461. package/ts/src/tasks/taskImportSync.ts +142 -0
  462. package/ts/src/tasks/taskStore.ts +312 -0
  463. package/ts/src/tasks/weekView.ts +120 -0
  464. package/ts/src/util/clipCodePoints.ts +26 -0
  465. package/ts/src/util/paths.ts +63 -0
  466. package/ts/src/util/program.ts +9 -0
  467. package/ts/src/util/pyGenerators.ts +144 -0
  468. package/ts/src/util/pythonText.ts +317 -0
  469. package/ts/src/util/semver.ts +45 -0
  470. package/ts/src/util/shellWord.ts +25 -0
  471. package/ts/src/util/slug.ts +64 -0
  472. package/ts/src/welcome/card.ts +339 -0
  473. package/ts/src/welcome/statusLine.ts +101 -0
  474. package/ts/src/welcome/updateCache.ts +129 -0
@@ -0,0 +1,36 @@
1
+ ---
2
+ digest: >
3
+ v0.16.2 is a validation stub for the v0.16.1 runtime update preflight
4
+ resilience fix. It intentionally contains no functional runtime change, so
5
+ production can validate a normal stable update executed by the corrected
6
+ updater already installed in v0.16.1. The release moves only version and
7
+ release-note metadata.
8
+ ---
9
+
10
+ # v0.16.2 — Runtime Update Validation Stub
11
+
12
+ **Date:** 2026-05-27
13
+
14
+ ## Highlights
15
+
16
+ - Published a minimal stable release after v0.16.1.
17
+ - Intentionally contains no functional runtime changes.
18
+ - Exists to validate that the corrected updater in v0.16.1 can execute a normal production update to a newer stable release.
19
+
20
+ ## Why This Patch Exists
21
+
22
+ v0.16.1 delivered the updater fix that distinguishes strict runtime readiness from a narrow update-safe preflight state. Production confirmed that the fix could be delivered through the normal stable channel.
23
+
24
+ One more stub lets production validate the next question: can the newly corrected updater itself perform a normal stable update without development-branch bridging?
25
+
26
+ ## What Changed
27
+
28
+ Only the package version, release note, release index, and worklog move forward. Runtime behavior is unchanged from v0.16.1.
29
+
30
+ ## Conscious Exclusions
31
+
32
+ This release does not introduce new runtime behavior, database schema, web behavior, or updater logic. It also does not simulate future migration drift by editing production migration ledgers.
33
+
34
+ ## Next Horizon
35
+
36
+ Open production Mirror on v0.16.1, confirm it detects v0.16.2, run the normal update path, and verify that production reports v0.16.2 with `runtime status` ready and `runtime update --check` up to date.
@@ -0,0 +1,50 @@
1
+ ---
2
+ digest: >
3
+ v0.17.0 hardens conversation titles across the Mirror lifecycle. The release turns first-message titles into provisional state, generates durable titles at conversation close, adds startup maintenance for missed or backfilled conversations, and makes legacy retitling available as a bounded web operation with dry-run cost estimates, backups, progress feedback, remaining counts, and long-run polling. The release also polishes the Operations console so long LLM batches feel observable instead of stalled. It does not add automatic unbounded LLM repair, page-load title generation, raw database editing, or a true streaming transport.
4
+ ---
5
+
6
+ # v0.17.0 — Conversation Title Hardening
7
+
8
+ **Date:** 2026-05-27
9
+
10
+ ## Highlights
11
+
12
+ - Conversation titles created from first user messages are now marked provisional instead of being treated as final.
13
+ - Conversation close now attempts safe automatic title generation for blank, truncated, skill-like, long, or provisional titles while preserving manual titles.
14
+ - Startup conversation maintenance now repairs a small bounded batch of ended conversations whose titles still need improvement.
15
+ - The web `batch-conversation-retitle` operation is runnable with dry-run, cost estimates, backup-before-apply, progress events, remaining counts, and long-run polling.
16
+ - The Operations console was polished for batch work: generated titles appear as progress, noisy intermediate messages were removed, output behaves like a tailing console, and long runs keep polling beyond two minutes.
17
+
18
+ ## Where We Started
19
+
20
+ Mirror had grown a useful conversation web surface, but the title lifecycle still carried an old assumption: the first user message was good enough to name a conversation. In real runtime sessions, that first message can be a skill payload, a command wrapper, a long setup prompt, or a fragment that only makes sense before the assistant responds. Once written, that title often stayed in the database indefinitely.
21
+
22
+ The web app already supported manual title edits and single-conversation title suggestions, but that helped one conversation at a time. The larger problem had two sides: a legacy database with many weak titles, and a core runtime path that could keep creating more weak titles after the legacy repair finished.
23
+
24
+ ## What Changed
25
+
26
+ The title lifecycle now carries provenance. Runtime logging marks first-message titles with `title_source=first_user` and `title_status=provisional`. Manual edits mark titles as manual, and generated titles record their source and previous value. This gives the core enough information to improve titles without overwriting user-approved names.
27
+
28
+ `ConversationService.end_conversation()` now calls a safe title-generation path before extraction returns. It only runs for conversations with both user and assistant content, only replaces titles that are clearly missing or low quality, and fails quietly if the LLM cannot produce a title. Manual titles are explicitly protected.
29
+
30
+ The startup maintenance path gained a second safety net. `session_maintenance()` now runs a small bounded `retitle_pending_conversations()` step for ended conversations that still need title repair. This covers sessions that missed normal close handling, imported Pi sessions, crashes, and other edge cases. Pi session backfill now also records imported first-user titles as provisional rather than writing them as final titles.
31
+
32
+ For the legacy database, the existing web operation candidate `batch-conversation-retitle` became runnable. Dry-run estimates candidate count, token use, and cost without calling the LLM or writing to the database. Apply creates a backup before generating or saving titles, processes a bounded batch, records progress events with generated titles, and reports how many candidates remain before and after the batch.
33
+
34
+ Dogfooding the operation shaped the Operations console. The console now displays useful title-generation progress, avoids noisy “generating” lines, anchors output like a tailing terminal, scrolls to the newest event, and polls long enough for larger LLM batches to finish. A run that appeared to stop at 67/100 was traced to a two-minute browser polling limit; the backend had completed 100/100. The browser now keeps watching long runs for up to thirty minutes.
35
+
36
+ ## Conscious Exclusions
37
+
38
+ This release does not run unbounded title repair automatically. Startup maintenance uses a small limit and remains fail-quiet so opening Mirror does not become an unexpected large LLM job. Large legacy repair remains an explicit web operation.
39
+
40
+ The release does not generate titles on transcript page load, does not edit messages, does not expose raw database editing, and does not add arbitrary SQL or shell access. The Operations console still uses polled durable state rather than true SSE/WebSocket streaming.
41
+
42
+ ## What We Learned
43
+
44
+ The first fix — retitling at conversation close — was necessary but not sufficient. Runtime systems need recovery layers because close hooks can be missed, imports can bypass the normal path, and historical data rarely follows the current contract. The stronger design is layered: provisional title at creation, automatic improvement at close, bounded maintenance at startup, and explicit batch repair for legacy data.
45
+
46
+ The production batch also reinforced that observability is part of safety. A long-running operation that is technically correct but visually silent feels broken and invites duplicate execution. Showing generated titles, remaining counts, backup evidence, and durable completion state makes the user trust the operation enough to let it finish.
47
+
48
+ ## Next Horizon
49
+
50
+ The next visible horizon is broader conversation maintenance health: logger failure visibility, better retry/backoff metadata for skipped title attempts, and eventually a true streamed operation console. The title pipeline itself is now stable enough for normal use, but future work can refine title quality heuristics and make failed generation attempts easier to inspect without turning startup into a heavy background job.
@@ -0,0 +1,58 @@
1
+ ---
2
+ digest: >
3
+ v0.17.1 is a small Builder Mode boundary patch after v0.17.0. It fixes the
4
+ production-clone guard so Builder inspects the selected journey's project
5
+ checkout instead of the current Mirror runtime checkout. This preserves the
6
+ original safety intent — preventing accidental edits inside production
7
+ project clones — while allowing a production Mirror runtime to open Builder
8
+ for journeys whose project paths point at development clones. The release
9
+ also updates the boundary documentation so the rule is explicit.
10
+ ---
11
+
12
+ # v0.17.1 — Builder Project-Path Guard
13
+
14
+ **Date:** 2026-05-28
15
+
16
+ ## Highlights
17
+
18
+ - Fixes `memory build load <slug>` so the clone-role guard evaluates the journey `project_path`.
19
+ - Allows Builder Mode from a production Mirror runtime when the journey project itself is a `dev` clone.
20
+ - Keeps the conservative fallback to the current directory when no `project_path` is configured.
21
+ - Updates runtime boundary docs and decisions to describe the journey-scoped guard.
22
+
23
+ ## Where We Started
24
+
25
+ The clone-role guard was introduced to prevent accidental development inside the
26
+ Mirror production checkout. That safety boundary was correct, but its placement
27
+ was too broad: Builder Mode inspected the current runtime directory before it had
28
+ loaded the journey. If the user ran a production Mirror runtime and selected a
29
+ journey whose project lived elsewhere, Builder could refuse before seeing the
30
+ project path that actually mattered.
31
+
32
+ The result was friction in the wrong place. The guard protected the runtime clone
33
+ rather than the project clone that Builder was about to edit.
34
+
35
+ ## What Changed
36
+
37
+ Builder Mode now loads the journey first, reads its configured `project_path`,
38
+ and passes that path into clone-role inspection. If that project checkout is
39
+ marked `dev`, Builder proceeds even when the Mirror runtime itself is running
40
+ from a production clone. If the project checkout is marked `production`, Builder
41
+ still refuses unless `--ignore-production-role` is passed.
42
+
43
+ For journeys without a configured `project_path`, the command keeps the prior
44
+ conservative behavior and inspects the current directory. That keeps unscoped
45
+ Builder sessions safe by default.
46
+
47
+ ## Conscious Exclusions
48
+
49
+ This patch does not change runtime update behavior, clone-role marker semantics,
50
+ or the override flag. It also does not add automatic project-path discovery; the
51
+ journey must still carry the correct `project_path` metadata for the guard to be
52
+ project-scoped.
53
+
54
+ ## Next Horizon
55
+
56
+ Production should update normally to v0.17.1, then validate a Builder activation
57
+ from the production Mirror runtime against a journey whose project path points to
58
+ a development checkout.
@@ -0,0 +1,42 @@
1
+ ---
2
+ digest: >
3
+ v0.17.2 is a validation patch immediately after v0.17.1. It keeps the
4
+ Builder project-path guard behavior unchanged and fixes the repository
5
+ formatting drift that made the v0.17.1 main CI run fail at the ruff format
6
+ gate. The release exists so the latest stable channel points at a green,
7
+ validated patch commit.
8
+ ---
9
+
10
+ # v0.17.2 — Builder Guard CI Formatting
11
+
12
+ **Date:** 2026-05-28
13
+
14
+ ## Highlights
15
+
16
+ - Preserves the v0.17.1 Builder project-path guard behavior.
17
+ - Applies repository formatting expected by CI.
18
+ - Advances the package and release metadata so stable can point at a green patch commit.
19
+
20
+ ## Why This Patch Exists
21
+
22
+ v0.17.1 published the intended Builder Mode fix, but the main CI run failed at
23
+ `ruff format --check` because a few files were not formatted according to the
24
+ repository-wide formatter gate. The runtime behavior was correct, but the release
25
+ should not leave the latest stable channel on a commit whose CI is red.
26
+
27
+ ## What Changed
28
+
29
+ This patch formats the affected Python files and advances release metadata from
30
+ v0.17.1 to v0.17.2. The Builder guard semantics are unchanged from v0.17.1:
31
+ Builder inspects the selected journey's `project_path` clone role and falls back
32
+ to the current directory only when no project path is configured.
33
+
34
+ ## Conscious Exclusions
35
+
36
+ This release does not add new Builder behavior, runtime update behavior, schema
37
+ changes, or web functionality.
38
+
39
+ ## Next Horizon
40
+
41
+ Validate GitHub Actions for the v0.17.2 main push, then use the normal stable
42
+ update path from production.
@@ -0,0 +1,58 @@
1
+ ---
2
+ digest: >
3
+ v0.17.3 completes the Builder Mode boundary fix after the v0.17.2 production
4
+ validation showed one more false block. Builder now applies the production
5
+ clone-role guard only to Mirror Mind source checkouts, not to ordinary journey
6
+ projects that naturally do not carry `.mirror-clone-role`. This preserves the
7
+ original safety intent — do not edit a production Mirror checkout by accident —
8
+ while allowing projects such as Software Zen to open Builder normally from a
9
+ production Mirror runtime.
10
+ ---
11
+
12
+ # v0.17.3 — Builder Guard Non-Mirror Projects
13
+
14
+ **Date:** 2026-05-28
15
+
16
+ ## Highlights
17
+
18
+ - Restricts the Builder clone-role guard to Mirror Mind source checkouts.
19
+ - Allows non-Mirror journey projects without `.mirror-clone-role` to load Builder Mode.
20
+ - Keeps protection for Mirror Mind project paths marked `production`.
21
+ - Updates boundary docs to clarify that the marker belongs to Mirror Mind clones, not all journey projects.
22
+
23
+ ## Where We Started
24
+
25
+ v0.17.2 correctly moved Builder's clone-role inspection from the current runtime
26
+ checkout to the selected journey `project_path`. Production validation then
27
+ showed the remaining problem: ordinary projects without `.mirror-clone-role` were
28
+ still treated as `production` because the clone-role inspector defaults missing
29
+ markers to production.
30
+
31
+ That default is right for Mirror Mind source checkouts, where safety should be
32
+ conservative. It is wrong for arbitrary journey projects. Software Zen pointed to
33
+ `/Users/alissonvale/Code/szen_play`, a normal project checkout, and Builder still
34
+ refused because there was no Mirror clone-role marker.
35
+
36
+ ## What Changed
37
+
38
+ Builder now first checks whether the target path appears to be a Mirror Mind
39
+ source checkout. Only then does it apply `inspect_clone_role()` and enforce the
40
+ production/dev boundary. Non-Mirror journey projects skip the Mirror-specific
41
+ clone-role guard and proceed normally.
42
+
43
+ If a journey points at Mirror Mind itself, the guard still works: production
44
+ Mirror checkouts refuse Builder by default, dev checkouts proceed, and
45
+ `--ignore-production-role` remains the explicit escape hatch.
46
+
47
+ ## Conscious Exclusions
48
+
49
+ This patch does not introduce a generic production/dev marker for all possible
50
+ user projects. The existing `.mirror-clone-role` marker remains a Mirror Mind
51
+ runtime/source safety mechanism. Projects that want their own environment guards
52
+ should define them in their own tooling.
53
+
54
+ ## Next Horizon
55
+
56
+ Production should update to v0.17.3 and retry Builder Mode for `softwarezen`.
57
+ The expected result is that `/Users/alissonvale/Code/szen_play` loads without
58
+ requiring `--ignore-production-role`.
@@ -0,0 +1,84 @@
1
+ ---
2
+ digest: >
3
+ v0.18.0 completes the Conversation Metadata Lifecycle release arc. Mirror now
4
+ finalizes non-manual title, summary, and tags when conversations close;
5
+ exposes contextual metadata maintenance in the web conversation detail; and
6
+ gives Operations a production-ready historical metadata backfill with dry-run,
7
+ safe/force modes, all-conversation batches, resume scopes, approval, backups,
8
+ per-conversation progress, no-change evidence, and orphan conversation cleanup.
9
+ Manual metadata remains preserved by default.
10
+ ---
11
+
12
+ # v0.18.0 — Conversation Metadata Lifecycle
13
+
14
+ **Date:** 2026-06-01
15
+
16
+ ## Highlights
17
+
18
+ - Finalizes non-manual conversation metadata at close time.
19
+ - Adds web conversation-detail maintenance for title, summary, and tags.
20
+ - Adds historical metadata backfill through Operations with dry-run, approval, backups, progress, and final result evidence.
21
+ - Supports `safe` and `force` backfill profiles while preserving manual metadata by default.
22
+ - Adds all-conversation and resume/review scopes for production-scale backfill.
23
+ - Adds approval-gated orphan conversation cleanup with backup and deletion progress.
24
+
25
+ ## Where We Started
26
+
27
+ Mirror already had first-message/provisional titles and batch retitling, but
28
+ conversation metadata still behaved too narrowly. Old conversations could have
29
+ thin titles, missing summaries, missing tags, or stale metadata provenance. The
30
+ runtime also had no close-time finalization step, and users had to use CLI tools
31
+ for broad historical repair.
32
+
33
+ That was especially painful in the web console: Operations could run long tasks,
34
+ but metadata lifecycle maintenance was not yet visible enough for a real user to
35
+ trust a broad production backfill.
36
+
37
+ ## What Changed
38
+
39
+ Conversation metadata now has explicit lifecycle policy and execution profiles.
40
+ `safe` mode applies clear repairs conservatively, `force` regenerates selected
41
+ non-manual metadata, and close-time finalization refreshes non-manual metadata
42
+ when a conversation ends. Manual title, summary, and tag edits remain protected.
43
+
44
+ The web conversation detail now exposes contextual maintenance: check whether
45
+ metadata needs updating, review user-facing reasons, suggest/save title and
46
+ summary, edit tags, and apply a report-driven metadata update.
47
+
48
+ Operations now includes **Historical metadata backfill**. It can preview or
49
+ apply batches, choose safe/force from a dropdown, filter by journey, process all
50
+ matching conversations, or scope to `not_backfilled` and `no_change_latest_run`
51
+ for recovery/review. Apply requires approval, creates a backup, emits progress
52
+ per conversation, and renders final result details including changed and
53
+ no-change evidence.
54
+
55
+ A companion **Orphan conversation cleanup** operation handles the cleanup found
56
+ during real production backfill: short orphan conversations that produced no
57
+ metadata changes. It supports dry-run, candidate review, approval, backup,
58
+ reference cleanup, per-conversation deletion progress, and final deleted counts.
59
+
60
+ ## Production Validation
61
+
62
+ This release was validated against the user's real Mirror database. The broad
63
+ force backfill processed 579 conversations, changed 482, and identified 97
64
+ no-change results. A follow-up orphan cleanup preview found short orphan
65
+ conversations; the cleanup path was hardened after production revealed foreign-key
66
+ and database-lock failure modes.
67
+
68
+ The final operation path now handles referenced orphan conversations, commits
69
+ before emitting progress, and marks unexpected thread failures as failed instead
70
+ of leaving runs stuck as running.
71
+
72
+ ## Conscious Exclusions
73
+
74
+ - No automatic unbounded background backfill is enabled.
75
+ - `force` still preserves manual metadata by default.
76
+ - Orphan cleanup does not infer journeys or recover content; it deletes only the selected previewed candidates after approval.
77
+ - Operations still uses polling rather than true streaming/SSE.
78
+ - Active per-turn metadata refresh remains future work beyond close-time and explicit maintenance/backfill operations.
79
+
80
+ ## Next Horizon
81
+
82
+ The remaining CV9 stabilization work can now focus on boundary hardening,
83
+ release readiness, and any polish discovered after production uses v0.18.0 as
84
+ the baseline metadata lifecycle release.
@@ -0,0 +1,51 @@
1
+ ---
2
+ digest: >
3
+ v0.18.1 expands the v0.18.0 cleanup operation so production users can remove
4
+ empty conversation records as well as journey-orphan records. The default
5
+ no-change cleanup source now includes latest-backfill no-change conversations
6
+ that are either orphaned or empty, which covers sessions with a journey but no
7
+ messages. Deletion remains dry-run, approval, and backup gated.
8
+ ---
9
+
10
+ # v0.18.1 — Empty Conversation Cleanup
11
+
12
+ **Date:** 2026-06-01
13
+
14
+ ## Highlights
15
+
16
+ - Expands Orphan conversation cleanup to include empty conversations.
17
+ - Adds an explicit `empty_conversations` cleanup source.
18
+ - Makes the default latest-backfill no-change cleanup include records that are orphaned or empty.
19
+ - Shows cleanup reason and journey in candidate result lists.
20
+ - Keeps deletion protected by dry-run, approval, and backup.
21
+
22
+ ## Where We Started
23
+
24
+ After v0.18.0 shipped, production cleanup showed a second low-substance record
25
+ shape: conversations with `message_count = 0` but a valid journey association.
26
+ They are not orphan conversations, so the original cleanup operation correctly
27
+ left them alone even though they were just abandoned session shells.
28
+
29
+ ## What Changed
30
+
31
+ The existing cleanup operation now treats low-substance cleanup as a superset of
32
+ orphan cleanup. `all_orphans` still means records with no journey. The new
33
+ `empty_conversations` source targets records with zero messages even if they have
34
+ a journey. The default `no_change_latest_backfill` source now includes latest
35
+ metadata-backfill no-change records when they are either orphaned or empty.
36
+
37
+ Candidate rows now include a cleanup reason (`orphan`, `empty`, or
38
+ `orphan_and_empty`) and the journey value, so the user can understand why each
39
+ record is eligible before approving deletion.
40
+
41
+ ## Conscious Exclusions
42
+
43
+ - Non-empty conversations with a journey are still not cleanup candidates.
44
+ - Empty cleanup does not infer whether an abandoned session was important; it only exposes a preview and requires explicit approval.
45
+ - The operation remains backup-gated before deletion.
46
+
47
+ ## Next Horizon
48
+
49
+ If more low-substance shapes appear, cleanup should become a clearer
50
+ Conversation Cleanup operation with named policies rather than continuing to
51
+ stretch the orphan-specific title.
@@ -0,0 +1,69 @@
1
+ ---
2
+ digest: >
3
+ v0.18.2 adds manual and assisted journey association tools for conversation
4
+ organization. The Workspace now exposes unassigned conversations, conversation
5
+ detail pages can assign or transfer a conversation to any journey, and the
6
+ unassigned list supports selecting multiple conversations and assigning them
7
+ together. Operations also gains a conservative Conversation journey backfill
8
+ with dry-run, explicit/title-alias modes, approval, backup, progress, and
9
+ evidence. Completed journeys are available in assignment dropdowns.
10
+ ---
11
+
12
+ # v0.18.2 — Conversation Journey Assignment
13
+
14
+ **Date:** 2026-06-02
15
+
16
+ ## Highlights
17
+
18
+ - Adds an **Unassigned** entry in Workspace for conversations without a journey.
19
+ - Adds a Journey selector on conversation detail pages for manual assignment or transfer.
20
+ - Adds multi-select bulk assignment from the Unassigned conversations list.
21
+ - Includes completed/non-active journeys in assignment dropdowns.
22
+ - Adds a conservative **Conversation journey backfill** Operation with preview/apply modes.
23
+ - Keeps automated apply protected by approval, backup, and per-conversation progress.
24
+
25
+ ## Where We Started
26
+
27
+ After the metadata lifecycle release, production data showed that many historical
28
+ conversations still had no journey. Automatic repair was too conservative to fix
29
+ most of them, and the web UI did not give the user enough control: unassigned
30
+ conversations were hard to find, individual conversations could not be moved, and
31
+ there was no way to bulk-correct the remaining obvious cases.
32
+
33
+ ## What Changed
34
+
35
+ Workspace now includes an **Unassigned** surface. It lists conversations whose
36
+ `journey` field is missing and lets the user open each one. Conversation detail
37
+ pages now include a Journey section with a selector, so a user can assign a
38
+ conversation, transfer it to another journey, or mark it unassigned.
39
+
40
+ For cleanup at scale, the Unassigned surface now supports selecting multiple
41
+ conversations and assigning them to a chosen journey in one explicit action. The
42
+ journey selector uses all journey identities, not only active journeys, so older
43
+ or completed journeys can receive historical conversations.
44
+
45
+ Operations also includes **Conversation journey backfill**. Its `explicit_only`
46
+ mode uses strong activation signals such as `$mm-build mirror-mind`, `/mm:build
47
+ ariad`, or explicit jornada/travessia mentions. Its `title_alias` mode adds
48
+ unambiguous title aliases. Dry-run is the default; apply requires approval,
49
+ creates a backup, and emits assignment progress.
50
+
51
+ ## Production Validation
52
+
53
+ Production dry-runs found 29 `explicit_only` candidates and 60 `title_alias`
54
+ candidates. The manual Unassigned UI and spacing were validated in the local web
55
+ server. The completed-journey issue was caught in production use and corrected so
56
+ assignment dropdowns include completed journeys.
57
+
58
+ ## Conscious Exclusions
59
+
60
+ - No LLM-based journey inference is included.
61
+ - Ambiguous semantic matches are intentionally excluded from automatic backfill.
62
+ - Bulk assignment is selected-only; it does not assign everything visible by default.
63
+ - Individual manual journey changes do not require a heavy approval checkpoint, but batch/operation apply remains explicit.
64
+
65
+ ## Next Horizon
66
+
67
+ If more historical repair is needed, the next step is an assisted review surface
68
+ that shows suggested journey, confidence, and evidence with per-row accept/reject
69
+ rather than applying ambiguous suggestions automatically.
@@ -0,0 +1,85 @@
1
+ ---
2
+ digest: >
3
+ v0.19.0 expands the Mirror web console from conversation organization into
4
+ direct conversation and journey maintenance. Users can now create journeys
5
+ from Workspace through a reviewable draft flow, delete individual
6
+ conversations, delete selected unassigned conversations in bulk, and see a
7
+ larger conversation trail for selected journeys. The release keeps destructive
8
+ actions explicit, preserves extracted memories when conversations are deleted,
9
+ and treats journey creation as an editable identity artifact rather than a
10
+ brittle administrative form.
11
+ ---
12
+
13
+ # v0.19.0 — Web Console Conversation and Journey Maintenance
14
+
15
+ **Date:** 2026-06-02
16
+
17
+ ## Highlights
18
+
19
+ - Adds **New journey** in Workspace with natural-language input, generated markdown draft, editable preview, and bounded create validation.
20
+ - Adds explicit conversation deletion from conversation detail pages.
21
+ - Adds **Delete selected** beside **Assign selected** on the Unassigned conversations surface.
22
+ - Preserves extracted memories when deleting conversations by detaching their `conversation_id` instead of deleting the memory records.
23
+ - Expands selected-journey conversation visibility from a small eight-item slice to a larger bounded trail.
24
+ - Polishes maintenance controls so destructive and primary actions remain visually distinct.
25
+
26
+ ## Where We Started
27
+
28
+ The previous release made unassigned conversations visible and assignable, which
29
+ surfaced the next maintenance gap immediately. Once conversations could be
30
+ organized, users also needed to remove disposable or accidental conversation
31
+ records without leaving the web console. The same Workspace surface also exposed
32
+ a second gap: journeys still had to be created through Mirror skills or direct
33
+ identity editing, even though the web console had become the place where
34
+ conversation organization happens.
35
+
36
+ Journey creation was the more delicate problem. A journey is not just a row in a
37
+ database. It is an identity artifact that the Mirror uses for routing, memory,
38
+ Builder context, and future continuity. A dry CRUD form would create valid rows
39
+ that could still be weak journeys.
40
+
41
+ ## What Changed
42
+
43
+ Workspace now includes a **New journey** action. The first slice asks for the
44
+ raw material of a journey in natural language, then generates a structured
45
+ markdown draft with title, status, stage, description, current focus, scope, and
46
+ done condition. The user reviews and edits the draft before saving. Creation is
47
+ bounded by slug validation, duplicate checks, minimum content checks, required
48
+ status, and a required description section. Optional metadata such as project
49
+ path, icon, and color can be set during creation.
50
+
51
+ Conversation maintenance also became explicit. Conversation detail pages now
52
+ include a confirmed **Delete conversation** action. The Unassigned conversations
53
+ surface now supports selecting multiple conversations and deleting them as a
54
+ batch, beside the existing assignment flow. Deletion removes messages and
55
+ conversation embeddings, clears runtime-session and LLM-call references, and
56
+ preserves extracted memories by nulling their source conversation id.
57
+
58
+ The selected journey conversation list now uses a larger bounded read model so a
59
+ journey with more than eight assigned conversations does not appear artificially
60
+ short. This is still a protective limit for the browser payload, not a final
61
+ pagination model.
62
+
63
+ ## Conscious Exclusions
64
+
65
+ - Journey draft generation is deterministic in this release; it does not yet use an LLM to infer richer fields from the user's description.
66
+ - Journey slug rename, journey deletion, and migration of conversations or memories between renamed slugs are not included.
67
+ - The Workspace conversation list still uses a bounded payload rather than pagination or **Load more**.
68
+ - Conversation deletion is direct web-console maintenance, not an asynchronous Operation with approval and backup.
69
+ - Deleted conversations do not delete extracted memories, even when those memories originated from the deleted conversation.
70
+
71
+ ## What We Learned
72
+
73
+ The web console is becoming the maintenance home for the personal Mirror. That
74
+ changes the design standard: actions must be available where the user notices
75
+ the problem, but identity-bearing artifacts still need review and shape before
76
+ persistence. The right journey-creation form is not a replacement for the
77
+ Mirror's inference. It is a structured drafting surface that keeps the user in
78
+ control of the final identity prompt.
79
+
80
+ ## Next Horizon
81
+
82
+ The visible next step is refinement, not expansion for its own sake: browser
83
+ validation of the journey-creation flow, better disclosure when a bounded list
84
+ has more items, and eventually a **Load more** or paginated conversation trail
85
+ for mature journeys with long histories.
@@ -0,0 +1,46 @@
1
+ ---
2
+ digest: >
3
+ v0.19.1 is a validation patch for the web console conversation and journey
4
+ maintenance release. It preserves the v0.19.0 behavior and corrects CI
5
+ formatting drift in the touched Python files so the release line returns to a
6
+ green automated validation state. No product behavior changes are introduced
7
+ beyond the v0.19.0 scope.
8
+ ---
9
+
10
+ # v0.19.1 — Web Console Maintenance CI Formatting
11
+
12
+ **Date:** 2026-06-02
13
+
14
+ ## Highlights
15
+
16
+ - Preserves the v0.19.0 web-console journey creation and conversation deletion behavior.
17
+ - Applies repository formatting to the touched Python files.
18
+ - Restores the release line to green CI after the v0.19.0 main push failed at `ruff format --check`.
19
+
20
+ ## Where We Started
21
+
22
+ The v0.19.0 release was promoted and pushed with the intended product behavior,
23
+ but GitHub Actions failed on the formatting gate. Local validation had run ruff
24
+ linting, full tests, JavaScript syntax checks, and release-note checks, but did
25
+ not include the repository-wide `ruff format --check src/ tests/` gate that CI
26
+ runs.
27
+
28
+ ## What Changed
29
+
30
+ This patch applies ruff formatting to the files reported by CI and bumps the
31
+ release line to `v0.19.1`. It does not change the web-console product surface:
32
+ journey creation, single conversation deletion, selected bulk deletion, memory
33
+ preservation on delete, and broader selected-journey conversation visibility are
34
+ unchanged from v0.19.0.
35
+
36
+ ## Conscious Exclusions
37
+
38
+ - No additional journey-creation behavior is added.
39
+ - No pagination or Load more behavior is added.
40
+ - No destructive-action semantics are changed.
41
+
42
+ ## Next Horizon
43
+
44
+ Keep `ruff format --check src/ tests/` in the local release validation sequence
45
+ before future promotion so formatting patches do not need to follow immediately
46
+ after feature releases.