@vaur94/agz-memory 0.4.1 → 0.5.0

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # AGZ Memory Architecture
2
2
 
3
- This document describes the `0.4.1` runtime and SQLite schema v10.
3
+ This document describes the `0.5.0` 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
- -> SQLite schema v10 (canonical)
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
- -> disabled in 0.4.1; backend = none
23
+ -> disabled in 0.5.0; 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 v10 contains:
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 hash. |
54
- | `capture_checkpoints` | Bounded reconciliation progress without transcript text. |
55
- | `capture_events` | Redacted, idempotent capture audit under `agz-memory.capture/1`. |
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 derived indexes. |
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 v10 migration changes product-owned persisted identities. Existing v9
62
- capture rows are copied with the final capture contract; all other data remains
63
- in place. Migration runs with foreign keys temporarily disabled inside one
64
- transaction, reenables them, then requires integrity and foreign-key checks to
65
- pass.
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 for configured backends.
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 `CaptureEventV1` parser enforces size, source identity, event
104
+ 5. The strict `CaptureEventV2` parser enforces UTF-8 size, kind-specific source identity, event
103
105
  kind, and redaction metadata.
104
- 6. A deterministic SHA-256 idempotency key prevents replay duplicates.
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. A reciprocal-rank fusion step
120
- deduplicates candidates and returns at most eight cards within the configured
121
- deadline.
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.4.1`. The SQLite lexical/graph path remains fully
136
+ No provider is enabled in `0.5.0`. 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 are reclaimable after expiry. Retries use bounded exponential backoff;
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 so a derived backend cannot retain deleted
144
- project content by omission.
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
- Database upgrades are serialized by a filesystem migration-lock directory with
149
- an owner record. Before the first schema mutation, AGZ Memory checkpoints WAL,
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,63 @@
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.0] - 2026-09-02
7
+
8
+ ### Added
9
+
10
+ - Added SQLite schema 11 database identity, exact schema fingerprinting,
11
+ domain-separated length-prefixed hash tuples, composite tenant foreign keys,
12
+ and a deterministic lossless schema-10 migration.
13
+ - Added a cross-process maintenance gate with lifetime database leases,
14
+ no-symlink path checks, streaming verified restore, rollback verification,
15
+ and deep doctor invariants.
16
+ - Added generated reindex operations with purge-first snapshots, fenced and
17
+ heartbeat-protected outbox leases, hard backend timeouts, and explicit retry.
18
+ - Added Linux minimum/current Bun, macOS, Windows, property, stress, restore,
19
+ benchmark, package-install, CodeQL, and dependency-review CI gates.
20
+
21
+ ### Changed
22
+
23
+ - Advanced capture to `agz-memory.capture/2` with strict kind-specific source
24
+ identities, UTF-8 byte limits, fail-closed redaction, and idempotency conflict
25
+ detection.
26
+ - Made canonical note, revision, provenance, supersession, and required outbox
27
+ mutations share immediate transactions with optimistic revision checks.
28
+ - Bounded plugin reconciliation and history/context probes, preserved turn
29
+ opt-out across hook order and restart, kept prompt capture from advancing the
30
+ reconciliation watermark, validated every event against the full binding,
31
+ and made shutdown independent of hung OpenCode calls.
32
+ - Hardened retrieval with one end-to-end deadline, strict backend parsing,
33
+ batched canonical validation, deterministic fusion, directed graph handling,
34
+ and Unicode-safe context limits.
35
+
36
+ ### Security
37
+
38
+ - Preserved exactly nine MCP tools, fail-closed project isolation, untrusted
39
+ context envelopes, inert plugin defaults, and semantic backend `none`.
40
+ - Added the complete [AGZ-001 through AGZ-068 resolution record](docs/review-resolution.md).
41
+ - Rejects unsupported databases before permission or journal mutation and
42
+ serializes administrative backup/prune with active database handles.
43
+
44
+ ## [0.4.2] - 2026-09-02
45
+
46
+ ### Added
47
+
48
+ - Added a versioned `agz-memory` OpenCode skill catalog to the core npm package
49
+ and documented the explicit immutable skill source used for discovery.
50
+
51
+ ### Changed
52
+
53
+ - Expanded MCP `initialize` guidance so an unfamiliar agent reuses the correct
54
+ durable project, recalls before relying on history, records only verified
55
+ outcomes, and handles non-atomic or destructive mutations safely.
56
+ - Added field-level descriptions to the nine tool schemas, including directed
57
+ link semantics, note content behavior, batch ordering, and selector roles.
58
+ - Corrected MCP tool annotations for closed-world operation, destructive
59
+ rename/unpin behavior, and safe idempotent retries.
60
+ - Documented that npm installation does not itself activate a skill and that
61
+ installers must not modify the user's ambient global `AGENTS.md` policy.
62
+
6
63
  ## [0.4.1] - 2026-09-01
7
64
 
8
65
  ### Fixed
@@ -74,6 +131,8 @@ All notable changes to AGZ Memory are recorded here. The project follows
74
131
  - Preserved the nine-tool MCP interface and project-isolation guarantees while
75
132
  establishing the AGZ Memory public packages and repository.
76
133
 
134
+ [0.5.0]: https://github.com/ugur-murat-alt/agz-memory/releases/tag/v0.5.0
135
+ [0.4.2]: https://github.com/ugur-murat-alt/agz-memory/releases/tag/v0.4.2
77
136
  [0.4.1]: https://github.com/ugur-murat-alt/agz-memory/releases/tag/v0.4.1
78
137
  [0.4.0]: https://github.com/ugur-murat-alt/agz-memory/releases/tag/v0.4.0
79
138
  [0.4.0-beta.1]: https://github.com/ugur-murat-alt/agz-memory/releases/tag/v0.4.0-beta.1
package/README.md CHANGED
@@ -20,7 +20,7 @@ binding and rollout mode are configured.
20
20
  project name.
21
21
  - Notes can be pinned, linked, superseded, revised, searched, and inspected
22
22
  without mixing projects.
23
- - SQLite schema v10 is the canonical source of truth; optional semantic indexes
23
+ - SQLite schema v11 is the canonical source of truth; optional semantic indexes
24
24
  are replaceable derivatives.
25
25
  - Destructive project deletion requires the immutable ID, exact current name,
26
26
  and a fixed confirmation phrase.
@@ -32,12 +32,12 @@ binding and rollout mode are configured.
32
32
 
33
33
  | Component | Supported version |
34
34
  |---|---|
35
- | Core and MCP | `0.4.1` |
36
- | OpenCode plugin | `0.4.1` |
35
+ | Core and MCP | `0.5.0` |
36
+ | OpenCode plugin | `0.5.0` |
37
37
  | OpenCode V2 | `0.0.0-beta-18743` |
38
38
  | `@opencode-ai/plugin` | `0.0.0-beta-18743` |
39
39
  | Bun | `>=1.3.14` |
40
- | SQLite schema | `10` |
40
+ | SQLite schema | `11` |
41
41
 
42
42
  The MCP server is not tied to an OpenCode beta. The optional plugin disables
43
43
  itself unless the running OpenCode version exactly matches the supported beta.
@@ -47,18 +47,21 @@ itself unless the running OpenCode version exactly matches the supported beta.
47
47
  Run the server directly:
48
48
 
49
49
  ```sh
50
- bunx @vaur94/agz-memory@0.4.1
50
+ bunx @vaur94/agz-memory@0.5.0
51
51
  ```
52
52
 
53
53
  Or register it in OpenCode V2 under `mcp.servers`:
54
54
 
55
55
  ```jsonc
56
56
  {
57
+ "skills": [
58
+ "https://raw.githubusercontent.com/ugur-murat-alt/agz-memory/v0.5.0/skills/"
59
+ ],
57
60
  "mcp": {
58
61
  "servers": {
59
62
  "agz-memory": {
60
63
  "type": "local",
61
- "command": ["bunx", "@vaur94/agz-memory@0.4.1"],
64
+ "command": ["bunx", "@vaur94/agz-memory@0.5.0"],
62
65
  "environment": {
63
66
  "OPENCODE_MEMORY_DATABASE_PATH": "{env:OPENCODE_MEMORY_DATABASE_PATH}"
64
67
  },
@@ -69,6 +72,20 @@ Or register it in OpenCode V2 under `mcp.servers`:
69
72
  }
70
73
  ```
71
74
 
75
+ The npm package contains the versioned `agz-memory` skill catalog, but npm
76
+ installation alone does not make a skill discoverable. The explicit `skills`
77
+ entry above lets OpenCode download and advertise the same workflow lazily. The
78
+ MCP remains fully usable without it because the server supplies concise
79
+ `initialize` instructions and complete tool schemas on every connection.
80
+
81
+ Installation must not edit `~/.config/opencode/AGENTS.md`. That file is
82
+ user-owned, ambient policy for every project, not an extension installation
83
+ surface. Teams may maintain their own memory policy there, but AGZ Memory does
84
+ not require one. `codemode: false` is intentional for this small fixed catalog:
85
+ it exposes all nine tools directly. If Code Mode is enabled instead, the server
86
+ instructions, tool descriptions, and optional skill still describe the same
87
+ workflow.
88
+
72
89
  The default database is
73
90
  `~/.local/share/opencode-memory/memory.sqlite`. Set
74
91
  `OPENCODE_MEMORY_DATABASE_PATH` before OpenCode starts to use another path.
@@ -113,7 +130,7 @@ options:
113
130
  {
114
131
  "plugins": [
115
132
  {
116
- "package": "@vaur94/agz-memory-plugin@0.4.1",
133
+ "package": "@vaur94/agz-memory-plugin@0.5.0",
117
134
  "options": {
118
135
  "mode": "off",
119
136
  "autoCreateProjects": false,
@@ -186,11 +203,11 @@ quality, and latency gates.
186
203
  The admin CLI reads the same `OPENCODE_MEMORY_DATABASE_PATH`:
187
204
 
188
205
  ```sh
189
- bunx --package @vaur94/agz-memory@0.4.1 agz-memory-admin doctor
190
- bunx --package @vaur94/agz-memory@0.4.1 agz-memory-admin backup
191
- bunx --package @vaur94/agz-memory@0.4.1 agz-memory-admin upgrade --to 10
192
- bunx --package @vaur94/agz-memory@0.4.1 agz-memory-admin capture status
193
- bunx --package @vaur94/agz-memory@0.4.1 agz-memory-admin outbox status
206
+ bunx --package @vaur94/agz-memory@0.5.0 agz-memory-admin doctor
207
+ bunx --package @vaur94/agz-memory@0.5.0 agz-memory-admin backup
208
+ bunx --package @vaur94/agz-memory@0.5.0 agz-memory-admin upgrade --to 11
209
+ bunx --package @vaur94/agz-memory@0.5.0 agz-memory-admin capture status
210
+ bunx --package @vaur94/agz-memory@0.5.0 agz-memory-admin outbox status
194
211
  ```
195
212
 
196
213
  Upgrades take an exclusive migration lock and create a verified backup before
@@ -199,7 +216,7 @@ restore. Restore and backup deletion use dry-run output plus explicit
199
216
  confirmation values; never guess them.
200
217
 
201
218
  Use [the backup and restore runbook](docs/backup-restore-runbook.md) for a full
202
- rehearsal. Final `0.4.1` backup manifests use `agz-memory-backup/1`; prerelease
219
+ rehearsal. Final `0.5.0` backup manifests use `agz-memory-backup/1`; prerelease
203
220
  manifests must be handled by the prerelease that created them.
204
221
 
205
222
  ## Security Model
@@ -224,15 +241,19 @@ Report vulnerabilities privately as described in [SECURITY.md](SECURITY.md).
224
241
  ```sh
225
242
  bun install --frozen-lockfile
226
243
  bun run release:verify
227
- bun test
228
244
  bun run check
245
+ bun test
246
+ bun run test:property
247
+ bun run test:stress
248
+ bun run test:restore
249
+ bun run benchmark:gate
229
250
  bun run build
230
- bun run benchmark 10000 100
231
251
  npm pack --dry-run --json
232
252
  ```
233
253
 
234
254
  `release:verify` rejects package-version drift, mismatched bilingual sections,
235
- stale beta pins, and any tracked reintroduction of the retired project name.
255
+ stale release pins, an incomplete AGZ-001 through AGZ-068 resolution table, and
256
+ any tracked reintroduction of the retired project name.
236
257
  The test suite covers project isolation, destructive confirmation, migration,
237
258
  backup/restore, capture safety, revisions, provenance, FTS, retrieval, outbox,
238
259
  and the exact nine-tool MCP surface.
@@ -242,6 +263,8 @@ and the exact nine-tool MCP surface.
242
263
  - [Architecture](ARCHITECTURE.md)
243
264
  - [Changelog](CHANGELOG.md)
244
265
  - [Backup and restore runbook](docs/backup-restore-runbook.md)
266
+ - [Schema 11 contract](docs/schema-v11.md)
267
+ - [Review resolution](docs/review-resolution.md)
245
268
  - [Contributing](CONTRIBUTING.md)
246
269
  - [Security policy](SECURITY.md)
247
270
  - [GitHub repository](https://github.com/ugur-murat-alt/agz-memory)
package/README.tr.md CHANGED
@@ -20,7 +20,7 @@ bağlam eklemez.
20
20
  sınırlandırılır.
21
21
  - Notlar projeler karışmadan sabitlenebilir, bağlanabilir, hükümsüz bırakılabilir,
22
22
  sürümlenebilir, aranabilir ve incelenebilir.
23
- - SQLite schema v10 tek yetkili veri kaynağıdır; isteğe bağlı anlamsal indeksler
23
+ - SQLite schema v11 tek yetkili veri kaynağıdır; isteğe bağlı anlamsal indeksler
24
24
  yeniden üretilebilir türevlerdir.
25
25
  - Yıkıcı proje silme işlemi değişmez ID, güncel ad ve sabit onay ifadesi ister.
26
26
  - Yedek manifestleri geri yüklemeden önce satır sayılarını, SQLite bütünlüğünü,
@@ -32,12 +32,12 @@ bağlam eklemez.
32
32
 
33
33
  | Bileşen | Desteklenen sürüm |
34
34
  |---|---|
35
- | Çekirdek ve MCP | `0.4.1` |
36
- | OpenCode eklentisi | `0.4.1` |
35
+ | Çekirdek ve MCP | `0.5.0` |
36
+ | OpenCode eklentisi | `0.5.0` |
37
37
  | OpenCode V2 | `0.0.0-beta-18743` |
38
38
  | `@opencode-ai/plugin` | `0.0.0-beta-18743` |
39
39
  | Bun | `>=1.3.14` |
40
- | SQLite schema | `10` |
40
+ | SQLite schema | `11` |
41
41
 
42
42
  MCP sunucusu bir OpenCode beta sürümüne bağlı değildir. İsteğe bağlı eklenti,
43
43
  çalışan OpenCode sürümü desteklenen beta ile tam eşleşmezse kendini kapatır.
@@ -47,18 +47,21 @@ MCP sunucusu bir OpenCode beta sürümüne bağlı değildir. İsteğe bağlı e
47
47
  Sunucuyu doğrudan çalıştırın:
48
48
 
49
49
  ```sh
50
- bunx @vaur94/agz-memory@0.4.1
50
+ bunx @vaur94/agz-memory@0.5.0
51
51
  ```
52
52
 
53
53
  Ya da OpenCode V2 içinde `mcp.servers` altına kaydedin:
54
54
 
55
55
  ```jsonc
56
56
  {
57
+ "skills": [
58
+ "https://raw.githubusercontent.com/ugur-murat-alt/agz-memory/v0.5.0/skills/"
59
+ ],
57
60
  "mcp": {
58
61
  "servers": {
59
62
  "agz-memory": {
60
63
  "type": "local",
61
- "command": ["bunx", "@vaur94/agz-memory@0.4.1"],
64
+ "command": ["bunx", "@vaur94/agz-memory@0.5.0"],
62
65
  "environment": {
63
66
  "OPENCODE_MEMORY_DATABASE_PATH": "{env:OPENCODE_MEMORY_DATABASE_PATH}"
64
67
  },
@@ -69,6 +72,21 @@ Ya da OpenCode V2 içinde `mcp.servers` altına kaydedin:
69
72
  }
70
73
  ```
71
74
 
75
+ npm paketi, sürümlenmiş `agz-memory` skill kataloğunu taşır. Skill, ajanın
76
+ gerektiğinde yüklediği iş akışı talimatıdır; yalnız npm kurulumu onu
77
+ keşfedilebilir yapmaz. Yukarıdaki açık `skills` girdisi OpenCode'un aynı iş
78
+ akışını indirip ajana tanıtmasını sağlar. MCP bu girdi olmadan da tam
79
+ kullanılabilir; sunucu her bağlantıda kısa `initialize` talimatlarını ve eksiksiz
80
+ araç şemalarını sunar.
81
+
82
+ Kurulum `~/.config/opencode/AGENTS.md` dosyasını değiştirmemelidir. Bu dosya
83
+ eklenti kurulum yüzeyi değil, kullanıcının tüm projeler için sahip olduğu genel
84
+ ajan politikasıdır. Ekipler kendi hafıza politikalarını orada tutabilir, ancak
85
+ AGZ Memory buna ihtiyaç duymaz. `codemode: false`, küçük ve sabit katalog için
86
+ bilinçli seçimdir; dokuz aracın tümünü doğrudan gösterir. Code Mode açılırsa da
87
+ sunucu talimatları, araç açıklamaları ve isteğe bağlı skill aynı iş akışını
88
+ tanımlar.
89
+
72
90
  Varsayılan veritabanı
73
91
  `~/.local/share/opencode-memory/memory.sqlite` konumundadır. Başka bir yol için
74
92
  OpenCode başlamadan önce `OPENCODE_MEMORY_DATABASE_PATH` ayarlayın. Veritabanı
@@ -114,7 +132,7 @@ ayarlarla ekleyin:
114
132
  {
115
133
  "plugins": [
116
134
  {
117
- "package": "@vaur94/agz-memory-plugin@0.4.1",
135
+ "package": "@vaur94/agz-memory-plugin@0.5.0",
118
136
  "options": {
119
137
  "mode": "off",
120
138
  "autoCreateProjects": false,
@@ -187,11 +205,11 @@ kapılarından geçene kadar `semanticBackend` değeri `none` olmalıdır.
187
205
  Yönetim aracı aynı `OPENCODE_MEMORY_DATABASE_PATH` değerini okur:
188
206
 
189
207
  ```sh
190
- bunx --package @vaur94/agz-memory@0.4.1 agz-memory-admin doctor
191
- bunx --package @vaur94/agz-memory@0.4.1 agz-memory-admin backup
192
- bunx --package @vaur94/agz-memory@0.4.1 agz-memory-admin upgrade --to 10
193
- bunx --package @vaur94/agz-memory@0.4.1 agz-memory-admin capture status
194
- bunx --package @vaur94/agz-memory@0.4.1 agz-memory-admin outbox status
208
+ bunx --package @vaur94/agz-memory@0.5.0 agz-memory-admin doctor
209
+ bunx --package @vaur94/agz-memory@0.5.0 agz-memory-admin backup
210
+ bunx --package @vaur94/agz-memory@0.5.0 agz-memory-admin upgrade --to 11
211
+ bunx --package @vaur94/agz-memory@0.5.0 agz-memory-admin capture status
212
+ bunx --package @vaur94/agz-memory@0.5.0 agz-memory-admin outbox status
195
213
  ```
196
214
 
197
215
  Yükseltmeler özel bir geçiş kilidi alır ve veritabanını değiştirmeden önce
@@ -200,7 +218,7 @@ dener. Geri yükleme ve yedek silme işlemleri önce deneme çıktısı, sonra a
200
218
  onay değerleri ister; bu değerleri tahmin etmeyin.
201
219
 
202
220
  Tam prova için [yedekleme ve geri yükleme runbook'unu](docs/backup-restore-runbook.tr.md)
203
- kullanın. Final `0.4.1` yedek manifestleri `agz-memory-backup/1` kullanır;
221
+ kullanın. Final `0.5.0` yedek manifestleri `agz-memory-backup/1` kullanır;
204
222
  ön sürüm manifestleri onları oluşturan ön sürümle işlenmelidir.
205
223
 
206
224
  ## Güvenlik Modeli
@@ -225,16 +243,19 @@ Güvenlik açıklarını [SECURITY.md](SECURITY.md) içindeki özel kanaldan bil
225
243
  ```sh
226
244
  bun install --frozen-lockfile
227
245
  bun run release:verify
228
- bun test
229
246
  bun run check
247
+ bun test
248
+ bun run test:property
249
+ bun run test:stress
250
+ bun run test:restore
251
+ bun run benchmark:gate
230
252
  bun run build
231
- bun run benchmark 10000 100
232
253
  npm pack --dry-run --json
233
254
  ```
234
255
 
235
256
  `release:verify`; paket sürümü sapmasını, iki dildeki bölüm uyuşmazlığını, eski
236
- beta pinlerini ve kullanımdan kaldırılan proje adının tracked dosyalara yeniden
237
- girmesini reddeder. Testler proje izolasyonu, yıkıcı onay, schema geçişi,
257
+ sürüm pinlerini, eksik AGZ-001 ile AGZ-068 çözüm tablosunu ve kullanımdan
258
+ kaldırılan proje adının tracked dosyalara yeniden girmesini reddeder. Testler proje izolasyonu, yıkıcı onay, schema geçişi,
238
259
  yedekleme/geri yükleme, yakalama güvenliği, revision, provenance, FTS, geri
239
260
  çağırma, outbox ve tam dokuz araçlı MCP yüzeyini kapsar.
240
261
 
@@ -243,6 +264,8 @@ yedekleme/geri yükleme, yakalama güvenliği, revision, provenance, FTS, geri
243
264
  - [Mimari](ARCHITECTURE.md)
244
265
  - [Değişiklik günlüğü](CHANGELOG.md)
245
266
  - [Yedekleme ve geri yükleme runbook'u](docs/backup-restore-runbook.tr.md)
267
+ - [Schema 11 sözleşmesi](docs/schema-v11.md)
268
+ - [İnceleme çözümleri](docs/review-resolution.md)
246
269
  - [Katkı rehberi](CONTRIBUTING.md)
247
270
  - [Güvenlik politikası](SECURITY.md)
248
271
  - [GitHub deposu](https://github.com/ugur-murat-alt/agz-memory)