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
package/AGENTS.md
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# Mirror Mind — Operating Instructions
|
|
2
|
+
|
|
3
|
+
<!-- This file ships in the mirror-mind package and is read by every runtime:
|
|
4
|
+
Pi and Codex read it from the project root natively, Claude Code and
|
|
5
|
+
Gemini CLI through the @AGENTS.md import in CLAUDE.md, and an installed
|
|
6
|
+
package's Pi session receives it from the extension (CV22.DS10.US3, D13).
|
|
7
|
+
It holds nothing about this repository; that is CLAUDE.md's part. -->
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Mirror Operating Instructions
|
|
12
|
+
|
|
13
|
+
Applies to all sessions, regardless of project.
|
|
14
|
+
|
|
15
|
+
### Operating Modes
|
|
16
|
+
|
|
17
|
+
The mirror operates in four modes, chosen automatically based on context:
|
|
18
|
+
Mirror, Builder, Explorer, and Soul.
|
|
19
|
+
|
|
20
|
+
Each skill below is named three ways: `/mm-<skill>` in Pi and Gemini CLI,
|
|
21
|
+
`$mm-<skill>` in Codex, `/mm:<skill>` in Claude Code. A Claude Code **plugin**
|
|
22
|
+
install prefixes the plugin's name — `/mirror-mind:mm:<skill>` in the menu,
|
|
23
|
+
`mirror-mind:mm-<skill>` as the skill's own name — and the forms below refer to
|
|
24
|
+
the same skill.
|
|
25
|
+
|
|
26
|
+
**Mirror Mode** — activate for: life decisions, feelings, business strategy,
|
|
27
|
+
writing, mentoring, health, existential questions, sensemaking, psychological
|
|
28
|
+
tensions, class preparation, product launches, or any topic asking for personal
|
|
29
|
+
reflection or positioning.
|
|
30
|
+
|
|
31
|
+
How to operate: load the mirror skill (`/mm-mirror`, `$mm-mirror`, or
|
|
32
|
+
`/mm:mirror`). Load identity, route persona, search attachments, answer in first
|
|
33
|
+
person, and record the response.
|
|
34
|
+
|
|
35
|
+
**Builder Mode** — activate for: code, project structure, YAML editing, bugs,
|
|
36
|
+
implementation, architecture, or any software engineering task.
|
|
37
|
+
|
|
38
|
+
How to operate: read code, edit files, run commands, propose technical
|
|
39
|
+
solutions, keep docs updated when code changes. For a journey, use `/mm-build
|
|
40
|
+
<slug>` / `$mm-build <slug>` / `/mm:build <slug>` — loads journey context and
|
|
41
|
+
project docs.
|
|
42
|
+
|
|
43
|
+
**Explorer Mode** — activate for the uncertain middle before construction:
|
|
44
|
+
exploring a possibility space, holding uncertainty before committing to build,
|
|
45
|
+
developing an Exploratory Story, surfacing attractors, proposing small
|
|
46
|
+
experiments, or preparing a Builder handoff.
|
|
47
|
+
|
|
48
|
+
How to operate: use `/mm-explore <slug>` / `$mm-explore <slug>` / `/mm:explore
|
|
49
|
+
<slug>` to activate Explorer Mode for a journey and resume the active Exploratory
|
|
50
|
+
Story when one exists. Follow `.pi/skills/mm-explore/SKILL.md`: render required
|
|
51
|
+
story surfaces before interpretation, thicken the story as the narrative changes,
|
|
52
|
+
and keep exploration durable. Explorer Mode preserves uncertainty — it does not
|
|
53
|
+
implement. For operational mutation requests, name the `△ EXPLORER → BUILDER
|
|
54
|
+
BOUNDARY` and route them through Builder Mode via an explicit handoff. Deactivate
|
|
55
|
+
with `/mm-explore deactivate`, which returns to Mirror Mode while preserving
|
|
56
|
+
sticky journey context.
|
|
57
|
+
|
|
58
|
+
**Soul Mode** — activate when the user asks to enter Soul Mode, open Soul Mode,
|
|
59
|
+
or continue an active Soul Mode ritual.
|
|
60
|
+
|
|
61
|
+
How to operate: use `/mm-soul [slug]` / `$mm-soul [slug]` / `/mm:soul [slug]`
|
|
62
|
+
to render the entry surface. While Soul Mode is active, follow
|
|
63
|
+
`.pi/skills/mm-soul/SKILL.md`: listen to the user's answer as living field,
|
|
64
|
+
withhold Possible Listenings when the material is thin, and when living matter
|
|
65
|
+
appears call the front door's `soul listen ...` (the exact invocation is in the
|
|
66
|
+
skill) to render the Possible Listenings surface at the end of the response. This renderer call is required
|
|
67
|
+
Soul Mode behavior, not optional tool use. Soul Mode must not mutate files,
|
|
68
|
+
implement stories, run implementation commands, package releases, or change
|
|
69
|
+
project state. For operational requests, name the `☾ SOUL → BUILDER BOUNDARY`
|
|
70
|
+
and ask whether to switch to Builder Mode for the same journey.
|
|
71
|
+
|
|
72
|
+
Builder activation boundary: activating Builder Mode or loading a journey is
|
|
73
|
+
context setup only. After loading the context and required docs, stop and ask
|
|
74
|
+
what work should be done next. Do not edit files, create tests, run
|
|
75
|
+
implementation, start TDD, or mutate project state until the user gives an
|
|
76
|
+
explicit implementation or documentation instruction, such as implement, fix,
|
|
77
|
+
edit, create, run tests, or names a specific story to execute. Context
|
|
78
|
+
activation is not execution consent.
|
|
79
|
+
|
|
80
|
+
Ariad surface transport invariant: when command output contains marked Ariad
|
|
81
|
+
surface blocks (`<<<ARIAD:...>>>` through `<<<END:...>>>`), preserve every marked
|
|
82
|
+
block verbatim in the assistant response before commentary. Do not summarize,
|
|
83
|
+
translate, reorder, trim, rewrap, re-indent, reformat, or replace marked surfaces
|
|
84
|
+
with prose. This is a general rendering rule for Ariad surfaces, not a
|
|
85
|
+
phase-specific behavior.
|
|
86
|
+
|
|
87
|
+
**Ambiguity:** if the mode is unclear, ask whether the user wants personal
|
|
88
|
+
reflection or project construction.
|
|
89
|
+
|
|
90
|
+
**Journey Status** — shortcut within Mirror Mode. Activate when the user asks
|
|
91
|
+
"How are we doing?", "What's the status of X?", or any question about progress
|
|
92
|
+
or roadmap. Dispatch to `/mm-journey` or `/mm-journeys`. When the user asks for
|
|
93
|
+
the journey list in natural language, use `/mm-journeys` and preserve its
|
|
94
|
+
hierarchical rendering without flattening or reformatting it.
|
|
95
|
+
|
|
96
|
+
**Commits:** use descriptive English commit messages. Explain the WHY, not just
|
|
97
|
+
what was done. Prefer small commits with clear review boundaries.
|
|
98
|
+
|
|
99
|
+
### Ego-Persona Model
|
|
100
|
+
|
|
101
|
+
The mirror has one voice: the ego. Personas are specialized lenses activated by
|
|
102
|
+
the ego according to context.
|
|
103
|
+
|
|
104
|
+
**Automatic routing:** activate a persona when the topic clearly belongs to a
|
|
105
|
+
specialized domain, the depth required exceeds the generic ego repertoire, or
|
|
106
|
+
the user explicitly asks for a persona.
|
|
107
|
+
|
|
108
|
+
**Routing protocol:** persona routing is data-driven. Each persona in the
|
|
109
|
+
database carries `routing_keywords` and a routing descriptor. At runtime,
|
|
110
|
+
`detectPersona` (`ts/src/persona/detectPersona.ts`) scores the query against
|
|
111
|
+
those keywords. If no persona scores above threshold, the ego answers alone. To
|
|
112
|
+
inspect active routing:
|
|
113
|
+
`mirror detect-persona "<query>"`.
|
|
114
|
+
|
|
115
|
+
**Signature format:**
|
|
116
|
+
|
|
117
|
+
When the ego answers alone — no signature.
|
|
118
|
+
|
|
119
|
+
When a persona is active:
|
|
120
|
+
```text
|
|
121
|
+
◇ persona-name
|
|
122
|
+
|
|
123
|
+
[first-person answer, unified voice]
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
When switching personas:
|
|
127
|
+
```text
|
|
128
|
+
◇ product-designer
|
|
129
|
+
|
|
130
|
+
[analysis...]
|
|
131
|
+
|
|
132
|
+
◇ therapist
|
|
133
|
+
|
|
134
|
+
[reflection...]
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Rules: `◇` plus persona name on its own line; voice stays first person and unified.
|
|
138
|
+
|
|
139
|
+
### Hard Constraints
|
|
140
|
+
|
|
141
|
+
- **Truth:** do not invent data. If uncertain, say so.
|
|
142
|
+
- **Service:** intellectual partner, not task executor. Question, refine, align —
|
|
143
|
+
do not execute without thinking.
|
|
144
|
+
|
|
145
|
+
### Available Skills
|
|
146
|
+
|
|
147
|
+
**Core modes:**
|
|
148
|
+
- `mm-mirror` — activates Mirror Mode — `.pi/skills/mm-mirror/SKILL.md`
|
|
149
|
+
- `mm-build` — activates Builder Mode for a journey — `.pi/skills/mm-build/SKILL.md`
|
|
150
|
+
- `mm-explore` — activates Explorer Mode for a journey — `.pi/skills/mm-explore/SKILL.md`
|
|
151
|
+
- `mm-soul` — activates Soul Mode ritual entry — `.pi/skills/mm-soul/SKILL.md`
|
|
152
|
+
|
|
153
|
+
**Journeys and tasks:**
|
|
154
|
+
- `mm-journeys` — compact journey list — `.pi/skills/mm-journeys/SKILL.md`
|
|
155
|
+
- `mm-journey` — detailed journey status — `.pi/skills/mm-journey/SKILL.md`
|
|
156
|
+
- `mm-tasks` — task management by journey — `.pi/skills/mm-tasks/SKILL.md`
|
|
157
|
+
- `mm-week` — weekly planning — `.pi/skills/mm-week/SKILL.md`
|
|
158
|
+
|
|
159
|
+
**Memory and inspection:**
|
|
160
|
+
- `mm-memories` — recorded memories — `.pi/skills/mm-memories/SKILL.md`
|
|
161
|
+
- `mm-conversations` — recent conversations list — `.pi/skills/mm-conversations/SKILL.md`
|
|
162
|
+
- `mm-recall` — load messages from a previous conversation — `.pi/skills/mm-recall/SKILL.md`
|
|
163
|
+
|
|
164
|
+
**Content:**
|
|
165
|
+
- `mm-journal` — personal journal entry — `.pi/skills/mm-journal/SKILL.md`
|
|
166
|
+
|
|
167
|
+
**Identity:**
|
|
168
|
+
- `mm-seed` — seed identity YAML files into the database — `.pi/skills/mm-seed/SKILL.md`
|
|
169
|
+
- `mm-identity` — read and update identity in the database — `.pi/skills/mm-identity/SKILL.md`
|
|
170
|
+
|
|
171
|
+
**Session control:**
|
|
172
|
+
- `mm-mute` — toggle conversation logging — `.pi/skills/mm-mute/SKILL.md`
|
|
173
|
+
- `mm-new` — start a new conversation — `.pi/skills/mm-new/SKILL.md`
|
|
174
|
+
- `mm-discard` — discard the current conversation before quitting — `.pi/skills/mm-discard/SKILL.md`
|
|
175
|
+
|
|
176
|
+
**Memory cultivation:**
|
|
177
|
+
- `mm-consolidate` — scan memories for patterns and propose consolidation — `.pi/skills/mm-consolidate/SKILL.md`
|
|
178
|
+
- `mm-shadow` — surface and promote shadow-layer observations — `.pi/skills/mm-shadow/SKILL.md`
|
|
179
|
+
|
|
180
|
+
**Utilities:**
|
|
181
|
+
- `mm-consult` — ask other LLMs through OpenRouter — `.pi/skills/mm-consult/SKILL.md`
|
|
182
|
+
- `mm-backup` — memory database backup — `.pi/skills/mm-backup/SKILL.md`
|
|
183
|
+
- `mm-welcome` — render the state-aware welcome card on demand — `.pi/skills/mm-welcome/SKILL.md`
|
|
184
|
+
- `mm-release-notes` — show Mirror Mind release notes — `.pi/skills/mm-release-notes/SKILL.md`
|
|
185
|
+
- `mm-update` — update the local Mirror runtime — `.pi/skills/mm-update/SKILL.md`
|
|
186
|
+
- `mm-help` — list available commands — `.pi/skills/mm-help/SKILL.md`
|
|
187
|
+
|
|
188
|
+
Full command reference: [REFERENCE.md](REFERENCE.md)
|
package/README.md
CHANGED
|
@@ -1,12 +1,129 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Mirror Mind
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
installs nothing runnable and provides no `mirror` command.
|
|
3
|
+

|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
Imagine hiring a contractor to build a house. A good contractor doesn't show up
|
|
6
|
+
alone — they bring a team: the architect, the structural engineer, the
|
|
7
|
+
electrician, the plumber, the finish carpenter. Each one is exceptional in their
|
|
8
|
+
domain. They've worked together before. They hand off cleanly. You talk to one
|
|
9
|
+
person; the coordination is their problem, not yours.
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
Mirror Mind gives you that team for knowledge work. A strategist for business
|
|
12
|
+
decisions. An engineer for code. A therapist for the tensions underneath the
|
|
13
|
+
surface. A writer for the moments when voice matters. A researcher when you need
|
|
14
|
+
to go deep. Each activated by context, each exceptional in their domain, all
|
|
15
|
+
speaking with one unified voice — because they're all expressions of the same
|
|
16
|
+
intelligence: yours.
|
|
17
|
+
|
|
18
|
+
The AI tools most people use today are the equivalent of hiring contractors one
|
|
19
|
+
at a time, separately, with no shared context. Each one starts cold. They don't
|
|
20
|
+
know what the others decided. They don't know your constraints, your past
|
|
21
|
+
decisions, your current stage. You are the coordinator — doing the integration
|
|
22
|
+
work that should not be yours to do.
|
|
23
|
+
|
|
24
|
+
Mirror Mind changes this. Your team is briefed on your projects. They know where
|
|
25
|
+
you are in each one, what's been decided, what's unresolved. The second session
|
|
26
|
+
is faster than the first. The tenth is faster still. They don't start from zero
|
|
27
|
+
— because they were there.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+

|
|
32
|
+
|
|
33
|
+
But what makes this team exceptional is not just coordination. It's that they
|
|
34
|
+
know *you*.
|
|
35
|
+
|
|
36
|
+
Every time you open a new AI session, you re-explain yourself. You re-establish
|
|
37
|
+
your context. You repeat your values, your constraints, your situation — again.
|
|
38
|
+
And the AI, no matter how capable, responds as if it's meeting you for the first
|
|
39
|
+
time. The advice it gives could fit anyone. It doesn't know that you made that
|
|
40
|
+
decision three months ago and why. It doesn't know what you're navigating right
|
|
41
|
+
now, what tensions are unresolved, what you committed to last week. It answers in
|
|
42
|
+
a vacuum. That's not a team. That's a very smart set of strangers.
|
|
43
|
+
|
|
44
|
+
Mirror Mind accumulates. Every conversation is analyzed and the signal is
|
|
45
|
+
extracted: decisions, insights, commitments, patterns. The intelligence compounds.
|
|
46
|
+
Your team doesn't just know your projects — they know your voice, your values,
|
|
47
|
+
your recurring tensions, the way you think. The strategist gives you advice
|
|
48
|
+
calibrated to your risk profile. The therapist surfaces the tension you circled
|
|
49
|
+
around three sessions ago. The engineer remembers why you made the architectural
|
|
50
|
+
call that shaped everything downstream.
|
|
51
|
+
|
|
52
|
+
That's what the mirror is: a conscious, accumulative reflection of your own
|
|
53
|
+
intelligence — sharpened by every conversation, carried across time. The
|
|
54
|
+
contractor metaphor explains how you interact with it. The mirror explains why
|
|
55
|
+
it works.
|
|
56
|
+
|
|
57
|
+
This is not a chatbot with memory. This is a mirror — and yours.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## How It Works
|
|
62
|
+
|
|
63
|
+
Local-first. SQLite. Four supported runtimes: Pi, Gemini CLI, Codex, Claude
|
|
64
|
+
Code. One TypeScript core, run by Node.js. Jungian architecture: Self, Ego,
|
|
65
|
+
Personas, Shadow.
|
|
66
|
+
Context-activated modes — Mirror, Builder, Explorer, and Soul. The identity lives
|
|
67
|
+
in your machine, not a server.
|
|
68
|
+
|
|
69
|
+
→ Get started in ten minutes: [Getting Started](docs/getting-started.md)
|
|
70
|
+
→ Full command reference: [REFERENCE.md](REFERENCE.md)
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Prerequisites
|
|
75
|
+
|
|
76
|
+
- [Node.js 24+](https://nodejs.org/) — runs Mirror Mind's core
|
|
77
|
+
(`node --version` must be ≥ v24; POSIX/macOS/Linux supported). Nothing
|
|
78
|
+
else to install: there is no Python and no build step
|
|
79
|
+
- [OpenRouter](https://openrouter.ai) account with at least $5 in credits —
|
|
80
|
+
embeddings, memory extraction, and multi-LLM
|
|
81
|
+
- An AI runtime subscription:
|
|
82
|
+
[Codex Plus](https://openai.com/codex/) (recommended),
|
|
83
|
+
[Claude Code Pro](https://code.claude.com/docs), or
|
|
84
|
+
[Gemini AI Pro](https://geminicli.com/)
|
|
85
|
+
- [Pi](https://github.com/earendil-works/pi/tree/main/packages/coding-agent)
|
|
86
|
+
— recommended harness (multi-model, not locked to one provider)
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Documentation
|
|
91
|
+
|
|
92
|
+
- [Getting Started](docs/getting-started.md) — step-by-step onboarding for new users
|
|
93
|
+
- [REFERENCE.md](REFERENCE.md) — command reference and configuration
|
|
94
|
+
- [Architecture](docs/product/architecture.md) — system design, layers, and data model
|
|
95
|
+
- [Project Briefing](docs/project/briefing.md) — foundational architectural decisions
|
|
96
|
+
- [Decisions](docs/project/decisions.md) — incremental decision log
|
|
97
|
+
- [Roadmap](docs/project/roadmap/index.md) — current and planned capability values
|
|
98
|
+
- [Development Guide](docs/process/development-guide.md) — how to work on this codebase
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Origins and Credits
|
|
103
|
+
|
|
104
|
+
Mirror Mind began as [Alisson Vale](https://github.com/alissonvale/)'s original
|
|
105
|
+
`mirror-mind` — a Portuguese-language,
|
|
106
|
+
Claude Code-only implementation built around his own identity and circumstances.
|
|
107
|
+
He created the concept and the Jungian architecture.
|
|
108
|
+
|
|
109
|
+
[Vinícius Teles](https://github.com/viniciusteles) extended that foundation into
|
|
110
|
+
this repository, turning a personal experiment into a reusable framework:
|
|
111
|
+
|
|
112
|
+
- **English** — full migration from Portuguese across code, CLI, schema, identity, and docs
|
|
113
|
+
- **Framework/user separation** — user identity and memory live privately under `~/.mirror/<user>/`, outside the repository
|
|
114
|
+
- **Multi-runtime** — from Claude Code only to four runtimes: Pi, Gemini CLI, Codex, and Claude Code
|
|
115
|
+
- **Multi-user** — independent mirrors for multiple users on the same machine
|
|
116
|
+
- **Multi-session** — concurrent sessions tracked safely in a database-backed session registry
|
|
117
|
+
- **Intelligence depth** — hybrid semantic and lexical search, honest reinforcement, two-pass extraction, memory consolidation, and shadow cultivation
|
|
118
|
+
- **Extension system** — a stable contract for adding user-specific capabilities outside the core; extensions own their own SQLite tables, CLI subcommands, and Mirror Mode context providers without touching the framework
|
|
119
|
+
|
|
120
|
+
The move toward Pi as the preferred runtime was inspired by
|
|
121
|
+
[Henrique Bastos](https://github.com/henriquebastos) and his early work in
|
|
122
|
+
[henriquebastos/mirror-mind](https://github.com/henriquebastos/mirror-mind),
|
|
123
|
+
which showed a strong path toward a more model-flexible runtime.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## License
|
|
128
|
+
|
|
129
|
+
MIT
|
package/bin/loader.js
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// The one loader shim behind every Mirror bin. CV22.DS10.US3, decisions D15 and D5.
|
|
2
|
+
//
|
|
3
|
+
// The program is TypeScript run directly by Node -- no build step -- and that
|
|
4
|
+
// holds in a checkout and through `npm link`, where the files' real path is
|
|
5
|
+
// outside `node_modules`. It does not hold for `npm install -g`: Node refuses
|
|
6
|
+
// to strip types for anything under `node_modules`
|
|
7
|
+
// (ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING), a policy with no flag.
|
|
8
|
+
//
|
|
9
|
+
// So each bin is a JavaScript file that calls `boot` with its entry. `boot`
|
|
10
|
+
// registers a load hook that strips types for `.ts` files UNDER THIS PACKAGE
|
|
11
|
+
// ROOT ONLY -- never a dependency, never the user's project -- and then
|
|
12
|
+
// imports the entry and runs it. Every shipped path stays what it is in the
|
|
13
|
+
// checkout (D2); the installed tree differs from a clone by the `bin/`
|
|
14
|
+
// directory alone, and the checkout carries it too, so `npm link` and the
|
|
15
|
+
// install run the same entries.
|
|
16
|
+
//
|
|
17
|
+
// Two bins share this file rather than each carrying the shim: `mirror`
|
|
18
|
+
// (`frontDoor/cli.ts`) and `mirror-hook` (`hooks/main.ts`, D5). The hook
|
|
19
|
+
// wrappers run the second one wherever they are -- in a checkout, under
|
|
20
|
+
// `npm root -g`, or copied into Claude Code's plugin cache.
|
|
21
|
+
//
|
|
22
|
+
// `registerHooks` and `stripTypeScriptTypes` are experimental in the Node 24
|
|
23
|
+
// floor, the same stability class as `node:sqlite`, which the core already
|
|
24
|
+
// stands on; `scripts/smoke_npm_package.sh` runs both bins from a real global
|
|
25
|
+
// install on CI's Node 24.
|
|
26
|
+
//
|
|
27
|
+
// The warning filter below is the shim's own copy, because the hook emits its
|
|
28
|
+
// ExperimentalWarning before the core's filter can be imported through it.
|
|
29
|
+
|
|
30
|
+
import { readFileSync } from "node:fs";
|
|
31
|
+
import { registerHooks, stripTypeScriptTypes } from "node:module";
|
|
32
|
+
import { fileURLToPath } from "node:url";
|
|
33
|
+
|
|
34
|
+
process.removeAllListeners("warning");
|
|
35
|
+
process.on("warning", (warning) => {
|
|
36
|
+
if (warning.name === "ExperimentalWarning") return;
|
|
37
|
+
process.stderr.write(`${warning.name}: ${warning.message}\n`);
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
const packageRoot = new URL("../", import.meta.url).href;
|
|
41
|
+
|
|
42
|
+
registerHooks({
|
|
43
|
+
load(url, context, nextLoad) {
|
|
44
|
+
if (url.startsWith(packageRoot) && url.endsWith(".ts")) {
|
|
45
|
+
const source = readFileSync(fileURLToPath(url), "utf8");
|
|
46
|
+
return {
|
|
47
|
+
format: "module",
|
|
48
|
+
source: stripTypeScriptTypes(source, { mode: "strip" }),
|
|
49
|
+
shortCircuit: true,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return nextLoad(url, context);
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Import the entry at `entryPath` (relative to the package root) and run its
|
|
58
|
+
* `runAsEntry()`, which every Mirror entry exports: it loads configuration,
|
|
59
|
+
* silences the sqlite warning, and returns the exit code.
|
|
60
|
+
*
|
|
61
|
+
* @param {string} entryPath
|
|
62
|
+
* @returns {Promise<number>}
|
|
63
|
+
*/
|
|
64
|
+
export async function boot(entryPath) {
|
|
65
|
+
const { runAsEntry } = await import(new URL(entryPath, packageRoot).href);
|
|
66
|
+
return runAsEntry();
|
|
67
|
+
}
|
package/bin/mirror.js
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
[< Docs](../index.md)
|
|
2
|
+
|
|
3
|
+
# Releases
|
|
4
|
+
|
|
5
|
+
Narrative release notes for Mirror Mind live here from the adoption of CV9.E5 onward.
|
|
6
|
+
|
|
7
|
+
Release notes are prospective. Historical versions through `v0.7.0` remain valid project history, recorded in Git tags and the [worklog](../process/worklog.md), but they are not retroactively reinterpreted by the new [versioning rule](../process/versioning.md).
|
|
8
|
+
|
|
9
|
+
Future release notes should use the structure defined in [Release Notes](../process/release-notes.md): digest, highlights, narrative context, what changed, conscious exclusions, lessons, and next horizon.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Releases
|
|
14
|
+
|
|
15
|
+
- [v0.32.1 — The Release That Shipped](v0.32.1.md) — patch release that is the published CV22 release: `v0.32.0` was tagged and its publication refused by the retired-surface tripwire over one sentence in Getting Started, now rephrased. No code, behavior, or schema differs from `v0.32.0`; read that note for the release itself.
|
|
16
|
+
- [v0.32.0 — One Language, One Install](v0.32.0.md) — minor release that closes CV22, the TypeScript Core Port. Mirror Mind is one TypeScript package run by Node.js 24, installed with `npm install -g mirror-mind` and wired to Pi, Claude Code, Gemini CLI, or Codex by one documented step each; no Python remains in the repository or the shipped artifact; every command answers as it did. Eleven surfaces are retired with cutoffs, recorded in [Pending Cutoffs](pending-cutoffs.md), which this note carries. A new home imports only the Pi sessions newer than itself.
|
|
17
|
+
- [v0.31.14 — Change Request Resume](v0.31.14.md) — patch release that adds the public Ariad Workbench `change-request resume` verb so a non-terminal advanced Change Request that lost the active pointer can continue without direct SQLite edits or artificial status regression. Resume preserves the CR record, restores only the Refinement cursor, allows `implemented` to proceed to `validate` and `validated` to proceed to `done`, and keeps terminal CRs closed.
|
|
18
|
+
- [v0.31.13 — Explicit Append and Lifecycle Recovery](v0.31.13.md) — patch release that adds the public `conversations append` JSON boundary with atomic exact-Journey persistence, caller-owned idempotency, bounded receipts, and no runtime-session routing or late-append semantic refresh; it also restores Ariad Coherence reentry after evidence correction and pays D-016's lazy SQLite WAL recovery defect without changing model pins or prompts.
|
|
19
|
+
- [v0.31.12 — Bounded Authority and Journey Integrity](v0.31.12.md) — patch release that makes Builder delegation exact and durable: natural and cadence-declared story Plan authority remains generation-bound, single-use, and stopped at Navigator Validation; Driver-authored Plans survive approval; release intent grants no publication authority; transactional model-free Journey administration protects hierarchy and history; and Delivery Story Done refuses false coherence while authored roadmap status is stale.
|
|
20
|
+
- [v0.31.11 — Confined Operational Relative Links](v0.31.11.md) — security-preserving hotfix that resolves authored Markdown links from their containing document and accepts parent-relative traversal only when the canonical target remains inside the registered Journey root. Canonical escapes, absolute/URI/backslash targets, symlink escapes, and missing-target publication failures remain bounded; the last valid projection pair is preserved.
|
|
21
|
+
- [v0.31.10 — Journey Projection Contract](v0.31.10.md) — patch release that implements `mirror.journey-projections@1.0` in the Python Core with registered-root confinement, per-Journey cross-process linearizability, immutable receipts, deterministic Ariad Operational compilation, post-commit lifecycle refresh, and Extension API `1.1`. The unchanged consumer-owned probe passes against isolated synthetic state; installed-runtime acceptance remains explicit through the consumer return record.
|
|
22
|
+
- [v0.31.9 — Recursive Journey Hierarchy](v0.31.9.md) — patch release that removes the artificial two-level journey limit while preserving organizational-only parentage. Textual and web surfaces render arbitrary depth and full lineage; cycles are rejected; moves preserve ids, paths, and filesystem content; removal refuses parents and associated leaves without cascade. The TypeScript strangler now tracks an explicit moving Python product command by command instead of freezing user-facing evolution for the duration of the migration.
|
|
23
|
+
- [v0.31.8 — Windows Desktop Frame](v0.31.8.md) — patch release that makes the native Windows Frame the primary installed experience while preserving the terminal recovery path. Guided onboarding, tabbed Pi/ConPTY sessions, exact Pi `0.83.0` convergence, all-PTY update gating, fail-closed packaging, packaged Electron smoke, and real non-ASCII profile validation establish the first releasable desktop boundary; installer `0.31.0` remains unsigned and Mirror-core updates still arrive through a complete new installer.
|
|
24
|
+
- [v0.31.7 — Collaborative Refinement Work](v0.31.7.md) — patch release that makes the document-first Workbench usable across contributors and their Mirrors. File-first inspection now renders a standard read-only view; active CRs can record a human Driver and branch/PR Delivery reference; and a project-owned protocol defines capture, selection, planning, assignment, validation, terminal closure, return handoff, and ordinary Git conflict handling without adding a parser, shared database, lock, watcher, synchronizer, or custom Git protocol.
|
|
25
|
+
- [v0.31.6 — Document-First Refinement Authority](v0.31.6.md) — patch release that replaces journey-local SQLite as the shared source of Refinement truth whenever a project declares `docs/project/refinement/index.md`. The canonical Markdown index now owns RS/CR focus, order, and status; linked files own narrative and evidence; Git owns collaboration and recovery. Builder surfaces and Pi/Gemini/Codex guidance follow the project files without inspecting stale Workbench rows, while projects without the index retain the legacy SQLite path. The release preserves migrations `015`/`016`, performs no implicit migration or dual-write, and records the abandoned projection/recovery/handoff architecture as an archived experiment rather than production machinery.
|
|
26
|
+
- [v0.31.5 — One Code, One Package](v0.31.5.md) — maintenance patch that closes the roadmap-resolution class v0.31.4 only partially fixed. One shared resolver (`memory.builder.story_paths`) now backs both Ariad Expand and the CLI's Plan/checkpoint lookup, superseding v0.31.4's narrower, same-day `_resolve_existing_item_directory` fix (discovered independently on `kia-desktop`) while this release's own investigation traced a second occurrence of the CR048 defect (CV22.DS7). Two packages sharing a code, or a resolved package whose candidate table can't be parsed, now render a first-class `EXPAND_BLOCKED` refusal instead of resolving silently or fabricating a generic story; a new CI check makes "one code, one package" a build-time guarantee. Closes D-012 (candidate-table code-cell path sanitization) as a direct consequence of touching the functions its revisit trigger named. Reconciled with v0.31.4 by rebase, keeping its regression test as additional coverage.
|
|
27
|
+
- [v0.31.4 — Roadmap-Aligned Story Expansion](v0.31.4.md) — maintenance patch that stops Ariad's Builder from materializing a phantom, parallel story-package tree when expanding a Delivery Story. `_artifact_directory` derived roadmap folders from code plus title, but hand-authored roadmaps use CV/DS slugs (`cv3-build-de-producao`) no title derivation can reproduce, so expanding CV3.DS22 wrote a boilerplate `cv3-manage-100-funcional/cv3-ds22/` tree instead of the real `cv3-build-de-producao/cv3-ds22-manage-100-funcional/` node. Expand now resolves the existing folder by matching each `index.md`'s `# CODE — Title` heading to the item code (the same scan the pull inspector uses) and only falls back to title derivation for genuinely new items. Pinned by a nested-folder regression test and validated against the live kia-desktop roadmap.
|
|
28
|
+
- [v0.31.3 — Ariad DS-Plan Artifact Integrity](v0.31.3.md) — maintenance patch that makes the Ariad Delivery Story plan lifecycle's artifacts trustworthy. Fixes phantom `ARTIFACTS_MATERIALIZED` rows for a never-written `test-guide.md` and a falsely "updated" `index.md` (AF-002, AF-006) by driving the surface from the writer's real manifest and materializing the full package without clobbering authored content. Scaffolds every `plan_contract` section in `plan.md` (AF-003), then — after a six-lens technical review chose pure-preserve over a surgical status patcher — removes mutable status from the document so `approve-delivery-story-plan` preserves the authored plan instead of regenerating it, and flags any section left unfilled. Records the warn-not-block choice and the D-012 code-segment sanitization gap as conscious exclusions.
|
|
29
|
+
- [v0.31.2 — Filesystem-Safe Slug Consolidation](v0.31.2.md) — maintenance patch that fixes an `OSError [Errno 63]` (File name too long) crash in `build pull-item` when a Delivery Story candidate title is paragraph-length, by consolidating four drifted kebab `_slugify` copies into one accent-stripping, length-capped `memory.utils.kebab_slug`. Closes the same latent `mkdir` crash in the Explorer handoff writer, makes the roadmap package writer and locator derive the same path by construction, and adds an empty-slug guard. Reviewed through five personas before implementation; records D-012 (code-cell path-separator sanitization) and D-013 (the `transcript_export` slug sibling) as conscious debt.
|
|
30
|
+
- [v0.31.1 — Change Request Terminal Verbs](v0.31.1.md) — patch release that adds `change-request park/reject/promote` (and `refinement-story park`) to the Ariad Refinement Workbench, closing the gap that forced an off-contract production storage write for CR023. Planned through a six-persona review before implementation; fixes a latent `_flow_event` bug, a surface-marker injection path, and a progress-surface trust bug found during that review. CR023 is Navigator-confirmed reconciled; an open roadmap-parser investigation is closed in documentation; TD-002 is registered.
|
|
31
|
+
- [v0.31.0 — Stabilization & Robustness](v0.31.0.md) — minor release that delivers the bulk of the CV9.E2 Stabilization & Robustness epic: extraction failure isolation/quarantine and idempotency, lexical-only search degradation, explicit call timeouts, content-mediated injection fencing across all five model surfaces, an identity-write allowlist, metadata-default cost observability, and an `eval --all` release gate — plus the AI Engineering Audit P0 tier and most P1/P2 findings. CV9.E2.S2 is deferred; the model-behavior gate is satisfied by a recorded D-005 waiver.
|
|
32
|
+
- [v0.30.2 — Network-Appropriate Git Timeouts](v0.30.2.md) — patch release that gives runtime git push/fetch operations a 120-second network timeout instead of sharing the 2-second local-inspection timeout, fixing a false-failure report from `release-promote --push` during the v0.30.1 promotion.
|
|
33
|
+
- [v0.30.1 — Runtime State Home Containment](v0.30.1.md) — patch release that contains all user-scoped runtime state inside the resolved mirror home for every environment, makes unconfigured resolution fail loudly instead of writing to the homes root, unifies core and extension database resolution, contains the Pi logger's log, and teaches `runtime diagnose` to report legacy root artifacts.
|
|
34
|
+
- [v0.30.0 — Windows Installer Distribution](v0.30.0.md) — first public Windows installer distribution release, turning the native installer into a release-backed `.exe` asset path while keeping generated binaries out of the repository and preserving runtime self-update for existing installs.
|
|
35
|
+
- [v0.29.3 — Pi External-Skill Discovery Fix](v0.29.3.md) — maintenance patch that fixes Pi external-skill discovery on the `~/.mirror-minds` home layout by resolving the mirror home like the core, records the resulting cross-language resolution duplication as TD-001, and hardens the Gemini smoke test's production-DB guard.
|
|
36
|
+
- [v0.29.2 — Ariad Builder Flow Refinement](v0.29.2.md) — patch release that refines Ariad Builder surfaces, RS/CR display codes, Project Position orientation, artifact materialization reporting, and Delivery Done handoffs after dogfooding.
|
|
37
|
+
- [v0.29.1 — Windows Compatibility Hardening](v0.29.1.md) — patch release that preserves Windows-safe Claude/plugin skill paths, UTF-8 console output, explicit mojibake repair, and cross-platform path rendering.
|
|
38
|
+
- [v0.29.0 — Ariad Refinement Workbench](v0.29.0.md) — minor release that makes Refinement a first-class Builder Mode work field with Workbench storage, Refinement Stories, Change Requests, CR cycles, and RS review/coherence/close.
|
|
39
|
+
- [v0.28.0 — Ariad Delivery Story Lifecycle](v0.28.0.md) — minor release that makes Delivery Story flow a first-class Ariad Builder path with aggregate DS Plan/Validation/Review/Coherence/Done, canonical checkpoint artifacts, and visual surfaces.
|
|
40
|
+
- [v0.27.0 — Ariad Builder Lifecycle Runtime](v0.27.0.md) — minor release that adds the full Ariad Builder lifecycle from Pull through Done, deterministic surfaces, hard gates, story packages, validation acceptance, Debt Review, Coherence, Done, and conservative higher-autonomy cadence.
|
|
41
|
+
- [v0.26.2 — Web Conversation Bulk Actions](v0.26.2.md) — emergency patch release that adds selected bulk assignment and deletion to the main web Conversations view.
|
|
42
|
+
- [v0.26.1 — Soul Mode English Integration Copy](v0.26.1.md) — patch release that normalizes hard-coded Soul Mode integration prompts and additive identity section headings to the English baseline.
|
|
43
|
+
- [v0.26.0 — Soul Mode Integration](v0.26.0.md) — minor release that adds Closing Rite, multi-layer Integration Proposal, explicit confirmation-only identity integration, additive identity updates, and atomic integration records.
|
|
44
|
+
- [v0.25.0 — Soul Mode More Voices](v0.25.0.md) — minor release that adds active Wisdom Voice and Beauty Voice listening lenses, full voice-card utterances, source/aesthetic bridge guidance, and non-mutating Soul Mode voice boundaries.
|
|
45
|
+
- [v0.24.0 — Soul Mode First Ritual](v0.24.0.md) — minor release that adds the first complete Soul Mode ritual: entry, Possible Listenings, Self and Shadow listening lenses, Fruit In Maturation, Harvested Fruit, journal persistence, and pre-release web/journal refinements.
|
|
46
|
+
- [v0.23.0 — Durable Explorer Mode](v0.23.0.md) — minor release that completes the first Explorer Mode release with durable stories, source-evidence handoff artifacts, required surface rendering, Builder boundary routing, and session-scoped Pi mode status.
|
|
47
|
+
- [v0.22.1 — Mode Orientation CI Formatting](v0.22.1.md) — validation patch that preserves v0.22.0 behavior and restores green CI formatting.
|
|
48
|
+
- [v0.22.0 — Mode Orientation and Test Hygiene](v0.22.0.md) — minor release that adds explicit mode lifecycle, status-line orientation, transition surfaces, experimental Explorer activation, and `/mm-discard` for test-session cleanup.
|
|
49
|
+
- [v0.21.1 — Mirror Mode Conversation Continuity](v0.21.1.md) — patch release that prevents repeated Mirror Mode context loads from splitting one active runtime session into many conversations.
|
|
50
|
+
- [v0.21.0 — Scene Workspace Home](v0.21.0.md) — minor release that adds Current Scene, persisted grounded Scene Orientation, narrative global Workspace surfaces, compact all-conversations navigation, and focused orientation tabs.
|
|
51
|
+
- [v0.20.0 — Hierarchical Journey Organization](v0.20.0.md) — minor release that adds one-level parent journeys, hierarchical web/text rendering, journey settings title/status/parent editing, and display-only hierarchy semantics.
|
|
52
|
+
- [v0.19.1 — Web Console Maintenance CI Formatting](v0.19.1.md) — validation patch that preserves v0.19.0 behavior and restores green CI formatting.
|
|
53
|
+
- [v0.19.0 — Web Console Conversation and Journey Maintenance](v0.19.0.md) — minor release that adds web journey creation, explicit conversation deletion, bulk selected deletion, and broader selected-journey conversation visibility.
|
|
54
|
+
- [v0.18.2 — Conversation Journey Assignment](v0.18.2.md) — patch release that adds unassigned conversation visibility, manual/bulk journey assignment, and conservative journey backfill.
|
|
55
|
+
- [v0.18.1 — Empty Conversation Cleanup](v0.18.1.md) — patch release that expands cleanup to empty conversation records while preserving dry-run, approval, and backup boundaries.
|
|
56
|
+
- [v0.18.0 — Conversation Metadata Lifecycle](v0.18.0.md) — minor release that finalizes conversation metadata at close time and adds web metadata maintenance, historical backfill, resume scopes, and orphan cleanup.
|
|
57
|
+
- [v0.17.3 — Builder Guard Non-Mirror Projects](v0.17.3.md) — patch release that restricts the Builder production-clone guard to Mirror Mind checkouts so ordinary journey projects load normally.
|
|
58
|
+
- [v0.17.2 — Builder Guard CI Formatting](v0.17.2.md) — validation patch that keeps the Builder project-path guard behavior and restores green CI formatting.
|
|
59
|
+
- [v0.17.1 — Builder Project-Path Guard](v0.17.1.md) — patch release that scopes Builder Mode's production-clone guard to the selected journey project path.
|
|
60
|
+
- [v0.17.0 — Conversation Title Hardening](v0.17.0.md) — minor release that hardens conversation titles across runtime close, startup maintenance, Pi backfill, and bounded web batch retitle operations.
|
|
61
|
+
- [v0.16.2 — Runtime Update Validation Stub](v0.16.2.md) — minimal stable release used to validate the corrected v0.16.1 updater executing a normal production update.
|
|
62
|
+
- [v0.16.1 — Runtime Update Preflight Resilience](v0.16.1.md) — patch release that publishes the updater hardening fix for core migration drift and SQLite WAL sidecar status recovery.
|
|
63
|
+
- [v0.16.0 — Async Operations and Agentic Web Console](v0.16.0.md) — minor release that closes CV13 with asynchronous operation runs, durable event timelines, controlled command execution, cancellation, approval checkpoints, and a bounded agent-run prototype with a polished run console.
|
|
64
|
+
- [v0.15.0 — Web Operations Runner](v0.15.0.md) — minor release that closes CV13.E5 with allowlisted synchronous web operations, runtime health, database backup, conversation repair, local audit evidence, and the first visible Operations surface.
|
|
65
|
+
- [v0.14.0 — Conversation Intelligence](v0.14.0.md) — minor release that closes CV13.E4 with readable transcripts, explicit title improvement, configuration references, and read-only journey attachments.
|
|
66
|
+
- [v0.13.0 — Configuration Console](v0.13.0.md) — minor release that closes CV13.E3 with read-only Mirror/runtime configuration, masked environment boundaries, and safe journey metadata editing from Workspace.
|
|
67
|
+
- [v0.12.0 — Multi-Mirror and Preferences](v0.12.0.md) — minor release that closes CV13.E2 with safe local Mirror switching and per-Mirror profile/theme preferences.
|
|
68
|
+
- [v0.11.0 — Read-only Web Refinement](v0.11.0.md) — minor release that closes CV13.E1 with Workspace-first navigation, Identity memory drilldowns, read-only search, and refined conversation cards.
|
|
69
|
+
- [v0.10.17 — Update Notice Tone](v0.10.17.md) — patch release that makes update notices informational and prefixes them with ✨.
|
|
70
|
+
- [v0.10.16 — Update Action Routing Validation Stub](v0.10.16.md) — minimal stable release used to validate v0.10.15 update-action routing.
|
|
71
|
+
- [v0.10.15 — Update Action Routing](v0.10.15.md) — patch release that routes `update my Mirror` to the safe runtime updater.
|
|
72
|
+
- [v0.10.14 — Update Prompt Wording](v0.10.14.md) — patch release that changes the welcome update prompt to "what's new in this update?".
|
|
73
|
+
- [v0.10.13 — Pending Notes Ref Refresh Validation Stub](v0.10.13.md) — minimal stable release used to validate v0.10.12 pending-notes ref refresh.
|
|
74
|
+
- [v0.10.12 — Pending Release Notes Ref Refresh](v0.10.12.md) — patch release that safely fetches stable refs before rendering cumulative pending release notes.
|
|
75
|
+
- [v0.10.11 — Pending Notes Prompt Validation Stub](v0.10.11.md) — minimal stable release used to validate v0.10.10 welcome pending-notes prompt routing.
|
|
76
|
+
- [v0.10.10 — Pending Release Notes Prompt](v0.10.10.md) — patch release that routes welcome update prompts to cumulative pending release notes.
|
|
77
|
+
- [v0.10.9 — Release Awareness Validation Stub](v0.10.9.md) — minimal stable release used to validate v0.10.8 welcome update detection.
|
|
78
|
+
- [v0.10.8 — Welcome Release Awareness](v0.10.8.md) — patch release that refreshes stable-channel welcome awareness after cached up-to-date checks.
|
|
79
|
+
- [v0.10.7 — Runtime Operations Documentation](v0.10.7.md) — patch release that reconciles updater and release-management docs/help with the current command surface.
|
|
80
|
+
- [v0.10.6 — Update Status Recovery](v0.10.6.md) — patch release that retries update status after safely bootstrapping an unavailable production database.
|
|
81
|
+
- [v0.10.5 — Cumulative Release Notes](v0.10.5.md) — patch release that lists every pending release note for users more than one version behind.
|
|
82
|
+
- [v0.10.4 — Pi Startup Lifecycle](v0.10.4.md) — patch release that fully detaches Pi startup maintenance so the startup counter can complete.
|
|
83
|
+
- [v0.10.3 — Pi Startup Maintenance](v0.10.3.md) — patch release that moves expensive Pi conversation maintenance out of the blocking startup path.
|
|
84
|
+
- [v0.10.2 — Fresh Release Awareness](v0.10.2.md) — patch release that refreshes visible welcome update notices when stable advances again inside the cache window.
|
|
85
|
+
- [v0.10.1 — Welcome Startup Clarity](v0.10.1.md) — patch release that clarifies Pi startup status and gives new-version availability stronger welcome emphasis.
|
|
86
|
+
- [v0.10.0 — Web Visibility](v0.10.0.md) — closes CV9.E6 with read-only Identity and Workspace perspectives, object detail with Source Context, and a Pi Builder journey-association repair path.
|
|
87
|
+
- [v0.9.1 — Welcome Release Awareness](v0.9.1.md) — patch release that makes stable release availability visible in the welcome and Pi status bar through network-tolerant update awareness.
|
|
88
|
+
- [v0.9.0 — Self-Update Done](v0.9.0.md) — closes the release-aware self-update arc with stable update notices, release-note skill parity, release promotion doctor, controlled promotion, and fresh-user stable smoke evidence.
|
|
89
|
+
- [v0.8.0 — Stable Self-Update Foundation](v0.8.0.md) — first prospective stable-channel release; establishes safe runtime self-update, updater self-recovery, stable/main channels, welcome version visibility, and runtime release-note access.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Historical Boundary
|
|
94
|
+
|
|
95
|
+
- Pre-adoption versions: `v0.2.0` through `v0.7.0`, recorded by Git tags and worklog entries.
|
|
96
|
+
- Process adoption: CV9.E5.
|
|
97
|
+
- First prospective major boundary: CV9 completion may become `v1.0.0`, because CV9 is the public-release readiness boundary for Mirror Mind 1.0.
|
|
98
|
+
|
|
99
|
+
Retroactive release notes may be added later as archival work, but they are not required for the process to operate from here forward.
|