tag:github.com,2008:https://github.com/DataRecce/recce/releasesTags from recce2026-05-27T03:42:34Ztag:github.com,2008:Repository/701239058/v1.50.02026-05-27T10:01:08Zv1.50.0<p>fix(adapter): match DuckDB 1.5.x external-access denial wording</p>
<p>DuckDB 1.5.x reworded its runtime denial from "Cannot change
<br />enable_external_access setting while database is running" to "Cannot
<br />enable external access while database is running". The pinned matcher in
<br />is_duckdb_external_access_blocked() no longer matched, so the raw
<br />InvalidInputException escaped unwrapped instead of becoming
<br />DuckDBExternalAccessBlocked — breaking the HTTP 400 contract and turning
<br />CI red (test_blocks_external_access_sql_when_disabled[SET bypass]) once
<br />duckdb==1.5.2 resolved.</p>
<p>Add the new wording to the pinned denial list, keeping the old one for
<br />DuckDB <= 1.4.x still in use.</p>
<p>Validated locally against both duckdb 1.4.4 and 1.5.2: the SET-bypass
<br />case fails without this change and passes with it.</p>
<p>Refs DRC-3578</p>
<p>Co-Authored-By: Claude <noreply@anthropic.com>
<br />Signed-off-by: Wei-Chun, Chang <wcchang@infuseai.io></p>wcchang1115tag:github.com,2008:Repository/701239058/v1.49.02026-05-20T09:13:09Zv1.49.0<p>docs(cli): add cloud-mode examples to recce mcp-server --help</p>
<p>Users discovering cloud mode through `recce mcp-server --help` had no
<br />visible example of the required flag combination. The Examples block now
<br />shows the cloud-session path in two forms — explicit `--api-token` and
<br />profile.yml-resolved token.</p>
<p>Co-Authored-By: Claude <noreply@anthropic.com>
<br />Signed-off-by: Wei-Chun, Chang <wcchang@infuseai.io></p>wcchang1115tag:github.com,2008:Repository/701239058/v1.48.02026-05-13T09:38:58Zv1.48.0<p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/DataRecce/recce/pull/1374">#1374</a> from DataRecce/feature/drc-3439-migrate-pnpm…</p>
<p>…-v10-v11-and-align-node-minimum-to-24-across</p>
<p>chore(pnpm): migrate recce to pnpm v11 + Node ≥24 (DRC-3439)</p>wcchang1115tag:github.com,2008:Repository/701239058/v1.47.12026-05-07T04:46:48Zv1.47.1<p>fix(mcp): restore cloud-snapshot mode for Recce Summary agent (DRC-3384)</p>
<p>`recce mcp-server` collapsed two distinct cloud paths into a single live
<br />CloudBackend branch. Setting RECCE_SESSION_ID (the Recce Summary agent's
<br />contract) routed into the live-session spawn (POST /api/v2/sessions/{id}/
<br />instance) and 401'd before the MCP server could start, breaking GitLab
<br />summary generation in production.</p>
<p>Split mcp-server into three explicit modes:</p>
<p>- cloud-session (public) `--cloud --session <id>`
<br /> CloudBackend proxies tool calls to a live Recce Cloud session.
<br />- cloud-snapshot (internal) `RECCE_SESSION_ID` / `RECCE_SNAPSHOT_ID` env
<br /> CloudStateLoader downloads the state file from S3 and the MCP server
<br /> runs locally against that snapshot. Used by the Recce Summary agent.
<br />- local (default) no flags / no env</p>
<p>Capture --cloud / --session BEFORE patch_derived_args() so explicit
<br />cloud-session can still be told apart from env-driven cloud-snapshot
<br />after the helper promotes session_id to cloud=True. Reset cloud=False
<br />before run_mcp_server() in non-session paths so the legacy snapshot
<br />flow doesn't take the CloudBackend branch.</p>
<p>Tests updated:
<br />- cloud-snapshot via RECCE_SESSION_ID env -> state loader, no live spawn
<br />- cloud-session via --cloud --session -> CloudBackend, no state loader</p>
<p>Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
<br />Signed-off-by: Kent Huang <kent@infuseai.io></p>kentwelcometag:github.com,2008:Repository/701239058/v1.47.02026-05-06T09:19:24Zv1.47.0<p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/DataRecce/recce/pull/1352">#1352</a> from DataRecce/feature/drc-3344-lineage-tab-…</p>
<p>…show-impact-badges-on-direct-upstreamdownstream</p>
<p>feat(lineage): show impact badges on direct upstream/downstream in Lineage tab</p>wcchang1115tag:github.com,2008:Repository/701239058/v1.46.32026-05-05T15:09:53Zv1.46.3<p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/DataRecce/recce/pull/1355">#1355</a> from DataRecce/claude/investigate-issue-1354…</p>
<p>…-VWPAP</p>
<p>fix(cll): handle compiled SQL referencing unresolved parents (<a class="issue-link js-issue-link" href="https://github.com/DataRecce/recce/issues/1354">#1354</a>)</p>even-weitag:github.com,2008:Repository/701239058/v1.46.22026-05-04T01:46:22Zv1.46.2<p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/DataRecce/recce/pull/1350">#1350</a> from DataRecce/fix/per-node-db-cross-env-cat…</p>
<p>…alog-fallback</p>
<p>fix(cll): cross-env catalog fallback in per_node.db (drop manifest)</p>even-weitag:github.com,2008:Repository/701239058/v1.46.12026-04-30T08:00:58Zv1.46.1<p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/DataRecce/recce/pull/1348">#1348</a> from DataRecce/fix/per-node-db-column-case-d…</p>
<p>…edup</p>
<p>fix(cll): dedupe per_node.db columns case-insensitively (catalog wins)</p>even-weitag:github.com,2008:Repository/701239058/v1.46.02026-05-04T01:44:00Zv1.46.0<p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/DataRecce/recce/pull/1346">#1346</a> from DataRecce/fix/drc-3343-dedupe-model-inf…</p>
<p>…o-fetch</p>
<p>fix(lineage): dedupe /api/models/{id} fetch on node click</p>wcchang1115tag:github.com,2008:Repository/701239058/v1.45.02026-04-27T07:18:19Zv1.45.0<p>Merge pull request <a class="issue-link js-issue-link" href="https://github.com/DataRecce/recce/pull/1344">#1344</a> from DataRecce/chore/dependabot-2026-04-27</p>
<p>chore(deps): consolidate dependabot updates + TypeScript 6.0</p>wcchang1115