altimate-code 0.5.16 → 0.5.17

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.
Files changed (3) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +1 -1
  3. package/package.json +13 -13
package/CHANGELOG.md CHANGED
@@ -5,6 +5,21 @@ 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.5.17] - 2026-04-02
9
+
10
+ ### Added
11
+
12
+ - **Custom dbt `profiles.yml` path resolution** — Altimate Code now resolves `profiles.yml` using dbt's standard priority: explicit path → `DBT_PROFILES_DIR` env var → project-local `profiles.yml` → `~/.dbt/profiles.yml`. Teams using `DBT_PROFILES_DIR` in CI get zero-friction auto-discovery. Jinja `{{ env_var('NAME') }}` patterns are resolved automatically. A warning is shown when `DBT_PROFILES_DIR` is set but the file is not found. (#605)
13
+
14
+ ### Fixed
15
+
16
+ - **ClickHouse: SQL comment injection bypass** — Comments could previously mask write statements from the read-only LIMIT guard. String literals are now stripped before comment removal to prevent false matches. (#591)
17
+ - **ClickHouse: `LowCardinality(Nullable(...))` nullability** — Schema inspection previously reported these columns as non-nullable; now correctly detected as nullable. (#591)
18
+ - **ClickHouse: connection lifecycle guards** — All query methods now throw a clear error if called before `connect()`, preventing cryptic TypeErrors. (#591)
19
+ - **ClickHouse: `binds` parameter handling** — Queries with parameterized binds no longer throw a driver error; the parameter is safely ignored (ClickHouse uses `query_params` natively). (#591)
20
+ - **Stale file retry loops on WSL and network drives** — `FileTime.read()` now uses filesystem mtime instead of wall-clock, eliminating 782-iteration retry loops caused by clock skew on WSL (NTFS-over-9P), NFS, and CIFS mounts. Set `OPENCODE_DISABLE_FILETIME_CHECK=true` as escape hatch if needed. (#611)
21
+ - **Error classification: `file_stale` split and keyword fix** — `file_stale` is now a distinct error class; HTTP 4xx errors no longer misclassify as validation failures; restored `"does not exist"` keyword for SQL errors like `"column foo does not exist"`. (#611, #614)
22
+
8
23
  ## [0.5.16] - 2026-03-30
9
24
 
10
25
  ### Added
package/README.md CHANGED
@@ -47,7 +47,7 @@ export OPENAI_API_KEY=your_key # OpenAI
47
47
  altimate /discover
48
48
  ```
49
49
 
50
- `/discover` auto-detects dbt projects, warehouse connections (from `~/.dbt/profiles.yml`, Docker, environment variables), and installed tools (dbt, sqlfluff, airflow, dagster, and more). Skip this and start building — you can always run it later.
50
+ `/discover` auto-detects dbt projects, warehouse connections (from `profiles.yml` — checks `DBT_PROFILES_DIR`, project directory, then `<home>/.dbt/`; plus Docker and environment variables), and installed tools (dbt, sqlfluff, airflow, dagster, and more). Skip this and start building — you can always run it later.
51
51
 
52
52
  > **Headless / scripted usage:** `altimate --yolo` auto-approves all permission prompts. Not recommended with live warehouse connections.
53
53
 
package/package.json CHANGED
@@ -14,24 +14,24 @@
14
14
  "scripts": {
15
15
  "postinstall": "bun ./postinstall.mjs || node ./postinstall.mjs"
16
16
  },
17
- "version": "0.5.16",
17
+ "version": "0.5.17",
18
18
  "license": "MIT",
19
19
  "dependencies": {
20
20
  "@altimateai/altimate-core": "0.2.6"
21
21
  },
22
22
  "optionalDependencies": {
23
- "@altimateai/altimate-code-linux-arm64": "0.5.16",
24
- "@altimateai/altimate-code-windows-x64": "0.5.16",
25
- "@altimateai/altimate-code-windows-x64-baseline": "0.5.16",
26
- "@altimateai/altimate-code-darwin-x64": "0.5.16",
27
- "@altimateai/altimate-code-windows-arm64": "0.5.16",
28
- "@altimateai/altimate-code-linux-x64-baseline": "0.5.16",
29
- "@altimateai/altimate-code-linux-arm64-musl": "0.5.16",
30
- "@altimateai/altimate-code-linux-x64-musl": "0.5.16",
31
- "@altimateai/altimate-code-linux-x64": "0.5.16",
32
- "@altimateai/altimate-code-darwin-x64-baseline": "0.5.16",
33
- "@altimateai/altimate-code-linux-x64-baseline-musl": "0.5.16",
34
- "@altimateai/altimate-code-darwin-arm64": "0.5.16"
23
+ "@altimateai/altimate-code-linux-arm64": "0.5.17",
24
+ "@altimateai/altimate-code-windows-x64": "0.5.17",
25
+ "@altimateai/altimate-code-windows-x64-baseline": "0.5.17",
26
+ "@altimateai/altimate-code-darwin-x64": "0.5.17",
27
+ "@altimateai/altimate-code-windows-arm64": "0.5.17",
28
+ "@altimateai/altimate-code-linux-x64-baseline": "0.5.17",
29
+ "@altimateai/altimate-code-linux-arm64-musl": "0.5.17",
30
+ "@altimateai/altimate-code-linux-x64-musl": "0.5.17",
31
+ "@altimateai/altimate-code-linux-x64": "0.5.17",
32
+ "@altimateai/altimate-code-darwin-x64-baseline": "0.5.17",
33
+ "@altimateai/altimate-code-linux-x64-baseline-musl": "0.5.17",
34
+ "@altimateai/altimate-code-darwin-arm64": "0.5.17"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "pg": ">=8",