chore(release): v0.12.2

Merged
SA
2mo ago
+421-55

Issue for this PR

Release PR — no issue. Promotes v0.12.2-beta.1 (#1341 #1342 #1343 #1344 #1345 #1346) to latest, with the fixes from this release's review.

Type of change

  • Other: release

What does this PR do?

One commit on main: the ## [0.12.2] CHANGELOG entry plus the fixes the five-persona release review and the adversarial test file turned up. Once merged, the merge commit is tagged v0.12.2, which publishes to the npm latest dist-tag (every user auto-upgrades).

Review consensus: 5/5 SHIP WITH NOTES (CTO, PM, End User, Tech Lead, Chaos Gremlin = support engineer on the first week of tickets). One P0-candidate, reproduced and fixed:

  • validate: the beta folded a quoted all-uppercase SQL reference whenever the schema held the name in lowercase — right for Snowflake (uppercase metadata, folded), wrong for Postgres/DuckDB where shipped_date held as written means "SHIPPED_DATE" is a different identifier: the beta reported valid: true, Postgres throws. The SQL is now folded only for names the schema itself folded. Regression test added; the Snowflake case still validates.
  • run: the "answered" step counter skips compaction steps (as the turn budget does), so context management after the final answer cannot trigger a spurious follow-up; the silent-turn directive bounds the tool name it interpolates (adversarial file).
  • tui: New in the skills browser is ctrl+o — ctrl+e was line-end in the filter box, the same class as the ctrl+a bug #1342 fixed. Docs updated.
  • finops: the BigQuery note names datamate_bigquery_list_database_connections for the location.
  • CHANGELOG: [0.12.2] leads with the heads-ups every latest user needs — the documented ALTIMATE_CLI_* name now wins when both spellings are set (check for ALTIMATE_CLI_DB and a stale ALTIMATE_CLI_DISABLE_AUTOUPDATE=false), and headless run exits 1 where it exited 0 — and pins the validator's known limitations. The beta's FinOps bullet is labelled pilot-only.

Deferred to follow-ups (need design): a dialect input for the validator tools; the TuiDialogSelectAction union in the plugin package; a sweep of dialog chords against line-editing keys; the three skills-browser screenshots.

How did you verify your code works?

  • bun script/release-preflight.ts --version 0.12.2 --stage pre: PASS
  • bun turbo typecheck --force: 13/13
  • test/altimate, test/flag, test/session, test/skill, run-accounting: 7,556 pass (one known skill-sync timing flake, passes alone)
  • test/skill/release-v0.12.2-adversarial.test.ts: 23 tests (env rule against odd values, lexer traps, 100k-token fold, unfold round-trip, hostile tool/workspace names, 5k-table schema)
  • OPENCODE_VERSION=0.12.2 bun run pre-release: PASS, binary reports 0.12.2
  • Package size: 173 MB compressed
  • Marker guard: clean
  • Verdaccio install sanity (Docker, linux-arm64 build): running — result posted here before merge

Not done: a beta soak or round-trip upgrade proof — the beta was published the same day; promoted on the user's decision.

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR

🤖 Generated with Claude Code

https://claude.ai/code/session_012Q51zFUmPg1WwtS5CrGJE6


Summary by cubic

Release PR promoting v0.12.2-beta.1 to latest, with fixes from the release review, a new adversarial test file, and consensus-review fixes.

  • altimate_core_validate folds quoted identifiers only when the schema itself folded them, and never on the strength of an unrelated table's column; the beta wrongly validated a quoted "SHIPPED_DATE" against lowercase Postgres/DuckDB metadata, and the quoted-lowercase collision on Snowflake is pinned as a known limitation.
  • unfold now steps over string literals, dollar strings, and comments instead of rewriting quoted values inside them.
  • Headless run: compaction steps no longer count toward the answered-step counter, so context management after the final answer won't trigger a spurious follow-up; the silent-turn directive no longer carries a tool's name or error into the prompt (kept only in the UI and stdout lines).
  • Skills browser New is now ctrl+o since ctrl+e is line-end in the filter box; docs updated.
  • FinOps BigQuery failure note now names datamate_bigquery_list_database_connections for finding a connection's location.
  • CHANGELOG entry with two upgrade heads-ups: the documented ALTIMATE_CLI_* env var name now wins when both spellings are set (check ALTIMATE_CLI_DB and a stale ALTIMATE_CLI_DISABLE_AUTOUPDATE=false), and headless run exits 1 in silent-turn cases that used to exit 0 — after a failed tool or after one that succeeded.

Summary by CodeRabbit

  • New Features

    • Updated the Skills browser and Create Skill dialog shortcut for “New” to Ctrl+O.
    • Improved guidance for resolving unknown BigQuery locations in FinOps workspace errors.
  • Bug Fixes

    • Improved SQL identifier handling for lowercase metadata, quoted references, and schema collisions.
    • Prevented unnecessary follow-up replies after compaction.
    • Follow-up messages for failed tool calls no longer repeat tool names.
  • Documentation

    • Expanded documentation of known SQL identifier-handling limitations.