altimate-code 0.9.1 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -5
- package/README.md +2 -2
- package/package.json +9 -9
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.9.2] - 2026-07-20
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Snowflake Cortex: `claude-sonnet-5`, `claude-opus-4-8`, and OpenAI GPT-5.4 (`openai-gpt-5.4`, `-mini`, `-nano`) in the model picker.** All verified live against Cortex, including prompt caching and tool calling on the new Claude models.
|
|
13
|
+
- **Human-readable tool-call titles and source badges.** Tool calls now render dbt-aware labels — "Reading customers model", "Searching \*\*/\*.sql" — instead of raw paths, and every call carries an authoritative source badge (`builtin` / `altimate` / `mcp`) stamped server-side so all clients (chat webview, TUI) display consistent origins. (#980)
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- **Snowflake Cortex model catalog refreshed against the live service (2026-07-20).** Removed models Snowflake has deprecated (July 8, 2026: `deepseek-r1`, `mistral-large`, `llama3.1-405b`, `snowflake-llama-3.3-70b`) or delisted (`claude-3-7-sonnet`, `claude-3-5-sonnet`, `openai-gpt-5-chat`, `llama4-scout`, `mixtral-8x7b`, `snowflake-llama-3.1-405b`, `gemini-3.1-pro`) — requests to these now hard-fail on Cortex. **If your config pins one of these IDs, the next request fails with `Model not found: snowflake-cortex/<model>. Did you mean: ...?`** — switch to a current model, or re-register the ID via `altimate-code.json` (see the providers docs). Locally registered models are unaffected.
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- **Snowflake Cortex prompt caching now activates for Claude models.** Cortex only honors caching markers placed inside content blocks (`messages[].content[].cache_control`), but requests carried them as message-level fields — so every request billed the full input rate (`cache_read_input`/`cache_write_input` stayed NULL in `TOKENS_GRANULAR`). The provider now relocates the markers into content blocks (system prompt + trailing messages, max 4 breakpoints), so repeated prefixes bill at Snowflake's reduced cached-input rate — savings are workload-dependent and largest on long agent sessions with big stable prefixes. If a Cortex account rejects the marked shape, the request is retried once without markers and marker injection pauses for a 5-minute cooldown. Note for Snowflake admins: `cache_read_input`/`cache_write_input` in `TOKENS_GRANULAR` begin populating for these workloads (previously always NULL) — update any dashboard queries that assumed those columns were NULL. (#1009)
|
|
22
|
+
- **Legacy documentation links canonicalized.** `docs.altimate.sh`, `datamates-docs.myaltimate.com`, and `www.altimate.sh/benchmarks` references (including the TUI's docs links and system prompts) now point to `help.altimate.ai` and `altimate.ai/benchmarks`. (#1004)
|
|
23
|
+
|
|
8
24
|
## [0.9.1] - 2026-07-08
|
|
9
25
|
|
|
10
26
|
This release rebases altimate-code onto **upstream OpenCode v1.17.9** (bridged up from v1.4.0 — ~165 upstream commits) behind the fork's own fixes and hardening. It is a larger-than-usual jump from 0.8.10; the upgrade is automatic and in-place (see **Upgrading from 0.8.10** below).
|
|
@@ -155,7 +171,7 @@ A plan-mode reliability patch for the hosted gateway and other non-Anthropic mod
|
|
|
155
171
|
### Fixed
|
|
156
172
|
|
|
157
173
|
- **Plan mode no longer refuses benign requests on `altimate-default` and other non-Anthropic models.** The root cause was *how* altimate-code delivers its own plan instructions: a `<system-reminder>`-wrapped block attached as user-role text. Claude is trained to read that tag as authoritative system guidance, but GPT-5.x, Gemini, and other non-Anthropic models pattern-matched the same block — carrying `STRICTLY FORBIDDEN` / `ZERO exceptions` / `MUST` language — as a **prompt-injection attempt** and declined, returning *"I'm sorry, but I cannot assist with that request."* for ordinary developer tasks. altimate-code now **hoists those self-injected reminders into proper `role:"system"` messages** for non-Anthropic models, so they arrive as instructions rather than suspect user input; Anthropic models are unchanged. The hoist is scoped by **provenance** to altimate-code's own reminder parts — user-supplied files, MCP-resource bodies, and `data:`-URL content can never gain system-role priority, even when they begin with `<system-reminder>`. Gateway models are routed by `model.family` (via a shared `familyVendor` classifier) so a Claude- or Gemini-backed gateway model lands on the right base prompt instead of an Anthropic-style fallback. (#887, #888)
|
|
158
|
-
- **The "plan agent used no tools" warning is accurate — and no longer false-fires.** Previously the warning blamed the model's *tool-use capability* (misleading — these models are fully tool-capable) and could fire on the final text-only step of a **successful** multi-step plan session, making a working session look broken. The trip-wire now scans the conversation history for prior tool calls, so a session that already explored the codebase isn't flagged. When it does fire, the copy describes the observed symptom only ("stopped without calling any tools"), lists the likely causes, and offers concrete recoveries — ask it to investigate first, rephrase, or, if it keeps refusing, `/model` to a tier more eager to explore. The plan agent is also now instructed to **read or search the codebase before drafting** any plan, with an explicit escape hatch for trivial, fully-specified changes. See [Plan mode](https://
|
|
174
|
+
- **The "plan agent used no tools" warning is accurate — and no longer false-fires.** Previously the warning blamed the model's *tool-use capability* (misleading — these models are fully tool-capable) and could fire on the final text-only step of a **successful** multi-step plan session, making a working session look broken. The trip-wire now scans the conversation history for prior tool calls, so a session that already explored the codebase isn't flagged. When it does fire, the copy describes the observed symptom only ("stopped without calling any tools"), lists the likely causes, and offers concrete recoveries — ask it to investigate first, rephrase, or, if it keeps refusing, `/model` to a tier more eager to explore. The plan agent is also now instructed to **read or search the codebase before drafting** any plan, with an explicit escape hatch for trivial, fully-specified changes. See [Plan mode](https://help.altimate.ai/code/data-engineering/agent-modes/#plan) and [Troubleshooting](https://help.altimate.ai/code/reference/troubleshooting/). (#888)
|
|
159
175
|
|
|
160
176
|
## [0.8.2] - 2026-06-03
|
|
161
177
|
|
|
@@ -163,7 +179,7 @@ A small correctness patch. The dbt PR reviewer's deterministic engine never requ
|
|
|
163
179
|
|
|
164
180
|
### Fixed
|
|
165
181
|
|
|
166
|
-
- **`dbt_pr_review` no longer implies it needs an altimate API key.** The native `altimate-core` engine behind the reviewer (column-lineage blast radius, query equivalence, PII classification, A–F grade) runs **fully offline** via the bundled napi binary — there is no `altimate_core.init` and no API-key gate in that path. Two tool descriptions (`altimate_core_column_lineage`, `altimate_core_track_lineage`) still carried a stale Python-bridge-era line claiming *"Requires `altimate_core.init()` with API key"*, so a stuck **lint-only** run was mis-diagnosed as missing auth. The descriptions now state the tools run offline with no key. **Lint-only actually means the dbt `manifest.json` didn't resolve** (wrong path, stale manifest, or wrong working directory) — the [dbt PR Review docs](https://
|
|
182
|
+
- **`dbt_pr_review` no longer implies it needs an altimate API key.** The native `altimate-core` engine behind the reviewer (column-lineage blast radius, query equivalence, PII classification, A–F grade) runs **fully offline** via the bundled napi binary — there is no `altimate_core.init` and no API-key gate in that path. Two tool descriptions (`altimate_core_column_lineage`, `altimate_core_track_lineage`) still carried a stale Python-bridge-era line claiming *"Requires `altimate_core.init()` with API key"*, so a stuck **lint-only** run was mis-diagnosed as missing auth. The descriptions now state the tools run offline with no key. **Lint-only actually means the dbt `manifest.json` didn't resolve** (wrong path, stale manifest, or wrong working directory) — the [dbt PR Review docs](https://help.altimate.ai/code/usage/dbt-pr-review/) now spell out how to fix it. The only thing that ever needs a key is the optional advisory LLM lane, which can never block a verdict. (#882)
|
|
167
183
|
|
|
168
184
|
## [0.8.1] - 2026-06-02
|
|
169
185
|
|
|
@@ -171,7 +187,7 @@ A reliability + correctness patch on top of 0.8.0. Highlights: **8 new Snowflake
|
|
|
171
187
|
|
|
172
188
|
### Added
|
|
173
189
|
|
|
174
|
-
- **Snowflake Cortex — 8 new selectable models.** Closes the drift between altimate-code's hardcoded Cortex model list and Snowflake's current regional-availability matrix: adds `claude-opus-4-7`, `openai-gpt-5.1`, `openai-gpt-5.2`, `llama4-scout`, `llama3.3-70b`, `snowflake-llama-3.1-405b`, `mixtral-8x7b`, and `gemini-3.1-pro` (Claude + OpenAI tool-capable; the rest chat-only, the conservative default until tool calling is verified on Cortex). When Cortex adds a model before the next release, you can now add it yourself under `provider["snowflake-cortex"].models` in `altimate-code.json` and it merges into the picker — no fork, no waiting. See [Snowflake Cortex provider docs](https://
|
|
190
|
+
- **Snowflake Cortex — 8 new selectable models.** Closes the drift between altimate-code's hardcoded Cortex model list and Snowflake's current regional-availability matrix: adds `claude-opus-4-7`, `openai-gpt-5.1`, `openai-gpt-5.2`, `llama4-scout`, `llama3.3-70b`, `snowflake-llama-3.1-405b`, `mixtral-8x7b`, and `gemini-3.1-pro` (Claude + OpenAI tool-capable; the rest chat-only, the conservative default until tool calling is verified on Cortex). When Cortex adds a model before the next release, you can now add it yourself under `provider["snowflake-cortex"].models` in `altimate-code.json` and it merges into the picker — no fork, no waiting. See [Snowflake Cortex provider docs](https://help.altimate.ai/code/configure/providers/). (#866)
|
|
175
191
|
|
|
176
192
|
### Fixed
|
|
177
193
|
|
|
@@ -182,7 +198,7 @@ Headlined by **dbt PR Review** — a Cloudflare-style, dbt/SQL-specialized code
|
|
|
182
198
|
|
|
183
199
|
### Added
|
|
184
200
|
|
|
185
|
-
- **dbt PR Review — signed, deterministic verdicts on dbt pull requests.** New `altimate review` CLI command and a composite GitHub Action (`github/review`). The deterministic engine (column-lineage / DAG blast radius, query equivalence on before/after model SQL, PII classification, A–F grade + anti-pattern lint) is the **only** layer that can block; an optional LLM reviewer is clamped to ≤ warning and excluded from the gate, so a `REQUEST_CHANGES` is always provable and replayable. Runs in CI with **zero warehouse access** (consumes `dbt compile` artifacts), and the verdict is HMAC-signable and tamper-evident. `comment` mode never blocks; `gate` mode fails the check on `REQUEST_CHANGES`. The advisory model/credentials are configured on the Action (hosted `altimate_api_key`, or bring-your-own `model` + `model_api_key`); omit them to run deterministic-only. See [dbt PR Review docs](https://
|
|
201
|
+
- **dbt PR Review — signed, deterministic verdicts on dbt pull requests.** New `altimate review` CLI command and a composite GitHub Action (`github/review`). The deterministic engine (column-lineage / DAG blast radius, query equivalence on before/after model SQL, PII classification, A–F grade + anti-pattern lint) is the **only** layer that can block; an optional LLM reviewer is clamped to ≤ warning and excluded from the gate, so a `REQUEST_CHANGES` is always provable and replayable. Runs in CI with **zero warehouse access** (consumes `dbt compile` artifacts), and the verdict is HMAC-signable and tamper-evident. `comment` mode never blocks; `gate` mode fails the check on `REQUEST_CHANGES`. The advisory model/credentials are configured on the Action (hosted `altimate_api_key`, or bring-your-own `model` + `model_api_key`); omit them to run deterministic-only. See [dbt PR Review docs](https://help.altimate.ai/code/usage/dbt-pr-review/) and the copy-paste workflow in `github/review/examples/`. Depends on `@altimateai/altimate-core` ≥ 0.4.0. (#856)
|
|
186
202
|
- **Native Trino driver.** First-class Trino support over HTTP(S) with catalog/schema introspection and None / Basic / Bearer-token auth. **Migration note:** the dbt `trino` adapter previously mapped to the PostgreSQL driver; it now uses the native driver. Existing profiles are auto-aliased (`database` → `catalog`, `token` → `access_token`) and otherwise compatible. `trino-client` is an optional dependency — install it (`npm install trino-client`) to use Trino. (#795)
|
|
187
203
|
- **Completion-gate validator framework.** A new opt-in harness-side check
|
|
188
204
|
that runs after the LLM declares `finish === "stop"`. Two built-in
|
|
@@ -196,7 +212,7 @@ Headlined by **dbt PR Review** — a Cloudflare-style, dbt/SQL-specialized code
|
|
|
196
212
|
caught" rates without blocking). Default is **off** with zero overhead.
|
|
197
213
|
Two new telemetry events (`validator_check`, `validator_retries_exhausted`).
|
|
198
214
|
Configuration via `ALTIMATE_VALIDATORS_{MAX_RETRIES,TIMEOUT_MS,CONCURRENCY,DEBUG}`.
|
|
199
|
-
See [Validators docs](https://
|
|
215
|
+
See [Validators docs](https://help.altimate.ai/code/data-engineering/validators/)
|
|
200
216
|
for the full reference, performance characteristics, and the phased
|
|
201
217
|
rollout plan. (#849)
|
|
202
218
|
|
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ into CI pipelines and orchestration DAGs. Precision data tooling for any LLM.
|
|
|
16
16
|
[](https://www.npmjs.com/package/altimate-code)
|
|
17
17
|
[](./LICENSE)
|
|
18
18
|
[](https://altimate.studio/join-agentic-data-engineering-slack)
|
|
19
|
-
[](https://help.altimate.ai/code)
|
|
20
20
|
[](https://github.com/apps/altimate-code-agent/installations/new)
|
|
21
21
|
[](https://github.com/AltimateAI/dbt-pr-review-demo/pulls)
|
|
22
22
|
|
|
@@ -185,7 +185,7 @@ Each mode has scoped permissions, tool access, and SQL write-access control.
|
|
|
185
185
|
| **Analyst** | Explore data, run SELECT queries, FinOps analysis, and generate insights | Read-only enforced (SELECT only, no file writes) |
|
|
186
186
|
| **Plan** | Outline an approach before acting | Minimal (read files only, no SQL or bash) |
|
|
187
187
|
|
|
188
|
-
> **New to altimate?** Start with **Analyst mode** — it's read-only and safe to run against production connections. Need specialized workflows (validation, migration, research)? Create [custom agent modes](https://
|
|
188
|
+
> **New to altimate?** Start with **Analyst mode** — it's read-only and safe to run against production connections. Need specialized workflows (validation, migration, research)? Create [custom agent modes](https://help.altimate.ai/code).
|
|
189
189
|
|
|
190
190
|
## Supported Warehouses
|
|
191
191
|
|
package/package.json
CHANGED
|
@@ -14,20 +14,20 @@
|
|
|
14
14
|
"scripts": {
|
|
15
15
|
"postinstall": "bun ./postinstall.mjs || node ./postinstall.mjs"
|
|
16
16
|
},
|
|
17
|
-
"version": "0.9.
|
|
17
|
+
"version": "0.9.2",
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@altimateai/altimate-core": "0.5.1"
|
|
21
21
|
},
|
|
22
22
|
"optionalDependencies": {
|
|
23
|
-
"@altimateai/altimate-code-linux-
|
|
24
|
-
"@altimateai/altimate-code-
|
|
25
|
-
"@altimateai/altimate-code-linux-x64": "0.9.
|
|
26
|
-
"@altimateai/altimate-code-
|
|
27
|
-
"@altimateai/altimate-code-darwin-x64-baseline": "0.9.
|
|
28
|
-
"@altimateai/altimate-code-darwin-arm64": "0.9.
|
|
29
|
-
"@altimateai/altimate-code-
|
|
30
|
-
"@altimateai/altimate-code-
|
|
23
|
+
"@altimateai/altimate-code-linux-arm64": "0.9.2",
|
|
24
|
+
"@altimateai/altimate-code-linux-x64-baseline": "0.9.2",
|
|
25
|
+
"@altimateai/altimate-code-linux-x64": "0.9.2",
|
|
26
|
+
"@altimateai/altimate-code-windows-x64": "0.9.2",
|
|
27
|
+
"@altimateai/altimate-code-darwin-x64-baseline": "0.9.2",
|
|
28
|
+
"@altimateai/altimate-code-darwin-arm64": "0.9.2",
|
|
29
|
+
"@altimateai/altimate-code-darwin-x64": "0.9.2",
|
|
30
|
+
"@altimateai/altimate-code-windows-x64-baseline": "0.9.2"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
33
|
"pg": ">=8",
|