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,66 @@
1
+ ---
2
+ digest: >
3
+ Mirror Mind v0.10.1 is a small production UX patch after the Web Visibility
4
+ release. It makes the Pi startup experience clearer when opening the Mirror
5
+ takes noticeable time, and it reframes release availability as a new version
6
+ signal rather than a generic update line. The patch does not change the update
7
+ executor or web visibility behavior; it improves how the runtime communicates
8
+ what is happening at startup.
9
+ ---
10
+
11
+ # v0.10.1 — Welcome Startup Clarity
12
+
13
+ **Date:** 2026-05-25
14
+
15
+ ## Highlights
16
+
17
+ - Pi now shows an immediate startup status while checking sessions and memories.
18
+ - Pi shows a second status while checking release availability.
19
+ - The welcome now says `New Version Available` instead of `Update available`.
20
+ - Pi renders welcomes with a new-version notice as warning-level notifications
21
+ for stronger visual emphasis.
22
+
23
+ ## Where We Started
24
+
25
+ After publishing v0.10.0, production validation showed that opening Mirror could
26
+ take long enough for the Pi startup counter to become visible. The user could see
27
+ time passing, but not what Mirror was doing. At the same time, the release notice
28
+ was technically correct but too quiet: `Update available` sounded operational,
29
+ while the real product signal was that a new Mirror Mind version existed.
30
+
31
+ ## What Changed
32
+
33
+ The Pi runtime extension now sets a status message before the startup work begins
34
+ and updates that status before release awareness is checked. This gives the user
35
+ a clear explanation while the counter is running: Mirror is checking sessions,
36
+ memories, and release status.
37
+
38
+ The welcome wording now uses `New Version Available`. When that line appears,
39
+ Pi sends the welcome as a warning-level notification instead of a normal info
40
+ notification, giving the release notice stronger emphasis within Pi's available
41
+ UI controls.
42
+
43
+ The welcome product spec was updated to reflect the new wording and emphasis
44
+ expectation.
45
+
46
+ ## Conscious Exclusions
47
+
48
+ This patch does not change the self-update executor, release detection logic, or
49
+ stable-channel promotion flow.
50
+
51
+ It also does not hard-code colors. Pi owns notification rendering; Mirror can
52
+ choose the notification level, not exact text color.
53
+
54
+ ## What We Learned
55
+
56
+ A release notice is not only information. It is an invitation to act. The wording
57
+ and visual weight should match the user's mental model: they are not being told
58
+ that an abstract update exists, they are being told that a new version of their
59
+ Mirror is available.
60
+
61
+ ## Next Horizon
62
+
63
+ If startup remains slow in production, the next improvement should measure which
64
+ startup stage dominates: stale conversation closure, Pi session backfill,
65
+ pending extraction, release check, or welcome composition. This patch makes the
66
+ current wait legible; it does not yet optimize the wait itself.
@@ -0,0 +1,51 @@
1
+ ---
2
+ digest: >
3
+ Mirror Mind v0.10.10 routes welcome update prompts toward cumulative pending
4
+ release notes. When a new stable version is available, the suggested question
5
+ now asks for pending release notes, and the release-notes skill treats newly
6
+ available-version questions as a request for the full update path.
7
+ ---
8
+
9
+ # v0.10.10 — Pending Release Notes Prompt
10
+
11
+ **Date:** 2026-05-25
12
+
13
+ ## Highlights
14
+
15
+ - Changed the welcome update prompt from ambiguous `what changed?` wording to
16
+ `show pending release notes`.
17
+ - Updated the release-notes skill so questions about a newly available version
18
+ prefer `runtime release-notes pending`.
19
+ - Preserved explicit `latest` and `vX.Y.Z` release-note flows for users who ask
20
+ for a single release.
21
+
22
+ ## Why This Patch Exists
23
+
24
+ Production validation of v0.10.8 showed release detection working: opening Mirror
25
+ surfaced v0.10.9 automatically. But the suggested question, `what changed?`, was
26
+ too ambiguous. The agent interpreted it as a working-tree question and inspected
27
+ git status instead of showing release notes.
28
+
29
+ ## What Changed
30
+
31
+ The welcome now suggests:
32
+
33
+ ```text
34
+ Ask: "show pending release notes" or "update my Mirror"
35
+ ```
36
+
37
+ The Pi release-notes skill now maps natural-language questions about the newly
38
+ available Mirror version to:
39
+
40
+ ```bash
41
+ uv run python -m memory runtime release-notes pending
42
+ ```
43
+
44
+ That is the correct final-user answer because it includes every release between
45
+ the installed version and the current stable version.
46
+
47
+ ## Next Horizon
48
+
49
+ After production updates to this version, publish a later stub release to validate
50
+ the full loop: welcome detects a new release, suggests pending release notes, and
51
+ the user's question renders the cumulative notes instead of git status.
@@ -0,0 +1,39 @@
1
+ ---
2
+ digest: >
3
+ Mirror Mind v0.10.11 is a validation stub for the v0.10.10 pending release
4
+ notes prompt. It intentionally includes no functional runtime change beyond the
5
+ version and release note, so production can validate that the welcome suggests
6
+ cumulative pending notes and routes the user's question correctly.
7
+ ---
8
+
9
+ # v0.10.11 — Pending Notes Prompt Validation Stub
10
+
11
+ **Date:** 2026-05-25
12
+
13
+ ## Highlights
14
+
15
+ - Published a minimal stable release after the v0.10.10 prompt-routing patch.
16
+ - Intentionally contains no functional runtime changes.
17
+ - Exists to validate the final-user flow: welcome detects a newer stable release,
18
+ suggests pending release notes, and the user's question renders cumulative
19
+ release notes.
20
+
21
+ ## Why This Patch Exists
22
+
23
+ v0.10.10 changed the welcome update prompt from the ambiguous `what changed?` to
24
+ `show pending release notes` and updated the release-notes skill to prefer the
25
+ cumulative pending view for newly available versions.
26
+
27
+ To validate that behavior in production, a newer stable release must exist while
28
+ production is already running v0.10.10.
29
+
30
+ ## What Changed
31
+
32
+ Only the package version, release note, release index, and worklog move forward.
33
+ Runtime behavior is unchanged.
34
+
35
+ ## Next Horizon
36
+
37
+ Open production Mirror on v0.10.10 and confirm the welcome shows v0.10.11 with
38
+ `show pending release notes`. Then ask that suggested question and confirm the
39
+ answer uses `runtime release-notes pending` instead of git status.
@@ -0,0 +1,57 @@
1
+ ---
2
+ digest: >
3
+ Mirror Mind v0.10.12 fixes cumulative pending release notes when the local
4
+ stable ref is stale. `runtime release-notes pending` now safely fetches
5
+ remote-tracking refs before rendering, and welcome release awareness can map
6
+ short remote commits to full tag hashes so the version label appears reliably.
7
+ ---
8
+
9
+ # v0.10.12 — Pending Release Notes Ref Refresh
10
+
11
+ **Date:** 2026-05-25
12
+
13
+ ## Highlights
14
+
15
+ - `runtime release-notes pending` now safely fetches `remote/branch` refs before
16
+ reading release notes.
17
+ - Added `--no-fetch` for local smoke tests such as `--ref HEAD --no-fetch`.
18
+ - Welcome release awareness now matches short remote commit ids against full tag
19
+ hashes.
20
+ - Updated runtime help and release-note documentation for the new pending-notes
21
+ fetch behavior.
22
+
23
+ ## Why This Patch Exists
24
+
25
+ Production validation of the v0.10.11 stub showed that the welcome and prompt
26
+ routing were working: opening Mirror detected a new stable release and the user
27
+ question triggered `runtime release-notes pending`.
28
+
29
+ But the pending command returned `Pending releases: none`. The reason was that
30
+ welcome had detected the new remote stable commit without fetching, while
31
+ `release-notes pending` read the local `origin/stable` ref. If that local ref was
32
+ stale, the command could not see the newly published release note.
33
+
34
+ ## What Changed
35
+
36
+ When the pending release-note source looks like a remote-tracking ref such as
37
+ `origin/stable`, the command now runs a safe fetch for that branch before reading
38
+ notes:
39
+
40
+ ```bash
41
+ git fetch origin stable
42
+ ```
43
+
44
+ This updates remote-tracking refs only. It does not merge, checkout, migrate,
45
+ modify the working tree, or update the runtime.
46
+
47
+ For local release-candidate smoke tests, use:
48
+
49
+ ```bash
50
+ uv run python -m memory runtime release-notes pending --ref HEAD --no-fetch
51
+ ```
52
+
53
+ ## Next Horizon
54
+
55
+ After production updates to this version, publish another minimal stable stub and
56
+ validate the full final-user flow: welcome detects the new release, asks for
57
+ pending notes, and pending notes render the cumulative release path.
@@ -0,0 +1,35 @@
1
+ ---
2
+ digest: >
3
+ Mirror Mind v0.10.13 is a validation stub for the v0.10.12 pending release
4
+ notes ref refresh. It intentionally contains no functional runtime change, so
5
+ production can validate that pending release notes fetch stable and render a
6
+ newly published release without manual git commands.
7
+ ---
8
+
9
+ # v0.10.13 — Pending Notes Ref Refresh Validation Stub
10
+
11
+ **Date:** 2026-05-25
12
+
13
+ ## Highlights
14
+
15
+ - Published a minimal stable release after the v0.10.12 pending-notes fetch fix.
16
+ - Intentionally contains no functional runtime changes.
17
+ - Exists to validate that `show pending release notes` renders newly available
18
+ stable release notes without manual `git fetch`.
19
+
20
+ ## Why This Patch Exists
21
+
22
+ v0.10.12 changed `runtime release-notes pending` so it safely fetches
23
+ remote-tracking refs before reading release notes. To validate that behavior like
24
+ a final user, production must already be on v0.10.12 and a newer stable release
25
+ must exist.
26
+
27
+ ## What Changed
28
+
29
+ Only the package version, release note, release index, and worklog move forward.
30
+ Runtime behavior is unchanged.
31
+
32
+ ## Next Horizon
33
+
34
+ Open production Mirror on v0.10.12, confirm it detects v0.10.13, then ask
35
+ `show pending release notes`. The expected output should include this release.
@@ -0,0 +1,42 @@
1
+ ---
2
+ digest: >
3
+ Mirror Mind v0.10.14 polishes the welcome update prompt after the full
4
+ release-awareness cycle was validated in production. The prompt now asks
5
+ "what's new in this update?" instead of the more technical "show pending
6
+ release notes," while still routing to cumulative pending notes.
7
+ ---
8
+
9
+ # v0.10.14 — Update Prompt Wording
10
+
11
+ **Date:** 2026-05-25
12
+
13
+ ## Highlights
14
+
15
+ - Changed the welcome update prompt to `what's new in this update?`.
16
+ - Kept the prompt routed to cumulative pending release notes.
17
+ - Added the new phrase to the release-notes skill routing examples.
18
+
19
+ ## Why This Patch Exists
20
+
21
+ Production validation confirmed the full cycle works: welcome detects a new
22
+ stable release, the suggested release-notes question renders cumulative pending
23
+ notes, and `update my Mirror` updates the runtime. The remaining issue was tone.
24
+ `show pending release notes` is accurate but too technical for a final-user
25
+ welcome.
26
+
27
+ ## What Changed
28
+
29
+ The welcome now renders:
30
+
31
+ ```text
32
+ Ask: "what's new in this update?" or "update my Mirror"
33
+ ```
34
+
35
+ The release-notes skill recognizes that phrase and continues to use the pending
36
+ release-notes flow.
37
+
38
+ ## Next Horizon
39
+
40
+ This closes the release-awareness wording loop. Future update UX can build on
41
+ this by making the welcome actions more command-like or clickable in runtimes
42
+ that support richer UI affordances.
@@ -0,0 +1,53 @@
1
+ ---
2
+ digest: >
3
+ Mirror Mind v0.10.15 adds explicit routing for the welcome action “update my
4
+ Mirror.” The new update skill maps natural-language update requests to the
5
+ safe runtime updater, so users are not asked to clarify between code updates
6
+ and identity/memory edits.
7
+ ---
8
+
9
+ # v0.10.15 — Update Action Routing
10
+
11
+ **Date:** 2026-05-25
12
+
13
+ ## Highlights
14
+
15
+ - Added an `mm-update` skill for natural-language Mirror runtime update requests.
16
+ - Routes `update my Mirror` to `uv run python -m memory runtime update`.
17
+ - Documents the command in help, AGENTS/CLAUDE context, and the command reference.
18
+ - Explicitly prevents agents from substituting manual `git pull`, `git fetch`, or
19
+ migration commands for the safe updater.
20
+
21
+ ## Why This Patch Exists
22
+
23
+ Production validation showed that the welcome action `update my Mirror` was still
24
+ ambiguous to the agent. Instead of running the safe updater, it asked whether the
25
+ user meant a code update or an identity/memory update.
26
+
27
+ For the welcome to behave like product UX, both suggested actions must be
28
+ routable. Release-note questions already route to cumulative pending notes; the
29
+ update action now routes to the runtime updater.
30
+
31
+ ## What Changed
32
+
33
+ A new skill, `mm-update`, handles natural-language variants such as:
34
+
35
+ ```text
36
+ update my Mirror
37
+ apply the Mirror update
38
+ install the new Mirror version
39
+ ```
40
+
41
+ The skill runs:
42
+
43
+ ```bash
44
+ uv run python -m memory runtime update
45
+ ```
46
+
47
+ and shows the output verbatim.
48
+
49
+ ## Next Horizon
50
+
51
+ After production updates to this version, publish one more stub if needed to
52
+ validate that the welcome's `update my Mirror` action routes directly to the safe
53
+ updater in a live release-available state.
@@ -0,0 +1,35 @@
1
+ ---
2
+ digest: >
3
+ Mirror Mind v0.10.16 is a validation stub for the v0.10.15 update-action
4
+ routing. It intentionally contains no functional runtime change, so production
5
+ can validate that the welcome action “update my Mirror” invokes the safe
6
+ runtime updater directly.
7
+ ---
8
+
9
+ # v0.10.16 — Update Action Routing Validation Stub
10
+
11
+ **Date:** 2026-05-25
12
+
13
+ ## Highlights
14
+
15
+ - Published a minimal stable release after the v0.10.15 `mm-update` skill.
16
+ - Intentionally contains no functional runtime changes.
17
+ - Exists to validate that `update my Mirror` routes to `runtime update` in a live
18
+ release-available state.
19
+
20
+ ## Why This Patch Exists
21
+
22
+ v0.10.15 added explicit routing for the welcome action `update my Mirror`. To
23
+ validate that behavior like a final user, production must already be running
24
+ v0.10.15 while a newer stable release is available.
25
+
26
+ ## What Changed
27
+
28
+ Only the package version, release note, release index, and worklog move forward.
29
+ Runtime behavior is unchanged.
30
+
31
+ ## Next Horizon
32
+
33
+ Open production Mirror on v0.10.15, confirm it detects v0.10.16, then ask
34
+ `update my Mirror`. The expected behavior is that the safe runtime updater runs
35
+ without asking for clarification.
@@ -0,0 +1,43 @@
1
+ ---
2
+ digest: >
3
+ Mirror Mind v0.10.17 changes new-version welcome notifications from warning
4
+ tone to normal informational tone. The welcome text now uses a ✨ icon to call
5
+ attention to available updates without implying that something is wrong.
6
+ ---
7
+
8
+ # v0.10.17 — Update Notice Tone
9
+
10
+ **Date:** 2026-05-25
11
+
12
+ ## Highlights
13
+
14
+ - New-version welcome notices now use the ✨ icon.
15
+ - Pi renders the welcome notification as informational instead of warning.
16
+ - Update availability remains visible without looking like an error or problem.
17
+
18
+ ## Why This Patch Exists
19
+
20
+ Production validation showed the release-awareness loop working end to end. The
21
+ remaining visual issue was tone: Pi rendered the welcome as a yellow warning
22
+ whenever a new version was available.
23
+
24
+ An available update is useful information, not a problem. It should attract
25
+ attention without implying danger.
26
+
27
+ ## What Changed
28
+
29
+ The welcome update line now renders like:
30
+
31
+ ```text
32
+ ✨ New Version Available: v0.10.17
33
+ Ask: "what's new in this update?" or "update my Mirror"
34
+ ```
35
+
36
+ The Pi extension now sends the welcome notification with `info` severity even
37
+ when the welcome includes an available update.
38
+
39
+ ## Next Horizon
40
+
41
+ The release-awareness loop is now functionally validated and visually calmer.
42
+ Future polish can focus on richer UI affordances if Pi exposes actionable
43
+ notification buttons or links.
@@ -0,0 +1,64 @@
1
+ ---
2
+ digest: >
3
+ Mirror Mind v0.10.2 fixes stale welcome release awareness when stable advances
4
+ again inside the welcome cache window. A clone behind stable should see the
5
+ latest available version, not an intermediate version cached a few minutes
6
+ earlier. This patch keeps healthy up-to-date cache behavior cheap while making
7
+ visible update notices refresh before they are shown.
8
+ ---
9
+
10
+ # v0.10.2 — Fresh Release Awareness
11
+
12
+ **Date:** 2026-05-25
13
+
14
+ ## Highlights
15
+
16
+ - Welcome update notices refresh even inside the cache TTL when an update is
17
+ already visible.
18
+ - Users behind stable now see the latest stable tag after the stable branch
19
+ advances again.
20
+ - `up_to_date` cache entries still respect the TTL to avoid unnecessary remote
21
+ checks.
22
+ - Regression coverage now verifies that a cached `v0.10.0` notice refreshes to
23
+ `v0.10.1` when remote stable has advanced.
24
+
25
+ ## Where We Started
26
+
27
+ After publishing v0.10.1, production validation showed the welcome still saying
28
+ `v0.10.0` was available even though `origin/stable` and the `v0.10.1` tag already
29
+ pointed to the newer release. The cache was technically fresh, but semantically
30
+ stale: it preserved an intermediate update notice after stable moved again.
31
+
32
+ ## What Changed
33
+
34
+ The welcome now treats visible update notices differently from healthy
35
+ up-to-date cache entries. If the cache says `update_available`, Mirror refreshes
36
+ release awareness before rendering the welcome, even when the cache is still
37
+ inside its normal TTL. If the cache says `up_to_date`, the TTL behavior remains
38
+ unchanged.
39
+
40
+ This means a user can leave a production clone on an older version, publish a
41
+ new patch shortly afterward, and still see the newest available release without
42
+ manually deleting `runtime/update-check.json`.
43
+
44
+ ## Conscious Exclusions
45
+
46
+ This patch does not implement cumulative release notes across all versions
47
+ between the installed version and latest stable. It only ensures the visible
48
+ latest-version signal is fresh.
49
+
50
+ It also does not change `runtime update --check`, which remains intentionally
51
+ conservative and does not fetch release-note files.
52
+
53
+ ## What We Learned
54
+
55
+ A cache can be fresh by time and stale by meaning. For a status that is already
56
+ asking the user to act, correctness matters more than avoiding one lightweight
57
+ remote check. The cheap path is still correct for `up_to_date`; the action path
58
+ must be more vigilant.
59
+
60
+ ## Next Horizon
61
+
62
+ The next improvement is cumulative release awareness: when a user asks `what
63
+ changed?`, Mirror should be able to show all release notes between the installed
64
+ version and the latest stable version, not only the latest release note.
@@ -0,0 +1,78 @@
1
+ ---
2
+ digest: >
3
+ Mirror Mind v0.10.3 moves expensive Pi startup maintenance out of the blocking
4
+ startup path. Opening Pi now activates conversation logging quickly, renders
5
+ the welcome/status, and runs stale conversation closure, Pi session backfill,
6
+ and pending extraction in the background. This patch keeps the maintenance
7
+ work, but stops it from making the runtime feel stuck while it runs.
8
+ ---
9
+
10
+ # v0.10.3 — Pi Startup Maintenance
11
+
12
+ **Date:** 2026-05-25
13
+
14
+ ## Highlights
15
+
16
+ - Pi now uses `conversation-logger session-start --fast` during startup.
17
+ - Slow conversation maintenance runs in the background through
18
+ `conversation-logger session-maintenance`.
19
+ - Maintenance output includes per-step timing for stale conversation closure,
20
+ Pi session backfill, and pending extraction.
21
+ - The original blocking `session-start` path remains available for runtimes or
22
+ manual use that want startup maintenance inline.
23
+
24
+ ## Where We Started
25
+
26
+ Production validation after v0.10.2 showed that Pi could still spend a long time
27
+ opening Mirror. The status messaging improved, but the counter kept running and
28
+ the user still experienced startup as blocked. Manual timing confirmed the slow
29
+ path was conversation maintenance, not the release check.
30
+
31
+ The startup command had accumulated too much work: it unmutes logging, closes
32
+ stale conversations, backfills Pi JSONL sessions, and extracts pending
33
+ conversations. Extraction can call LLMs, so doing all of that before the runtime
34
+ feels open is the wrong boundary.
35
+
36
+ ## What Changed
37
+
38
+ The conversation logger now has a fast startup path:
39
+
40
+ ```bash
41
+ uv run python -m memory conversation-logger session-start --fast
42
+ ```
43
+
44
+ This path only unmutes logging and returns immediately. Pi uses it during
45
+ `session_start` so the runtime can open and render the welcome without waiting
46
+ for historical maintenance.
47
+
48
+ The heavier work moved into:
49
+
50
+ ```bash
51
+ uv run python -m memory conversation-logger session-maintenance
52
+ ```
53
+
54
+ Pi launches this command in the background. The command reports per-step timing,
55
+ which makes future performance work concrete instead of speculative.
56
+
57
+ ## Conscious Exclusions
58
+
59
+ This patch does not remove stale conversation closure, Pi session backfill, or
60
+ pending extraction. It changes when that work runs.
61
+
62
+ It also does not yet optimize the maintenance itself. If maintenance remains too
63
+ slow or too expensive in the background, the next step is to tune individual
64
+ stages, especially pending extraction.
65
+
66
+ ## What We Learned
67
+
68
+ The product problem was not only slowness. It was blocked opening. Some
69
+ maintenance belongs to eventual consistency, not the critical path of entering
70
+ the runtime. A mirror can keep cultivating memory after the user has crossed the
71
+ threshold.
72
+
73
+ ## Next Horizon
74
+
75
+ Production validation should confirm whether Pi's startup counter now stops
76
+ normally. If it still spins, the next investigation belongs to Pi lifecycle
77
+ completion rather than Python maintenance cost. The timing output will also show
78
+ whether pending extraction or backfill is the next optimization target.
@@ -0,0 +1,42 @@
1
+ ---
2
+ digest: >
3
+ Mirror Mind v0.10.4 fixes the remaining Pi startup lifecycle issue after
4
+ v0.10.3. Startup maintenance now runs as a fully detached fire-and-forget
5
+ process, so the extension does not keep Node child-process handles open while
6
+ Pi is trying to finish startup.
7
+ ---
8
+
9
+ # v0.10.4 — Pi Startup Lifecycle
10
+
11
+ **Date:** 2026-05-25
12
+
13
+ ## Highlights
14
+
15
+ - Pi startup maintenance is now launched as a detached background process.
16
+ - The extension no longer keeps stdout/stderr pipes or child-process close
17
+ handlers alive for maintenance.
18
+ - Maintenance still appends its output to `mirror-logger.log` for diagnostics.
19
+
20
+ ## Why This Patch Exists
21
+
22
+ v0.10.3 moved expensive conversation maintenance out of the blocking startup
23
+ path. Production validation confirmed Mirror opened quickly again, but Pi's
24
+ startup counter still did not stop.
25
+
26
+ That narrowed the problem: the issue was no longer Python maintenance cost. It
27
+ was extension lifecycle cleanup. The background process was still owned by the
28
+ extension through active child-process handles and pipes.
29
+
30
+ ## What Changed
31
+
32
+ The Pi extension now starts maintenance through a detached shell process with
33
+ ignored stdio and immediately calls `unref()` on the child process. The command
34
+ redirects its output into `mirror-logger.log`, preserving diagnostic evidence
35
+ without keeping the extension's event loop attached to maintenance.
36
+
37
+ ## Next Horizon
38
+
39
+ Production validation should confirm that Pi opens quickly and that the startup
40
+ counter stops normally. If it still does not stop, the remaining cause is likely
41
+ inside Pi's own lifecycle/working-indicator state rather than Mirror's child
42
+ process handling.
@@ -0,0 +1,57 @@
1
+ ---
2
+ digest: >
3
+ Mirror Mind v0.10.5 adds cumulative pending release notes for users who are
4
+ more than one release behind. The runtime can now show every release newer than
5
+ the installed version instead of only the latest note.
6
+ ---
7
+
8
+ # v0.10.5 — Cumulative Release Notes
9
+
10
+ **Date:** 2026-05-25
11
+
12
+ ## Highlights
13
+
14
+ - Added `runtime release-notes pending` to list all releases newer than the
15
+ current runtime version.
16
+ - Added `--from <version>` for explicit comparison, useful for smoke tests and
17
+ support flows.
18
+ - Added `--ref <git-ref>` so the command can read release notes from a specific
19
+ source such as `origin/stable` or `HEAD`.
20
+ - Kept the existing `runtime release-notes latest` and explicit version behavior
21
+ unchanged.
22
+ - Made Pi assistant-message logging fire-and-forget so Mirror persistence does
23
+ not sit on Pi's `agent_end` lifecycle path.
24
+
25
+ ## Why This Patch Exists
26
+
27
+ After the Web Visibility release train, production validation showed a gap in the
28
+ user experience: when a user is several versions behind, showing only the latest
29
+ release note is not enough. They need the whole path between their installed
30
+ version and the current stable release.
31
+
32
+ ## What Changed
33
+
34
+ The runtime release notes command now supports a pending mode:
35
+
36
+ ```bash
37
+ uv run python -m memory runtime release-notes pending
38
+ ```
39
+
40
+ For diagnostics and validation, the comparison can be made explicit:
41
+
42
+ ```bash
43
+ uv run python -m memory runtime release-notes pending --from 0.10.2 --ref HEAD
44
+ ```
45
+
46
+ The output groups each pending release with its digest and highlights, preserving
47
+ the concise release-note style while making cumulative updates visible.
48
+
49
+ This patch also keeps the Mirror logger aligned with that lifecycle principle:
50
+ assistant response persistence now runs in the background instead of being
51
+ awaited inside Pi's `agent_end` extension hook.
52
+
53
+ ## Next Horizon
54
+
55
+ The pending release flow should become the default companion to runtime update
56
+ notices. A future polish pass can wire it directly into welcome/update guidance
57
+ so users can ask what changed before applying an update.