# openclaw-mem v1.5.0 release notes

Release range: `v1.4.3` -> `v1.5.0`

## Verdict
This release adds the first governed maintenance path for compiled synthesis without shipping autonomous mutation.

What is new:
- `graph synth recommend` — read-only maintenance recommendations for synthesis-card refresh or new-card follow-up
- `optimize governor-review` — read-only approval layer that turns recommendation packets into explicit decisions
- governed autonomy documentation that separates scout/helper work from approval and write authority
- refresh-only assist-apply canary contract documenting how a future write path must stay dry-run-first, rollbackable, and receipt-heavy

What is not being claimed:
- no autonomous write lane
- no background mutation scheduler
- no storage/runtime topology change

## Feature diff vs v1.4.3

### 1) New read-only maintenance command: `graph synth recommend`
Adds a bounded maintenance command for compiled synthesis.

Purpose:
- inspect stale/review pressure on synthesis cards
- inspect uncovered clustered evidence from graph lint pressure
- emit explicit next-step recommendations without mutating synthesis cards

Current action classes:
- `refresh_card`
- `compile_new_card`
- `no_action`

Key contract:
- output kind: `openclaw-mem.graph.synth.recommend.v0`
- zero-write posture
- deterministic packet output

### 2) New read-only approval command: `optimize governor-review`
Adds the explicit judgment layer between recommendation packets and any future write gate.

Purpose:
- consume recommendation packets
- emit explicit decision packets
- keep writes at zero in this release

Current decision ladder:
- `ignore`
- `proposal_only`
- `approved_for_apply`
- `blocked_high_risk`

Key contract:
- input kind: `openclaw-mem.graph.synth.recommend.v0`
- output kind: `openclaw-mem.optimize.governor-review.v0`
- zero-write posture preserved

### 3) External documentation tightened
Public-facing docs were revised to better explain:
- compiled synthesis as a derived, provenance-carrying layer
- Dream Lite maintenance as a read-only recommendation flow
- review/approval as a distinct step before any future write path

Updated external-doc surfaces include:
- `docs/agent-memory-skill.md`
- `docs/mem-engine.md`
- `docs/roadmap.md`
- `docs/specs/graphic-memory-compiled-synthesis-v0.md`
- `docs/specs/governed-dreaming-suggestion-write-authority-v0.md`
- `docs/specs/compiled-synthesis-assist-apply-canary-v0.md`

### 4) Governed-maintenance authority split documented
The release documents a clear split for future automation:
- scout/helper lanes may inspect and packetize signals
- approval remains explicit
- future write authority remains behind a separate governed gate

### 5) Refresh-only canary apply-readiness contract
This release does not ship apply, but it documents the safest next gate:
- dry-run first
- rollback artifact required
- before/after receipts required
- `refresh_card` only in the first canary posture
- `compile_new_card` intentionally excluded from auto-apply in v0

## Verification receipts
### Targeted automated pass
```bash
python3 -m unittest -q tests.test_cli tests.test_optimize_governor_review tests.test_optimize_policy_loop
```
Receipt:
- `Ran 115 tests ... OK`

### CLI help / parser contract
Verified:
- `python3 -m openclaw_mem graph synth --help`
- `python3 -m openclaw_mem optimize governor-review --help`

### Read-only smokes
Verified:
- `python3 -m openclaw_mem graph --json synth recommend`
- `python3 -m openclaw_mem optimize governor-review --json --from-file /tmp/recommend_packet_release.json --governor lyria --approve-refresh`

### Zero-write audit
A dedicated SQLite audit DB was hashed before and after running both release commands.
Receipt:
- `DB before == DB after`
- zero-byte drift confirmed

## Release interpretation
`v1.5.0` is the release where compiled synthesis maintenance becomes a governed flow instead of a single recommendation command.

The product can now:
- recommend maintenance work
- review and approve recommendation packets
- describe the exact safety contract a future canary write path must satisfy

But it still cannot:
- mutate in the background
- auto-compile new cards without a later gate
- claim autonomous maintenance is shipped

## Topology statement
- runtime/system topology: unchanged
- live cron topology: unchanged
- authority/docs topology: changed
