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

_48 commits._

### Features
- **feat(engine/rocky-compiler): report a contract column whose type could not be inferred (#1615)** (7dce2ad)
- **feat(engine/rocky-sql): make SQL literal escaping a dialect-owned fact (#1605)** (98ea95c)
- **feat(engine/rocky-server): a read-scoped rocky serve token, refused on every mutating method (#1551)** (f0c0546)

### Fixes
- **fix(engine/rocky-core): refuse a hardlinked write or backup target (#1627)** (ab9a8ce)
- **fix(engine/rocky-compiler): report the bare-name dependency edge a warehouse run does not honour (#1628)** (6e7574a)
- **OWNER MERGE fix(engine): refuse the inert [schema_evolution] block and wire project freshness inheritance (#1624)** (d532956)
- **OWNER MERGE fix(engine/rocky-cli): refuse a Snowflake read that folds to a different object (decision: #1282 option A) (#1621)** (0636963)
- **fix(engine): validate metadata_columns[].value at the IR boundary — OWNER MERGE (#1610)** (4c5d74f)
- **OWNER MERGE — fix(engine): bound the runtime shutdown so a signal during a watch iteration exits (#1608)** (ea8a061)
- **OWNER MERGE fix(engine/rocky-cli): record the resume scope's schema template only when the run renders it (#1600)** (67ba00d)
- **OWNER MERGE fix(engine/rocky-core): drop warehouse from the Snowflake endpoint identity (#1612)** (c32f28f)
- **fix(engine): refuse a statement terminator in user-supplied SQL fragments (#1595)** (ba038cf)
- **fix(engine/rocky-cli): classify separator relevance from the templates a run renders (#1591)** (e0ecd12)
- **fix(ci): watch the codegen generators and stop cancelling the test suite (#1589)** (d739ae4)
- **fix(engine): structure the resume scope and sweep checkpoints with run records (#1582)** (34bc756)
- **fix(engine/rocky-mcp): write and roll back drafts no-follow (#1581)** (d732e6b)
- **fix(ci): close the fail-open holes in the change-detection job (#1580)** (7774a7b)
- **fix(engine/rocky-compiler): propagate outer-join nullability (#1579)** (1a29dbf)
- **fix(engine): refuse resuming a succeeded run and scope checkpoints per pipeline (#1573)** (540f2f0)
- **fix(engine/rocky-mcp): report a failed draft rollback instead of claiming a clean refusal (#1572)** (c501a5a)
- **fix(tools): stop reading a killed mutant as a broken build (#1555)** (07f9a78)
- **fix(ci): make required engine and codegen contexts always report (#1571)** (21639f0)
- **fix(engine): compile offline without warehouse credentials (#1558)** (facc135)
- **fix(engine/rocky-fulfill): write the staged candidate no-follow (#1570)** (8f80dab)
- **fix(engine/rocky-compiler): give the star expansion a real producer (#1567)** (f375b84)
- **fix(engine/rocky-core): read the Phase B sidecar no-follow (#1569)** (3af8c1c)
- **perf(engine/rocky-core): stop taking a write transaction on a read-only open (#1568)** (d2f1704)
- **fix(engine): mark the whole batch Failed when a batched partition run fails (#1566)** (1ec4725)
- **fix(engine/rocky-mcp): report discovery that could not run, instead of an empty list (#1565)** (e2e01c0)
- **fix(engine): refuse a default-plan flag when a plan subcommand follows (#1564)** (382f670)
- **fix(engine/rocky-cli): narrow emit-sql's surrogate-key load to the models it emits (#1556)** (6c36f5b)
- **fix: name the command that runs the declared assertions, and put the skill under engine CI (#1553)** (47ff864)
- **fix(engine): refuse when the policy cannot be read, instead of allowing (#1560)** (cca12bc)
- **fix(engine): reject --dag and duplicate selectors with a resume flag (#1546)** (8d7fc2a)
- **fix(engine): fail closed on invalid resume state (#1544)** (5461929)

### Docs
- **docs(engine): correct what Rocky can and cannot read about Snowflake identifier case (#1626)** (479ce7f)
- **docs(engine/rocky-compiler): make the I003 grep hint runnable (#1623)** (a305a2f)
- **docs(adr): make the restore-row conflict rule normative — retry with complete re-proof, refuse on failed proof (#1542)** (9f89ffc)

### Chore
- **chore: release engine 1.73.0, sdk 0.14.0, dagster 1.65.0, vscode 1.40.0 (#1637)** (b25ed62)
- **chore: release pre-flight — bump h2 (RUSTSEC-2026-0258) and fix the checkpoint-resume POC (#1634)** (d9ae814)
- **chore(deps-dev): bump fast-uri from 3.1.5 to 3.1.7 in /editors/vscode (#1593)** (ff19053)
- **chore(deps): bump astro in /docs in the docs-minor-patch group (#1574)** (e5723e3)
- **chore(deps-dev): bump the vscode-minor-patch group (#1575)** (f7c5940)
- **chore(deps-dev): bump json-schema-to-typescript in /editors/vscode (#1576)** (6b24a20)
- **chore(deps): bump the docs-minor-patch group across 1 directory with 3 updates (#1552)** (6aa7830)
- **chore(deps-dev): bump the vscode-minor-patch group across 1 directory with 6 updates (#1554)** (5fa0a59)
- **chore(deps): bump the cargo-minor-patch group across 1 directory with 4 updates (#1530)** (7ddb69b)
- **chore(deps): bump jsonschema from 0.49.9 to 0.52.0 in /engine (#1531)** (ae016e6)

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