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

**Title:** v1.9.9 - Security & Sandbox Hardening

**Tag:** `v1.9.9`

---

## Summary

**Security release** closing the v1.9.x **Security & Sandbox** milestone. Hardens path sandbox reads (link verification, registry keys, wiki lint), bounds graph-local JSON checkpoints, restricts debug-log paths, templates explicit UI tokens for new installs, and migrates graph reads to `read_graph_file_text()` with a CI anti-regression gate.

Operators should upgrade with `uvx matryca-plumber` ≥ **1.9.9** and review [`.env.example`](../../.env.example) (`MATRYCA_UI_REQUIRE_EXPLICIT_TOKEN`, optional `MATRYCA_JSON_MAX_BYTES`). Point LLM hosts at **`llms.txt` v1.9.9** (§2.4 Security & Sandbox).

## Highlights

| Area | Change |
|------|--------|
| Link verification | Sandbox `_resolve_asset_path`; validate registry `page_relpath` before read |
| JSON checkpoints | `read_bounded_json()` + `MATRYCA_JSON_MAX_BYTES` (64 MiB default) |
| Graph reads | `read_graph_file_text()` migration; `make sandbox-read-check` in CI |
| Debug logging | `MATRYCA_LLM_DEBUG_LOG_PATH` allowlist + secret redaction |
| Sovereign UI | `.env.example` templates `MATRYCA_UI_REQUIRE_EXPLICIT_TOKEN=true` |

## Upgrade

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

Set `MATRYCA_UI_TOKEN` (or enable `MATRYCA_UI_REQUIRE_EXPLICIT_TOKEN=true`) on shared or multi-user hosts.

---

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

**Security spec:** [`docs/openspec/security-sandbox.md`](../openspec/security-sandbox.md).
