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

**Title:** v1.9.13 - Enterprise Resilience Update

**Tag:** `v1.9.13`

---

## Summary

**Architecture release:** closes **12 high-impact latent bugs** discovered during a full-codebase resilience sprint — sandbox escapes, RAG precision leaks, LLM JSON truncation, and automation foot-guns that only surface under real vault load. The suite now stands at **704+ passing tests** with zero regressions.

**Why upgrade:** your Vault Sandbox stays intact even when wiki YAML tries to redirect `templates_subdir` outside the graph; semantic cache hits no longer cross namespaces with identical basenames; subtree reads respect heading boundaries (fewer tokens, no sibling-section bleed); corrupt vector stores and daemon ledgers self-heal instead of killing the daemon; `plumber stop` tells CI the truth when shutdown fails.

Operators should upgrade with `uvx matryca-plumber` ≥ **1.9.13**. Point LLM hosts at **`llms.txt` v1.9.13** (§2.4 Security & Sandbox · Enterprise Resilience).

## Highlights

| Area | Change |
|------|--------|
| Security & Sandbox | Block `templates_subdir` traversal; TOCTOU-safe bounded JSON reads |
| RAG & AI Precision | Namespace-aware semantic cache; embedding dedup; subtree heading fences; string-aware LLM JSON recovery |
| Core Stability | Self-healing vector store + daemon ledger; boolean tool-option rejection; truthful `plumber stop` exit code |
| Graph hygiene | Alias index respects wikilink commas; link verification covers `*`/`+` bullets |

## Fixed (grouped)

### Security & Sandbox

- **`templates_subdir` path traversal** — Vault Sandbox cannot be bypassed via wiki YAML `..` segments.
- **Bounded JSON read (TOCTOU)** — single-read cap closes stat-then-read memory-DoS race.

### RAG & AI Precision

- **Semantic cache key collision** — parent directory prefix prevents cross-namespace basename collisions.
- **Dual embedding text dedup** — identical block text is not embedded twice (cosine-score integrity).
- **Subtree heading filter** — sibling sections no longer leak into subtree excerpts.
- **LLM JSON repair** — string-aware unbalanced-slice recovery, array-root preference, and balanced trailing trim.

### Core Stability & Automation

- **Block vector store self-heal** — corrupt JSON records fall back to empty store instead of crash.
- **Journey ledger restore** — corrupt numeric daemon-state fields coerce safely on restart.
- **MCP tool options** — JSON booleans rejected instead of silently coercing to integers.
- **`plumber stop` exit code** — non-zero when daemon fails to stop (CI/CD safe).
- **Alias index** — comma-splitting respects wikilinks and quotes.
- **Link verification** — `*` and `+` markdown bullets matched alongside `-`.

## Upgrade

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

**Open the control room:**

```bash
uvx matryca-plumber status
```

---

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

**Resilience spec:** [`docs/resilience-llm-json-triz.md`](../resilience-llm-json-triz.md) · **Security:** [`docs/openspec/security-sandbox.md`](../openspec/security-sandbox.md).
