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,85 @@
1
+ ---
2
+ digest: >
3
+ v0.20.0 introduces one-level hierarchical journey organization. Journeys can
4
+ now name a parent journey, the web console can create and edit that parent
5
+ relationship, and Workspace renders the hierarchy with session-persistent
6
+ expand/collapse. Journey settings also gain safe title and status editing, and
7
+ textual journey lists preserve the same hierarchy through mm-journeys. The
8
+ release keeps hierarchy display-only: conversations, memories, tasks, routing,
9
+ Builder context, extraction, and search remain journey-specific.
10
+ ---
11
+
12
+ # v0.20.0 — Hierarchical Journey Organization
13
+
14
+ **Date:** 2026-06-02
15
+
16
+ ## Highlights
17
+
18
+ - Adds `parent_journey` metadata for one-level journey hierarchy.
19
+ - Adds parent selection to **New journey** and Journey Settings in the web console.
20
+ - Adds safe Journey Settings editing for title and status without changing the slug.
21
+ - Renders parent/child journeys in the Workspace sidebar with session-persistent expand/collapse.
22
+ - Keeps completed journeys hidden by default behind a toggle while preserving hierarchy when shown.
23
+ - Dims paused and completed journeys so active journeys remain visually primary.
24
+ - Updates `mm-journeys` / `python -m memory journeys` to render the hierarchy and preserve indentation.
25
+ - Updates journey-list skill instructions so natural-language journey-list requests preserve the hierarchical output.
26
+
27
+ ## Where We Started
28
+
29
+ The web console had become useful enough for conversation and journey
30
+ maintenance that a flat journey list started to become the next source of
31
+ friction. Some journeys clearly belonged under broader fields of work, but the
32
+ product had no way to express that relationship. At the same time, completed
33
+ journeys still needed to be accessible for editing and reassignment without
34
+ polluting the active sidebar all the time.
35
+
36
+ The exploration behind CV15 sharpened the boundary: hierarchy should organize
37
+ attention, not merge identity. A child journey remains a normal journey with its
38
+ own conversations, memories, tasks, Builder context, routing, and extraction.
39
+ The parent journey is a visible broader field, not an implicit context mix.
40
+
41
+ ## What Changed
42
+
43
+ Journey metadata now accepts a `parent_journey` field with guarded validation.
44
+ A journey can have one parent, the parent must exist, a journey cannot parent
45
+ itself, and the first slice rejects deeper nesting. The web console exposes this
46
+ through **New journey** and Journey Settings.
47
+
48
+ Journey Settings also gained safe title and status editing. The title edit
49
+ updates only the first markdown H1 in the journey identity. The status edit
50
+ updates only the `**Status:**` line. Neither operation renames the slug or moves
51
+ conversations, memories, tasks, attachments, routing descriptors, or Builder
52
+ configuration.
53
+
54
+ Workspace now renders the journey sidebar hierarchically. Parent journeys can be
55
+ expanded or collapsed, and that expansion state persists for the browser session.
56
+ Paused and completed journeys are visually dimmed. Completed journeys are hidden
57
+ by default behind a toggle, but when shown they appear in their correct
58
+ hierarchical position rather than in a separate flat archive list.
59
+
60
+ The textual journey list now uses the same hierarchy. `/mm-journeys`,
61
+ `/mm:journeys`, and natural-language journey-list requests route to the CLI
62
+ rendering and preserve its indentation instead of flattening it.
63
+
64
+ ## Conscious Exclusions
65
+
66
+ - No Scene Workspace Home is included in this release.
67
+ - No LLM synthesis is included in this release.
68
+ - No automatic parent-child memory, routing, Builder, extraction, task, or search inheritance is introduced.
69
+ - No recursive hierarchy or multiple parents are supported.
70
+ - No journey slug rename or deletion cascade is included.
71
+
72
+ ## What We Learned
73
+
74
+ A hierarchy can easily become a folder system if the product treats it as only a
75
+ navigation convenience. The useful boundary is more precise: hierarchy organizes
76
+ the field so the Mirror can later return cognitive location. This release
77
+ therefore keeps the implementation deliberately structural and display-only,
78
+ preparing the ground for Scene without pretending Scene already exists.
79
+
80
+ ## Next Horizon
81
+
82
+ The next release in CV15 is **Scene Workspace Home**. With the hierarchy now
83
+ available as a stable read model, Workspace can begin answering “where am I
84
+ now?” through a Scene surface, movement signals, horizons, and bounded LLM
85
+ synthesis over existing Mirror data.
@@ -0,0 +1,61 @@
1
+ ---
2
+ digest: >
3
+ v0.21.0 closes CV15.DS2 by turning Workspace into a cognitive-location home.
4
+ The release adds a deterministic Scene read model, narrative global Workspace
5
+ surfaces, persisted Scene Orientation, and focused journey orientation as a
6
+ first-class tab. It keeps journey as the operational primitive: hierarchy and
7
+ orientation organize what the user sees without silently merging memory,
8
+ routing, Builder context, extraction, search, tasks, or conversation
9
+ assignment. The release also refines the web console so conversations and
10
+ journey management live inside the Workspace shell instead of breaking
11
+ navigation.
12
+ ---
13
+
14
+ # v0.21.0 — Scene Workspace Home
15
+
16
+ **Date:** 2026-06-02
17
+
18
+ ## Highlights
19
+
20
+ - Workspace now opens to a global **Current Scene** instead of automatically selecting the first journey.
21
+ - **Your Moment** separates global surfaces from **Your Journeys**: Current Scene, Conversations, and All journeys are no longer mixed into the journey tree.
22
+ - Scene Orientation is persisted, structured, and grounded in a bounded deterministic Scene read model.
23
+ - Global orientation can generate automatically only the first time; focused journey orientations are always user-invoked.
24
+ - Focused journey orientation appears as the first journey tab, before Briefing, Attachments, Conversations, and Settings.
25
+ - Conversations now render as a compact, date-grouped list suitable for many conversations, with journey shown as contextual metadata.
26
+ - All journeys now provides broader journey-field cards with status icons for parent and child journeys.
27
+
28
+ ## Where We Started
29
+
30
+ CV15.DS1 gave Mirror Mind one-level journey hierarchy. That made the Workspace easier to organize, but it still behaved like a project browser: opening the Workspace selected a journey immediately, global context was ambiguous, and maintenance surfaces such as unassigned conversations leaked into the journey tree.
31
+
32
+ DS2 started from the question behind Cognitive Location: when the user opens Workspace, Mirror should answer where the user is situated now, not only list containers.
33
+
34
+ ## What Changed
35
+
36
+ Workspace now carries a deterministic `scene` read model composed from the journey field, selected journey state, hierarchy, recent conversations, memories, decisions, open tasks, nearby journeys, and horizon signals. The read model is bounded before it reaches the LLM layer, and Scene remains a surface rather than a user-managed object.
37
+
38
+ The web console now distinguishes **Your Moment** from **Your Journeys**. Your Moment contains Current Scene, Conversations, and All journeys. Your Journeys contains only real journey navigation. Conversations and All journeys render inside the Workspace shell, so the sidebar remains present and navigation no longer breaks when moving between global Workspace surfaces.
39
+
40
+ Scene Orientation became a lifecycle rather than a raw model response. The orientation is stored internally under `scene_orientation`, normalized into title, summary, signals, and next movement, and marked outdated when the underlying Scene source hash changes. The UI renders outdated orientation with a subtle visual indicator and lets the user refresh it deliberately.
41
+
42
+ The invocation policy is intentionally asymmetric. Global Current Scene may generate automatically once when no orientation exists, giving the Workspace a living first impression. After that, updates are explicit. Focused journey orientations are always invoked by the user, because asking Mirror to read a specific journey should remain a deliberate gesture.
43
+
44
+ ## Conscious Exclusions
45
+
46
+ - No automatic context inheritance between parent and child journeys.
47
+ - No memory, search, routing, Builder, extraction, task, or conversation-assignment merging across hierarchy.
48
+ - No user-managed Scene entity.
49
+ - No hidden regeneration loop after the first missing global orientation.
50
+ - No automatic mutation from orientation synthesis.
51
+ - No recursive hierarchy beyond the one-level foundation from v0.20.0.
52
+
53
+ ## What We Learned
54
+
55
+ Cognitive location needs editorial restraint. Exposing every deterministic signal in the main card made the Scene feel like diagnostics instead of orientation. The better shape is layered: the read model stays explicit and bounded in the system, while the primary UI offers a readable orientation and keeps operational surfaces nearby.
56
+
57
+ We also learned that invocation matters. Orientation has interpretive weight, so generation should feel invited. The global first-run exception helps the Workspace come alive without turning every journey read into an unsolicited interpretation.
58
+
59
+ ## Next Horizon
60
+
61
+ CV15 now has both layers: hierarchical organization and Scene-based cognitive location. The visible horizon is validation in daily use: how often orientations become stale, whether the structured synthesis stays useful, and whether the Workspace needs deeper search/filter controls for high-volume Conversations.
@@ -0,0 +1,47 @@
1
+ ---
2
+ digest: >
3
+ v0.21.1 is a patch release for Mirror Mode conversation continuity. It fixes
4
+ a regression where repeated `memory mirror load` calls inside one Pi session
5
+ could close the current conversation and create a new one, fragmenting a
6
+ single human conversation into many two-message records. Mirror Mode now binds
7
+ the resolved persona and journey to the current open conversation instead of
8
+ switching conversations; explicit new-conversation commands remain the
9
+ boundary mechanism.
10
+ ---
11
+
12
+ # v0.21.1 — Mirror Mode Conversation Continuity
13
+
14
+ **Date:** 2026-06-03
15
+
16
+ ## Highlights
17
+
18
+ - Repeated Mirror Mode context loads no longer split an active conversation.
19
+ - Persona/journey context is bound to the current open runtime conversation.
20
+ - Explicit conversation switching remains available through `conversation-logger switch` / new-conversation flows.
21
+ - Regression coverage protects Pi sessions that call `mirror load` repeatedly while processing one long conversation.
22
+
23
+ ## Where We Started
24
+
25
+ During a `vida-economica` bill-payment session on 2026-06-01, a single Pi session was recorded as many short conversations. Investigation showed that repeated `uv run python -m memory mirror load --persona ... --journey ...` calls were being treated as conversation boundaries.
26
+
27
+ That was wrong. Loading Mirror context is not the same as starting a new conversation.
28
+
29
+ ## What Changed
30
+
31
+ Mirror Mode now uses a binding path for normal context loads. If the runtime session already has an open conversation, the resolved persona and journey are written onto that conversation and runtime session. A new conversation is created only when the session does not already have an open conversation.
32
+
33
+ The existing explicit switch path remains intact for user-invoked new-conversation boundaries.
34
+
35
+ ## Conscious Exclusions
36
+
37
+ - This release does not merge historical split conversations automatically.
38
+ - It does not change `mm-new` or explicit conversation switching semantics.
39
+ - It does not alter extraction, title generation, or journey inference policies.
40
+
41
+ ## What We Learned
42
+
43
+ Context activation and conversation boundaries must stay separate. A command can need to refresh identity, persona, journey, and attachments many times inside one runtime session without implying a new memory record.
44
+
45
+ ## Next Horizon
46
+
47
+ The repaired `vida-economica` session should be treated as the audit case for this class of bug. Future runtime integration work should preserve the same invariant: repeated context loads are idempotent with respect to conversation identity.
@@ -0,0 +1,77 @@
1
+ ---
2
+ digest: >
3
+ v0.22.0 adds mode orientation for Mirror's three primary lenses and a runtime
4
+ hygiene path for test sessions. Mirror now starts new sessions from present
5
+ intention, shows the active mode in the Pi status line, renders transition
6
+ surfaces for Mirror, Builder, and Explorer Mode, introduces the experimental
7
+ Explorer lens, and adds `/mm-discard` so test conversations can be deleted
8
+ before quitting.
9
+ ---
10
+
11
+ # v0.22.0 — Mode Orientation and Test Hygiene
12
+
13
+ **Date:** 2026-06-06
14
+
15
+ ## Highlights
16
+
17
+ - Mirror now has explicit mode lifecycle for `◌ Mirror Mode`, `■ Builder Mode`, and `△ Explorer Mode`.
18
+ - The Pi status line shows the current mode and active journey when present.
19
+ - Mode changes render compact transition surfaces in the conversation.
20
+ - New sessions start in `◌ Mirror Mode` from present intention, without inheriting stale Builder/Explorer mode or the last journey.
21
+ - Explorer Mode exists as an experimental journey lens while the full exploratory behavior is being built.
22
+ - `/mm-discard` deletes the current runtime conversation before quitting a test session.
23
+
24
+ ## Where We Started
25
+
26
+ Explorer Mode needed a foundation before its exploratory behavior could be built.
27
+ As soon as a third lens entered the product language, two older ambiguities became
28
+ visible: Mirror did not clearly show which lens was active, and runtime test
29
+ sessions polluted the personal conversation database.
30
+
31
+ The first implementation also revealed a subtle product distinction: a new Mirror
32
+ session is an act of intention, not an assumption of continuity with the previous
33
+ journey. Continuity belongs inside an active session or an explicitly reopened
34
+ journey.
35
+
36
+ ## What Changed
37
+
38
+ `memory mode activate|deactivate|status` now stores the active operating lens.
39
+ `memory mirror load`, `memory build load`, and `memory explore load` activate the
40
+ corresponding lenses and feed the Pi status line through `welcome --status-line`.
41
+
42
+ Mode transition surfaces now orient the user at the moment of lens change:
43
+ Mirror Mode shows identity, journey, persona routing, and available lenses;
44
+ Builder Mode shows journey context, project path, briefing, and the construction
45
+ boundary; Explorer Mode shows an experimental availability note and the
46
+ uncertainty-preservation boundary.
47
+
48
+ Pi session start now clears stale explicit mode and sticky journey context, so a
49
+ fresh session opens as `◇ alisson-vale · ◌ Mirror Mode · ✓` unless the user
50
+ activates a journey again.
51
+
52
+ The new `/mm-discard` skill calls `conversation-logger discard-current`, deletes
53
+ the current conversation through the existing deletion service, and marks the
54
+ runtime session so the assistant confirmation is not logged as a replacement
55
+ conversation.
56
+
57
+ ## Conscious Exclusions
58
+
59
+ - This release does not implement the full Explorer Mode story-thickening engine.
60
+ - Explorer Mode persistence, Signal Radar, Narrative Field Snapshot, and Builder promotion remain future CV16 work.
61
+ - `/mm-discard` does not force-close Pi; it discards the conversation and tells the user to quit.
62
+ - Discarding a conversation follows existing deletion semantics: extracted memories are detached, not deleted.
63
+
64
+ ## What We Learned
65
+
66
+ Mode and journey are different axes. Mode is the lens of operation; journey is
67
+ situated intention. They can meet in the status line, but their lifecycles should
68
+ not be conflated.
69
+
70
+ We also learned that transition surfaces and status bars solve different
71
+ problems. The status bar preserves orientation over time; the transition surface
72
+ makes the moment of change visible.
73
+
74
+ ## Next Horizon
75
+
76
+ The next CV16 work can move from orientation to behavior: Explorer activation
77
+ contract, in-session exploratory state, and reliable Story Thickened rendering.
@@ -0,0 +1,42 @@
1
+ ---
2
+ digest: >
3
+ v0.22.1 is a validation patch for v0.22.0. It preserves the Mode Orientation
4
+ and Test Hygiene behavior and applies the formatting correction required by
5
+ the repository-wide CI format check.
6
+ ---
7
+
8
+ # v0.22.1 — Mode Orientation CI Formatting
9
+
10
+ **Date:** 2026-06-06
11
+
12
+ ## Highlights
13
+
14
+ - Preserves the v0.22.0 mode orientation and `/mm-discard` behavior.
15
+ - Reformats the touched conversation-logger test file so CI format checks pass.
16
+ - Keeps v0.22.0 as the feature release and v0.22.1 as the validation patch.
17
+
18
+ ## Where We Started
19
+
20
+ After promoting v0.22.0, GitHub Actions failed at the repository-wide `ruff
21
+ format --check src tests` step. Local focused tests and lint had passed, but the
22
+ full format gate surfaced one unformatted test file.
23
+
24
+ ## What Changed
25
+
26
+ This patch applies the formatting correction and bumps the package version to
27
+ v0.22.1 so the stable channel can move forward through a clean release artifact.
28
+
29
+ ## Conscious Exclusions
30
+
31
+ - No behavior changes beyond the v0.22.0 release content.
32
+ - No additional Explorer Mode scope.
33
+
34
+ ## What We Learned
35
+
36
+ Run the repository-wide format check before promotion, not only focused lint and
37
+ tests.
38
+
39
+ ## Next Horizon
40
+
41
+ Continue CV16 with the Explorer activation contract and in-session exploratory
42
+ state now that the mode foundation is packaged.
@@ -0,0 +1,105 @@
1
+ ---
2
+ digest: >
3
+ v0.23.0 completes the first durable Explorer Mode release. Explorer now holds
4
+ an Exploratory Story beyond one fragile runtime session, resumes it visibly,
5
+ thickens it through required surfaces, and can promote it into Builder with
6
+ provenance-rich handoff evidence. The release also hardens the Explorer/Builder
7
+ boundary: required Explorer cards are marked for runtime rendering, operational
8
+ mutation requests route through Builder, and Pi status-line mode state is
9
+ scoped to the active session. Multiple simultaneous stories and the future Soul
10
+ Mode implementation remain outside this release.
11
+ ---
12
+
13
+ # v0.23.0 — Durable Explorer Mode
14
+
15
+ **Date:** 2026-06-07
16
+
17
+ ## Highlights
18
+
19
+ - Adds durable `exploratory_stories` storage with active, archived, and promoted lifecycle states.
20
+ - Resumes active Exploratory Stories when Explorer Mode is activated for a journey.
21
+ - Links Builder handoff artifacts to durable story ids and source conversation evidence.
22
+ - Adds privacy-safe optional `full-conversation.md` export with obfuscation for sensitive evidence.
23
+ - Marks required Explorer surfaces so Pi can render user-facing cards before commentary.
24
+ - Routes clear operational mutation requests from Explorer to Builder before file, code, or doc changes.
25
+ - Makes Pi operating-mode status session-scoped to avoid footer leaks between simultaneous sessions.
26
+
27
+ ## Where We Started
28
+
29
+ Explorer Mode had already proven the conversational shape of exploration: a user
30
+ could enter the lens, open an Exploratory Story, thicken it, name attractors,
31
+ propose experiments, and promote a candidate into Builder. The weakness was that
32
+ Explorer still depended too much on a fragile session and on assistant discipline.
33
+ A real Soul Mode validation exposed the gap: the handoff captured final state,
34
+ but not enough of the source conversations, thickening path, examples, decisions,
35
+ and uncertainty that made the exploration trustworthy.
36
+
37
+ The release therefore needed to turn Explorer from a promising mode into a
38
+ recoverable, inspectable product surface.
39
+
40
+ ## What Changed
41
+
42
+ Explorer Stories are now durable records. The new storage layer keeps one active
43
+ story per journey, preserves historical archived and promoted stories, and stores
44
+ the evolving story fields: title, current story, narrative summary, last card,
45
+ attractors, experiment proposal, Builder handoff state, and source conversation
46
+ metadata. Activating Explorer Mode for a journey now resumes the active story
47
+ with `△ EXPLORATORY STORY RESUMED` instead of silently starting from an empty
48
+ field.
49
+
50
+ Builder handoff became an editorial transfer artifact. Handoff generation can
51
+ attach source conversations, preserve their role in the exploration, list source
52
+ evidence in `index.md`, and write a `handoff-info.md` completeness checklist. Raw
53
+ conversation evidence is intentionally opt-in through `--include-full-conversation`.
54
+ When included, Mirror writes privacy-reviewed material and obfuscates local paths,
55
+ secrets, emails, and phone-like values before creating `full-conversation.md`.
56
+
57
+ The runtime boundary also became stricter. Explorer command output can wrap
58
+ required user-facing cards with stable `[[MIRROR_REQUIRED_SURFACE_BEGIN:...]]`
59
+ and `[[MIRROR_REQUIRED_SURFACE_END:...]]` markers so the assistant runtime knows
60
+ which surface must be rendered first. The Pi Explorer skill now instructs the
61
+ assistant to show the required block while hiding marker lines. It also names the
62
+ operational boundary explicitly: Explorer preserves uncertainty; Builder executes
63
+ commitment. If the user asks Explorer to edit files, apply procedures, create
64
+ code, run commands, or otherwise mutate project state, Mirror should answer with
65
+ `△ EXPLORER → BUILDER BOUNDARY` and route the work into Builder before mutation.
66
+
67
+ A validation bug in Pi's footer was fixed at the same boundary. Operating mode
68
+ state used to be effectively global, so two open Pi sessions could overwrite one
69
+ another's status line. Mode activation, deactivation, lookup, Builder load,
70
+ Explorer load, and `welcome --status-line` now accept a session id. The Pi
71
+ extension passes the current session id, while CLI callers without a session id
72
+ retain a global fallback.
73
+
74
+ Finally, stale Explorer copy was removed. Explorer no longer describes itself as
75
+ an experimental mode whose full experience will be available soon. The activation
76
+ surface now states that Explorer Mode is active and ready for durable exploration,
77
+ story thickening, attractors, experiments, and Builder handoff.
78
+
79
+ ## Conscious Exclusions
80
+
81
+ - Multiple simultaneous active Exploratory Stories per journey are still out of scope.
82
+ - Explorer does not become a hidden intent detector; the user activates the lens explicitly.
83
+ - Explorer does not mutate project state directly. Builder remains the delivery lens.
84
+ - The generated `docs/project/explorations/` handoff artifacts from validation are intentionally not part of this release. They remain local material for the next Soul Mode implementation.
85
+ - Advanced Explorer capabilities, richer web visibility, and Soul Mode itself remain future work.
86
+
87
+ ## What We Learned
88
+
89
+ Explorer's value is not just that it can summarize uncertainty. Its value appears
90
+ when uncertainty becomes durable enough to return to, visible enough to trust,
91
+ and bounded enough not to become accidental implementation. The Soul Mode
92
+ validation made the evidence problem concrete: Builder does not only need a final
93
+ brief; it needs enough provenance to understand why the brief exists.
94
+
95
+ The Pi status-line leak also clarified that operating mode is a session property
96
+ when a runtime has session identity. A global fallback is useful for CLI
97
+ compatibility, but interactive runtimes need scoped mode state to remain honest.
98
+
99
+ ## Next Horizon
100
+
101
+ The next visible horizon is Soul Mode. The local exploration artifacts generated
102
+ during validation should seed that work, but the implementation should begin from
103
+ Builder with a fresh delivery plan rather than being bundled into this Explorer
104
+ release. Explorer can now hold and promote that kind of discovery without forcing
105
+ it prematurely into construction.
@@ -0,0 +1,125 @@
1
+ ---
2
+ digest: >
3
+ v0.24.0 introduces the first complete Soul Mode ritual. Mirror can now enter a
4
+ dedicated inward listening mode, receive the user's day as living field, offer
5
+ situated Possible Listenings, listen through Self Voice or Shadow Voice, mature
6
+ one provisional fruit, harvest it, and save exactly one journal entry after
7
+ explicit confirmation. The release also adds a Soul Mode prompt foundation with
8
+ dynamic Self identity injection, formatted journal visibility in the web app,
9
+ and a clear Soul-to-Builder operational boundary. Wisdom Voice, Beauty Voice,
10
+ Passagem, Return To Center, and psyche-layer enrichment remain future runway.
11
+ ---
12
+
13
+ # v0.24.0 — Soul Mode First Ritual
14
+
15
+ **Date:** 2026-06-08
16
+
17
+ ## Highlights
18
+
19
+ - Adds `☾ Soul Mode` activation through `/mm-soul [slug]` and `python -m memory soul load [slug]`.
20
+ - Renders the Soul Mode entry surface with the inward-day invitation.
21
+ - Adds Possible Listenings with situated Self, Shadow, Wisdom, and Beauty options.
22
+ - Implements first-release listening lenses for Self Voice and Shadow Voice.
23
+ - Keeps the user conversing with Mirror while voice responses appear inside ritual cards.
24
+ - Adds Fruit In Maturation state so one provisional harvest can be refined across turns.
25
+ - Adds Harvested Fruit and explicit save-or-decline journal confirmation.
26
+ - Saves Soul Mode harvests as structured Markdown journal entries with origin metadata.
27
+ - Injects the user's `self/soul` identity layer into the composed Self Voice prompt.
28
+ - Adds a Soul-to-Builder boundary so Soul Mode does not mutate project state directly.
29
+ - Improves web visibility for Journal memories, formatted journal detail, and conversation maintenance.
30
+
31
+ ## Where We Started
32
+
33
+ Soul Mode began as an exploration of ritual and visual grammar for helping the
34
+ user remember who they are. The early question was not how to add another chat
35
+ command, but how to create a passage of state: from ordinary reporting, into
36
+ inner listening, through a voice or rite, toward a fruit that could be kept.
37
+
38
+ The product risk was overbuilding. Soul Mode has a broad horizon: Wisdom Voice,
39
+ Beauty Voice, Passagem, Return To Center, literary and philosophical fragments,
40
+ richer curation, psyche-layer integration, and possible web surfaces. The first
41
+ release needed to prove the core grammar without pretending the whole ecosystem
42
+ was complete.
43
+
44
+ ## What Changed
45
+
46
+ Soul Mode is now an explicit operating lens. Activating it renders a ritual entry
47
+ surface with the line `Soul Mode turns the day toward the inner life`, the horizon
48
+ `✦ IN ORDER TO / remember who you are`, and the opening question `how is your day
49
+ going today?`. The mode is represented in the lifecycle and status line as `☾
50
+ Soul Mode`.
51
+
52
+ The opening conversation now has a visible threshold. Thin day reports are held
53
+ as living field without forcing a menu. When the user moves from events into
54
+ inner contract, fear, wound, desire, compulsion, discomfort, or threatened
55
+ belonging, Mirror can render `✧ POSSIBLE LISTENINGS` with situated options. The
56
+ card ends by telling the user they can hear one of the voices now or continue the
57
+ conversation.
58
+
59
+ The first implemented voices are Self and Shadow, but they are not separate chat
60
+ characters. They are listening lenses. When the user chooses one, Mirror renders
61
+ a card such as `✦ SELF VOICE LISTENING` or `◐ SHADOW VOICE LISTENING`; the voice
62
+ response appears inside the card, and Mirror then bridges that response back into
63
+ the conversation. This avoids splitting the dialogue between agent and voice.
64
+ Self Voice is additionally grounded in the user's current `self/soul` identity
65
+ layer through `python -m memory soul prompt self`, so the user's incorporated
66
+ principles can shape what the voice hears over time.
67
+
68
+ Soul Mode can now mature one provisional fruit. `python -m memory soul fruit set`
69
+ stores and renders `❦ FRUIT IN MATURATION`; a later `fruit set` replaces the
70
+ same fruit rather than accumulating disconnected takeaways. When the user asks to
71
+ harvest, `python -m memory soul harvest set` renders `❦ HARVESTED FRUIT` and asks
72
+ `save to journal?`. Only explicit confirmation calls `harvest save`, which
73
+ creates one journal entry and clears the harvested state. Decline clears the
74
+ state without saving.
75
+
76
+ The journal path became richer during validation. Soul Mode harvests are now
77
+ structured Markdown entries with a title, fruit block, origin metadata, and when
78
+ available a link back to the source conversation. The web app now exposes Journal
79
+ as its own pinned memory category, opens memory cards as object detail pages,
80
+ renders journal Markdown with headings, blockquotes, lists, code, and safe
81
+ internal links, and can navigate journal origin links back to the source
82
+ conversation.
83
+
84
+ Pre-release usage also produced several web and maintenance refinements: full
85
+ turn deletion in conversation detail, formatted journal cards, top navigation for
86
+ Workspace, Conversations, Journeys, Operations, Configuration, Preferences, and
87
+ Docs, and styling fixes for conversation journey assignment.
88
+
89
+ ## Conscious Exclusions
90
+
91
+ - Wisdom Voice and Beauty Voice can appear as Possible Listenings, but they do not yet open full rites.
92
+ - Passagem remains a future rite, not part of this first release.
93
+ - Return To Center and Closing Day rituals remain future work.
94
+ - Soul Mode does not yet enrich Self, Shadow, Ego, persona, or journey identity layers after harvest.
95
+ - No automatic psyche mutation exists. Future identity enrichment must be proposed with visible diff and explicit confirmation.
96
+ - No rich web ritual UI is included. The first release validates textual ritual grammar.
97
+ - Soul Mode does not execute implementation work. Operational mutation requests must route to Builder Mode.
98
+
99
+ ## What We Learned
100
+
101
+ The most important product correction was that voices should be heard, not
102
+ conversed with. When Self Voice or Shadow Voice behaved like a separate
103
+ interlocutor, the user could lose track of whether they were speaking to Mirror
104
+ or to the voice. The cleaner grammar is: the user always converses with Mirror;
105
+ Mirror listens through a voice; the voice appears in a card; Mirror bridges the
106
+ voice back to the conversation.
107
+
108
+ Self Voice also became clearer through use. It should not help solve the problem.
109
+ It should mirror what is not being seen, using the user's incorporated principles
110
+ to reveal what is happening. That distinction matters because Soul Mode is not a
111
+ coaching workflow. It is a ritual listening mode.
112
+
113
+ The harvest boundary also became sharper. The journal is not a transcript sink.
114
+ It receives one chosen fruit only after the user asks to harvest and confirms
115
+ saving. The web app then needs to treat that entry as a meaningful record, not as
116
+ plain text hidden inside a generic memory category.
117
+
118
+ ## Next Horizon
119
+
120
+ The next Soul Mode horizon is integration. A future release should add a Closing
121
+ Rite that reviews harvested material and asks what wants to remain in the
122
+ Mirror's living psyche: Self principles, Shadow listening hypotheses, Ego
123
+ behavior, persona refinements, or journey memory. That work belongs after this
124
+ first ritual release because it touches identity mutation and must be designed
125
+ around explicit confirmation.
@@ -0,0 +1,107 @@
1
+ ---
2
+ digest: >
3
+ v0.25.0 expands Soul Mode with two new active listening lenses: Wisdom Voice
4
+ and Beauty Voice. Wisdom now lets the user's material be crossed by a solemn,
5
+ source-shaped utterance from a thinker, text, tradition, or old teaching, with
6
+ Mirror bridging the source back to the user's concrete situation outside the
7
+ card. Beauty now listens through image, texture, rhythm, atmosphere, poetry,
8
+ literature, music, and the form of aliveness without forcing positivity. Both
9
+ voices render their full utterance inside the ritual card and avoid automatic
10
+ journal, identity, or project-state mutation.
11
+ ---
12
+
13
+ # v0.25.0 — Soul Mode More Voices
14
+
15
+ **Date:** 2026-06-08
16
+
17
+ ## Highlights
18
+
19
+ - Adds Wisdom Voice as a full active Soul Mode listening lens.
20
+ - Adds Beauty Voice as a full active Soul Mode listening lens.
21
+ - Keeps both new voices inside the ritual card under `the voice says`.
22
+ - Removes `listening for` from Wisdom and Beauty cards so the voice can occupy the card fully.
23
+ - Requires situated `--says` content for Wisdom and Beauty to prevent placeholder cards.
24
+ - Adds canonical prompts for Wisdom Voice and Beauty Voice.
25
+ - Updates the Pi Soul Mode skill so natural-language validation can hear the new voices.
26
+ - Preserves the non-mutating Soul Mode boundary: no automatic journal, identity, or project-state changes.
27
+
28
+ ## Where We Started
29
+
30
+ The first Soul Mode release proved the ritual cycle, but it left a visible gap:
31
+ Possible Listenings could name Wisdom Voice and Beauty Voice, while the user
32
+ could not yet hear them as active rites. That made the constellation feel larger
33
+ than the behavior available inside the product.
34
+
35
+ The next release therefore focused on the missing voices rather than on
36
+ integration, rich UI, or psyche mutation. Before Mirror can ask what should be
37
+ integrated into identity, the user needs to hear the voices the ritual already
38
+ implies.
39
+
40
+ ## What Changed
41
+
42
+ Wisdom Voice is now hearable. When the user chooses it, Mirror renders a `♢
43
+ WISDOM VOICE LISTENING` card and places the full wisdom utterance inside the box
44
+ under `the voice says`. Wisdom Voice is not generic advice and not a short
45
+ summary. It is the voice of a relevant source — a thinker, philosopher, sacred
46
+ text, ancient tradition, proverb, contemplative teaching, mythic image, or wisdom
47
+ text — speaking from its own symbolic world.
48
+
49
+ The Wisdom card now omits `listening for`. This was an important ritual
50
+ correction: the card is not a form with fields. It is the place where the source
51
+ speaks. Mirror's practical bridge happens after the card, in Mirror's ordinary
52
+ tone. When Mirror knows the source, author, work, or historical/textual context,
53
+ it should explain that origin outside the card and relate it to the user's
54
+ conversation without inventing bibliographic precision.
55
+
56
+ Beauty Voice is also now hearable. When the user chooses it, Mirror renders a `✺
57
+ BEAUTY VOICE LISTENING` card and places the full beauty utterance inside the box
58
+ under `the voice says`. Beauty Voice listens through image, texture, rhythm,
59
+ atmosphere, body, literature, poetry, music, and the form of aliveness. It does
60
+ not decorate pain, force hope, or turn difficulty into a pretty lesson.
61
+
62
+ Beauty also omits `listening for`. Its card contains the aesthetic listening
63
+ itself; Mirror's bridge follows outside the card. When a poem, author, artwork,
64
+ song, or aesthetic source is known and relevant, Mirror may name it outside the
65
+ card, but should not fabricate citation details.
66
+
67
+ Both new voices require situated `--says` content when rendered through the CLI.
68
+ This prevents the runtime from displaying placeholder text when the assistant has
69
+ not yet composed the actual voice response from the user's material.
70
+
71
+ ## Conscious Exclusions
72
+
73
+ - No Closing Rite or psyche-layer integration is included.
74
+ - No automatic Self, Shadow, Ego, persona, or journey identity enrichment is included.
75
+ - No identity mutation is performed.
76
+ - No rich web Soul Mode UI is included.
77
+ - No Passagem curation or fragment library is included.
78
+ - No Return To Center implementation is included.
79
+ - No multiple-fruit model is included.
80
+ - Soul Mode still does not execute implementation work; operational mutation requests route to Builder Mode.
81
+
82
+ ## What We Learned
83
+
84
+ The key refinement was that a voice card must contain the voice itself, not a
85
+ label plus an explanation outside the box. Wisdom Voice in particular needed a
86
+ stronger separation between the source speaking inside the card and Mirror
87
+ interpreting outside it. Once that boundary was clear, Wisdom could become
88
+ solemn, symbolic, and ancestral without turning Mirror's normal bridge into a
89
+ prophetic performance.
90
+
91
+ Beauty followed the same grammar. It should not be a motivational consolation or
92
+ aesthetic gloss. It should let form, texture, rhythm, image, and care appear
93
+ inside the field, while leaving the practical connection to Mirror's ordinary
94
+ voice outside the card.
95
+
96
+ The release also reinforced a process lesson: pre-release refinement does not
97
+ need to become a separate implementation story when real validation closes the
98
+ open questions inside DS1 and DS2. The planned refinements story was cancelled
99
+ because the necessary tuning happened during direct Pi validation of the two
100
+ voice stories.
101
+
102
+ ## Next Horizon
103
+
104
+ The next Soul Mode horizon is integration: a Closing Rite, review of harvested
105
+ material, and safe psyche-layer enrichment proposals with visible diffs and
106
+ explicit confirmation. That work should remain careful and non-automatic because
107
+ it touches the Mirror's living identity model.