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,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
digest: >
|
|
3
|
+
v0.16.2 is a validation stub for the v0.16.1 runtime update preflight
|
|
4
|
+
resilience fix. It intentionally contains no functional runtime change, so
|
|
5
|
+
production can validate a normal stable update executed by the corrected
|
|
6
|
+
updater already installed in v0.16.1. The release moves only version and
|
|
7
|
+
release-note metadata.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# v0.16.2 — Runtime Update Validation Stub
|
|
11
|
+
|
|
12
|
+
**Date:** 2026-05-27
|
|
13
|
+
|
|
14
|
+
## Highlights
|
|
15
|
+
|
|
16
|
+
- Published a minimal stable release after v0.16.1.
|
|
17
|
+
- Intentionally contains no functional runtime changes.
|
|
18
|
+
- Exists to validate that the corrected updater in v0.16.1 can execute a normal production update to a newer stable release.
|
|
19
|
+
|
|
20
|
+
## Why This Patch Exists
|
|
21
|
+
|
|
22
|
+
v0.16.1 delivered the updater fix that distinguishes strict runtime readiness from a narrow update-safe preflight state. Production confirmed that the fix could be delivered through the normal stable channel.
|
|
23
|
+
|
|
24
|
+
One more stub lets production validate the next question: can the newly corrected updater itself perform a normal stable update without development-branch bridging?
|
|
25
|
+
|
|
26
|
+
## What Changed
|
|
27
|
+
|
|
28
|
+
Only the package version, release note, release index, and worklog move forward. Runtime behavior is unchanged from v0.16.1.
|
|
29
|
+
|
|
30
|
+
## Conscious Exclusions
|
|
31
|
+
|
|
32
|
+
This release does not introduce new runtime behavior, database schema, web behavior, or updater logic. It also does not simulate future migration drift by editing production migration ledgers.
|
|
33
|
+
|
|
34
|
+
## Next Horizon
|
|
35
|
+
|
|
36
|
+
Open production Mirror on v0.16.1, confirm it detects v0.16.2, run the normal update path, and verify that production reports v0.16.2 with `runtime status` ready and `runtime update --check` up to date.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
digest: >
|
|
3
|
+
v0.17.0 hardens conversation titles across the Mirror lifecycle. The release turns first-message titles into provisional state, generates durable titles at conversation close, adds startup maintenance for missed or backfilled conversations, and makes legacy retitling available as a bounded web operation with dry-run cost estimates, backups, progress feedback, remaining counts, and long-run polling. The release also polishes the Operations console so long LLM batches feel observable instead of stalled. It does not add automatic unbounded LLM repair, page-load title generation, raw database editing, or a true streaming transport.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# v0.17.0 — Conversation Title Hardening
|
|
7
|
+
|
|
8
|
+
**Date:** 2026-05-27
|
|
9
|
+
|
|
10
|
+
## Highlights
|
|
11
|
+
|
|
12
|
+
- Conversation titles created from first user messages are now marked provisional instead of being treated as final.
|
|
13
|
+
- Conversation close now attempts safe automatic title generation for blank, truncated, skill-like, long, or provisional titles while preserving manual titles.
|
|
14
|
+
- Startup conversation maintenance now repairs a small bounded batch of ended conversations whose titles still need improvement.
|
|
15
|
+
- The web `batch-conversation-retitle` operation is runnable with dry-run, cost estimates, backup-before-apply, progress events, remaining counts, and long-run polling.
|
|
16
|
+
- The Operations console was polished for batch work: generated titles appear as progress, noisy intermediate messages were removed, output behaves like a tailing console, and long runs keep polling beyond two minutes.
|
|
17
|
+
|
|
18
|
+
## Where We Started
|
|
19
|
+
|
|
20
|
+
Mirror had grown a useful conversation web surface, but the title lifecycle still carried an old assumption: the first user message was good enough to name a conversation. In real runtime sessions, that first message can be a skill payload, a command wrapper, a long setup prompt, or a fragment that only makes sense before the assistant responds. Once written, that title often stayed in the database indefinitely.
|
|
21
|
+
|
|
22
|
+
The web app already supported manual title edits and single-conversation title suggestions, but that helped one conversation at a time. The larger problem had two sides: a legacy database with many weak titles, and a core runtime path that could keep creating more weak titles after the legacy repair finished.
|
|
23
|
+
|
|
24
|
+
## What Changed
|
|
25
|
+
|
|
26
|
+
The title lifecycle now carries provenance. Runtime logging marks first-message titles with `title_source=first_user` and `title_status=provisional`. Manual edits mark titles as manual, and generated titles record their source and previous value. This gives the core enough information to improve titles without overwriting user-approved names.
|
|
27
|
+
|
|
28
|
+
`ConversationService.end_conversation()` now calls a safe title-generation path before extraction returns. It only runs for conversations with both user and assistant content, only replaces titles that are clearly missing or low quality, and fails quietly if the LLM cannot produce a title. Manual titles are explicitly protected.
|
|
29
|
+
|
|
30
|
+
The startup maintenance path gained a second safety net. `session_maintenance()` now runs a small bounded `retitle_pending_conversations()` step for ended conversations that still need title repair. This covers sessions that missed normal close handling, imported Pi sessions, crashes, and other edge cases. Pi session backfill now also records imported first-user titles as provisional rather than writing them as final titles.
|
|
31
|
+
|
|
32
|
+
For the legacy database, the existing web operation candidate `batch-conversation-retitle` became runnable. Dry-run estimates candidate count, token use, and cost without calling the LLM or writing to the database. Apply creates a backup before generating or saving titles, processes a bounded batch, records progress events with generated titles, and reports how many candidates remain before and after the batch.
|
|
33
|
+
|
|
34
|
+
Dogfooding the operation shaped the Operations console. The console now displays useful title-generation progress, avoids noisy “generating” lines, anchors output like a tailing terminal, scrolls to the newest event, and polls long enough for larger LLM batches to finish. A run that appeared to stop at 67/100 was traced to a two-minute browser polling limit; the backend had completed 100/100. The browser now keeps watching long runs for up to thirty minutes.
|
|
35
|
+
|
|
36
|
+
## Conscious Exclusions
|
|
37
|
+
|
|
38
|
+
This release does not run unbounded title repair automatically. Startup maintenance uses a small limit and remains fail-quiet so opening Mirror does not become an unexpected large LLM job. Large legacy repair remains an explicit web operation.
|
|
39
|
+
|
|
40
|
+
The release does not generate titles on transcript page load, does not edit messages, does not expose raw database editing, and does not add arbitrary SQL or shell access. The Operations console still uses polled durable state rather than true SSE/WebSocket streaming.
|
|
41
|
+
|
|
42
|
+
## What We Learned
|
|
43
|
+
|
|
44
|
+
The first fix — retitling at conversation close — was necessary but not sufficient. Runtime systems need recovery layers because close hooks can be missed, imports can bypass the normal path, and historical data rarely follows the current contract. The stronger design is layered: provisional title at creation, automatic improvement at close, bounded maintenance at startup, and explicit batch repair for legacy data.
|
|
45
|
+
|
|
46
|
+
The production batch also reinforced that observability is part of safety. A long-running operation that is technically correct but visually silent feels broken and invites duplicate execution. Showing generated titles, remaining counts, backup evidence, and durable completion state makes the user trust the operation enough to let it finish.
|
|
47
|
+
|
|
48
|
+
## Next Horizon
|
|
49
|
+
|
|
50
|
+
The next visible horizon is broader conversation maintenance health: logger failure visibility, better retry/backoff metadata for skipped title attempts, and eventually a true streamed operation console. The title pipeline itself is now stable enough for normal use, but future work can refine title quality heuristics and make failed generation attempts easier to inspect without turning startup into a heavy background job.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
digest: >
|
|
3
|
+
v0.17.1 is a small Builder Mode boundary patch after v0.17.0. It fixes the
|
|
4
|
+
production-clone guard so Builder inspects the selected journey's project
|
|
5
|
+
checkout instead of the current Mirror runtime checkout. This preserves the
|
|
6
|
+
original safety intent — preventing accidental edits inside production
|
|
7
|
+
project clones — while allowing a production Mirror runtime to open Builder
|
|
8
|
+
for journeys whose project paths point at development clones. The release
|
|
9
|
+
also updates the boundary documentation so the rule is explicit.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# v0.17.1 — Builder Project-Path Guard
|
|
13
|
+
|
|
14
|
+
**Date:** 2026-05-28
|
|
15
|
+
|
|
16
|
+
## Highlights
|
|
17
|
+
|
|
18
|
+
- Fixes `memory build load <slug>` so the clone-role guard evaluates the journey `project_path`.
|
|
19
|
+
- Allows Builder Mode from a production Mirror runtime when the journey project itself is a `dev` clone.
|
|
20
|
+
- Keeps the conservative fallback to the current directory when no `project_path` is configured.
|
|
21
|
+
- Updates runtime boundary docs and decisions to describe the journey-scoped guard.
|
|
22
|
+
|
|
23
|
+
## Where We Started
|
|
24
|
+
|
|
25
|
+
The clone-role guard was introduced to prevent accidental development inside the
|
|
26
|
+
Mirror production checkout. That safety boundary was correct, but its placement
|
|
27
|
+
was too broad: Builder Mode inspected the current runtime directory before it had
|
|
28
|
+
loaded the journey. If the user ran a production Mirror runtime and selected a
|
|
29
|
+
journey whose project lived elsewhere, Builder could refuse before seeing the
|
|
30
|
+
project path that actually mattered.
|
|
31
|
+
|
|
32
|
+
The result was friction in the wrong place. The guard protected the runtime clone
|
|
33
|
+
rather than the project clone that Builder was about to edit.
|
|
34
|
+
|
|
35
|
+
## What Changed
|
|
36
|
+
|
|
37
|
+
Builder Mode now loads the journey first, reads its configured `project_path`,
|
|
38
|
+
and passes that path into clone-role inspection. If that project checkout is
|
|
39
|
+
marked `dev`, Builder proceeds even when the Mirror runtime itself is running
|
|
40
|
+
from a production clone. If the project checkout is marked `production`, Builder
|
|
41
|
+
still refuses unless `--ignore-production-role` is passed.
|
|
42
|
+
|
|
43
|
+
For journeys without a configured `project_path`, the command keeps the prior
|
|
44
|
+
conservative behavior and inspects the current directory. That keeps unscoped
|
|
45
|
+
Builder sessions safe by default.
|
|
46
|
+
|
|
47
|
+
## Conscious Exclusions
|
|
48
|
+
|
|
49
|
+
This patch does not change runtime update behavior, clone-role marker semantics,
|
|
50
|
+
or the override flag. It also does not add automatic project-path discovery; the
|
|
51
|
+
journey must still carry the correct `project_path` metadata for the guard to be
|
|
52
|
+
project-scoped.
|
|
53
|
+
|
|
54
|
+
## Next Horizon
|
|
55
|
+
|
|
56
|
+
Production should update normally to v0.17.1, then validate a Builder activation
|
|
57
|
+
from the production Mirror runtime against a journey whose project path points to
|
|
58
|
+
a development checkout.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
digest: >
|
|
3
|
+
v0.17.2 is a validation patch immediately after v0.17.1. It keeps the
|
|
4
|
+
Builder project-path guard behavior unchanged and fixes the repository
|
|
5
|
+
formatting drift that made the v0.17.1 main CI run fail at the ruff format
|
|
6
|
+
gate. The release exists so the latest stable channel points at a green,
|
|
7
|
+
validated patch commit.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# v0.17.2 — Builder Guard CI Formatting
|
|
11
|
+
|
|
12
|
+
**Date:** 2026-05-28
|
|
13
|
+
|
|
14
|
+
## Highlights
|
|
15
|
+
|
|
16
|
+
- Preserves the v0.17.1 Builder project-path guard behavior.
|
|
17
|
+
- Applies repository formatting expected by CI.
|
|
18
|
+
- Advances the package and release metadata so stable can point at a green patch commit.
|
|
19
|
+
|
|
20
|
+
## Why This Patch Exists
|
|
21
|
+
|
|
22
|
+
v0.17.1 published the intended Builder Mode fix, but the main CI run failed at
|
|
23
|
+
`ruff format --check` because a few files were not formatted according to the
|
|
24
|
+
repository-wide formatter gate. The runtime behavior was correct, but the release
|
|
25
|
+
should not leave the latest stable channel on a commit whose CI is red.
|
|
26
|
+
|
|
27
|
+
## What Changed
|
|
28
|
+
|
|
29
|
+
This patch formats the affected Python files and advances release metadata from
|
|
30
|
+
v0.17.1 to v0.17.2. The Builder guard semantics are unchanged from v0.17.1:
|
|
31
|
+
Builder inspects the selected journey's `project_path` clone role and falls back
|
|
32
|
+
to the current directory only when no project path is configured.
|
|
33
|
+
|
|
34
|
+
## Conscious Exclusions
|
|
35
|
+
|
|
36
|
+
This release does not add new Builder behavior, runtime update behavior, schema
|
|
37
|
+
changes, or web functionality.
|
|
38
|
+
|
|
39
|
+
## Next Horizon
|
|
40
|
+
|
|
41
|
+
Validate GitHub Actions for the v0.17.2 main push, then use the normal stable
|
|
42
|
+
update path from production.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
digest: >
|
|
3
|
+
v0.17.3 completes the Builder Mode boundary fix after the v0.17.2 production
|
|
4
|
+
validation showed one more false block. Builder now applies the production
|
|
5
|
+
clone-role guard only to Mirror Mind source checkouts, not to ordinary journey
|
|
6
|
+
projects that naturally do not carry `.mirror-clone-role`. This preserves the
|
|
7
|
+
original safety intent — do not edit a production Mirror checkout by accident —
|
|
8
|
+
while allowing projects such as Software Zen to open Builder normally from a
|
|
9
|
+
production Mirror runtime.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# v0.17.3 — Builder Guard Non-Mirror Projects
|
|
13
|
+
|
|
14
|
+
**Date:** 2026-05-28
|
|
15
|
+
|
|
16
|
+
## Highlights
|
|
17
|
+
|
|
18
|
+
- Restricts the Builder clone-role guard to Mirror Mind source checkouts.
|
|
19
|
+
- Allows non-Mirror journey projects without `.mirror-clone-role` to load Builder Mode.
|
|
20
|
+
- Keeps protection for Mirror Mind project paths marked `production`.
|
|
21
|
+
- Updates boundary docs to clarify that the marker belongs to Mirror Mind clones, not all journey projects.
|
|
22
|
+
|
|
23
|
+
## Where We Started
|
|
24
|
+
|
|
25
|
+
v0.17.2 correctly moved Builder's clone-role inspection from the current runtime
|
|
26
|
+
checkout to the selected journey `project_path`. Production validation then
|
|
27
|
+
showed the remaining problem: ordinary projects without `.mirror-clone-role` were
|
|
28
|
+
still treated as `production` because the clone-role inspector defaults missing
|
|
29
|
+
markers to production.
|
|
30
|
+
|
|
31
|
+
That default is right for Mirror Mind source checkouts, where safety should be
|
|
32
|
+
conservative. It is wrong for arbitrary journey projects. Software Zen pointed to
|
|
33
|
+
`/Users/alissonvale/Code/szen_play`, a normal project checkout, and Builder still
|
|
34
|
+
refused because there was no Mirror clone-role marker.
|
|
35
|
+
|
|
36
|
+
## What Changed
|
|
37
|
+
|
|
38
|
+
Builder now first checks whether the target path appears to be a Mirror Mind
|
|
39
|
+
source checkout. Only then does it apply `inspect_clone_role()` and enforce the
|
|
40
|
+
production/dev boundary. Non-Mirror journey projects skip the Mirror-specific
|
|
41
|
+
clone-role guard and proceed normally.
|
|
42
|
+
|
|
43
|
+
If a journey points at Mirror Mind itself, the guard still works: production
|
|
44
|
+
Mirror checkouts refuse Builder by default, dev checkouts proceed, and
|
|
45
|
+
`--ignore-production-role` remains the explicit escape hatch.
|
|
46
|
+
|
|
47
|
+
## Conscious Exclusions
|
|
48
|
+
|
|
49
|
+
This patch does not introduce a generic production/dev marker for all possible
|
|
50
|
+
user projects. The existing `.mirror-clone-role` marker remains a Mirror Mind
|
|
51
|
+
runtime/source safety mechanism. Projects that want their own environment guards
|
|
52
|
+
should define them in their own tooling.
|
|
53
|
+
|
|
54
|
+
## Next Horizon
|
|
55
|
+
|
|
56
|
+
Production should update to v0.17.3 and retry Builder Mode for `softwarezen`.
|
|
57
|
+
The expected result is that `/Users/alissonvale/Code/szen_play` loads without
|
|
58
|
+
requiring `--ignore-production-role`.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
digest: >
|
|
3
|
+
v0.18.0 completes the Conversation Metadata Lifecycle release arc. Mirror now
|
|
4
|
+
finalizes non-manual title, summary, and tags when conversations close;
|
|
5
|
+
exposes contextual metadata maintenance in the web conversation detail; and
|
|
6
|
+
gives Operations a production-ready historical metadata backfill with dry-run,
|
|
7
|
+
safe/force modes, all-conversation batches, resume scopes, approval, backups,
|
|
8
|
+
per-conversation progress, no-change evidence, and orphan conversation cleanup.
|
|
9
|
+
Manual metadata remains preserved by default.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# v0.18.0 — Conversation Metadata Lifecycle
|
|
13
|
+
|
|
14
|
+
**Date:** 2026-06-01
|
|
15
|
+
|
|
16
|
+
## Highlights
|
|
17
|
+
|
|
18
|
+
- Finalizes non-manual conversation metadata at close time.
|
|
19
|
+
- Adds web conversation-detail maintenance for title, summary, and tags.
|
|
20
|
+
- Adds historical metadata backfill through Operations with dry-run, approval, backups, progress, and final result evidence.
|
|
21
|
+
- Supports `safe` and `force` backfill profiles while preserving manual metadata by default.
|
|
22
|
+
- Adds all-conversation and resume/review scopes for production-scale backfill.
|
|
23
|
+
- Adds approval-gated orphan conversation cleanup with backup and deletion progress.
|
|
24
|
+
|
|
25
|
+
## Where We Started
|
|
26
|
+
|
|
27
|
+
Mirror already had first-message/provisional titles and batch retitling, but
|
|
28
|
+
conversation metadata still behaved too narrowly. Old conversations could have
|
|
29
|
+
thin titles, missing summaries, missing tags, or stale metadata provenance. The
|
|
30
|
+
runtime also had no close-time finalization step, and users had to use CLI tools
|
|
31
|
+
for broad historical repair.
|
|
32
|
+
|
|
33
|
+
That was especially painful in the web console: Operations could run long tasks,
|
|
34
|
+
but metadata lifecycle maintenance was not yet visible enough for a real user to
|
|
35
|
+
trust a broad production backfill.
|
|
36
|
+
|
|
37
|
+
## What Changed
|
|
38
|
+
|
|
39
|
+
Conversation metadata now has explicit lifecycle policy and execution profiles.
|
|
40
|
+
`safe` mode applies clear repairs conservatively, `force` regenerates selected
|
|
41
|
+
non-manual metadata, and close-time finalization refreshes non-manual metadata
|
|
42
|
+
when a conversation ends. Manual title, summary, and tag edits remain protected.
|
|
43
|
+
|
|
44
|
+
The web conversation detail now exposes contextual maintenance: check whether
|
|
45
|
+
metadata needs updating, review user-facing reasons, suggest/save title and
|
|
46
|
+
summary, edit tags, and apply a report-driven metadata update.
|
|
47
|
+
|
|
48
|
+
Operations now includes **Historical metadata backfill**. It can preview or
|
|
49
|
+
apply batches, choose safe/force from a dropdown, filter by journey, process all
|
|
50
|
+
matching conversations, or scope to `not_backfilled` and `no_change_latest_run`
|
|
51
|
+
for recovery/review. Apply requires approval, creates a backup, emits progress
|
|
52
|
+
per conversation, and renders final result details including changed and
|
|
53
|
+
no-change evidence.
|
|
54
|
+
|
|
55
|
+
A companion **Orphan conversation cleanup** operation handles the cleanup found
|
|
56
|
+
during real production backfill: short orphan conversations that produced no
|
|
57
|
+
metadata changes. It supports dry-run, candidate review, approval, backup,
|
|
58
|
+
reference cleanup, per-conversation deletion progress, and final deleted counts.
|
|
59
|
+
|
|
60
|
+
## Production Validation
|
|
61
|
+
|
|
62
|
+
This release was validated against the user's real Mirror database. The broad
|
|
63
|
+
force backfill processed 579 conversations, changed 482, and identified 97
|
|
64
|
+
no-change results. A follow-up orphan cleanup preview found short orphan
|
|
65
|
+
conversations; the cleanup path was hardened after production revealed foreign-key
|
|
66
|
+
and database-lock failure modes.
|
|
67
|
+
|
|
68
|
+
The final operation path now handles referenced orphan conversations, commits
|
|
69
|
+
before emitting progress, and marks unexpected thread failures as failed instead
|
|
70
|
+
of leaving runs stuck as running.
|
|
71
|
+
|
|
72
|
+
## Conscious Exclusions
|
|
73
|
+
|
|
74
|
+
- No automatic unbounded background backfill is enabled.
|
|
75
|
+
- `force` still preserves manual metadata by default.
|
|
76
|
+
- Orphan cleanup does not infer journeys or recover content; it deletes only the selected previewed candidates after approval.
|
|
77
|
+
- Operations still uses polling rather than true streaming/SSE.
|
|
78
|
+
- Active per-turn metadata refresh remains future work beyond close-time and explicit maintenance/backfill operations.
|
|
79
|
+
|
|
80
|
+
## Next Horizon
|
|
81
|
+
|
|
82
|
+
The remaining CV9 stabilization work can now focus on boundary hardening,
|
|
83
|
+
release readiness, and any polish discovered after production uses v0.18.0 as
|
|
84
|
+
the baseline metadata lifecycle release.
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
digest: >
|
|
3
|
+
v0.18.1 expands the v0.18.0 cleanup operation so production users can remove
|
|
4
|
+
empty conversation records as well as journey-orphan records. The default
|
|
5
|
+
no-change cleanup source now includes latest-backfill no-change conversations
|
|
6
|
+
that are either orphaned or empty, which covers sessions with a journey but no
|
|
7
|
+
messages. Deletion remains dry-run, approval, and backup gated.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# v0.18.1 — Empty Conversation Cleanup
|
|
11
|
+
|
|
12
|
+
**Date:** 2026-06-01
|
|
13
|
+
|
|
14
|
+
## Highlights
|
|
15
|
+
|
|
16
|
+
- Expands Orphan conversation cleanup to include empty conversations.
|
|
17
|
+
- Adds an explicit `empty_conversations` cleanup source.
|
|
18
|
+
- Makes the default latest-backfill no-change cleanup include records that are orphaned or empty.
|
|
19
|
+
- Shows cleanup reason and journey in candidate result lists.
|
|
20
|
+
- Keeps deletion protected by dry-run, approval, and backup.
|
|
21
|
+
|
|
22
|
+
## Where We Started
|
|
23
|
+
|
|
24
|
+
After v0.18.0 shipped, production cleanup showed a second low-substance record
|
|
25
|
+
shape: conversations with `message_count = 0` but a valid journey association.
|
|
26
|
+
They are not orphan conversations, so the original cleanup operation correctly
|
|
27
|
+
left them alone even though they were just abandoned session shells.
|
|
28
|
+
|
|
29
|
+
## What Changed
|
|
30
|
+
|
|
31
|
+
The existing cleanup operation now treats low-substance cleanup as a superset of
|
|
32
|
+
orphan cleanup. `all_orphans` still means records with no journey. The new
|
|
33
|
+
`empty_conversations` source targets records with zero messages even if they have
|
|
34
|
+
a journey. The default `no_change_latest_backfill` source now includes latest
|
|
35
|
+
metadata-backfill no-change records when they are either orphaned or empty.
|
|
36
|
+
|
|
37
|
+
Candidate rows now include a cleanup reason (`orphan`, `empty`, or
|
|
38
|
+
`orphan_and_empty`) and the journey value, so the user can understand why each
|
|
39
|
+
record is eligible before approving deletion.
|
|
40
|
+
|
|
41
|
+
## Conscious Exclusions
|
|
42
|
+
|
|
43
|
+
- Non-empty conversations with a journey are still not cleanup candidates.
|
|
44
|
+
- Empty cleanup does not infer whether an abandoned session was important; it only exposes a preview and requires explicit approval.
|
|
45
|
+
- The operation remains backup-gated before deletion.
|
|
46
|
+
|
|
47
|
+
## Next Horizon
|
|
48
|
+
|
|
49
|
+
If more low-substance shapes appear, cleanup should become a clearer
|
|
50
|
+
Conversation Cleanup operation with named policies rather than continuing to
|
|
51
|
+
stretch the orphan-specific title.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
digest: >
|
|
3
|
+
v0.18.2 adds manual and assisted journey association tools for conversation
|
|
4
|
+
organization. The Workspace now exposes unassigned conversations, conversation
|
|
5
|
+
detail pages can assign or transfer a conversation to any journey, and the
|
|
6
|
+
unassigned list supports selecting multiple conversations and assigning them
|
|
7
|
+
together. Operations also gains a conservative Conversation journey backfill
|
|
8
|
+
with dry-run, explicit/title-alias modes, approval, backup, progress, and
|
|
9
|
+
evidence. Completed journeys are available in assignment dropdowns.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# v0.18.2 — Conversation Journey Assignment
|
|
13
|
+
|
|
14
|
+
**Date:** 2026-06-02
|
|
15
|
+
|
|
16
|
+
## Highlights
|
|
17
|
+
|
|
18
|
+
- Adds an **Unassigned** entry in Workspace for conversations without a journey.
|
|
19
|
+
- Adds a Journey selector on conversation detail pages for manual assignment or transfer.
|
|
20
|
+
- Adds multi-select bulk assignment from the Unassigned conversations list.
|
|
21
|
+
- Includes completed/non-active journeys in assignment dropdowns.
|
|
22
|
+
- Adds a conservative **Conversation journey backfill** Operation with preview/apply modes.
|
|
23
|
+
- Keeps automated apply protected by approval, backup, and per-conversation progress.
|
|
24
|
+
|
|
25
|
+
## Where We Started
|
|
26
|
+
|
|
27
|
+
After the metadata lifecycle release, production data showed that many historical
|
|
28
|
+
conversations still had no journey. Automatic repair was too conservative to fix
|
|
29
|
+
most of them, and the web UI did not give the user enough control: unassigned
|
|
30
|
+
conversations were hard to find, individual conversations could not be moved, and
|
|
31
|
+
there was no way to bulk-correct the remaining obvious cases.
|
|
32
|
+
|
|
33
|
+
## What Changed
|
|
34
|
+
|
|
35
|
+
Workspace now includes an **Unassigned** surface. It lists conversations whose
|
|
36
|
+
`journey` field is missing and lets the user open each one. Conversation detail
|
|
37
|
+
pages now include a Journey section with a selector, so a user can assign a
|
|
38
|
+
conversation, transfer it to another journey, or mark it unassigned.
|
|
39
|
+
|
|
40
|
+
For cleanup at scale, the Unassigned surface now supports selecting multiple
|
|
41
|
+
conversations and assigning them to a chosen journey in one explicit action. The
|
|
42
|
+
journey selector uses all journey identities, not only active journeys, so older
|
|
43
|
+
or completed journeys can receive historical conversations.
|
|
44
|
+
|
|
45
|
+
Operations also includes **Conversation journey backfill**. Its `explicit_only`
|
|
46
|
+
mode uses strong activation signals such as `$mm-build mirror-mind`, `/mm:build
|
|
47
|
+
ariad`, or explicit jornada/travessia mentions. Its `title_alias` mode adds
|
|
48
|
+
unambiguous title aliases. Dry-run is the default; apply requires approval,
|
|
49
|
+
creates a backup, and emits assignment progress.
|
|
50
|
+
|
|
51
|
+
## Production Validation
|
|
52
|
+
|
|
53
|
+
Production dry-runs found 29 `explicit_only` candidates and 60 `title_alias`
|
|
54
|
+
candidates. The manual Unassigned UI and spacing were validated in the local web
|
|
55
|
+
server. The completed-journey issue was caught in production use and corrected so
|
|
56
|
+
assignment dropdowns include completed journeys.
|
|
57
|
+
|
|
58
|
+
## Conscious Exclusions
|
|
59
|
+
|
|
60
|
+
- No LLM-based journey inference is included.
|
|
61
|
+
- Ambiguous semantic matches are intentionally excluded from automatic backfill.
|
|
62
|
+
- Bulk assignment is selected-only; it does not assign everything visible by default.
|
|
63
|
+
- Individual manual journey changes do not require a heavy approval checkpoint, but batch/operation apply remains explicit.
|
|
64
|
+
|
|
65
|
+
## Next Horizon
|
|
66
|
+
|
|
67
|
+
If more historical repair is needed, the next step is an assisted review surface
|
|
68
|
+
that shows suggested journey, confidence, and evidence with per-row accept/reject
|
|
69
|
+
rather than applying ambiguous suggestions automatically.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
digest: >
|
|
3
|
+
v0.19.0 expands the Mirror web console from conversation organization into
|
|
4
|
+
direct conversation and journey maintenance. Users can now create journeys
|
|
5
|
+
from Workspace through a reviewable draft flow, delete individual
|
|
6
|
+
conversations, delete selected unassigned conversations in bulk, and see a
|
|
7
|
+
larger conversation trail for selected journeys. The release keeps destructive
|
|
8
|
+
actions explicit, preserves extracted memories when conversations are deleted,
|
|
9
|
+
and treats journey creation as an editable identity artifact rather than a
|
|
10
|
+
brittle administrative form.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# v0.19.0 — Web Console Conversation and Journey Maintenance
|
|
14
|
+
|
|
15
|
+
**Date:** 2026-06-02
|
|
16
|
+
|
|
17
|
+
## Highlights
|
|
18
|
+
|
|
19
|
+
- Adds **New journey** in Workspace with natural-language input, generated markdown draft, editable preview, and bounded create validation.
|
|
20
|
+
- Adds explicit conversation deletion from conversation detail pages.
|
|
21
|
+
- Adds **Delete selected** beside **Assign selected** on the Unassigned conversations surface.
|
|
22
|
+
- Preserves extracted memories when deleting conversations by detaching their `conversation_id` instead of deleting the memory records.
|
|
23
|
+
- Expands selected-journey conversation visibility from a small eight-item slice to a larger bounded trail.
|
|
24
|
+
- Polishes maintenance controls so destructive and primary actions remain visually distinct.
|
|
25
|
+
|
|
26
|
+
## Where We Started
|
|
27
|
+
|
|
28
|
+
The previous release made unassigned conversations visible and assignable, which
|
|
29
|
+
surfaced the next maintenance gap immediately. Once conversations could be
|
|
30
|
+
organized, users also needed to remove disposable or accidental conversation
|
|
31
|
+
records without leaving the web console. The same Workspace surface also exposed
|
|
32
|
+
a second gap: journeys still had to be created through Mirror skills or direct
|
|
33
|
+
identity editing, even though the web console had become the place where
|
|
34
|
+
conversation organization happens.
|
|
35
|
+
|
|
36
|
+
Journey creation was the more delicate problem. A journey is not just a row in a
|
|
37
|
+
database. It is an identity artifact that the Mirror uses for routing, memory,
|
|
38
|
+
Builder context, and future continuity. A dry CRUD form would create valid rows
|
|
39
|
+
that could still be weak journeys.
|
|
40
|
+
|
|
41
|
+
## What Changed
|
|
42
|
+
|
|
43
|
+
Workspace now includes a **New journey** action. The first slice asks for the
|
|
44
|
+
raw material of a journey in natural language, then generates a structured
|
|
45
|
+
markdown draft with title, status, stage, description, current focus, scope, and
|
|
46
|
+
done condition. The user reviews and edits the draft before saving. Creation is
|
|
47
|
+
bounded by slug validation, duplicate checks, minimum content checks, required
|
|
48
|
+
status, and a required description section. Optional metadata such as project
|
|
49
|
+
path, icon, and color can be set during creation.
|
|
50
|
+
|
|
51
|
+
Conversation maintenance also became explicit. Conversation detail pages now
|
|
52
|
+
include a confirmed **Delete conversation** action. The Unassigned conversations
|
|
53
|
+
surface now supports selecting multiple conversations and deleting them as a
|
|
54
|
+
batch, beside the existing assignment flow. Deletion removes messages and
|
|
55
|
+
conversation embeddings, clears runtime-session and LLM-call references, and
|
|
56
|
+
preserves extracted memories by nulling their source conversation id.
|
|
57
|
+
|
|
58
|
+
The selected journey conversation list now uses a larger bounded read model so a
|
|
59
|
+
journey with more than eight assigned conversations does not appear artificially
|
|
60
|
+
short. This is still a protective limit for the browser payload, not a final
|
|
61
|
+
pagination model.
|
|
62
|
+
|
|
63
|
+
## Conscious Exclusions
|
|
64
|
+
|
|
65
|
+
- Journey draft generation is deterministic in this release; it does not yet use an LLM to infer richer fields from the user's description.
|
|
66
|
+
- Journey slug rename, journey deletion, and migration of conversations or memories between renamed slugs are not included.
|
|
67
|
+
- The Workspace conversation list still uses a bounded payload rather than pagination or **Load more**.
|
|
68
|
+
- Conversation deletion is direct web-console maintenance, not an asynchronous Operation with approval and backup.
|
|
69
|
+
- Deleted conversations do not delete extracted memories, even when those memories originated from the deleted conversation.
|
|
70
|
+
|
|
71
|
+
## What We Learned
|
|
72
|
+
|
|
73
|
+
The web console is becoming the maintenance home for the personal Mirror. That
|
|
74
|
+
changes the design standard: actions must be available where the user notices
|
|
75
|
+
the problem, but identity-bearing artifacts still need review and shape before
|
|
76
|
+
persistence. The right journey-creation form is not a replacement for the
|
|
77
|
+
Mirror's inference. It is a structured drafting surface that keeps the user in
|
|
78
|
+
control of the final identity prompt.
|
|
79
|
+
|
|
80
|
+
## Next Horizon
|
|
81
|
+
|
|
82
|
+
The visible next step is refinement, not expansion for its own sake: browser
|
|
83
|
+
validation of the journey-creation flow, better disclosure when a bounded list
|
|
84
|
+
has more items, and eventually a **Load more** or paginated conversation trail
|
|
85
|
+
for mature journeys with long histories.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
digest: >
|
|
3
|
+
v0.19.1 is a validation patch for the web console conversation and journey
|
|
4
|
+
maintenance release. It preserves the v0.19.0 behavior and corrects CI
|
|
5
|
+
formatting drift in the touched Python files so the release line returns to a
|
|
6
|
+
green automated validation state. No product behavior changes are introduced
|
|
7
|
+
beyond the v0.19.0 scope.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# v0.19.1 — Web Console Maintenance CI Formatting
|
|
11
|
+
|
|
12
|
+
**Date:** 2026-06-02
|
|
13
|
+
|
|
14
|
+
## Highlights
|
|
15
|
+
|
|
16
|
+
- Preserves the v0.19.0 web-console journey creation and conversation deletion behavior.
|
|
17
|
+
- Applies repository formatting to the touched Python files.
|
|
18
|
+
- Restores the release line to green CI after the v0.19.0 main push failed at `ruff format --check`.
|
|
19
|
+
|
|
20
|
+
## Where We Started
|
|
21
|
+
|
|
22
|
+
The v0.19.0 release was promoted and pushed with the intended product behavior,
|
|
23
|
+
but GitHub Actions failed on the formatting gate. Local validation had run ruff
|
|
24
|
+
linting, full tests, JavaScript syntax checks, and release-note checks, but did
|
|
25
|
+
not include the repository-wide `ruff format --check src/ tests/` gate that CI
|
|
26
|
+
runs.
|
|
27
|
+
|
|
28
|
+
## What Changed
|
|
29
|
+
|
|
30
|
+
This patch applies ruff formatting to the files reported by CI and bumps the
|
|
31
|
+
release line to `v0.19.1`. It does not change the web-console product surface:
|
|
32
|
+
journey creation, single conversation deletion, selected bulk deletion, memory
|
|
33
|
+
preservation on delete, and broader selected-journey conversation visibility are
|
|
34
|
+
unchanged from v0.19.0.
|
|
35
|
+
|
|
36
|
+
## Conscious Exclusions
|
|
37
|
+
|
|
38
|
+
- No additional journey-creation behavior is added.
|
|
39
|
+
- No pagination or Load more behavior is added.
|
|
40
|
+
- No destructive-action semantics are changed.
|
|
41
|
+
|
|
42
|
+
## Next Horizon
|
|
43
|
+
|
|
44
|
+
Keep `ruff format --check src/ tests/` in the local release validation sequence
|
|
45
|
+
before future promotion so formatting patches do not need to follow immediately
|
|
46
|
+
after feature releases.
|