@vaur94/agz-memory 0.4.1 → 0.5.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/ARCHITECTURE.md +41 -25
- package/CHANGELOG.md +76 -0
- package/README.md +42 -16
- package/README.tr.md +43 -17
- package/dist/admin.js +4226 -758
- package/dist/core.js +5208 -1023
- package/dist/server.js +4888 -905
- package/dist/types/admin/quarantine.d.ts +15 -0
- package/dist/types/admin/reindex.d.ts +41 -0
- package/dist/types/capture/contract.d.ts +7 -5
- package/dist/types/capture/redact.d.ts +1 -0
- package/dist/types/config.d.ts +1 -0
- package/dist/types/context.d.ts +1 -1
- package/dist/types/contracts/error.d.ts +16 -0
- package/dist/types/contracts/limits.d.ts +18 -0
- package/dist/types/contracts/mutation.d.ts +31 -0
- package/dist/types/contracts/pagination.d.ts +27 -0
- package/dist/types/core.d.ts +6 -2
- package/dist/types/db/backup.d.ts +2 -1
- package/dist/types/db/health.d.ts +5 -1
- package/dist/types/db/legacy-health.d.ts +4 -0
- package/dist/types/db/maintenance.d.ts +21 -0
- package/dist/types/db/migrations/v011.d.ts +3 -0
- package/dist/types/db/schema.d.ts +10 -1
- package/dist/types/db.d.ts +12 -1
- package/dist/types/hash.d.ts +4 -0
- package/dist/types/retrieval/contract.d.ts +15 -3
- package/dist/types/security/quarantine-key.d.ts +47 -0
- package/dist/types/server.d.ts +1 -1
- package/dist/types/store/capture.d.ts +17 -5
- package/dist/types/store/outbox.d.ts +15 -3
- package/dist/types/store/retrieval.d.ts +2 -2
- package/dist/types/store.d.ts +39 -12
- package/dist/types/types.d.ts +1 -1
- package/dist/types/version.d.ts +1 -1
- package/docs/adr/hash-identity-v2.md +57 -0
- package/docs/adr/maintenance-lock.md +93 -0
- package/docs/backup-restore-runbook.md +36 -16
- package/docs/backup-restore-runbook.tr.md +36 -16
- package/docs/repository-hardening.md +125 -0
- package/docs/review-resolution.md +78 -0
- package/docs/schema-v11.md +75 -0
- package/package.json +21 -6
- package/skills/agz-memory/agz-memory.md +39 -0
- package/skills/index.json +9 -0
package/ARCHITECTURE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# AGZ Memory Architecture
|
|
2
2
|
|
|
3
|
-
This document describes the `0.
|
|
3
|
+
This document describes the `0.5.1` runtime and SQLite schema v11.
|
|
4
4
|
|
|
5
5
|
## System Boundaries
|
|
6
6
|
|
|
@@ -9,7 +9,7 @@ OpenCode MCP client
|
|
|
9
9
|
-> agz-memory stdio server
|
|
10
10
|
-> nine-tool MCP adapter
|
|
11
11
|
-> memory core
|
|
12
|
-
|
|
12
|
+
-> SQLite schema v11 (canonical)
|
|
13
13
|
|
|
14
14
|
OpenCode V2 beta-18743
|
|
15
15
|
-> @vaur94/agz-memory-plugin
|
|
@@ -20,7 +20,7 @@ OpenCode V2 beta-18743
|
|
|
20
20
|
|
|
21
21
|
SQLite outbox
|
|
22
22
|
-> optional derived retrieval backend
|
|
23
|
-
|
|
23
|
+
-> disabled in 0.5.1; backend = none
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
The MCP adapter owns tool schemas, annotations, and result envelopes. The core
|
|
@@ -42,7 +42,7 @@ current name, and fixed confirmation phrase.
|
|
|
42
42
|
|
|
43
43
|
## Canonical Schema
|
|
44
44
|
|
|
45
|
-
SQLite schema
|
|
45
|
+
SQLite schema v11 contains:
|
|
46
46
|
|
|
47
47
|
| Table | Responsibility |
|
|
48
48
|
|---|---|
|
|
@@ -50,19 +50,21 @@ SQLite schema v10 contains:
|
|
|
50
50
|
| `notes` | Current note state, status, subject key, revision, and content hash. |
|
|
51
51
|
| `note_edges` | Typed same-project graph relations. |
|
|
52
52
|
| `notes_fts` | Trigger-maintained FTS5 projection of current note text. |
|
|
53
|
-
| `project_bindings` | Explicit OpenCode-to-memory mapping with canonical path
|
|
54
|
-
| `capture_checkpoints` |
|
|
55
|
-
| `capture_events` | Redacted, idempotent capture audit under `agz-memory.capture/
|
|
53
|
+
| `project_bindings` | Explicit OpenCode-to-memory mapping with a v2 tuple-hashed canonical path. |
|
|
54
|
+
| `capture_checkpoints` | Binding-scoped reconciliation progress without transcript text. |
|
|
55
|
+
| `capture_events` | Redacted, idempotent capture audit under `agz-memory.capture/2`. |
|
|
56
56
|
| `note_provenance` | Source identity, extractor/redaction versions, and confidence. |
|
|
57
57
|
| `note_revisions` | Immutable snapshot for each committed note revision. |
|
|
58
|
-
| `index_outbox` | Payload-free queue for replaceable
|
|
58
|
+
| `index_outbox` | Payload-free, generation- and fence-aware queue for replaceable indexes. |
|
|
59
|
+
| `agz_meta` | Database UUID, product, schema, fingerprint, and hash policy identity. |
|
|
59
60
|
| `schema_state` | The single current schema version. |
|
|
60
61
|
|
|
61
|
-
The
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
The v11 migration replaces delimiter-joined hashes with domain-separated,
|
|
63
|
+
length-prefixed v2 tuple hashes. It validates and deterministically maps every
|
|
64
|
+
schema 10 note, binding, capture, checkpoint, and outbox row. Composite foreign
|
|
65
|
+
keys enforce project ownership. Migration publishes schema 11 only after row
|
|
66
|
+
counts, revisions, hashes, FTS, foreign keys, database identity, and the exact
|
|
67
|
+
schema fingerprint pass.
|
|
66
68
|
|
|
67
69
|
## Note Lifecycle
|
|
68
70
|
|
|
@@ -72,7 +74,7 @@ Manual MCP writes and automatic writes use the same invariants:
|
|
|
72
74
|
2. Calculate the canonical content SHA-256.
|
|
73
75
|
3. Commit the note mutation and its provenance/revision in one transaction.
|
|
74
76
|
4. Maintain supersession status and the `SUPERSEDES` edge when applicable.
|
|
75
|
-
5. Enqueue identity-only derived-index operations
|
|
77
|
+
5. Enqueue required identity-only derived-index operations in the same commit.
|
|
76
78
|
6. Let SQLite triggers update FTS5 for insert, update, and delete.
|
|
77
79
|
|
|
78
80
|
Only active notes are returned by normal recall. Superseded and archived state
|
|
@@ -99,9 +101,10 @@ Capture requires all of these gates:
|
|
|
99
101
|
matches project ID, workspace ID, and canonical directory.
|
|
100
102
|
3. Only terminal user/assistant text or terminal tool status is projected.
|
|
101
103
|
4. Credential and private-key patterns are removed or quarantined.
|
|
102
|
-
5. The strict `
|
|
104
|
+
5. The strict `CaptureEventV2` parser enforces UTF-8 size, kind-specific source identity, event
|
|
103
105
|
kind, and redaction metadata.
|
|
104
|
-
6. A
|
|
106
|
+
6. A v2 tuple-hashed idempotency key prevents replay duplicates and rejects
|
|
107
|
+
mismatched reuse as an idempotency conflict.
|
|
105
108
|
7. Shadow modes stop at the audit event. `auto-write` continues only for an
|
|
106
109
|
allowed kind, explicit durable evidence, supported intent, and confidence at
|
|
107
110
|
or above policy.
|
|
@@ -116,9 +119,11 @@ stopped at the deadline, overdue work is drained on the next MCP or plugin start
|
|
|
116
119
|
## Retrieval Pipeline
|
|
117
120
|
|
|
118
121
|
Retrieval starts with project-filtered lexical FTS5 results. Same-project graph
|
|
119
|
-
neighbors can be added with bounded fan-out.
|
|
120
|
-
|
|
121
|
-
|
|
122
|
+
neighbors can be added with bounded fan-out. Optional backend responses are
|
|
123
|
+
strictly parsed, validated against current canonical rows in bounded batch SQL,
|
|
124
|
+
and discarded when project, revision, or derived hash differs. A deterministic
|
|
125
|
+
reciprocal-rank fusion step deduplicates candidates and returns at most eight
|
|
126
|
+
cards within one deadline for the complete pipeline.
|
|
122
127
|
|
|
123
128
|
The plugin formats cards inside an escaped
|
|
124
129
|
`<agz-memory-context trust="untrusted">` envelope capped at 4,800 characters.
|
|
@@ -128,7 +133,7 @@ original OpenCode context unchanged.
|
|
|
128
133
|
|
|
129
134
|
Semantic providers implement an optional backend contract: project-filtered
|
|
130
135
|
query, idempotent upsert, deterministic delete, full project purge, and health.
|
|
131
|
-
No provider is enabled in `0.
|
|
136
|
+
No provider is enabled in `0.5.1`. The SQLite lexical/graph path remains fully
|
|
132
137
|
functional without one.
|
|
133
138
|
|
|
134
139
|
## Derived Index Outbox
|
|
@@ -138,15 +143,26 @@ content hash. It never stores note text. Workers lease rows, derive content
|
|
|
138
143
|
from the canonical database at execution time, and acknowledge success only
|
|
139
144
|
after the backend call completes.
|
|
140
145
|
|
|
141
|
-
Leases
|
|
146
|
+
Leases heartbeat while work runs and every completion is conditional on the
|
|
147
|
+
lease owner, generation, and monotonic fence. Backend calls have a hard timeout
|
|
148
|
+
even when they ignore `AbortSignal`. Retries use bounded exponential backoff;
|
|
142
149
|
terminal failures become `dead` and are visible through the admin CLI. Project
|
|
143
|
-
purge is a first-class operation
|
|
144
|
-
|
|
150
|
+
purge is a first-class operation, and each reindex generation queues a purge
|
|
151
|
+
before a transactional snapshot of active-note upserts.
|
|
152
|
+
|
|
153
|
+
Outbox adapters must declare `agz-memory-outbox/1` and atomically reject an
|
|
154
|
+
operation context older than the greatest `(sequence, fence)` already applied
|
|
155
|
+
for that backend and project. `sequence` orders distinct queue rows while
|
|
156
|
+
`fence` orders competing leases for one row; `operationKey` makes an accepted
|
|
157
|
+
attempt idempotent. An adapter that cannot enforce this protocol is not eligible
|
|
158
|
+
for outbox registration.
|
|
145
159
|
|
|
146
160
|
## Backup, Migration, And Restore
|
|
147
161
|
|
|
148
|
-
|
|
149
|
-
|
|
162
|
+
Every normal database handle publishes a lifetime lease. Migration, restore,
|
|
163
|
+
backup publication, and prune acquire an exclusive filesystem maintenance gate
|
|
164
|
+
and refuse to proceed while an active or unverifiable lease exists. Before the
|
|
165
|
+
first schema mutation, AGZ Memory checkpoints WAL,
|
|
150
166
|
creates a SQLite-consistent copy with `VACUUM INTO`, verifies integrity and row
|
|
151
167
|
counts, hashes the bytes, and atomically publishes both database and
|
|
152
168
|
`agz-memory-backup/1` manifest.
|
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,80 @@
|
|
|
3
3
|
All notable changes to AGZ Memory are recorded here. The project follows
|
|
4
4
|
[Semantic Versioning](https://semver.org/).
|
|
5
5
|
|
|
6
|
+
## [0.5.1] - 2026-09-04
|
|
7
|
+
|
|
8
|
+
> Candidate metadata only; no npm publication, Git tag, or merge is claimed.
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- Hardened Phase 1 stabilization with the migration-root fix, shared limits and
|
|
13
|
+
typed errors, bounded pagination, strict default-off plugin configuration,
|
|
14
|
+
bounded late attachment/shutdown, and resumable administrative reindexing.
|
|
15
|
+
- Added the 10-sample p95 migration timing artifact, safe clean/evidence
|
|
16
|
+
tooling, and keyed quarantine HMAC rotation with Windows fail-closed behavior.
|
|
17
|
+
|
|
18
|
+
### Security
|
|
19
|
+
|
|
20
|
+
- Preserved exactly nine MCP tools, SQLite schema 11, semantic backend `none`,
|
|
21
|
+
and inert plugin defaults.
|
|
22
|
+
|
|
23
|
+
## [0.5.0] - 2026-09-02
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
|
|
27
|
+
- Added SQLite schema 11 database identity, exact schema fingerprinting,
|
|
28
|
+
domain-separated length-prefixed hash tuples, composite tenant foreign keys,
|
|
29
|
+
and a deterministic lossless schema-10 migration.
|
|
30
|
+
- Added a cross-process maintenance gate with lifetime database leases,
|
|
31
|
+
no-symlink path checks, streaming verified restore, rollback verification,
|
|
32
|
+
and deep doctor invariants.
|
|
33
|
+
- Added generated reindex operations with purge-first snapshots, fenced and
|
|
34
|
+
heartbeat-protected outbox leases, hard backend timeouts, and explicit retry.
|
|
35
|
+
- Added Linux minimum/current Bun, macOS, Windows, property, stress, restore,
|
|
36
|
+
benchmark, package-install, CodeQL, and dependency-review CI gates.
|
|
37
|
+
|
|
38
|
+
### Changed
|
|
39
|
+
|
|
40
|
+
- Advanced capture to `agz-memory.capture/2` with strict kind-specific source
|
|
41
|
+
identities, UTF-8 byte limits, fail-closed redaction, and idempotency conflict
|
|
42
|
+
detection.
|
|
43
|
+
- Made canonical note, revision, provenance, supersession, and required outbox
|
|
44
|
+
mutations share immediate transactions with optimistic revision checks.
|
|
45
|
+
- Bounded plugin reconciliation and history/context probes, preserved turn
|
|
46
|
+
opt-out across hook order and restart, kept prompt capture from advancing the
|
|
47
|
+
reconciliation watermark, validated every event against the full binding,
|
|
48
|
+
and made shutdown independent of hung OpenCode calls.
|
|
49
|
+
- Hardened retrieval with one end-to-end deadline, strict backend parsing,
|
|
50
|
+
batched canonical validation, deterministic fusion, directed graph handling,
|
|
51
|
+
and Unicode-safe context limits.
|
|
52
|
+
|
|
53
|
+
### Security
|
|
54
|
+
|
|
55
|
+
- Preserved exactly nine MCP tools, fail-closed project isolation, untrusted
|
|
56
|
+
context envelopes, inert plugin defaults, and semantic backend `none`.
|
|
57
|
+
- Added the complete [AGZ-001 through AGZ-068 resolution record](docs/review-resolution.md).
|
|
58
|
+
- Rejects unsupported databases before permission or journal mutation and
|
|
59
|
+
serializes administrative backup/prune with active database handles.
|
|
60
|
+
|
|
61
|
+
## [0.4.2] - 2026-09-02
|
|
62
|
+
|
|
63
|
+
### Added
|
|
64
|
+
|
|
65
|
+
- Added a versioned `agz-memory` OpenCode skill catalog to the core npm package
|
|
66
|
+
and documented the explicit immutable skill source used for discovery.
|
|
67
|
+
|
|
68
|
+
### Changed
|
|
69
|
+
|
|
70
|
+
- Expanded MCP `initialize` guidance so an unfamiliar agent reuses the correct
|
|
71
|
+
durable project, recalls before relying on history, records only verified
|
|
72
|
+
outcomes, and handles non-atomic or destructive mutations safely.
|
|
73
|
+
- Added field-level descriptions to the nine tool schemas, including directed
|
|
74
|
+
link semantics, note content behavior, batch ordering, and selector roles.
|
|
75
|
+
- Corrected MCP tool annotations for closed-world operation, destructive
|
|
76
|
+
rename/unpin behavior, and safe idempotent retries.
|
|
77
|
+
- Documented that npm installation does not itself activate a skill and that
|
|
78
|
+
installers must not modify the user's ambient global `AGENTS.md` policy.
|
|
79
|
+
|
|
6
80
|
## [0.4.1] - 2026-09-01
|
|
7
81
|
|
|
8
82
|
### Fixed
|
|
@@ -74,6 +148,8 @@ All notable changes to AGZ Memory are recorded here. The project follows
|
|
|
74
148
|
- Preserved the nine-tool MCP interface and project-isolation guarantees while
|
|
75
149
|
establishing the AGZ Memory public packages and repository.
|
|
76
150
|
|
|
151
|
+
[0.5.0]: https://github.com/ugur-murat-alt/agz-memory/releases/tag/v0.5.0
|
|
152
|
+
[0.4.2]: https://github.com/ugur-murat-alt/agz-memory/releases/tag/v0.4.2
|
|
77
153
|
[0.4.1]: https://github.com/ugur-murat-alt/agz-memory/releases/tag/v0.4.1
|
|
78
154
|
[0.4.0]: https://github.com/ugur-murat-alt/agz-memory/releases/tag/v0.4.0
|
|
79
155
|
[0.4.0-beta.1]: https://github.com/ugur-murat-alt/agz-memory/releases/tag/v0.4.0-beta.1
|
package/README.md
CHANGED
|
@@ -10,6 +10,9 @@ as two independently usable packages that advance at the same version:
|
|
|
10
10
|
- `@vaur94/agz-memory-plugin`: an optional OpenCode V2 adapter for bounded
|
|
11
11
|
retrieval and deliberately staged automatic capture.
|
|
12
12
|
|
|
13
|
+
**0.5.1 status:** This repository documents a candidate only. It does not claim
|
|
14
|
+
npm publication, a Git tag, or a merge.
|
|
15
|
+
|
|
13
16
|
The MCP server is ready for normal use. The plugin starts inert: no project is
|
|
14
17
|
created, no session is captured, and no context is injected until an explicit
|
|
15
18
|
binding and rollout mode are configured.
|
|
@@ -20,7 +23,7 @@ binding and rollout mode are configured.
|
|
|
20
23
|
project name.
|
|
21
24
|
- Notes can be pinned, linked, superseded, revised, searched, and inspected
|
|
22
25
|
without mixing projects.
|
|
23
|
-
- SQLite schema
|
|
26
|
+
- SQLite schema v11 is the canonical source of truth; optional semantic indexes
|
|
24
27
|
are replaceable derivatives.
|
|
25
28
|
- Destructive project deletion requires the immutable ID, exact current name,
|
|
26
29
|
and a fixed confirmation phrase.
|
|
@@ -32,12 +35,12 @@ binding and rollout mode are configured.
|
|
|
32
35
|
|
|
33
36
|
| Component | Supported version |
|
|
34
37
|
|---|---|
|
|
35
|
-
| Core and MCP | `0.
|
|
36
|
-
| OpenCode plugin | `0.
|
|
38
|
+
| Core and MCP | `0.5.1` |
|
|
39
|
+
| OpenCode plugin | `0.5.1` |
|
|
37
40
|
| OpenCode V2 | `0.0.0-beta-18743` |
|
|
38
41
|
| `@opencode-ai/plugin` | `0.0.0-beta-18743` |
|
|
39
42
|
| Bun | `>=1.3.14` |
|
|
40
|
-
| SQLite schema | `
|
|
43
|
+
| SQLite schema | `11` |
|
|
41
44
|
|
|
42
45
|
The MCP server is not tied to an OpenCode beta. The optional plugin disables
|
|
43
46
|
itself unless the running OpenCode version exactly matches the supported beta.
|
|
@@ -47,18 +50,21 @@ itself unless the running OpenCode version exactly matches the supported beta.
|
|
|
47
50
|
Run the server directly:
|
|
48
51
|
|
|
49
52
|
```sh
|
|
50
|
-
bunx @vaur94/agz-memory@0.
|
|
53
|
+
bunx @vaur94/agz-memory@0.5.1
|
|
51
54
|
```
|
|
52
55
|
|
|
53
56
|
Or register it in OpenCode V2 under `mcp.servers`:
|
|
54
57
|
|
|
55
58
|
```jsonc
|
|
56
59
|
{
|
|
60
|
+
"skills": [
|
|
61
|
+
"https://raw.githubusercontent.com/ugur-murat-alt/agz-memory/v0.5.1/skills/"
|
|
62
|
+
],
|
|
57
63
|
"mcp": {
|
|
58
64
|
"servers": {
|
|
59
65
|
"agz-memory": {
|
|
60
66
|
"type": "local",
|
|
61
|
-
"command": ["bunx", "@vaur94/agz-memory@0.
|
|
67
|
+
"command": ["bunx", "@vaur94/agz-memory@0.5.1"],
|
|
62
68
|
"environment": {
|
|
63
69
|
"OPENCODE_MEMORY_DATABASE_PATH": "{env:OPENCODE_MEMORY_DATABASE_PATH}"
|
|
64
70
|
},
|
|
@@ -69,6 +75,20 @@ Or register it in OpenCode V2 under `mcp.servers`:
|
|
|
69
75
|
}
|
|
70
76
|
```
|
|
71
77
|
|
|
78
|
+
The npm package contains the versioned `agz-memory` skill catalog, but npm
|
|
79
|
+
installation alone does not make a skill discoverable. The explicit `skills`
|
|
80
|
+
entry above lets OpenCode download and advertise the same workflow lazily. The
|
|
81
|
+
MCP remains fully usable without it because the server supplies concise
|
|
82
|
+
`initialize` instructions and complete tool schemas on every connection.
|
|
83
|
+
|
|
84
|
+
Installation must not edit `~/.config/opencode/AGENTS.md`. That file is
|
|
85
|
+
user-owned, ambient policy for every project, not an extension installation
|
|
86
|
+
surface. Teams may maintain their own memory policy there, but AGZ Memory does
|
|
87
|
+
not require one. `codemode: false` is intentional for this small fixed catalog:
|
|
88
|
+
it exposes all nine tools directly. If Code Mode is enabled instead, the server
|
|
89
|
+
instructions, tool descriptions, and optional skill still describe the same
|
|
90
|
+
workflow.
|
|
91
|
+
|
|
72
92
|
The default database is
|
|
73
93
|
`~/.local/share/opencode-memory/memory.sqlite`. Set
|
|
74
94
|
`OPENCODE_MEMORY_DATABASE_PATH` before OpenCode starts to use another path.
|
|
@@ -113,7 +133,7 @@ options:
|
|
|
113
133
|
{
|
|
114
134
|
"plugins": [
|
|
115
135
|
{
|
|
116
|
-
"package": "@vaur94/agz-memory-plugin@0.
|
|
136
|
+
"package": "@vaur94/agz-memory-plugin@0.5.1",
|
|
117
137
|
"options": {
|
|
118
138
|
"mode": "off",
|
|
119
139
|
"autoCreateProjects": false,
|
|
@@ -186,11 +206,11 @@ quality, and latency gates.
|
|
|
186
206
|
The admin CLI reads the same `OPENCODE_MEMORY_DATABASE_PATH`:
|
|
187
207
|
|
|
188
208
|
```sh
|
|
189
|
-
bunx --package @vaur94/agz-memory@0.
|
|
190
|
-
bunx --package @vaur94/agz-memory@0.
|
|
191
|
-
bunx --package @vaur94/agz-memory@0.
|
|
192
|
-
bunx --package @vaur94/agz-memory@0.
|
|
193
|
-
bunx --package @vaur94/agz-memory@0.
|
|
209
|
+
bunx --package @vaur94/agz-memory@0.5.1 agz-memory-admin doctor
|
|
210
|
+
bunx --package @vaur94/agz-memory@0.5.1 agz-memory-admin backup
|
|
211
|
+
bunx --package @vaur94/agz-memory@0.5.1 agz-memory-admin upgrade --to 11
|
|
212
|
+
bunx --package @vaur94/agz-memory@0.5.1 agz-memory-admin capture status
|
|
213
|
+
bunx --package @vaur94/agz-memory@0.5.1 agz-memory-admin outbox status
|
|
194
214
|
```
|
|
195
215
|
|
|
196
216
|
Upgrades take an exclusive migration lock and create a verified backup before
|
|
@@ -199,7 +219,7 @@ restore. Restore and backup deletion use dry-run output plus explicit
|
|
|
199
219
|
confirmation values; never guess them.
|
|
200
220
|
|
|
201
221
|
Use [the backup and restore runbook](docs/backup-restore-runbook.md) for a full
|
|
202
|
-
rehearsal. Final `0.
|
|
222
|
+
rehearsal. Final `0.5.1` backup manifests use `agz-memory-backup/1`; prerelease
|
|
203
223
|
manifests must be handled by the prerelease that created them.
|
|
204
224
|
|
|
205
225
|
## Security Model
|
|
@@ -224,15 +244,19 @@ Report vulnerabilities privately as described in [SECURITY.md](SECURITY.md).
|
|
|
224
244
|
```sh
|
|
225
245
|
bun install --frozen-lockfile
|
|
226
246
|
bun run release:verify
|
|
227
|
-
bun test
|
|
228
247
|
bun run check
|
|
248
|
+
bun test
|
|
249
|
+
bun run test:property
|
|
250
|
+
bun run test:stress
|
|
251
|
+
bun run test:restore
|
|
252
|
+
bun run benchmark:gate
|
|
229
253
|
bun run build
|
|
230
|
-
bun run benchmark 10000 100
|
|
231
254
|
npm pack --dry-run --json
|
|
232
255
|
```
|
|
233
256
|
|
|
234
257
|
`release:verify` rejects package-version drift, mismatched bilingual sections,
|
|
235
|
-
stale
|
|
258
|
+
stale release pins, an incomplete AGZ-001 through AGZ-068 resolution table, and
|
|
259
|
+
any tracked reintroduction of the retired project name.
|
|
236
260
|
The test suite covers project isolation, destructive confirmation, migration,
|
|
237
261
|
backup/restore, capture safety, revisions, provenance, FTS, retrieval, outbox,
|
|
238
262
|
and the exact nine-tool MCP surface.
|
|
@@ -242,6 +266,8 @@ and the exact nine-tool MCP surface.
|
|
|
242
266
|
- [Architecture](ARCHITECTURE.md)
|
|
243
267
|
- [Changelog](CHANGELOG.md)
|
|
244
268
|
- [Backup and restore runbook](docs/backup-restore-runbook.md)
|
|
269
|
+
- [Schema 11 contract](docs/schema-v11.md)
|
|
270
|
+
- [Review resolution](docs/review-resolution.md)
|
|
245
271
|
- [Contributing](CONTRIBUTING.md)
|
|
246
272
|
- [Security policy](SECURITY.md)
|
|
247
273
|
- [GitHub repository](https://github.com/ugur-murat-alt/agz-memory)
|
package/README.tr.md
CHANGED
|
@@ -10,6 +10,9 @@ Aynı sürümde ilerleyen, birbirinden bağımsız kullanılabilen iki paket sun
|
|
|
10
10
|
- `@vaur94/agz-memory-plugin`: sınırlı geri çağırma ve bilinçli olarak aşamalı
|
|
11
11
|
otomatik yakalama için isteğe bağlı OpenCode V2 bağdaştırıcısı.
|
|
12
12
|
|
|
13
|
+
**0.5.1 durumu:** Bu depo yalnızca aday sürüm metadata'sını belgeler; npm
|
|
14
|
+
yayımlama, Git etiketi veya birleştirme iddiası içermez.
|
|
15
|
+
|
|
13
16
|
MCP sunucusu normal kullanım için hazırdır. Eklenti hareketsiz başlar: açık bir
|
|
14
17
|
eşleme ve devreye alma modu verilene kadar proje oluşturmaz, oturum yakalamaz ve
|
|
15
18
|
bağlam eklemez.
|
|
@@ -20,7 +23,7 @@ bağlam eklemez.
|
|
|
20
23
|
sınırlandırılır.
|
|
21
24
|
- Notlar projeler karışmadan sabitlenebilir, bağlanabilir, hükümsüz bırakılabilir,
|
|
22
25
|
sürümlenebilir, aranabilir ve incelenebilir.
|
|
23
|
-
- SQLite schema
|
|
26
|
+
- SQLite schema v11 tek yetkili veri kaynağıdır; isteğe bağlı anlamsal indeksler
|
|
24
27
|
yeniden üretilebilir türevlerdir.
|
|
25
28
|
- Yıkıcı proje silme işlemi değişmez ID, güncel ad ve sabit onay ifadesi ister.
|
|
26
29
|
- Yedek manifestleri geri yüklemeden önce satır sayılarını, SQLite bütünlüğünü,
|
|
@@ -32,12 +35,12 @@ bağlam eklemez.
|
|
|
32
35
|
|
|
33
36
|
| Bileşen | Desteklenen sürüm |
|
|
34
37
|
|---|---|
|
|
35
|
-
| Çekirdek ve MCP | `0.
|
|
36
|
-
| OpenCode eklentisi | `0.
|
|
38
|
+
| Çekirdek ve MCP | `0.5.1` |
|
|
39
|
+
| OpenCode eklentisi | `0.5.1` |
|
|
37
40
|
| OpenCode V2 | `0.0.0-beta-18743` |
|
|
38
41
|
| `@opencode-ai/plugin` | `0.0.0-beta-18743` |
|
|
39
42
|
| Bun | `>=1.3.14` |
|
|
40
|
-
| SQLite schema | `
|
|
43
|
+
| SQLite schema | `11` |
|
|
41
44
|
|
|
42
45
|
MCP sunucusu bir OpenCode beta sürümüne bağlı değildir. İsteğe bağlı eklenti,
|
|
43
46
|
çalışan OpenCode sürümü desteklenen beta ile tam eşleşmezse kendini kapatır.
|
|
@@ -47,18 +50,21 @@ MCP sunucusu bir OpenCode beta sürümüne bağlı değildir. İsteğe bağlı e
|
|
|
47
50
|
Sunucuyu doğrudan çalıştırın:
|
|
48
51
|
|
|
49
52
|
```sh
|
|
50
|
-
bunx @vaur94/agz-memory@0.
|
|
53
|
+
bunx @vaur94/agz-memory@0.5.1
|
|
51
54
|
```
|
|
52
55
|
|
|
53
56
|
Ya da OpenCode V2 içinde `mcp.servers` altına kaydedin:
|
|
54
57
|
|
|
55
58
|
```jsonc
|
|
56
59
|
{
|
|
60
|
+
"skills": [
|
|
61
|
+
"https://raw.githubusercontent.com/ugur-murat-alt/agz-memory/v0.5.1/skills/"
|
|
62
|
+
],
|
|
57
63
|
"mcp": {
|
|
58
64
|
"servers": {
|
|
59
65
|
"agz-memory": {
|
|
60
66
|
"type": "local",
|
|
61
|
-
"command": ["bunx", "@vaur94/agz-memory@0.
|
|
67
|
+
"command": ["bunx", "@vaur94/agz-memory@0.5.1"],
|
|
62
68
|
"environment": {
|
|
63
69
|
"OPENCODE_MEMORY_DATABASE_PATH": "{env:OPENCODE_MEMORY_DATABASE_PATH}"
|
|
64
70
|
},
|
|
@@ -69,6 +75,21 @@ Ya da OpenCode V2 içinde `mcp.servers` altına kaydedin:
|
|
|
69
75
|
}
|
|
70
76
|
```
|
|
71
77
|
|
|
78
|
+
npm paketi, sürümlenmiş `agz-memory` skill kataloğunu taşır. Skill, ajanın
|
|
79
|
+
gerektiğinde yüklediği iş akışı talimatıdır; yalnız npm kurulumu onu
|
|
80
|
+
keşfedilebilir yapmaz. Yukarıdaki açık `skills` girdisi OpenCode'un aynı iş
|
|
81
|
+
akışını indirip ajana tanıtmasını sağlar. MCP bu girdi olmadan da tam
|
|
82
|
+
kullanılabilir; sunucu her bağlantıda kısa `initialize` talimatlarını ve eksiksiz
|
|
83
|
+
araç şemalarını sunar.
|
|
84
|
+
|
|
85
|
+
Kurulum `~/.config/opencode/AGENTS.md` dosyasını değiştirmemelidir. Bu dosya
|
|
86
|
+
eklenti kurulum yüzeyi değil, kullanıcının tüm projeler için sahip olduğu genel
|
|
87
|
+
ajan politikasıdır. Ekipler kendi hafıza politikalarını orada tutabilir, ancak
|
|
88
|
+
AGZ Memory buna ihtiyaç duymaz. `codemode: false`, küçük ve sabit katalog için
|
|
89
|
+
bilinçli seçimdir; dokuz aracın tümünü doğrudan gösterir. Code Mode açılırsa da
|
|
90
|
+
sunucu talimatları, araç açıklamaları ve isteğe bağlı skill aynı iş akışını
|
|
91
|
+
tanımlar.
|
|
92
|
+
|
|
72
93
|
Varsayılan veritabanı
|
|
73
94
|
`~/.local/share/opencode-memory/memory.sqlite` konumundadır. Başka bir yol için
|
|
74
95
|
OpenCode başlamadan önce `OPENCODE_MEMORY_DATABASE_PATH` ayarlayın. Veritabanı
|
|
@@ -114,7 +135,7 @@ ayarlarla ekleyin:
|
|
|
114
135
|
{
|
|
115
136
|
"plugins": [
|
|
116
137
|
{
|
|
117
|
-
"package": "@vaur94/agz-memory-plugin@0.
|
|
138
|
+
"package": "@vaur94/agz-memory-plugin@0.5.1",
|
|
118
139
|
"options": {
|
|
119
140
|
"mode": "off",
|
|
120
141
|
"autoCreateProjects": false,
|
|
@@ -187,11 +208,11 @@ kapılarından geçene kadar `semanticBackend` değeri `none` olmalıdır.
|
|
|
187
208
|
Yönetim aracı aynı `OPENCODE_MEMORY_DATABASE_PATH` değerini okur:
|
|
188
209
|
|
|
189
210
|
```sh
|
|
190
|
-
bunx --package @vaur94/agz-memory@0.
|
|
191
|
-
bunx --package @vaur94/agz-memory@0.
|
|
192
|
-
bunx --package @vaur94/agz-memory@0.
|
|
193
|
-
bunx --package @vaur94/agz-memory@0.
|
|
194
|
-
bunx --package @vaur94/agz-memory@0.
|
|
211
|
+
bunx --package @vaur94/agz-memory@0.5.1 agz-memory-admin doctor
|
|
212
|
+
bunx --package @vaur94/agz-memory@0.5.1 agz-memory-admin backup
|
|
213
|
+
bunx --package @vaur94/agz-memory@0.5.1 agz-memory-admin upgrade --to 11
|
|
214
|
+
bunx --package @vaur94/agz-memory@0.5.1 agz-memory-admin capture status
|
|
215
|
+
bunx --package @vaur94/agz-memory@0.5.1 agz-memory-admin outbox status
|
|
195
216
|
```
|
|
196
217
|
|
|
197
218
|
Yükseltmeler özel bir geçiş kilidi alır ve veritabanını değiştirmeden önce
|
|
@@ -200,7 +221,7 @@ dener. Geri yükleme ve yedek silme işlemleri önce deneme çıktısı, sonra a
|
|
|
200
221
|
onay değerleri ister; bu değerleri tahmin etmeyin.
|
|
201
222
|
|
|
202
223
|
Tam prova için [yedekleme ve geri yükleme runbook'unu](docs/backup-restore-runbook.tr.md)
|
|
203
|
-
kullanın. Final `0.
|
|
224
|
+
kullanın. Final `0.5.1` yedek manifestleri `agz-memory-backup/1` kullanır;
|
|
204
225
|
ön sürüm manifestleri onları oluşturan ön sürümle işlenmelidir.
|
|
205
226
|
|
|
206
227
|
## Güvenlik Modeli
|
|
@@ -225,16 +246,19 @@ Güvenlik açıklarını [SECURITY.md](SECURITY.md) içindeki özel kanaldan bil
|
|
|
225
246
|
```sh
|
|
226
247
|
bun install --frozen-lockfile
|
|
227
248
|
bun run release:verify
|
|
228
|
-
bun test
|
|
229
249
|
bun run check
|
|
250
|
+
bun test
|
|
251
|
+
bun run test:property
|
|
252
|
+
bun run test:stress
|
|
253
|
+
bun run test:restore
|
|
254
|
+
bun run benchmark:gate
|
|
230
255
|
bun run build
|
|
231
|
-
bun run benchmark 10000 100
|
|
232
256
|
npm pack --dry-run --json
|
|
233
257
|
```
|
|
234
258
|
|
|
235
259
|
`release:verify`; paket sürümü sapmasını, iki dildeki bölüm uyuşmazlığını, eski
|
|
236
|
-
|
|
237
|
-
girmesini reddeder. Testler proje izolasyonu, yıkıcı onay, schema geçişi,
|
|
260
|
+
sürüm pinlerini, eksik AGZ-001 ile AGZ-068 çözüm tablosunu ve kullanımdan
|
|
261
|
+
kaldırılan proje adının tracked dosyalara yeniden girmesini reddeder. Testler proje izolasyonu, yıkıcı onay, schema geçişi,
|
|
238
262
|
yedekleme/geri yükleme, yakalama güvenliği, revision, provenance, FTS, geri
|
|
239
263
|
çağırma, outbox ve tam dokuz araçlı MCP yüzeyini kapsar.
|
|
240
264
|
|
|
@@ -243,6 +267,8 @@ yedekleme/geri yükleme, yakalama güvenliği, revision, provenance, FTS, geri
|
|
|
243
267
|
- [Mimari](ARCHITECTURE.md)
|
|
244
268
|
- [Değişiklik günlüğü](CHANGELOG.md)
|
|
245
269
|
- [Yedekleme ve geri yükleme runbook'u](docs/backup-restore-runbook.tr.md)
|
|
270
|
+
- [Schema 11 sözleşmesi](docs/schema-v11.md)
|
|
271
|
+
- [İnceleme çözümleri](docs/review-resolution.md)
|
|
246
272
|
- [Katkı rehberi](CONTRIBUTING.md)
|
|
247
273
|
- [Güvenlik politikası](SECURITY.md)
|
|
248
274
|
- [GitHub deposu](https://github.com/ugur-murat-alt/agz-memory)
|