chore(release): v0.12.9

SA
1h ago
+1012-17

Issue for this PR

Release PR. It promotes the v0.12.8..main payload to latest as v0.12.9: #1609, #1605, #1625, #1624, #1513, #1606, #1501, #1611, #1597.

Type of change

  • Bug fix
  • New feature
  • Refactor / code improvement
  • Documentation
  • Other: release

What does this PR do?

Seven commits on top of main (2d59604e66):

  • release: v0.12.9: the CHANGELOG entry. Its heads-up for support covers:

    • where read-only is enforced by the database (PostgreSQL, SQLite, DuckDB) and where only by SQL classification;
    • the best-effort DROP/TRUNCATE block;
    • warehouse_add over MCP without --allow-write, and tool results reaching the calling agent's model;
    • the per-project tool background process, and opt-in Claude skill copies;
    • the schema_inspect listing change, the learn status wording and rule proposal cards;
    • signed-in identity and the final opt-out event in telemetry;
    • the analyst's write tools staying off under config grants, and symlink-following external-directory checks;
    • what auth logout now removes, exit status 130 on Ctrl+C during sign-in, and the 1M free-token allowance.
  • fix: release review follow-ups for v0.12.9:

    • auth logout also removes the cached telemetry identity (~/.altimate/telemetry-identity.json), as the telemetry reference already said.
    • tool run points to tool schema only when the arguments were the problem, not for SQL, connection or permission errors.
    • --allow-write help says what counts as a write.
    • Docs:
      • the DROP/TRUNCATE block is best effort, with a read-only database user recommended;
      • tool results reach the calling agent's model, and credentials don't belong in warehouse_add arguments;
      • mcp serve --workspace-tools is documented;
      • the security FAQ no longer calls signed-in telemetry anonymous or says email is hashed;
      • the config opt-out caveat is narrowed to unreadable config files;
      • the MCP workspaces note loses its draft wording.
  • test: v0.12.9 adversarial tests, and a length cap on the rule classifier:

    • test/skill/release-v0.12.9-adversarial.test.ts, 164 tests.
    • A first length cap on the rule classifier, replaced in the last commit.
  • fix: release PR review follow-ups (bot reviews on this PR):

    • the tool schema hint matches only the messages an argument problem produces, including a workspace tool schema mismatch;
    • CHANGELOG wording: warehouse_add over MCP, tool run starting the background process, the analyst's built-in tools;
    • the MCP workspaces note says which checks are not covered by tests yet;
    • the adversarial timing bounds are 15 s.
  • fix: bound the rule classifier's slow patterns instead of capping its input: two of the classifier's patterns backtracked, and a 450 KB request took about 16 s. The clause scan and the rule-cue lookahead are now bounded, so long texts are still classified whole (a cap would change what callers read from a long message) and take milliseconds. The tool schema hint also covers a missing workspace skill name or SQL field.

  • fix: bound the rule classifier's glossary cue too and test: time every rule classifier cue on 450 KB inputs: the glossary cue had the same rescan (450 KB of "means " took about 29 s); it now looks 500 characters ahead. Every cue now classifies a 450 KB input in under 100 ms locally, and the tests bound each at 5 s.

Release review: all five reviewers said ship with notes, with no P0 and no HOLD. The reviewers were CTO, product, data engineer, tech lead, and a privacy officer as this release's adversarial reviewer. Deferred findings are filed as #1648 to #1652. The SQL classifier gaps are in #1644.

After merge: tag the merge commit v0.12.9 and push only the tag, which starts release.yml.

How did you verify your code works?

  • Preflight and static checks: --stage pre preflight passed (9/9). Typecheck and the marker guard are clean.
  • Full opencode suite: 20,477 passed, 9 failed, all explained:
    • 6 MCP tests read the developer's own MCP config. They pass with an isolated HOME (15/15).
    • 2 are the --time-budget JSON-output tests that also failed in the v0.12.8 release run.
    • 1 budget-finalization subprocess test timed out under full-suite load and passes alone.
  • Release tests:
    • adversarial, rules and tool CLI tests 410/410;
    • earlier release adversarial tests 258/258;
    • every test file changed since v0.12.8: 3,798 passed, 0 failed.
  • Pre-release build: pre-release passed, and the darwin-arm64 binary reports 0.12.9.
  • Smoke test on that binary (tool list, then tool run sql_execute against SQLite, with and without the daemon):
    • reads ran;
    • writes needed --allow-write;
    • TRUNCATE was refused even with it;
    • invalid JSON arguments pointed to tool schema;
    • tool daemon status and stop worked.

Cost side effects

None added by the release commits. The included PRs describe their own: #1605 makes one model call to word each proposed rule, and the tool daemon from #1609 runs only the queries its callers send.

Screenshots / recordings

N/A

Checklist

  • I have tested my changes locally
  • I have not included unrelated changes in this PR
  • I checked for cost side effects (model calls, queries or cloud resources that grow with user data) and described them, or wrote "none"

๐Ÿค– Generated with Claude Code

https://claude.ai/code/session_01XM3J9mB75wZRnzTSGcW2kc

Summary by CodeRabbit

  • New Features
    • Added a model-free tool CLI with schema inspection, result handling, and expanded workspace and MCP tools.
    • Added workspace-rule proposals and review, plus workspace skill synchronization.
  • Bug Fixes
    • Improved tool error guidance and clarified write-permission restrictions, including blocked destructive SQL operations.
    • Sign-out now clears cached telemetry identity; external-directory checks account for symlinks.
    • Ctrl+C during sign-in now exits with the documented status code.
  • Documentation
    • Updated guidance on telemetry identity, tool permissions, credentials, daemon behavior, and test coverage.