## rocky-data/rocky — vscode-v1.38.0…vscode-v1.39.0

_36 commits._

### Features
- **feat(engine): rocky-fulfill — the reconciler loop and subprocess agent driver (E2) (#1492)** (82d10a8)
- **feat(engine): rocky product verbs, state store, and crash-safe commit protocol (part 2) (#1483)** (91f1a03)
- **feat(engine): parse and lower product specs (rocky product, part 1) (#1478)** (7af437b)

### Fixes
- **fix(examples): make the fulfillment POC seed independent of the wall clock (#1538)** (3eeebde)
- **fix(engine/rocky-compiler): enforce [rules] no_new_nullable (#1513)** (cad7314)
- **fix(engine/rocky-adapter-sdk): stop reporting unimplemented conformance specs as passed (#1506)** (44c7427)
- **fix(engine/rocky-cli): reject malformed compile config (#1522)** (8f98c4b)
- **fix(mcp): approving is opt-in — the default profile can no longer sign off a plan (#1517) (#1523)** (f9c7643)
- **fix(engine): let a repair round recover instead of failing as tampering (#1493) (#1516)** (234f032)
- **fix(engine): report the fulfill verify bundle's unevaluated data checks as deferred (#1495) (#1505)** (308b1a2)
- **perf(ci): cut the codegen merge floor and stop cache-budget eviction (#1508)** (7e2e8db)
- **fix(engine/rocky-core): no-follow both ends of the .ff-prev backup copy (#1498)** (4ef860e)
- **fix(engine/rocky-core): make the journal decide whether a backup is restored (#1503)** (3d43a7f)
- **fix(engine/rocky-cli): race every watch iteration against the signal arms (#1499)** (442ef4b)
- **fix(engine): record every partition in a batch (#1488)** (27d9471)
- **fix(engine): unblock main — watch SIGTERM race + Rust 1.98.0 clippy + toolchain pin (#1497)** (41f4415)
- **fix(engine/rocky-cli): keep one signal registration alive across watch iterations (#1490)** (7a9a838)
- **perf(engine): cap the redb cache for the request-local run-history open (#1399) (#1407)** (2f3ba34)
- **fix(engine/rocky-compiler): match DECIMAL precision and scale in contract type checking (#1489)** (3c4d736)
- **fix(engine/rocky-core): make doctor probe keys unique within a process (#1487)** (01ed005)
- **fix(engine/examples): rebuild compare-demo on the pipeline type rocky compare serves (#1480)** (9aa24ff)
- **fix(engine/examples): make seed-demo and watch-demo work as shipped (#1479)** (4a5a00b)
- **fix(engine/rocky-cli): refuse a zero-node DAG when a transformation pipeline is declared (#1476)** (c30c42c)
- **fix(engine/rocky-cli): render sidecar [columns] descriptions in rocky docs (#1475)** (45d4fa6)

### Backend
- **tools: guards for mutation checks and branch hygiene (#1514)** (3d81cd7)

### Tests
- **test(engine/rocky-core): prove the unexpected-backup refusal is recoverable (#1504)** (3fb04db)

### Docs
- **docs(engine/rocky-cli): record the compile config boundary from #1522 (#1534)** (b7adfdd)
- **docs: date the review floor — it is unconditional only since v1.71.0 (#1520)** (98e7d38)
- **docs: resolve two contradictions the red team's final pass found (#1519)** (166c782)
- **docs: make the safety claims match the code, and say what shipped (#1509, #1512) (#1518)** (22de90b)
- **docs: publish the capability matrix — what Rocky enforces, attempts, and records (#1511)** (b41635f)
- **docs(examples): fulfillment walking-skeleton POC — the loop end-to-end on one binary (E3) (#1494)** (928fcbe)
- **docs: add agent communication-style rules to AGENTS.md (#1473)** (ead5afa)

### Chore
- **chore: release engine 1.72.0, sdk 0.13.0, dagster 1.64.0, vscode 1.39.0 (#1540)** (573658c)
- **chore: dissolve the framework subproject and state the agent gates' limits in public docs (E4) (#1510)** (7041d03)
- **ci: diff both playground READMEs in the poc-counts drift gate (#1474)** (5106742)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/rocky-data/rocky?utm_source=github-action)._