@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.
Files changed (45) hide show
  1. package/ARCHITECTURE.md +41 -25
  2. package/CHANGELOG.md +76 -0
  3. package/README.md +42 -16
  4. package/README.tr.md +43 -17
  5. package/dist/admin.js +4226 -758
  6. package/dist/core.js +5208 -1023
  7. package/dist/server.js +4888 -905
  8. package/dist/types/admin/quarantine.d.ts +15 -0
  9. package/dist/types/admin/reindex.d.ts +41 -0
  10. package/dist/types/capture/contract.d.ts +7 -5
  11. package/dist/types/capture/redact.d.ts +1 -0
  12. package/dist/types/config.d.ts +1 -0
  13. package/dist/types/context.d.ts +1 -1
  14. package/dist/types/contracts/error.d.ts +16 -0
  15. package/dist/types/contracts/limits.d.ts +18 -0
  16. package/dist/types/contracts/mutation.d.ts +31 -0
  17. package/dist/types/contracts/pagination.d.ts +27 -0
  18. package/dist/types/core.d.ts +6 -2
  19. package/dist/types/db/backup.d.ts +2 -1
  20. package/dist/types/db/health.d.ts +5 -1
  21. package/dist/types/db/legacy-health.d.ts +4 -0
  22. package/dist/types/db/maintenance.d.ts +21 -0
  23. package/dist/types/db/migrations/v011.d.ts +3 -0
  24. package/dist/types/db/schema.d.ts +10 -1
  25. package/dist/types/db.d.ts +12 -1
  26. package/dist/types/hash.d.ts +4 -0
  27. package/dist/types/retrieval/contract.d.ts +15 -3
  28. package/dist/types/security/quarantine-key.d.ts +47 -0
  29. package/dist/types/server.d.ts +1 -1
  30. package/dist/types/store/capture.d.ts +17 -5
  31. package/dist/types/store/outbox.d.ts +15 -3
  32. package/dist/types/store/retrieval.d.ts +2 -2
  33. package/dist/types/store.d.ts +39 -12
  34. package/dist/types/types.d.ts +1 -1
  35. package/dist/types/version.d.ts +1 -1
  36. package/docs/adr/hash-identity-v2.md +57 -0
  37. package/docs/adr/maintenance-lock.md +93 -0
  38. package/docs/backup-restore-runbook.md +36 -16
  39. package/docs/backup-restore-runbook.tr.md +36 -16
  40. package/docs/repository-hardening.md +125 -0
  41. package/docs/review-resolution.md +78 -0
  42. package/docs/schema-v11.md +75 -0
  43. package/package.json +21 -6
  44. package/skills/agz-memory/agz-memory.md +39 -0
  45. 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.4.1` runtime and SQLite schema v10.
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
- -> 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.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 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.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 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,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 v10 is the canonical source of truth; optional semantic indexes
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.4.1` |
36
- | OpenCode plugin | `0.4.1` |
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 | `10` |
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.4.1
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.4.1"],
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.4.1",
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.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
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.4.1` backup manifests use `agz-memory-backup/1`; prerelease
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 beta pins, and any tracked reintroduction of the retired project name.
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 v10 tek yetkili veri kaynağıdır; isteğe bağlı anlamsal indeksler
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.4.1` |
36
- | OpenCode eklentisi | `0.4.1` |
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 | `10` |
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.4.1
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.4.1"],
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.4.1",
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.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
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.4.1` yedek manifestleri `agz-memory-backup/1` kullanır;
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
- 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,
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)