# GitHub Release — v1.9.8 (copy-paste)

**Title:** v1.9.8 - Documentation Harmonization (AX Robustness)

**Tag:** `v1.9.8`

---

## Summary

**Documentation-only release.** No runtime behavior changes vs v1.9.7. All agent-facing docs now describe the **Agent Experience (AX)** features shipped in v1.9.7: lenient page resolution, safe `write_outline` fallback, path traversal guards, and the `warnings` JSON contract.

Operators and LLM hosts should point agents at **`llms.txt` v1.9.8** (or PyPI `uvx matryca-plumber` ≥ 1.9.8).

## What was aligned

| Artifact | Update |
|----------|--------|
| [`llms.txt`](../../llms.txt) / [`.well-known/llms.txt`](../../.well-known/llms.txt) | §2.3 AX robustness, mutate example, anti-patterns |
| [`SYSTEM_PROMPT.md`](../../SYSTEM_PROMPT.md) | `write_outline` pipe targets, namespace normalization, X-Ray fallback |
| [`docs/openspec/agent-ax-robustness.md`](../openspec/agent-ax-robustness.md) | **New** canonical AX spec |
| [`docs/ARCHITECTURE.md`](../ARCHITECTURE.md) | AX component table on dispatch plane |
| [`docs/openspec/agent-dx.md`](../openspec/agent-dx.md) | §5 AX robustness for CLI/MCP |
| MCP `mutate_graph` docstring | `Page Title\|block` + `warnings` |

## v1.9.7 features (unchanged in this release)

- Lenient page title normalization (`/` ↔ `___`, case-insensitive, `.md` strip)
- Safe append when `Page Title|block` is invalid but page exists
- Empty-page EOF outline write
- `heading_level` coercion without disk pollution
- 29 chaos tests in `tests/test_agent_experience_robustness.py`

## Upgrade

```bash
uvx matryca-plumber --help   # resolves latest wheel from PyPI
```

Hermes / Cursor hosts: no config change required beyond using ≥ 1.9.8 when published.

---

**Technical changelog (canonical):** see [`CHANGELOG.md`](../../CHANGELOG.md) section `[1.9.8]`.

**AX spec:** [`docs/openspec/agent-ax-robustness.md`](../openspec/agent-ax-robustness.md).
