v0.3.4: Scoped Runtime Memory and Capacity Controls
v0.3.4 makes Runtime Memory boundaries explicit across storage roots, git branches, and capacity budgets. It also hardens multi-target archival and restores guided memory reminders after a conversation rewind.
Added
mnemon.runtimeUserScope: globalcan now combine the global root's User Profile with Working Memory from the selected workspace or custom root. User writes and USER compaction stay global, while project writes, MEMORY compaction, Documents, Memory Spaces, and Provider state remain selected-scope. The defaultstoragemode preserves the previous single-root behavior. This resolves Issue #77 through PR #103.- Working Memory entries can carry an optional git
brancheslist through the model tool, RPC, and Web add/edit forms. Each turn projects a scoped entry only on a matching checked-out branch; unscoped entries, User Profile entries, non-git workspaces, detached HEAD, and branch-detection failures retain the previous all-visible behavior. The complete JSON and Markdown sources remain visible and unchanged, while compaction preserves the scope and archival emitsbranch:<name>tags. This resolves Issue #93 through PR #91. mnemon.runtimeMemorynow configures the completeMEMORY.mdandUSER.mdUTF-8 byte limits plus the completion-token budget for Runtime migration and compaction workers. Defaults remain 10,240 bytes, 4,096 bytes, and 8,192 tokens; validated custom limits are shared by Runtime writes, Pack operations, and background maintenance. This resolves Issue #96 through PR #102.
Fixed
- When a model fails while routing a multi-target Runtime archive, the Host now routes that batch deterministically to the default writable Memory Space instead of abandoning the complete capacity transaction. Caller cancellation still aborts without Provider writes, invalid routes still fail Host validation, and mixed failed/successful batches retain the first successful delegated run's attribution without double-counting migration. This was delivered through PR #84.
- A guided memory reminder removed from the model-visible surface by rewind is composed again on the next first step. Hosts without a surface projection retain the previous session-scoped fallback, and reminder text, ordering, and guided-turn accounting are unchanged. This was delivered through PR #88.
Compatibility and upgrade
No persistence migration is required. Existing configuration keeps the v0.3.3 behavior: User Profile follows storageScope, Runtime entries remain visible on every branch unless explicitly scoped, and the established capacity and worker limits remain active unless overridden. Both roots keep their complete existing JSON and Markdown data when the global-profile overlay is enabled; changing the setting never copies, merges, or deletes entries. A workspace Mnemon Pack intentionally excludes the separate global User Profile, so back up the global root separately when using this mode.
Update dsh-mnemon, restart each DSH profile that uses it, and reopen the Memory System surface. Rollback to 0.3.3 needs no reverse migration. Older versions ignore the new configuration keys and preserve the on-disk data; branch-scoped records remain readable but become visible on every branch until v0.3.4 is restored.
Verification
- The complete TypeScript and Vitest chain passes with 522 tests; one Windows-only smoke test is skipped on the local non-Windows run.
- The deterministic double build verifies 106 generated files with identical hashes.
- An isolated real Headless profile activates with 35 total tools and five representative Mnemon tools exposed to the model request.
- The packed package contains 113 files, 378,158 packed bytes, and 1,713,376 unpacked bytes, below the enforced 1,720,000-byte ceiling; all 10 Node-compatible public entries import successfully, and publint strict plus the attw ESM profile pass.
- Targeted regression coverage includes split-root authority and Pack exclusion, branch projection and scope preservation, custom capacity enforcement, routing fallback and cancellation, and reminder recovery after rewind. The isolated Web evidence retained in PRs #102 and #103 confirms the configured capacity display and global-profile scope selection.
git diff --checkpasses for the release changes.
See the v0.3.3 release notes for the previous checkpoint-subagent usage patch and the v0.3.0 release notes for the composable-memory architecture and frozen benchmark record.