mirror-mind 0.0.1 → 0.32.1
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.
- package/.claude/hooks/log-session-end.sh +85 -0
- package/.claude/hooks/log-user-prompt.sh +85 -0
- package/.claude/hooks/mirror-inject.sh +85 -0
- package/.claude/hooks/session-start.sh +85 -0
- package/.gemini/hooks/log-assistant.sh +85 -0
- package/.gemini/hooks/log-user.sh +85 -0
- package/.gemini/hooks/session-end.sh +85 -0
- package/.gemini/hooks/session-start.sh +85 -0
- package/.pi/extensions/mirror-logger.ts +561 -0
- package/.pi/skills/mm-backup/SKILL.md +21 -0
- package/.pi/skills/mm-build/SKILL.md +1206 -0
- package/.pi/skills/mm-consolidate/SKILL.md +112 -0
- package/.pi/skills/mm-consult/SKILL.md +70 -0
- package/.pi/skills/mm-conversations/SKILL.md +16 -0
- package/.pi/skills/mm-discard/SKILL.md +39 -0
- package/.pi/skills/mm-explore/SKILL.md +255 -0
- package/.pi/skills/mm-help/SKILL.md +74 -0
- package/.pi/skills/mm-identity/SKILL.md +96 -0
- package/.pi/skills/mm-journal/SKILL.md +16 -0
- package/.pi/skills/mm-journey/SKILL.md +23 -0
- package/.pi/skills/mm-journeys/SKILL.md +15 -0
- package/.pi/skills/mm-memories/SKILL.md +17 -0
- package/.pi/skills/mm-mirror/SKILL.md +98 -0
- package/.pi/skills/mm-mute/SKILL.md +18 -0
- package/.pi/skills/mm-new/SKILL.md +18 -0
- package/.pi/skills/mm-recall/SKILL.md +17 -0
- package/.pi/skills/mm-release-notes/SKILL.md +52 -0
- package/.pi/skills/mm-seed/SKILL.md +19 -0
- package/.pi/skills/mm-shadow/SKILL.md +117 -0
- package/.pi/skills/mm-soul/SKILL.md +502 -0
- package/.pi/skills/mm-tasks/SKILL.md +24 -0
- package/.pi/skills/mm-update/SKILL.md +32 -0
- package/.pi/skills/mm-week/SKILL.md +28 -0
- package/.pi/skills/mm-welcome/SKILL.md +24 -0
- package/AGENTS.md +188 -0
- package/README.md +126 -9
- package/bin/loader.js +67 -0
- package/bin/mirror-hook.js +7 -0
- package/bin/mirror.js +7 -0
- package/docs/releases/index.md +99 -0
- package/docs/releases/pending-cutoffs.md +510 -0
- package/docs/releases/v0.10.0.md +123 -0
- package/docs/releases/v0.10.1.md +66 -0
- package/docs/releases/v0.10.10.md +51 -0
- package/docs/releases/v0.10.11.md +39 -0
- package/docs/releases/v0.10.12.md +57 -0
- package/docs/releases/v0.10.13.md +35 -0
- package/docs/releases/v0.10.14.md +42 -0
- package/docs/releases/v0.10.15.md +53 -0
- package/docs/releases/v0.10.16.md +35 -0
- package/docs/releases/v0.10.17.md +43 -0
- package/docs/releases/v0.10.2.md +64 -0
- package/docs/releases/v0.10.3.md +78 -0
- package/docs/releases/v0.10.4.md +42 -0
- package/docs/releases/v0.10.5.md +57 -0
- package/docs/releases/v0.10.6.md +47 -0
- package/docs/releases/v0.10.7.md +53 -0
- package/docs/releases/v0.10.8.md +49 -0
- package/docs/releases/v0.10.9.md +37 -0
- package/docs/releases/v0.11.0.md +86 -0
- package/docs/releases/v0.12.0.md +67 -0
- package/docs/releases/v0.13.0.md +64 -0
- package/docs/releases/v0.14.0.md +68 -0
- package/docs/releases/v0.15.0.md +48 -0
- package/docs/releases/v0.16.0.md +50 -0
- package/docs/releases/v0.16.1.md +55 -0
- package/docs/releases/v0.16.2.md +36 -0
- package/docs/releases/v0.17.0.md +50 -0
- package/docs/releases/v0.17.1.md +58 -0
- package/docs/releases/v0.17.2.md +42 -0
- package/docs/releases/v0.17.3.md +58 -0
- package/docs/releases/v0.18.0.md +84 -0
- package/docs/releases/v0.18.1.md +51 -0
- package/docs/releases/v0.18.2.md +69 -0
- package/docs/releases/v0.19.0.md +85 -0
- package/docs/releases/v0.19.1.md +46 -0
- package/docs/releases/v0.20.0.md +85 -0
- package/docs/releases/v0.21.0.md +61 -0
- package/docs/releases/v0.21.1.md +47 -0
- package/docs/releases/v0.22.0.md +77 -0
- package/docs/releases/v0.22.1.md +42 -0
- package/docs/releases/v0.23.0.md +105 -0
- package/docs/releases/v0.24.0.md +125 -0
- package/docs/releases/v0.25.0.md +107 -0
- package/docs/releases/v0.26.0.md +139 -0
- package/docs/releases/v0.26.1.md +65 -0
- package/docs/releases/v0.26.2.md +43 -0
- package/docs/releases/v0.27.0.md +63 -0
- package/docs/releases/v0.28.0.md +59 -0
- package/docs/releases/v0.29.0.md +61 -0
- package/docs/releases/v0.29.1.md +59 -0
- package/docs/releases/v0.29.2.md +59 -0
- package/docs/releases/v0.29.3.md +93 -0
- package/docs/releases/v0.30.0.md +75 -0
- package/docs/releases/v0.30.1.md +93 -0
- package/docs/releases/v0.30.2.md +66 -0
- package/docs/releases/v0.31.0.md +122 -0
- package/docs/releases/v0.31.1.md +142 -0
- package/docs/releases/v0.31.10.md +118 -0
- package/docs/releases/v0.31.11.md +88 -0
- package/docs/releases/v0.31.12.md +105 -0
- package/docs/releases/v0.31.13.md +99 -0
- package/docs/releases/v0.31.14.md +97 -0
- package/docs/releases/v0.31.2.md +115 -0
- package/docs/releases/v0.31.3.md +142 -0
- package/docs/releases/v0.31.4.md +117 -0
- package/docs/releases/v0.31.5.md +155 -0
- package/docs/releases/v0.31.6.md +132 -0
- package/docs/releases/v0.31.7.md +132 -0
- package/docs/releases/v0.31.8.md +120 -0
- package/docs/releases/v0.31.9.md +120 -0
- package/docs/releases/v0.32.0.md +261 -0
- package/docs/releases/v0.32.1.md +59 -0
- package/docs/releases/v0.8.0.md +118 -0
- package/docs/releases/v0.9.0.md +98 -0
- package/docs/releases/v0.9.1.md +83 -0
- package/package.json +102 -6
- package/plugins/mirror-mind/.claude-plugin/plugin.json +13 -0
- package/plugins/mirror-mind/hooks/hooks.json +50 -0
- package/plugins/mirror-mind/hooks/log-session-end.sh +98 -0
- package/plugins/mirror-mind/hooks/log-user-prompt.sh +98 -0
- package/plugins/mirror-mind/hooks/mirror-inject.sh +98 -0
- package/plugins/mirror-mind/hooks/session-start.sh +98 -0
- package/plugins/mirror-mind/mcp/launch.sh +52 -0
- package/plugins/mirror-mind/skills/mm-backup/SKILL.md +27 -0
- package/plugins/mirror-mind/skills/mm-build/SKILL.md +1206 -0
- package/plugins/mirror-mind/skills/mm-consolidate/SKILL.md +112 -0
- package/plugins/mirror-mind/skills/mm-consult/SKILL.md +83 -0
- package/plugins/mirror-mind/skills/mm-conversations/SKILL.md +17 -0
- package/plugins/mirror-mind/skills/mm-discard/SKILL.md +40 -0
- package/plugins/mirror-mind/skills/mm-explore/SKILL.md +241 -0
- package/plugins/mirror-mind/skills/mm-help/SKILL.md +104 -0
- package/plugins/mirror-mind/skills/mm-identity/SKILL.md +96 -0
- package/plugins/mirror-mind/skills/mm-journal/SKILL.md +21 -0
- package/plugins/mirror-mind/skills/mm-journey/SKILL.md +37 -0
- package/plugins/mirror-mind/skills/mm-journeys/SKILL.md +15 -0
- package/plugins/mirror-mind/skills/mm-memories/SKILL.md +20 -0
- package/plugins/mirror-mind/skills/mm-mirror/SKILL.md +65 -0
- package/plugins/mirror-mind/skills/mm-mute/SKILL.md +18 -0
- package/plugins/mirror-mind/skills/mm-new/SKILL.md +18 -0
- package/plugins/mirror-mind/skills/mm-recall/SKILL.md +17 -0
- package/plugins/mirror-mind/skills/mm-release-notes/SKILL.md +31 -0
- package/plugins/mirror-mind/skills/mm-seed/SKILL.md +15 -0
- package/plugins/mirror-mind/skills/mm-shadow/SKILL.md +117 -0
- package/plugins/mirror-mind/skills/mm-soul/SKILL.md +488 -0
- package/plugins/mirror-mind/skills/mm-tasks/SKILL.md +36 -0
- package/plugins/mirror-mind/skills/mm-update/SKILL.md +30 -0
- package/plugins/mirror-mind/skills/mm-week/SKILL.md +46 -0
- package/plugins/mirror-mind/skills/mm-welcome/SKILL.md +22 -0
- package/scripts/codex-hooks/session-end.sh +85 -0
- package/scripts/codex-hooks/session-start.sh +85 -0
- package/scripts/codex-mirror.sh +48 -0
- package/templates/identity/README.md +119 -0
- package/templates/identity/ego/behavior.yaml +52 -0
- package/templates/identity/ego/constraints.yaml +15 -0
- package/templates/identity/ego/identity.yaml +43 -0
- package/templates/identity/journeys/personal-growth.yaml +39 -0
- package/templates/identity/organization/identity.yaml +24 -0
- package/templates/identity/organization/principles.yaml +17 -0
- package/templates/identity/personas/coach.yaml +94 -0
- package/templates/identity/personas/designer.yaml +93 -0
- package/templates/identity/personas/doctor.yaml +96 -0
- package/templates/identity/personas/engineer.yaml +77 -0
- package/templates/identity/personas/financial.yaml +97 -0
- package/templates/identity/personas/prompt-engineer.yaml +122 -0
- package/templates/identity/personas/researcher.yaml +88 -0
- package/templates/identity/personas/strategist.yaml +91 -0
- package/templates/identity/personas/teacher.yaml +95 -0
- package/templates/identity/personas/therapist.yaml +91 -0
- package/templates/identity/personas/thinker.yaml +74 -0
- package/templates/identity/personas/writer.yaml +76 -0
- package/templates/identity/self/config.yaml +16 -0
- package/templates/identity/self/soul.yaml +105 -0
- package/templates/identity/user/identity.yaml +30 -0
- package/ts/src/backup/staging.ts +62 -0
- package/ts/src/backup/zipBackup.ts +267 -0
- package/ts/src/backup/zipReader.ts +109 -0
- package/ts/src/backup/zipWriter.ts +148 -0
- package/ts/src/builder/activeCheckpoint.ts +134 -0
- package/ts/src/builder/aggregateStatus.ts +34 -0
- package/ts/src/builder/approve.ts +149 -0
- package/ts/src/builder/argv.ts +292 -0
- package/ts/src/builder/ariadMethod.ts +536 -0
- package/ts/src/builder/artifacts/artifactSurfaces.ts +106 -0
- package/ts/src/builder/artifacts/artifactWriter.ts +113 -0
- package/ts/src/builder/artifacts/closureArtifacts.ts +199 -0
- package/ts/src/builder/artifacts/deliveryStoryArtifacts.ts +316 -0
- package/ts/src/builder/artifacts/planArtifacts.ts +242 -0
- package/ts/src/builder/artifacts/scaffoldSections.ts +273 -0
- package/ts/src/builder/artifacts/scaffoldState.ts +227 -0
- package/ts/src/builder/artifacts/storyFiles.ts +61 -0
- package/ts/src/builder/artifacts/storyIndex.ts +166 -0
- package/ts/src/builder/cadence.ts +59 -0
- package/ts/src/builder/card.ts +192 -0
- package/ts/src/builder/checkpointRefused.ts +66 -0
- package/ts/src/builder/closure.ts +964 -0
- package/ts/src/builder/commands.ts +2053 -0
- package/ts/src/builder/cursorPosition.ts +176 -0
- package/ts/src/builder/cursorTransitions.ts +77 -0
- package/ts/src/builder/deliveryCursor.ts +577 -0
- package/ts/src/builder/deliveryStoryClosure.ts +521 -0
- package/ts/src/builder/deliveryStoryPlan.ts +536 -0
- package/ts/src/builder/deliveryStoryReady.ts +160 -0
- package/ts/src/builder/deliveryStoryRoadmapClosure.ts +151 -0
- package/ts/src/builder/expand.ts +336 -0
- package/ts/src/builder/flowUnit.ts +339 -0
- package/ts/src/builder/homeSurface.ts +122 -0
- package/ts/src/builder/implementationGuard.ts +125 -0
- package/ts/src/builder/index.ts +11 -0
- package/ts/src/builder/lifecycleRefusal.ts +92 -0
- package/ts/src/builder/lifecycleRibbon.ts +159 -0
- package/ts/src/builder/load.ts +313 -0
- package/ts/src/builder/methodAdoption.ts +113 -0
- package/ts/src/builder/methodDefinition.ts +429 -0
- package/ts/src/builder/methodInspection.ts +371 -0
- package/ts/src/builder/plan.ts +408 -0
- package/ts/src/builder/planPreauthorization.ts +265 -0
- package/ts/src/builder/prepare.ts +225 -0
- package/ts/src/builder/projectPaths.ts +64 -0
- package/ts/src/builder/pull.ts +356 -0
- package/ts/src/builder/pullCandidates.ts +463 -0
- package/ts/src/builder/pullCandidatesRender.ts +238 -0
- package/ts/src/builder/refinementField.ts +93 -0
- package/ts/src/builder/releaseIntent.ts +173 -0
- package/ts/src/builder/resumeState.ts +84 -0
- package/ts/src/builder/resumeSurface.ts +149 -0
- package/ts/src/builder/roadmapGrammar.ts +300 -0
- package/ts/src/builder/roadmapScan.ts +97 -0
- package/ts/src/builder/roadmapScope.ts +210 -0
- package/ts/src/builder/scopePhrases.ts +146 -0
- package/ts/src/builder/storyPaths.ts +196 -0
- package/ts/src/builder/storyPlanPreauthorization.ts +287 -0
- package/ts/src/builder/surfaceProtocol.ts +42 -0
- package/ts/src/builder/templateGeneration.ts +148 -0
- package/ts/src/builder/transition.ts +178 -0
- package/ts/src/consult/args.ts +99 -0
- package/ts/src/consult/core.ts +122 -0
- package/ts/src/consult/modelCatalog.ts +55 -0
- package/ts/src/consult/render.ts +47 -0
- package/ts/src/conversation/append.ts +414 -0
- package/ts/src/conversation/backfill.ts +387 -0
- package/ts/src/conversation/closeTail.ts +467 -0
- package/ts/src/conversation/extraction.ts +333 -0
- package/ts/src/conversation/extractionDriver.ts +130 -0
- package/ts/src/conversation/extractionRun.ts +70 -0
- package/ts/src/conversation/journeyInference.ts +165 -0
- package/ts/src/conversation/journeyRepair.ts +114 -0
- package/ts/src/conversation/lifecycleFaces.ts +197 -0
- package/ts/src/conversation/lifecycleWrites.ts +313 -0
- package/ts/src/conversation/listing.ts +77 -0
- package/ts/src/conversation/logger.ts +576 -0
- package/ts/src/conversation/loggerCli.ts +282 -0
- package/ts/src/conversation/loggerRuntime.ts +259 -0
- package/ts/src/conversation/metadataLifecycle.ts +443 -0
- package/ts/src/conversation/recall.ts +66 -0
- package/ts/src/conversation/sessionComposites.ts +258 -0
- package/ts/src/conversation/sessionImport.ts +90 -0
- package/ts/src/conversation/transcriptBackfill.ts +141 -0
- package/ts/src/cultivation/applyActions.ts +241 -0
- package/ts/src/cultivation/cluster.ts +86 -0
- package/ts/src/cultivation/consolidationStore.ts +281 -0
- package/ts/src/cultivation/promptContext.ts +62 -0
- package/ts/src/cultivation/propose.ts +305 -0
- package/ts/src/cultivation/scan.ts +155 -0
- package/ts/src/db/backupGate.ts +47 -0
- package/ts/src/db/bootstrap.ts +108 -0
- package/ts/src/db/bootstrapLock.ts +223 -0
- package/ts/src/db/copyGuard.ts +60 -0
- package/ts/src/db/database.ts +397 -0
- package/ts/src/db/decode.ts +66 -0
- package/ts/src/db/ftsIntegrity.ts +41 -0
- package/ts/src/db/migrateOnOpen.ts +214 -0
- package/ts/src/db/migrations.ts +576 -0
- package/ts/src/db/readyOnOpen.ts +35 -0
- package/ts/src/db/rowDecode.ts +42 -0
- package/ts/src/db/schema.ts +432 -0
- package/ts/src/db/schemaInventory.ts +225 -0
- package/ts/src/db/schemaInventorySnapshot.ts +2107 -0
- package/ts/src/db/schemaState.ts +91 -0
- package/ts/src/db/schemaTsDivergence.ts +114 -0
- package/ts/src/descriptor/descriptorRead.ts +49 -0
- package/ts/src/docs/docsLint.ts +265 -0
- package/ts/src/explorer/handoff.ts +522 -0
- package/ts/src/explorer/render.ts +335 -0
- package/ts/src/explorer/story.ts +769 -0
- package/ts/src/explorer/transition.ts +72 -0
- package/ts/src/extensions/bindings.ts +170 -0
- package/ts/src/extensions/catalog.ts +249 -0
- package/ts/src/extensions/catalogCommands.ts +513 -0
- package/ts/src/extensions/catalogWrites.ts +652 -0
- package/ts/src/extensions/contextRuntime.ts +325 -0
- package/ts/src/extensions/dispatch.ts +374 -0
- package/ts/src/extensions/errors.ts +24 -0
- package/ts/src/extensions/manifest.ts +356 -0
- package/ts/src/extensions/migrations.ts +350 -0
- package/ts/src/extraction/conversation.ts +304 -0
- package/ts/src/extraction/conversationMetadata.ts +206 -0
- package/ts/src/extraction/fencing.ts +106 -0
- package/ts/src/extraction/json.ts +17 -0
- package/ts/src/extraction/prompts.ts +470 -0
- package/ts/src/frontDoor/args.ts +30 -0
- package/ts/src/frontDoor/argvShape.ts +106 -0
- package/ts/src/frontDoor/buildLoadRuntime.ts +139 -0
- package/ts/src/frontDoor/buildRoute.ts +398 -0
- package/ts/src/frontDoor/cli.ts +1865 -0
- package/ts/src/frontDoor/cloneRoleGuard.ts +98 -0
- package/ts/src/frontDoor/consultRoute.ts +50 -0
- package/ts/src/frontDoor/contentTailRoute.ts +239 -0
- package/ts/src/frontDoor/conversationLoggerRoute.ts +73 -0
- package/ts/src/frontDoor/cultivationRoute.ts +210 -0
- package/ts/src/frontDoor/dbPath.ts +131 -0
- package/ts/src/frontDoor/dbSafetyToolsRoute.ts +240 -0
- package/ts/src/frontDoor/exploreRoute.ts +572 -0
- package/ts/src/frontDoor/extensionCatalogRoute.ts +252 -0
- package/ts/src/frontDoor/frontDoorLog.ts +57 -0
- package/ts/src/frontDoor/identityWrite.ts +36 -0
- package/ts/src/frontDoor/journeyWriteRoute.ts +26 -0
- package/ts/src/frontDoor/lifecycleWriteRoute.ts +110 -0
- package/ts/src/frontDoor/liveBackup.ts +100 -0
- package/ts/src/frontDoor/mirrorModeRoute.ts +163 -0
- package/ts/src/frontDoor/namedRefusal.ts +35 -0
- package/ts/src/frontDoor/nodeSupport.ts +24 -0
- package/ts/src/frontDoor/render/consolidate.ts +199 -0
- package/ts/src/frontDoor/render/conversations.ts +33 -0
- package/ts/src/frontDoor/render/cultivationShared.ts +21 -0
- package/ts/src/frontDoor/render/descriptor.ts +20 -0
- package/ts/src/frontDoor/render/detectPersona.ts +50 -0
- package/ts/src/frontDoor/render/icons.ts +13 -0
- package/ts/src/frontDoor/render/identity.ts +59 -0
- package/ts/src/frontDoor/render/identityRows.ts +17 -0
- package/ts/src/frontDoor/render/inspectPersona.ts +53 -0
- package/ts/src/frontDoor/render/journeyStatus.ts +78 -0
- package/ts/src/frontDoor/render/journeys.ts +79 -0
- package/ts/src/frontDoor/render/list.ts +41 -0
- package/ts/src/frontDoor/render/memories.ts +67 -0
- package/ts/src/frontDoor/render/recall.ts +49 -0
- package/ts/src/frontDoor/render/shadow.ts +155 -0
- package/ts/src/frontDoor/render/tasks.ts +99 -0
- package/ts/src/frontDoor/render/tasksImportSync.ts +63 -0
- package/ts/src/frontDoor/render/week.ts +113 -0
- package/ts/src/frontDoor/routing.ts +999 -0
- package/ts/src/frontDoor/runtimeRoute.ts +623 -0
- package/ts/src/frontDoor/searchRoute.ts +166 -0
- package/ts/src/frontDoor/seedPaths.ts +98 -0
- package/ts/src/frontDoor/soulRoute.ts +433 -0
- package/ts/src/frontDoor/tasksImportSyncRoute.ts +110 -0
- package/ts/src/frontDoor/tasksWriteRoute.ts +101 -0
- package/ts/src/frontDoor/usage.ts +176 -0
- package/ts/src/guards/claudePlugin.ts +252 -0
- package/ts/src/guards/packContents.ts +306 -0
- package/ts/src/guards/piSourcedSkills.ts +70 -0
- package/ts/src/guards/retiredRouteShadows.ts +57 -0
- package/ts/src/guards/retiredSurfaces.ts +564 -0
- package/ts/src/hooks/claude.ts +176 -0
- package/ts/src/hooks/codex.ts +45 -0
- package/ts/src/hooks/gemini.ts +126 -0
- package/ts/src/hooks/main.ts +109 -0
- package/ts/src/hooks/mirrorState.ts +71 -0
- package/ts/src/hooks/payload.ts +68 -0
- package/ts/src/hooks/runtime.ts +159 -0
- package/ts/src/identity/applyConsolidationIdentityUpdate.ts +67 -0
- package/ts/src/identity/descriptorGenerate.ts +162 -0
- package/ts/src/identity/identityEdit.ts +143 -0
- package/ts/src/identity/identityKey.ts +77 -0
- package/ts/src/identity/identityRead.ts +69 -0
- package/ts/src/identity/identityStore.ts +80 -0
- package/ts/src/identity/journeyListing.ts +53 -0
- package/ts/src/identity/personaInspect.ts +44 -0
- package/ts/src/identity/personaListing.ts +37 -0
- package/ts/src/identity/setIdentity.ts +64 -0
- package/ts/src/index.ts +231 -0
- package/ts/src/init/init.ts +111 -0
- package/ts/src/journey/journeyOptions.ts +131 -0
- package/ts/src/journey/journeyRemoval.ts +158 -0
- package/ts/src/journey/journeyStatus.ts +149 -0
- package/ts/src/journey/journeySyncFile.ts +87 -0
- package/ts/src/journey/journeyWrite.ts +203 -0
- package/ts/src/journey/parentJourney.ts +41 -0
- package/ts/src/journey/validateParentJourney.ts +55 -0
- package/ts/src/mcp/boundary.ts +151 -0
- package/ts/src/mcp/guards.ts +244 -0
- package/ts/src/mcp/main.ts +121 -0
- package/ts/src/mcp/payload.ts +141 -0
- package/ts/src/mcp/protocol.ts +141 -0
- package/ts/src/mcp/readModels.ts +241 -0
- package/ts/src/mcp/registry.ts +201 -0
- package/ts/src/mcp/serve.ts +120 -0
- package/ts/src/mcp/tools/deterministic.ts +137 -0
- package/ts/src/mcp/tools/providerCrossing.ts +187 -0
- package/ts/src/mcp/wire.ts +8 -0
- package/ts/src/memory/journal.ts +180 -0
- package/ts/src/memory/listing.ts +107 -0
- package/ts/src/memory/memoryWrite.ts +88 -0
- package/ts/src/memory/reinforcement.ts +35 -0
- package/ts/src/mirror/context.ts +161 -0
- package/ts/src/mirror/defaultResolution.ts +199 -0
- package/ts/src/mirror/orchestration.ts +364 -0
- package/ts/src/mirror/reception.ts +194 -0
- package/ts/src/mirror/render.ts +75 -0
- package/ts/src/mirror/runtimeSession.ts +205 -0
- package/ts/src/mode/operatingMode.ts +148 -0
- package/ts/src/observability/callOutcome.ts +115 -0
- package/ts/src/observability/inspectLedger.ts +329 -0
- package/ts/src/observability/ledgerHooks.ts +126 -0
- package/ts/src/observability/llmCalls.ts +154 -0
- package/ts/src/persona/detectPersona.ts +81 -0
- package/ts/src/planning/promptAssembly.ts +111 -0
- package/ts/src/planning/weekPending.ts +81 -0
- package/ts/src/planning/weekPlan.ts +183 -0
- package/ts/src/planning/weekSave.ts +117 -0
- package/ts/src/providers/config.ts +189 -0
- package/ts/src/providers/cost.ts +64 -0
- package/ts/src/providers/credits.ts +204 -0
- package/ts/src/providers/embedding.ts +321 -0
- package/ts/src/providers/familyProviders.ts +147 -0
- package/ts/src/providers/llm.ts +334 -0
- package/ts/src/providers/openrouter.ts +244 -0
- package/ts/src/providers/redaction.ts +110 -0
- package/ts/src/providers/replay.ts +15 -0
- package/ts/src/providers/transport.ts +410 -0
- package/ts/src/repair/encodingRepair.ts +253 -0
- package/ts/src/runtime/backup.ts +151 -0
- package/ts/src/runtime/channel.ts +146 -0
- package/ts/src/runtime/config.ts +168 -0
- package/ts/src/runtime/diagnose.ts +686 -0
- package/ts/src/runtime/git.ts +510 -0
- package/ts/src/runtime/installKind.ts +220 -0
- package/ts/src/runtime/migrate.ts +154 -0
- package/ts/src/runtime/packageIdentity.ts +102 -0
- package/ts/src/runtime/releaseNotes.ts +244 -0
- package/ts/src/runtime/status.ts +557 -0
- package/ts/src/runtime/strategies/clone.ts +200 -0
- package/ts/src/runtime/strategies/package.ts +328 -0
- package/ts/src/runtime/treeRoot.ts +30 -0
- package/ts/src/runtime/update.ts +445 -0
- package/ts/src/runtime/updateGate.ts +40 -0
- package/ts/src/runtime/updatePipeline.ts +159 -0
- package/ts/src/runtime/version.ts +36 -0
- package/ts/src/runtime/wiring.ts +130 -0
- package/ts/src/search/memorySearch.ts +338 -0
- package/ts/src/search/ranker.ts +154 -0
- package/ts/src/seed/seed.ts +256 -0
- package/ts/src/seed/seedYaml.ts +133 -0
- package/ts/src/soul/apply.ts +218 -0
- package/ts/src/soul/harvest.ts +267 -0
- package/ts/src/soul/prompts/soul_beauty_voice.md +103 -0
- package/ts/src/soul/prompts/soul_self_voice.md +219 -0
- package/ts/src/soul/prompts/soul_wisdom_voice.md +121 -0
- package/ts/src/soul/prompts.ts +85 -0
- package/ts/src/soul/render.ts +358 -0
- package/ts/src/soul/state.ts +212 -0
- package/ts/src/soul/transition.ts +37 -0
- package/ts/src/tasks/journeyPathParse.ts +113 -0
- package/ts/src/tasks/taskImportSync.ts +142 -0
- package/ts/src/tasks/taskStore.ts +312 -0
- package/ts/src/tasks/weekView.ts +120 -0
- package/ts/src/util/clipCodePoints.ts +26 -0
- package/ts/src/util/paths.ts +63 -0
- package/ts/src/util/program.ts +9 -0
- package/ts/src/util/pyGenerators.ts +144 -0
- package/ts/src/util/pythonText.ts +317 -0
- package/ts/src/util/semver.ts +45 -0
- package/ts/src/util/shellWord.ts +25 -0
- package/ts/src/util/slug.ts +64 -0
- package/ts/src/welcome/card.ts +339 -0
- package/ts/src/welcome/statusLine.ts +101 -0
- 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.
|