dsh-mnemon 0.1.5 → 0.1.6
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/README.md +5 -5
- package/README.zh-CN.md +5 -5
- package/lib/client.js +353 -347
- package/lib/index.js +129 -46
- package/lib/types/activity.d.ts +2 -18
- package/lib/types/channels.d.ts +1 -4
- package/lib/types/client/MnemonLogo.d.ts +0 -1
- package/lib/types/client/MnemonPackSection.d.ts +1 -2
- package/lib/types/client/MnemonSaveAction.d.ts +1 -2
- package/lib/types/client/MnemonSettingsCard.d.ts +1 -3
- package/lib/types/client/MnemonTurnTail.d.ts +1 -2
- package/lib/types/client/MnemonView.d.ts +1 -3
- package/lib/types/client/MnemonViewAppearance.d.ts +0 -1
- package/lib/types/client/anchor.d.ts +0 -1
- package/lib/types/client/api.d.ts +1 -9
- package/lib/types/client/dsh-compat.d.ts +0 -1
- package/lib/types/client/index.d.ts +0 -1
- package/lib/types/client/locales.d.ts +4 -1
- package/lib/types/client/settings.d.ts +1 -2
- package/lib/types/client/sidebar-entry.d.ts +0 -1
- package/lib/types/client/workspace-controller.d.ts +0 -1
- package/lib/types/client/workspace-mount.d.ts +1 -3
- package/lib/types/commands.d.ts +0 -1
- package/lib/types/config-values.d.ts +0 -1
- package/lib/types/config.d.ts +6 -80
- package/lib/types/contracts.d.ts +2 -60
- package/lib/types/documents.d.ts +2 -79
- package/lib/types/guidance.d.ts +0 -1
- package/lib/types/index.d.ts +0 -1
- package/lib/types/lifecycle.d.ts +3 -45
- package/lib/types/live-runtime.d.ts +0 -1
- package/lib/types/memory-bodies.d.ts +3 -20
- package/lib/types/pack.d.ts +2 -48
- package/lib/types/process.d.ts +0 -1
- package/lib/types/review-activity.d.ts +2 -16
- package/lib/types/rpc.d.ts +0 -1
- package/lib/types/runner.d.ts +15 -11
- package/lib/types/runtime-memory.d.ts +2 -59
- package/lib/types/service.d.ts +3 -149
- package/lib/types/settings.d.ts +1 -4
- package/lib/types/shared/contracts.d.ts +609 -0
- package/lib/types/storage-scope.d.ts +2 -29
- package/lib/types/subagent.d.ts +2 -15
- package/lib/types/tools.d.ts +0 -1
- package/lib/types/version-updates.d.ts +2 -29
- package/package.json +8 -7
- package/docs/README.md +0 -8
- package/docs/assets/diagrams/en/memory-system-flow.png +0 -0
- package/docs/assets/diagrams/en/project-architecture.svg +0 -182
- package/docs/assets/diagrams/zh-CN/memory-system-flow.png +0 -0
- package/docs/assets/diagrams/zh-CN/project-architecture.svg +0 -182
- package/docs/assets/media/dsh-mnemon-memory-system-demo-poster.jpg +0 -0
- package/docs/assets/media/dsh-mnemon-memory-system-demo.gif +0 -0
- package/docs/assets/media/dsh-mnemon-memory-system-demo.mp4 +0 -0
- package/docs/assets/screenshots/conversation-memory-jump.png +0 -0
- package/docs/assets/screenshots/conversation-save-dialog.png +0 -0
- package/docs/assets/screenshots/conversation-turn-memory.png +0 -0
- package/docs/assets/screenshots/document-create-dialog.png +0 -0
- package/docs/assets/screenshots/documents-markdown.png +0 -0
- package/docs/assets/screenshots/entities-context.png +0 -0
- package/docs/assets/screenshots/memory-content.png +0 -0
- package/docs/assets/screenshots/overview-memory-graph.png +0 -0
- package/docs/assets/screenshots/recall-agent-answer.png +0 -0
- package/docs/assets/screenshots/remember-dialog.png +0 -0
- package/docs/assets/screenshots/runtime-memory-add.png +0 -0
- package/docs/assets/screenshots/runtime-memory.png +0 -0
- package/docs/assets/screenshots/settings-memory-system.png +0 -0
- package/docs/assets/screenshots/status-overview.png +0 -0
- package/docs/assets/screenshots/version-check.png +0 -0
- package/docs/en/README.md +0 -48
- package/docs/en/architecture.md +0 -133
- package/docs/en/configuration.md +0 -234
- package/docs/en/development.md +0 -198
- package/docs/en/getting-started.md +0 -199
- package/docs/en/interfaces.md +0 -181
- package/docs/en/operations.md +0 -173
- package/docs/en/project-overview.md +0 -145
- package/docs/en/roadmap.md +0 -41
- package/docs/en/storage-model.md +0 -185
- package/docs/en/ui-guide.md +0 -156
- package/docs/en/workflows.md +0 -290
- package/docs/zh-CN/README.md +0 -48
- package/docs/zh-CN/architecture.md +0 -133
- package/docs/zh-CN/configuration.md +0 -234
- package/docs/zh-CN/development.md +0 -198
- package/docs/zh-CN/getting-started.md +0 -199
- package/docs/zh-CN/interfaces.md +0 -181
- package/docs/zh-CN/operations.md +0 -173
- package/docs/zh-CN/project-overview.md +0 -145
- package/docs/zh-CN/roadmap.md +0 -41
- package/docs/zh-CN/storage-model.md +0 -185
- package/docs/zh-CN/ui-guide.md +0 -160
- package/docs/zh-CN/workflows.md +0 -290
- package/lib/client.js.map +0 -1
- package/lib/types/activity.d.ts.map +0 -1
- package/lib/types/activity.js +0 -93
- package/lib/types/activity.js.map +0 -1
- package/lib/types/channels.d.ts.map +0 -1
- package/lib/types/channels.js +0 -4
- package/lib/types/channels.js.map +0 -1
- package/lib/types/client/MnemonLogo.d.ts.map +0 -1
- package/lib/types/client/MnemonLogo.js +0 -6
- package/lib/types/client/MnemonLogo.js.map +0 -1
- package/lib/types/client/MnemonPackSection.d.ts.map +0 -1
- package/lib/types/client/MnemonPackSection.js +0 -136
- package/lib/types/client/MnemonPackSection.js.map +0 -1
- package/lib/types/client/MnemonSaveAction.d.ts.map +0 -1
- package/lib/types/client/MnemonSaveAction.js +0 -90
- package/lib/types/client/MnemonSaveAction.js.map +0 -1
- package/lib/types/client/MnemonSettingsCard.d.ts.map +0 -1
- package/lib/types/client/MnemonSettingsCard.js +0 -155
- package/lib/types/client/MnemonSettingsCard.js.map +0 -1
- package/lib/types/client/MnemonTurnTail.d.ts.map +0 -1
- package/lib/types/client/MnemonTurnTail.js +0 -56
- package/lib/types/client/MnemonTurnTail.js.map +0 -1
- package/lib/types/client/MnemonView.d.ts.map +0 -1
- package/lib/types/client/MnemonView.js +0 -1594
- package/lib/types/client/MnemonView.js.map +0 -1
- package/lib/types/client/MnemonViewAppearance.d.ts.map +0 -1
- package/lib/types/client/MnemonViewAppearance.js +0 -67
- package/lib/types/client/MnemonViewAppearance.js.map +0 -1
- package/lib/types/client/anchor.d.ts.map +0 -1
- package/lib/types/client/anchor.js +0 -46
- package/lib/types/client/anchor.js.map +0 -1
- package/lib/types/client/api.d.ts.map +0 -1
- package/lib/types/client/api.js +0 -150
- package/lib/types/client/api.js.map +0 -1
- package/lib/types/client/dsh-compat.d.ts.map +0 -1
- package/lib/types/client/dsh-compat.js +0 -2
- package/lib/types/client/dsh-compat.js.map +0 -1
- package/lib/types/client/index.d.ts.map +0 -1
- package/lib/types/client/index.js +0 -161
- package/lib/types/client/index.js.map +0 -1
- package/lib/types/client/locales.d.ts.map +0 -1
- package/lib/types/client/locales.js +0 -1172
- package/lib/types/client/locales.js.map +0 -1
- package/lib/types/client/settings.d.ts.map +0 -1
- package/lib/types/client/settings.js +0 -70
- package/lib/types/client/settings.js.map +0 -1
- package/lib/types/client/sidebar-entry.d.ts.map +0 -1
- package/lib/types/client/sidebar-entry.js +0 -134
- package/lib/types/client/sidebar-entry.js.map +0 -1
- package/lib/types/client/workspace-controller.d.ts.map +0 -1
- package/lib/types/client/workspace-controller.js +0 -21
- package/lib/types/client/workspace-controller.js.map +0 -1
- package/lib/types/client/workspace-mount.d.ts.map +0 -1
- package/lib/types/client/workspace-mount.js +0 -138
- package/lib/types/client/workspace-mount.js.map +0 -1
- package/lib/types/commands.d.ts.map +0 -1
- package/lib/types/commands.js +0 -104
- package/lib/types/commands.js.map +0 -1
- package/lib/types/config-values.d.ts.map +0 -1
- package/lib/types/config-values.js +0 -4
- package/lib/types/config-values.js.map +0 -1
- package/lib/types/config.d.ts.map +0 -1
- package/lib/types/config.js +0 -127
- package/lib/types/config.js.map +0 -1
- package/lib/types/contracts.d.ts.map +0 -1
- package/lib/types/contracts.js +0 -2
- package/lib/types/contracts.js.map +0 -1
- package/lib/types/documents.d.ts.map +0 -1
- package/lib/types/documents.js +0 -495
- package/lib/types/documents.js.map +0 -1
- package/lib/types/guidance.d.ts.map +0 -1
- package/lib/types/guidance.js +0 -34
- package/lib/types/guidance.js.map +0 -1
- package/lib/types/index.d.ts.map +0 -1
- package/lib/types/index.js +0 -55
- package/lib/types/index.js.map +0 -1
- package/lib/types/lifecycle.d.ts.map +0 -1
- package/lib/types/lifecycle.js +0 -456
- package/lib/types/lifecycle.js.map +0 -1
- package/lib/types/live-runtime.d.ts.map +0 -1
- package/lib/types/live-runtime.js +0 -146
- package/lib/types/live-runtime.js.map +0 -1
- package/lib/types/memory-bodies.d.ts.map +0 -1
- package/lib/types/memory-bodies.js +0 -186
- package/lib/types/memory-bodies.js.map +0 -1
- package/lib/types/pack.d.ts.map +0 -1
- package/lib/types/pack.js +0 -709
- package/lib/types/pack.js.map +0 -1
- package/lib/types/process.d.ts.map +0 -1
- package/lib/types/process.js +0 -65
- package/lib/types/process.js.map +0 -1
- package/lib/types/review-activity.d.ts.map +0 -1
- package/lib/types/review-activity.js +0 -37
- package/lib/types/review-activity.js.map +0 -1
- package/lib/types/rpc.d.ts.map +0 -1
- package/lib/types/rpc.js +0 -384
- package/lib/types/rpc.js.map +0 -1
- package/lib/types/runner.d.ts.map +0 -1
- package/lib/types/runner.js +0 -198
- package/lib/types/runner.js.map +0 -1
- package/lib/types/runtime-memory.d.ts.map +0 -1
- package/lib/types/runtime-memory.js +0 -415
- package/lib/types/runtime-memory.js.map +0 -1
- package/lib/types/service.d.ts.map +0 -1
- package/lib/types/service.js +0 -512
- package/lib/types/service.js.map +0 -1
- package/lib/types/settings.d.ts.map +0 -1
- package/lib/types/settings.js +0 -103
- package/lib/types/settings.js.map +0 -1
- package/lib/types/storage-scope.d.ts.map +0 -1
- package/lib/types/storage-scope.js +0 -179
- package/lib/types/storage-scope.js.map +0 -1
- package/lib/types/subagent.d.ts.map +0 -1
- package/lib/types/subagent.js +0 -624
- package/lib/types/subagent.js.map +0 -1
- package/lib/types/tools.d.ts.map +0 -1
- package/lib/types/tools.js +0 -341
- package/lib/types/tools.js.map +0 -1
- package/lib/types/version-updates.d.ts.map +0 -1
- package/lib/types/version-updates.js +0 -383
- package/lib/types/version-updates.js.map +0 -1
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
# Project Overview: Local Three-Tier and Cross-Agent Memory for DSH
|
|
2
|
-
|
|
3
|
-
[简体中文](../zh-CN/project-overview.md) | **English** | [Documentation hub](./README.md)
|
|
4
|
-
|
|
5
|
-
`dsh-mnemon` integrates [Mnemon](https://github.com/mnemon-dev/mnemon) Memory Spaces with DeepSeek Harness, then adds Runtime hot memory, Project Documents, lifecycle routing, bounded subagents, a deterministic control layer, and native DSH interfaces. Because the durable tier uses native Mnemon Stores, DSH can reuse the same local long-term memory with other Mnemon-enabled agents.
|
|
6
|
-
|
|
7
|
-
Its goal is not to store more text. It balances long-term continuity, current-fact priority, context cost, and recoverable writes.
|
|
8
|
-
|
|
9
|
-
[](../assets/screenshots/overview-memory-graph.png)
|
|
10
|
-
|
|
11
|
-
## Why three tiers
|
|
12
|
-
|
|
13
|
-
One memory tier cannot serve frequent injection, full-document reading, and cross-session recall equally well:
|
|
14
|
-
|
|
15
|
-
| Need | With one memory tier | dsh-mnemon's choice |
|
|
16
|
-
|---|---|---|
|
|
17
|
-
| Know stable preferences and rules on the next turn | Retrieval adds latency and may miss | Inject compact Runtime projections every turn |
|
|
18
|
-
| Read a complete design, investigation, or procedure | Fragmentation loses narrative and provenance | Keep managed Markdown Documents |
|
|
19
|
-
| Find cross-session facts, decisions, and relations | Full loading pollutes context | Recall bounded graph-enhanced evidence on demand |
|
|
20
|
-
| Preserve traceability for cold long-form material | Keeping it hot consumes capacity forever | Create a cold reference before moving the original |
|
|
21
|
-
| Let a model judge value without owning system safety | An LLM cannot guarantee paths, locks, or transactions | Workers own semantics; the Host owns hard boundaries |
|
|
22
|
-
|
|
23
|
-
Priority always remains: **current user instructions → live tools and repository facts → historical memory**.
|
|
24
|
-
|
|
25
|
-
## The three-tier model
|
|
26
|
-
|
|
27
|
-
### 1. Runtime Memory
|
|
28
|
-
|
|
29
|
-
Runtime retains compact, high-frequency information useful on many turns:
|
|
30
|
-
|
|
31
|
-
- `USER.md`: identity, roles, preferences, habits, and explicit collaboration requirements;
|
|
32
|
-
- `MEMORY.md`: project conventions, environment facts, decisions, tool behavior, and reusable lessons.
|
|
33
|
-
|
|
34
|
-
`runtime/memories.json` is the source of truth; both Markdown files are deterministic projections. USER is capped at 4 KiB and MEMORY at 10 KiB, measured in UTF-8 bytes. Regular mutations are deterministic; only capacity maintenance may start a worker.
|
|
35
|
-
|
|
36
|
-
### 2. Project Documents
|
|
37
|
-
|
|
38
|
-
Documents preserve complete designs, investigations, procedures, postmortems, and handoffs. Title, retrieval description, and body participate in deterministic search; the body keeps Markdown structure.
|
|
39
|
-
|
|
40
|
-
One body may be up to 2 MiB and active rendered content up to 10 MiB. Before manual or capacity archiving, a bounded worker writes a Mnemon cold reference containing a summary and SHA-256. The original moves only if its revision is unchanged. Failure or conflict preserves active content.
|
|
41
|
-
|
|
42
|
-
### 3. Memory Spaces
|
|
43
|
-
|
|
44
|
-
Each Memory Space maps to an independent Mnemon Store and `mnemon.db`, with a stable ID, name, routing description, and activation state.
|
|
45
|
-
|
|
46
|
-
- Reads cover active spaces only.
|
|
47
|
-
- Writes may target any registered space and activate it after success.
|
|
48
|
-
- Durable memory preserves temporal, semantic, causal, and entity relations.
|
|
49
|
-
- Recall retains Memory Space provenance and memory IDs for related traversal.
|
|
50
|
-
|
|
51
|
-
See [Storage and the three-tier model](./storage-model.md) for authoritative files, capacities, and directories.
|
|
52
|
-
|
|
53
|
-
## Cross-agent sharing boundary
|
|
54
|
-
|
|
55
|
-
“Sharing” does not mean that dsh-mnemon broadcasts conversations or files to arbitrary agents. It means that multiple Mnemon-enabled agents use the same local Mnemon data:
|
|
56
|
-
|
|
57
|
-
1. every participant installs and integrates Mnemon;
|
|
58
|
-
2. every participant can access the same `storageRoot`;
|
|
59
|
-
3. durable memories intended for sharing live in Mnemon Stores recognized by those participants.
|
|
60
|
-
|
|
61
|
-
Under those conditions, another Mnemon-enabled agent can recall durable facts, entities, and relations written through DSH, and DSH can discover compatible memories written in the other direction. This boundary covers Mnemon Memory Spaces only. `runtime/` and `documents/` are DSH layers managed by dsh-mnemon and do not automatically become another agent's context merely because the root is shared.
|
|
62
|
-
|
|
63
|
-
The default `global` root, `~/.mnemon`, is the simplest choice for several local agents. Use `custom` for an explicitly agreed shared root, or `workspace` to constrain sharing to one project. Concurrent processes rely on Mnemon and SQLite concurrency semantics; stop every user before offline copying, migration, or direct database changes.
|
|
64
|
-
|
|
65
|
-
## Architecture
|
|
66
|
-
|
|
67
|
-
[](../assets/diagrams/en/project-architecture.svg)
|
|
68
|
-
|
|
69
|
-
Four boundaries shape the system:
|
|
70
|
-
|
|
71
|
-
1. **Interaction**: conversation, Sidebar / Buildin workbench, `/mnemon` commands, and model tools.
|
|
72
|
-
2. **Supervision**: durable recall, semantic writes, and archiving run in bounded workers; lifecycle hooks provide short cues and scheduling signals.
|
|
73
|
-
3. **Deterministic control**: the Host enforces schema, paths, permissions, capacity, locks, revisions, CLI arguments, timeouts, and cancellation.
|
|
74
|
-
4. **Local data**: Runtime, Documents, and Memory Spaces share the effective `storageRoot` and require no remote memory service.
|
|
75
|
-
|
|
76
|
-
### Memory System flow
|
|
77
|
-
|
|
78
|
-
This diagram describes stable execution boundaries, not a live status dashboard. Solid lines are deterministic Host paths; dashed lines require supervised LLM judgment.
|
|
79
|
-
|
|
80
|
-
[](../assets/diagrams/en/memory-system-flow.png)
|
|
81
|
-
|
|
82
|
-
The three major flows are:
|
|
83
|
-
|
|
84
|
-
- **Per-turn context**: Runtime projections enter the prompt; the Root Agent searches active Documents deterministically when needed.
|
|
85
|
-
- **On-demand semantics**: the Root Agent dispatches a `spawn` worker through the Host Bridge to active Memory Spaces; only bounded evidence or receipts return.
|
|
86
|
-
- **Maintenance and archive**: the Host applies ordinary mutations atomically; idle review uses `fork` from a completed checkpoint; Document archive verifies a cold index before moving the original across a revision fence.
|
|
87
|
-
|
|
88
|
-
See [Lifecycle and workflows](./workflows.md) for thresholds, cancellation, and failure semantics.
|
|
89
|
-
|
|
90
|
-
## Read path: near to far
|
|
91
|
-
|
|
92
|
-
A history-dependent request expands in this order:
|
|
93
|
-
|
|
94
|
-
1. current request, live tool results, and repository files;
|
|
95
|
-
2. Runtime Memory already in the prompt;
|
|
96
|
-
3. deterministic search and on-demand full text from active Documents;
|
|
97
|
-
4. supervised recall from active Memory Spaces;
|
|
98
|
-
5. archived originals only after following a cold-reference hit.
|
|
99
|
-
|
|
100
|
-
`mnemon_recall` starts an isolated worker. It selects the narrowest spaces from names and descriptions and can use only allowed recall/related tools. The complete catalog and routing trace do not fill the root conversation.
|
|
101
|
-
|
|
102
|
-
Direct recall in the Web returns raw evidence. Agent query retrieves the same evidence, then gives it to an evidence-only worker with no Mnemon tools.
|
|
103
|
-
|
|
104
|
-
## Write path: semantics versus guarantees
|
|
105
|
-
|
|
106
|
-
| Memory worker | Host guarantees |
|
|
107
|
-
|---|---|
|
|
108
|
-
| Decide whether a candidate is durable | Input schema and operation permissions |
|
|
109
|
-
| Select the narrowest space and deduplicate | Workspace and path confinement |
|
|
110
|
-
| Distill self-contained content and relation rationale | Shell-free CLI, bounded output, timeout, and cancellation |
|
|
111
|
-
| Decide when long-form work belongs in Documents | Locks, temporary files, rename, and revision fences |
|
|
112
|
-
| Maintain conservatively within its persona | UTF-8 capacity and original-data preservation on failure |
|
|
113
|
-
|
|
114
|
-
Durable recall and writes prefer isolated `spawn`. Score-based background review uses `fork` only after a completed turn crosses its threshold and remains idle. A new turn cancels pending or running review.
|
|
115
|
-
|
|
116
|
-
## What users see
|
|
117
|
-
|
|
118
|
-
The default Sidebar has four primary pages: Status, Runtime, Memory Spaces, and Documents. Memory Spaces adds Overview, Recall, Content, and Entities. Add, edit, and Remember use consistent dialogs; long collections use filters and progressive loading.
|
|
119
|
-
|
|
120
|
-
Two additive entries surface memory in conversations:
|
|
121
|
-
|
|
122
|
-
- **Turn memory** summarizes this turn's memory tools and links to matching pages.
|
|
123
|
-
- **Save to memory** loads a finalized reply into an editable confirmation; supervised writing starts only after confirmation.
|
|
124
|
-
|
|
125
|
-
See the [Sidebar and conversation UI guide](./ui-guide.md) for screenshots and workspace inspection/execution semantics. See [Interfaces](./interfaces.md) for tools, commands, and RPC.
|
|
126
|
-
|
|
127
|
-
## Local-first reliability
|
|
128
|
-
|
|
129
|
-
- CLI calls use argument arrays with `shell=false`, bounded output, timeout, and cancellation.
|
|
130
|
-
- Runtime and Documents use in-process queues, cross-instance locks, temporary files, and rename.
|
|
131
|
-
- Runtime revisions block stale compaction; Document revisions block movement of updated originals.
|
|
132
|
-
- Subagents use persona, tool allowlists, structured output, and depth limits.
|
|
133
|
-
- The WebUI never reads SQLite directly or supplies arbitrary update commands.
|
|
134
|
-
- The plugin stores no model credentials, but it does not yet include a deterministic secret scanner.
|
|
135
|
-
|
|
136
|
-
These guarantees are not a rollback-capable distributed transaction across Mnemon SQLite and the filesystem. When uncertain, the system preserves original data. See [Operations](./operations.md) for complete boundaries and limitations.
|
|
137
|
-
|
|
138
|
-
## Continue reading
|
|
139
|
-
|
|
140
|
-
- [Getting Started](./getting-started.md): installation and first verification.
|
|
141
|
-
- [Sidebar and conversation UI guide](./ui-guide.md): complete visual workflow.
|
|
142
|
-
- [Architecture](./architecture.md): modules, workers, and trust boundaries.
|
|
143
|
-
- [Storage model](./storage-model.md): directories, capacity, and authority.
|
|
144
|
-
- [Lifecycle and workflows](./workflows.md): injection, recall, writing, review, and archive.
|
|
145
|
-
- [Configuration](./configuration.md): display, storage, and advanced switches.
|
package/docs/en/roadmap.md
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# Roadmap
|
|
2
|
-
|
|
3
|
-
[简体中文](../zh-CN/roadmap.md) | **English** | [Documentation Center](./README.md)
|
|
4
|
-
|
|
5
|
-
The Roadmap records work beyond the current implementation; it is not a commitment to deliver these capabilities. Data safety, recoverability, and verifiability take priority.
|
|
6
|
-
|
|
7
|
-
## P0: Reliability and Recoverable Scheduling
|
|
8
|
-
|
|
9
|
-
- [ ] **Persist background-review watermarks**: save activity signals, the latest processed checkpoint, scoring version, and run state by root session; restore unprocessed activity after restart or resume.
|
|
10
|
-
- [ ] **Idempotent checkpoints**: assign a stable identifier to each review input to prevent timeouts, retries, or duplicate hooks from producing duplicate Documents.
|
|
11
|
-
- [ ] **Backoff, circuit breaking, and manual retry**: apply bounded backoff after consecutive failures, show the reason on the Status page, and allow explicit recovery.
|
|
12
|
-
- [ ] **Deterministic sensitive-data defenses**: add secret/credential pattern detection, size limits, and audit receipts beyond LLM admission.
|
|
13
|
-
- [ ] **Automated real-WebUI E2E**: isolate DSH_HOME, storageRoot, workspace, and the port; cover light tasks, score-based review, cancellation, and failures without partial writes.
|
|
14
|
-
- [ ] **Correct cold-reference paths**: under every storage scope, write resolvable references that match the actual managed path.
|
|
15
|
-
|
|
16
|
-
## P1: Long-Term Maintenance and Data Operations
|
|
17
|
-
|
|
18
|
-
- [ ] **Long-term organization across sessions**: trigger an independent organization process based on time and the number of new sessions instead of reusing per-turn review.
|
|
19
|
-
- [ ] **Mnemon GC / forget review**: generate candidates for decay, conflicts, obsolete content, and orphaned relationships, then present evidence before deletion.
|
|
20
|
-
- [ ] **Consistent backup and recovery**: provide unified snapshots, checksums, and recovery rehearsals for the registry, multiple databases, Runtime, and Documents.
|
|
21
|
-
- [ ] **Repair and rebuild tools**: detect damaged JSON, missing projections, orphaned Documents, missing databases, and registry/disk inconsistencies.
|
|
22
|
-
- [ ] **Schema migration**: add explicit upgrade and rollback strategies for Runtime, the Documents index, and the Memory Space registry.
|
|
23
|
-
- [ ] **Compatibility matrix**: document and automatically test supported combinations of DSH, the Mnemon CLI, Node, and data formats.
|
|
24
|
-
- [ ] **Explicit Documents workspace ownership**: record the source workspace under shared storage scopes or provide a configurable isolation strategy.
|
|
25
|
-
|
|
26
|
-
## P2: Observability, Experience, and Release Engineering
|
|
27
|
-
|
|
28
|
-
- [ ] **Background-review history**: show recent scores, checkpoints, waiting/running/failed states, worker receipts, and resulting changes.
|
|
29
|
-
- [ ] **Switch to DSH's shared directory picker** (blocked on [dsh-external/issues#603](https://github.com/dsh-external/issues/issues/603)): custom storage temporarily uses a manually entered Host path because remote `browse` deployments cannot invoke the `native` picker; once DSH exposes a reusable directory-picker service for plugins, move to the provider-selected native / browse flow and retain manual entry only as a fallback if needed.
|
|
30
|
-
- [ ] **Complete internationalization**: cover commands, tool cards, Host errors, compatibility default metadata, and confirmation copy.
|
|
31
|
-
- [ ] **Multi-Memory-Space E2E**: cover automatic space creation, cross-space recall, one-pass migration routing, multiple relationship types, merge, and controlled forget.
|
|
32
|
-
- [ ] **Capacity and fault injection**: exercise real USER/MEMORY boundaries, Document LRU, revision conflicts, CLI timeouts, and mid-operation Host restarts.
|
|
33
|
-
- [ ] **Documentation consistency checks**: add relative links, external links, bilingual file mirroring, configuration-key matching, and code-block matching to CI.
|
|
34
|
-
- [ ] **Release completion**: establish stable versions, a changelog, upgrade/uninstall/data-retention guides, artifact checksums, and a minimum-support policy.
|
|
35
|
-
|
|
36
|
-
## Explicitly Out of Scope
|
|
37
|
-
|
|
38
|
-
- A Runtime `daily` target; only `user` and `memory` are currently maintained.
|
|
39
|
-
- A proactive notification daemon without explicit delivery semantics; Mnemon remains an on-demand pull system.
|
|
40
|
-
- Declaring internal RPC or `MnemonClient` to be a stable public SDK.
|
|
41
|
-
- Automatically deleting the source Memory Space database; merge currently preserves the source files.
|
package/docs/en/storage-model.md
DELETED
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
# Storage and the Three-Layer Memory Model
|
|
2
|
-
|
|
3
|
-
[简体中文](../zh-CN/storage-model.md) | **English** | [Documentation Center](./README.md)
|
|
4
|
-
|
|
5
|
-
## Why Three Layers
|
|
6
|
-
|
|
7
|
-
No single storage form can simultaneously be visible on every turn, preserve complete narratives, and support long-term graph-enhanced recall:
|
|
8
|
-
|
|
9
|
-
| Question | Corresponding layer | Reason |
|
|
10
|
-
|---|---|---|
|
|
11
|
-
| What must be known directly on the next turn? | Runtime Memory | Tiny and injected directly into the prompt |
|
|
12
|
-
| Which design or procedure needs to be read quickly and in full? | active Documents | Preserves Markdown structure without deep recall |
|
|
13
|
-
| Which historical facts and relationships should persist across sessions? | Memory Spaces | Independent databases, graph relationships, and on-demand recall |
|
|
14
|
-
| What happens when a long document is rarely used but must remain traceable? | archived Documents | Mnemon retains an index while the cold layer retains the original text |
|
|
15
|
-
|
|
16
|
-
Recommended query gradient:
|
|
17
|
-
|
|
18
|
-
```text
|
|
19
|
-
current request and repository facts
|
|
20
|
-
|
|
|
21
|
-
v
|
|
22
|
-
Runtime Memory already in prompt
|
|
23
|
-
|
|
|
24
|
-
v
|
|
25
|
-
search active Documents
|
|
26
|
-
|
|
|
27
|
-
v
|
|
28
|
-
recall active Memory Spaces
|
|
29
|
-
|
|
|
30
|
-
v
|
|
31
|
-
follow an exact cold reference when full text is required
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## Unified Root Directory
|
|
35
|
-
|
|
36
|
-
```text
|
|
37
|
-
<storageRoot>/
|
|
38
|
-
+-- runtime/
|
|
39
|
-
| +-- memories.json
|
|
40
|
-
| +-- USER.md
|
|
41
|
-
| +-- MEMORY.md
|
|
42
|
-
+-- documents/
|
|
43
|
-
| +-- index.json
|
|
44
|
-
| +-- active/
|
|
45
|
-
| +-- archived/
|
|
46
|
-
+-- data/
|
|
47
|
-
| +-- .dsh-memory-bodies.json
|
|
48
|
-
| +-- <memory-space-id>/
|
|
49
|
-
| +-- mnemon.db
|
|
50
|
-
+-- state/ # reserved; no persistent reviewer yet
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
`storageScope` determines the entire root, not just the Mnemon databases. The `workspace` scope resolves an independent `<workspace>/.mnemon` for every registered DSH workspace. The Web inspection target and current-session execution target are independent; only the latter drives agents, tools, and lifecycle hooks. `state/` is currently recognized only by the status inspector; scored review watermarks remain in the running Host's memory.
|
|
54
|
-
|
|
55
|
-
## Runtime Memory
|
|
56
|
-
|
|
57
|
-
### Semantics
|
|
58
|
-
|
|
59
|
-
- `target=user`: identity, role, long-term preferences, habits, communication style, and explicit collaboration requirements.
|
|
60
|
-
- `target=memory`: projects, environment, decisions, conventions, tool characteristics, and reusable experience.
|
|
61
|
-
- `importance=critical|normal|low`: retention priority during maintenance.
|
|
62
|
-
|
|
63
|
-
There is currently no `daily` target.
|
|
64
|
-
|
|
65
|
-
### Source of Truth and Projections
|
|
66
|
-
|
|
67
|
-
`runtime/memories.json` is the sole source of truth. Each record contains:
|
|
68
|
-
|
|
69
|
-
```text
|
|
70
|
-
content
|
|
71
|
-
created_at
|
|
72
|
-
updated_at
|
|
73
|
-
target
|
|
74
|
-
importance
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
`USER.md` and `MEMORY.md` are deterministic derived files. Each item is normalized to one line, and items are separated by a line containing only `§`; `§` is a reserved character. During startup and prompt assembly, the control layer repairs missing or manually modified projections from the JSON source.
|
|
78
|
-
|
|
79
|
-
### Operations
|
|
80
|
-
|
|
81
|
-
- `add` writes an independent new fact; exactly identical content is not added twice.
|
|
82
|
-
- `replace` uses a unique substring match on `old_text` to locate and replace an entire item.
|
|
83
|
-
- `remove` uses a unique substring to remove an entire item.
|
|
84
|
-
- Zero or multiple matches are rejected; no fuzzy mutation is performed.
|
|
85
|
-
|
|
86
|
-
### Capacity
|
|
87
|
-
|
|
88
|
-
| Target | Limit | Maintenance method |
|
|
89
|
-
|---|---:|---|
|
|
90
|
-
| `USER.md` | 4 KiB | A local no-tool worker merges conservatively; content never enters a Memory Space |
|
|
91
|
-
| `MEMORY.md` | 10 KiB | A worker archives committed content first, then returns compaction candidates |
|
|
92
|
-
|
|
93
|
-
Capacity is measured from the actual UTF-8 bytes of the projection body. A single item is limited to 8 KiB. Automatic capacity maintenance is triggered only by an overflowing `add`; an overflowing `replace` fails directly, and the caller should perform explicit maintenance first.
|
|
94
|
-
|
|
95
|
-
## Project Documents
|
|
96
|
-
|
|
97
|
-
### Purpose
|
|
98
|
-
|
|
99
|
-
Documents preserve project knowledge that is more complete than a single memory item but should still be quick to read, such as:
|
|
100
|
-
|
|
101
|
-
- architecture designs and rationale;
|
|
102
|
-
- evidence-backed investigation findings;
|
|
103
|
-
- operating procedures, release checklists, and incident reviews;
|
|
104
|
-
- implementation handoffs and long-term maintenance notes.
|
|
105
|
-
|
|
106
|
-
User profiles, ordinary conversation, temporary progress, raw large logs, and secrets should not be stored in Documents.
|
|
107
|
-
|
|
108
|
-
### Control Plane
|
|
109
|
-
|
|
110
|
-
`documents/index.json` is the metadata source of truth. It manages IDs, titles, descriptions, status, filenames, source paths, sessions, timestamps, revisions, SHA-256 values, sizes, and Memory Space references. Managed Markdown copies include generated frontmatter.
|
|
111
|
-
|
|
112
|
-
`sourcePaths`:
|
|
113
|
-
|
|
114
|
-
- may point only inside the current session workspace;
|
|
115
|
-
- are source references only and are never modified by the plugin;
|
|
116
|
-
- are not required to exist by the current implementation;
|
|
117
|
-
- may not point into the managed `documents/` directory itself.
|
|
118
|
-
|
|
119
|
-
### Scope
|
|
120
|
-
|
|
121
|
-
The physical sharing scope of Documents is determined by `storageScope`:
|
|
122
|
-
|
|
123
|
-
- `workspace`: normally isolated with the project;
|
|
124
|
-
- `global` / `custom`: multiple workspaces may share the same `documents/index.json`.
|
|
125
|
-
|
|
126
|
-
Therefore, “Project Documents” describes the content type and does not guarantee physical isolation by workspace. The current session workspace constrains only `sourcePaths` on new writes.
|
|
127
|
-
|
|
128
|
-
### Capacity and Hot/Cold Tiering
|
|
129
|
-
|
|
130
|
-
| Item | Limit |
|
|
131
|
-
|---|---:|
|
|
132
|
-
| One body | 2 MiB maximum |
|
|
133
|
-
| Total active content | 10 MiB maximum, including generated frontmatter |
|
|
134
|
-
| Total archived content | Does not count toward the active limit |
|
|
135
|
-
|
|
136
|
-
The actual rendered size is calculated before creation or update. If capacity is insufficient, the least recently accessed active Document is selected by `lastAccessedAt` and then `updatedAt`; a Mnemon cold reference is written and verified first, and the original text is moved only if its revision remains unchanged.
|
|
137
|
-
|
|
138
|
-
Default search covers only active Documents. Search updates `lastAccessedAt` for matching Documents, so it is read-only with respect to bodies but writes index metadata.
|
|
139
|
-
|
|
140
|
-
## Memory Spaces
|
|
141
|
-
|
|
142
|
-
Each Memory Space is a native named Mnemon Store with maintainable metadata added in `.dsh-memory-bodies.json`:
|
|
143
|
-
|
|
144
|
-
```text
|
|
145
|
-
id Host-generated stable UUID or discovered compatible Store name
|
|
146
|
-
name human-readable name
|
|
147
|
-
description routing boundary: what belongs here and when to recall it
|
|
148
|
-
active whether it participates in reads
|
|
149
|
-
mnemon.db independent data plane
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### Read and Write Boundaries
|
|
153
|
-
|
|
154
|
-
- Recall, graph, content, and entity reads use only active Memory Spaces.
|
|
155
|
-
- Reads explicitly targeting an inactive Memory Space are rejected.
|
|
156
|
-
- Writes may target any registered Memory Space.
|
|
157
|
-
- After a successful write to an inactive target, the plugin activates it automatically.
|
|
158
|
-
- Without an explicit target, if the number of active Memory Spaces is not exactly one, the deterministic service requires the caller to choose a target first.
|
|
159
|
-
|
|
160
|
-
### Creation, Discovery, and Merge
|
|
161
|
-
|
|
162
|
-
- On creation, the model supplies a name and description; the Host generates the ID.
|
|
163
|
-
- An existing `<storageRoot>/data/<store>/mnemon.db` is discovered and registered without moving the database.
|
|
164
|
-
- Merge imports source content into the target through Mnemon; the source database remains in place, and by default only the source is marked inactive.
|
|
165
|
-
- `forget` is a soft delete by exact ID, not deletion of a database file.
|
|
166
|
-
|
|
167
|
-
### Cross-Agent Visibility
|
|
168
|
-
|
|
169
|
-
`mnemon.db` is Mnemon's native data plane, not a private dsh-mnemon format. Another Mnemon-enabled agent can access the same durable memory when it uses the same `storageRoot` and Store. dsh-mnemon also discovers compatible Stores already present on disk; DSH-specific names, descriptions, and activation state remain managed by `.dsh-memory-bodies.json`.
|
|
170
|
-
|
|
171
|
-
This sharing does not extend to `runtime/` or `documents/`. Even when those directories sit under the same root, another agent must implement their DSH-specific protocols to understand them. “Shared Mnemon memory” must not be presented as automatic sharing of the complete DSH context.
|
|
172
|
-
|
|
173
|
-
## Four Relationship Types
|
|
174
|
-
|
|
175
|
-
The Mnemon long-term layer preserves `temporal`, `semantic`, `causal`, and `entity` relationships. The plugin does not require relationships to be created manually for every memory; they should be created only when they genuinely improve future recall. Overview can aggregate memories, entities, relationships, and space membership across multiple active Memory Spaces.
|
|
176
|
-
|
|
177
|
-
## Data Authority Table
|
|
178
|
-
|
|
179
|
-
| Data | Authoritative source | Derived/cache |
|
|
180
|
-
|---|---|---|
|
|
181
|
-
| Hot memory | `runtime/memories.json` | `USER.md`, `MEMORY.md` |
|
|
182
|
-
| Documents | `documents/index.json` + managed Markdown | excerpts, search ranking, status aggregation |
|
|
183
|
-
| Memory Space catalog | `data/.dsh-memory-bodies.json` + on-disk Stores | Web status aggregation |
|
|
184
|
-
| Long-term memory | Each Store's `mnemon.db` | parsed HTML/DOT graph results |
|
|
185
|
-
| Review watermark | Host process memory | status-page snapshot; not yet persisted |
|
package/docs/en/ui-guide.md
DELETED
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
# Sidebar and Conversation UI Guide
|
|
2
|
-
|
|
3
|
-
[简体中文](../zh-CN/ui-guide.md) | **English** | [Documentation hub](./README.md)
|
|
4
|
-
|
|
5
|
-
This guide follows the default `sidebar` presentation and a real user path through Memory System. Screenshots come from the v0.1.5 interface and use the Chinese locale; names, counts, and content vary with your data.
|
|
6
|
-
|
|
7
|
-
## Start with the two display modes
|
|
8
|
-
|
|
9
|
-
Choose the entry point and storage location under **Settings → Memory System**:
|
|
10
|
-
|
|
11
|
-
[](../assets/screenshots/settings-memory-system.png)
|
|
12
|
-
|
|
13
|
-
| Mode | Best suited for |
|
|
14
|
-
|---|---|
|
|
15
|
-
| **Sidebar** (default) | A dedicated workbench opened from the DSH sidebar, visually aligned with official panels such as Task Board and SSH |
|
|
16
|
-
| **Buildin** | The original conversation-area tab, preserving the previous layout and visuals for established workflows |
|
|
17
|
-
|
|
18
|
-
Both modes share functionality, data, and Host services. Only entry and appearance differ. Saving switches live without a browser refresh or duplicate mounts.
|
|
19
|
-
|
|
20
|
-
## Workbench anatomy
|
|
21
|
-
|
|
22
|
-
The Sidebar header always answers three questions: which system is open, which storage-location mode is effective, and whether the Host is connected.
|
|
23
|
-
|
|
24
|
-
The body has four primary tabs: **Status, Runtime, Memory Spaces, and Documents**. Memory Spaces adds **Overview, Recall, Content, and Entities** as secondary tabs, with **Remember** as its primary action.
|
|
25
|
-
|
|
26
|
-
## 1. Status: establish that the system is ready
|
|
27
|
-
|
|
28
|
-
[](../assets/screenshots/status-overview.png)
|
|
29
|
-
|
|
30
|
-
Status aggregates:
|
|
31
|
-
|
|
32
|
-
- installed Mnemon CLI and dsh-mnemon versions;
|
|
33
|
-
- USER / MEMORY Runtime counts;
|
|
34
|
-
- active Memory Spaces and durable-memory counts;
|
|
35
|
-
- active / archived Document counts;
|
|
36
|
-
- the current storage root and concrete Runtime, Documents, and Memory Spaces directories.
|
|
37
|
-
|
|
38
|
-
If this page reports a failure, avoid Remember or Archive until you follow [Troubleshooting](./operations.md#troubleshooting).
|
|
39
|
-
|
|
40
|
-
### Check and update versions
|
|
41
|
-
|
|
42
|
-
Open the version area for a read-only check:
|
|
43
|
-
|
|
44
|
-
[](../assets/screenshots/version-check.png)
|
|
45
|
-
|
|
46
|
-
Checking never installs automatically. Update appears only when a newer release exists and the installation source is supported. After an update, the interface rechecks both components and refreshes Status automatically. Restart `dsh web` after a dsh-mnemon update to load new plugin code.
|
|
47
|
-
|
|
48
|
-
## 2. Runtime: maintain hot memory used every turn
|
|
49
|
-
|
|
50
|
-
[](../assets/screenshots/runtime-memory.png)
|
|
51
|
-
|
|
52
|
-
The top summarizes User Profile (`USER.md`) and Working Memory (`MEMORY.md`); one list below holds both.
|
|
53
|
-
|
|
54
|
-
- Filter by All / User Profile / Working Memory.
|
|
55
|
-
- Filter by content with the input on the right.
|
|
56
|
-
- Chips identify source and importance.
|
|
57
|
-
- Edit opens a dialog; Remove enters a destructive flow.
|
|
58
|
-
- Long lists expand progressively through “Show N more.”
|
|
59
|
-
|
|
60
|
-
### Add Runtime Memory
|
|
61
|
-
|
|
62
|
-
[](../assets/screenshots/runtime-memory-add.png)
|
|
63
|
-
|
|
64
|
-
A Runtime item should be compact, independent, and repeatedly useful. Put identity, preferences, and explicit collaboration requirements in User Profile; put project, environment, decision, and tool lessons in Working Memory. Temporary progress and raw logs do not belong here.
|
|
65
|
-
|
|
66
|
-
## 3. Memory Spaces: durable memory and relationships
|
|
67
|
-
|
|
68
|
-
### Overview
|
|
69
|
-
|
|
70
|
-
[](../assets/screenshots/overview-memory-graph.png)
|
|
71
|
-
|
|
72
|
-
Each card leads with its name and routing description, pins read activation at the top right, and keeps statistics plus Edit / Delete in the footer. Activation controls reads only. A write may target an inactive registered space and activates it after success.
|
|
73
|
-
|
|
74
|
-
The graph aggregates all active spaces. Layout, dragging, and reset affect browser presentation only and never mutate Mnemon data.
|
|
75
|
-
|
|
76
|
-
### Remember
|
|
77
|
-
|
|
78
|
-
[](../assets/screenshots/remember-dialog.png)
|
|
79
|
-
|
|
80
|
-
Normally, provide only a candidate. On confirmation, an isolated memory subagent decides whether it qualifies, chooses the narrowest space, deduplicates, distills, and writes. Expand advanced options only when a target space, category, or importance must be constrained explicitly.
|
|
81
|
-
|
|
82
|
-
### Recall
|
|
83
|
-
|
|
84
|
-
[](../assets/screenshots/recall-agent-answer.png)
|
|
85
|
-
|
|
86
|
-
- **Direct recall** returns raw evidence without an answer Agent.
|
|
87
|
-
- **Agent query** retrieves the same evidence, then gives it to an evidence-only worker with no Mnemon tools.
|
|
88
|
-
- Category and strategy narrow the search.
|
|
89
|
-
- Results retain space, category, importance, score, and ID.
|
|
90
|
-
- Related traverses the graph; Forget is a destructive semantic action.
|
|
91
|
-
|
|
92
|
-
Focused questions are more reliable than broad keywords.
|
|
93
|
-
|
|
94
|
-
### Content and Entities
|
|
95
|
-
|
|
96
|
-
| Content | Entities |
|
|
97
|
-
|---|---|
|
|
98
|
-
| [](../assets/screenshots/memory-content.png) | [](../assets/screenshots/entities-context.png) |
|
|
99
|
-
|
|
100
|
-
- **Content** browses durable memory without recall side effects and supports text/category filtering, Related, clone-from-item, Copy ID, and Forget.
|
|
101
|
-
- **Entities** starts with frequent names, then aggregates related facts, decisions, and context for a selected or entered entity.
|
|
102
|
-
|
|
103
|
-
Both expose visible / total counts and progressive loading.
|
|
104
|
-
|
|
105
|
-
## 4. Documents: preserve complete project narratives
|
|
106
|
-
|
|
107
|
-
[](../assets/screenshots/documents-markdown.png)
|
|
108
|
-
|
|
109
|
-
Documents are for designs, investigations, procedures, postmortems, and handoffs. The directory loads progressively; the reader keeps title, retrieval description, source, revision, hash, size, and full Markdown. Selecting a Document resets the reader to the top.
|
|
110
|
-
|
|
111
|
-
Before active capacity is exhausted, least-recently-used Documents are cold-indexed in Mnemon and then moved to archived storage. A failure or revision conflict preserves the active original.
|
|
112
|
-
|
|
113
|
-
### Create a Document
|
|
114
|
-
|
|
115
|
-
[](../assets/screenshots/document-create-dialog.png)
|
|
116
|
-
|
|
117
|
-
Title and retrieval description determine future discoverability; source paths preserve provenance; the body retains Markdown structure. Source project files remain read-only—the workbench creates a managed copy.
|
|
118
|
-
|
|
119
|
-
## 5. In-conversation interaction
|
|
120
|
-
|
|
121
|
-
### Turn memory
|
|
122
|
-
|
|
123
|
-
[](../assets/screenshots/conversation-turn-memory.png)
|
|
124
|
-
|
|
125
|
-
The bar appears only on completed turns with memory activity. Expanding lists exact tools; clicking one opens its matching page while retaining the conversation context.
|
|
126
|
-
|
|
127
|
-
[](../assets/screenshots/conversation-memory-jump.png)
|
|
128
|
-
|
|
129
|
-
### Save to memory
|
|
130
|
-
|
|
131
|
-
[](../assets/screenshots/conversation-save-dialog.png)
|
|
132
|
-
|
|
133
|
-
Save to memory sits in the native action strip for finalized assistant replies. Clicking only opens confirmation and reads that reply. Edit or cancel freely; writing starts only after **Confirm and send to memory subagent**.
|
|
134
|
-
|
|
135
|
-
## Workspace mode: separating inspection from execution
|
|
136
|
-
|
|
137
|
-
Under `storageScope=workspace`, keep two concepts separate:
|
|
138
|
-
|
|
139
|
-
| Concept | Selected by | Affects |
|
|
140
|
-
|---|---|---|
|
|
141
|
-
| **Inspected workspace** | Workbench header selector | Which `<workspace>/.mnemon` the UI displays and maintains manually |
|
|
142
|
-
| **Effective workspace** | Current conversation / Agent cwd | Which root tools, commands, lifecycle hooks, and subagents actually use |
|
|
143
|
-
|
|
144
|
-
You may inspect project B while staying in project A's conversation; the Agent still uses A. When they differ, the header explains the mismatch and offers one-click alignment. Agent-backed actions are rejected while misaligned to prevent writes to the wrong project. Switching inspection target unmounts old page state before loading the new root.
|
|
145
|
-
|
|
146
|
-
`global` and `custom` resolve to one explicit root and need no alignment layer.
|
|
147
|
-
|
|
148
|
-
## Common interaction rules
|
|
149
|
-
|
|
150
|
-
- Solid blue is the primary action; blue outline usually means Edit; red is Remove, Delete, Archive, or Forget; neutral actions are View, Copy, and Cancel.
|
|
151
|
-
- Physical destructive operations such as deleting a Memory Space require a dedicated confirmation. Forget is semantic soft deletion and should still be deliberate.
|
|
152
|
-
- Saving settings clears stale page state and reloads automatically; no browser refresh is needed.
|
|
153
|
-
- Sidebar primary headings remain stable; secondary headings within Memory Spaces scroll naturally.
|
|
154
|
-
- Buildin preserves its established layout and visuals. Functional concepts still apply, though control positions differ.
|
|
155
|
-
|
|
156
|
-
Next: [Getting Started](./getting-started.md) · [Storage model](./storage-model.md) · [Configuration](./configuration.md) · [Operations](./operations.md)
|