altimate-code 0.8.3 → 0.8.5

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 CHANGED
@@ -5,6 +5,32 @@ 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.8.5] - 2026-06-06
9
+
10
+ ### Fixed
11
+
12
+ - **The `github/review` composite action can be downloaded by GitHub Actions again.** The release tree contained three VS Code image symlinks whose removed targets caused GitHub's action downloader to reject the entire archive before the review step started. The images are now self-contained files and a release-critical test prevents dangling links from returning.
13
+ - **A valid dbt manifest is no longer mislabeled as a lint-only run.** Manifest availability is now checked independently from changed-model lookup, so new models and other valid manifests receive the correct full-run status.
14
+ - **The release-version lookup is rate-limit resilient and never caches a floating `latest`.** The composite action now authenticates its GitHub release-API call with the workflow token (lifting the 60→1,000 req/hr unauthenticated limit) and skips the binary cache entirely when the version resolves to `latest`, so a single rate-limited or offline lookup can no longer pin a stale binary across all subsequent runs.
15
+ - **Session traces survive worker restarts, concurrency, and long sessions without corruption or false alarms.** Three reliability follow-ups to the v0.8.4 trace-durability fix: reconstructed in-flight spans are marked `interrupted` and render with an amber "⚠" instead of red (and are excluded from the session error count) so a restart isn't misread as a failure (#901); `getOrCreateTrace` no longer resurrects a `Trace` into a cache that a concurrent stream switch already cleared, preventing an orphan writer under a dead stream (#902); and the on-disk `ses_<id>.json` projection is bounded to `MAX_SERIALIZED_SPANS` (default 5000, override via `ALTIMATE_TRACE_MAX_SPANS`), keeping head + tail and eliding the middle so long sessions no longer grow the file without bound or pay O(n²) write cost (#903).
16
+
17
+ ### Added
18
+
19
+ - **Direct GitHub onboarding and a live dbt review demo.** The GitHub App installer now opens GitHub's repository-selection screen directly, and the README/docs link to the public `dbt-pr-review-demo` pull requests.
20
+
21
+ ### Security
22
+
23
+ - **The hosted Altimate API key is no longer placed on the `jq` process arg list.** The credential write reads the key from the environment inside the `jq` program, keeping it out of `argv` (which is visible to other processes and printed verbatim when `ACTIONS_STEP_DEBUG` enables `set -x`).
24
+
25
+ ## [0.8.4] - 2026-06-05
26
+
27
+ A trace-durability patch. Open `/traces` mid-session and you'd see a rich waterfall — then the moment the agent finished its turn the view collapsed to a single "system-prompt" span, the Summary tab's *"What was asked"* showed *"No prompt recorded"*, and the Chat tab dropped every user turn but the last. The data was genuinely gone from disk, not just hidden in the viewer. This release stops the on-disk trace from being overwritten after each turn and makes the file authoritative across worker restarts. A five-persona pre-release review drove a follow-up wording fix so a reconstructed trace isn't misread as a failed run.
28
+
29
+ ### Fixed
30
+
31
+ - **Session traces no longer lose their data after every agent turn — the waterfall, summary prompt, and chat tab all stay intact.** A `session.status === "idle"` handler in the shared TUI worker fired once *per turn* (not once per session), ending the `Trace` and evicting it from cache; the next event reconstructed a fresh `Trace` whose near-empty initial state overwrote the rich `ses_<id>.json` on disk with a one-span file. Symptoms: the **Waterfall** collapsed to a lone "system-prompt" span, the **Summary** tab's *"What was asked"* went to *"No prompt recorded"*, and the **Chat** tab kept only the last user turn. The destructive idle handler is removed (sessions are long-lived — finalization happens on shutdown and `MAX_TRACES` eviction only), trace reconstruction now **rehydrates from the on-disk file** before falling back to a fresh start, and each user prompt is recorded as its own `user-message` span so multi-turn sessions render every turn in order. Authored-text scoping keeps synthetic parts (MCP banners, decoded file contents, reminders) out of the prompt and chat surfaces. Distinct from the v0.8.1 trace-corruption fix (#865), which addressed intra-instance concurrency — this is the worker-level cache lifecycle. (#895)
32
+ - **A trace reconstructed after a restart no longer reads as a failed run.** When the on-disk trace is rehydrated (worker restart or `MAX_TRACES` eviction), any generation span still in flight is closed and marked so its boundary stays visible in the waterfall. The status message now states plainly that altimate-code restarted before the step finished recording and that this is **not an agent failure** — so an on-call reader debugging from a trace isn't sent chasing a phantom incident. (#895)
33
+
8
34
  ## [0.8.3] - 2026-06-04
9
35
 
10
36
  A plan-mode reliability patch for the hosted gateway and other non-Anthropic models. Ask the `plan` agent to plan something benign — *"plan a feature to add a verify-output button"* — on `altimate-backend/altimate-default` (GPT-5.x) and it could refuse outright with *"I'm sorry, but I cannot assist with that request."* This release fixes the refusal at its source, hardens the fix against prompt-injection, and rewrites a warning that was misdiagnosing the symptom.
package/README.md CHANGED
@@ -17,6 +17,8 @@ into CI pipelines and orchestration DAGs. Precision data tooling for any LLM.
17
17
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)
18
18
  [![Slack](https://img.shields.io/badge/Slack-Join%20Community-4A154B?logo=slack)](https://altimate.studio/join-agentic-data-engineering-slack)
19
19
  [![Docs](https://img.shields.io/badge/docs-docs.altimate.sh-blue)](https://docs.altimate.sh)
20
+ [![Install GitHub App](https://img.shields.io/badge/GitHub-Install%20App-24292f?logo=github)](https://github.com/apps/altimate-code-agent/installations/new)
21
+ [![Live dbt review](https://img.shields.io/badge/dbt-Live%20PR%20Demo-ff694b?logo=dbt)](https://github.com/AltimateAI/dbt-pr-review-demo/pulls)
20
22
 
21
23
  </div>
22
24
 
@@ -36,6 +38,12 @@ curl -fsSL https://www.altimate.sh/install | bash
36
38
 
37
39
  The curl install drops a single self-contained binary named `altimate`. The npm install exposes both `altimate` and `altimate-code` on PATH; the curl install only exposes `altimate`. Alpine Linux (musl) and Windows on ARM64 are not currently supported by the standalone binary — use `apk add gcompat` on Alpine, or use WSL on Windows-on-ARM.
38
40
 
41
+ For GitHub, [install the Altimate Code App](https://github.com/apps/altimate-code-agent/installations/new)
42
+ to select repositories for interactive agent tasks. Automatic dbt pull-request
43
+ reviews use the deterministic GitHub Action documented below; see the
44
+ [public demo PRs](https://github.com/AltimateAI/dbt-pr-review-demo/pulls) before
45
+ installing it in your own repository.
46
+
39
47
  Then — in order:
40
48
 
41
49
  **Step 1: Configure your LLM provider** (required before anything works):
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.8.3",
17
+ "version": "0.8.5",
18
18
  "license": "MIT",
19
19
  "dependencies": {
20
20
  "@altimateai/altimate-core": "0.4.0"
21
21
  },
22
22
  "optionalDependencies": {
23
- "@altimateai/altimate-code-linux-arm64": "0.8.3",
24
- "@altimateai/altimate-code-darwin-arm64": "0.8.3",
25
- "@altimateai/altimate-code-linux-x64-baseline": "0.8.3",
26
- "@altimateai/altimate-code-darwin-x64-baseline": "0.8.3",
27
- "@altimateai/altimate-code-windows-x64-baseline": "0.8.3",
28
- "@altimateai/altimate-code-darwin-x64": "0.8.3",
29
- "@altimateai/altimate-code-windows-x64": "0.8.3",
30
- "@altimateai/altimate-code-linux-x64": "0.8.3"
23
+ "@altimateai/altimate-code-linux-arm64": "0.8.5",
24
+ "@altimateai/altimate-code-darwin-arm64": "0.8.5",
25
+ "@altimateai/altimate-code-linux-x64-baseline": "0.8.5",
26
+ "@altimateai/altimate-code-darwin-x64-baseline": "0.8.5",
27
+ "@altimateai/altimate-code-windows-x64-baseline": "0.8.5",
28
+ "@altimateai/altimate-code-darwin-x64": "0.8.5",
29
+ "@altimateai/altimate-code-windows-x64": "0.8.5",
30
+ "@altimateai/altimate-code-linux-x64": "0.8.5"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "pg": ">=8",