altimate-code 0.8.8 → 0.8.10

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,59 @@ 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.10] - 2026-06-22
9
+
10
+ ### Fixed
11
+
12
+ - **The daily date no longer invalidates the cached system prompt across midnight.** The volatile "Today's date" line was the first entry in the cache-controlled system prefix, so a session left open across midnight within the cache TTL dropped its entire cached system prompt and paid to rebuild it. The date now rides the trailing user message — off the long-lived system-prefix cache and onto the rolling per-turn breakpoint that is rewritten every turn anyway — so the cached system bytes stay date-invariant and the agent still receives today's date each turn. (#950, fixes #949)
13
+
14
+ ### Internal
15
+
16
+ - **The Windows installer Pester suite is deterministic on the updated `windows-latest` runner.** The harness now applies `PROCESSOR_*` overrides inside the child `pwsh` session instead of relying on Process-scope inheritance, which the new runner image re-initialized for the loader-managed `PROCESSOR_ARCHITECTURE` (it arrived blank → a spurious `Unsupported OS/Arch` failure). Test-only: the shipped `install.ps1` and the v0.8.9 binaries are unaffected — real users always have a populated `PROCESSOR_ARCHITECTURE`. (#959, fixes #958)
17
+ - **Added a v0.8.10 adversarial + coverage suite** that closes the prior test gap on the date fix — it exercises the trailing-user-message path (date reaches the model, only the last user turn is tagged, no accumulation across turns, survives an all-ignored user turn) plus a static regression guard on the Windows installer harness. (#950, #959)
18
+
19
+ ## [0.8.9] - 2026-06-19
20
+
21
+ ### Fixed
22
+
23
+ - **The non-interactive `run` guard no longer mis-handles a blank env var.** A blank/whitespace `ALTIMATE_NON_INTERACTIVE=` is now treated as unset, so it can't silently reintroduce the headless `run` hang that #937 fixed. (#937 follow-up)
24
+ - **Session transcript boolean query flags accept the common falsey strings.** `thinking`, `toolDetails`, and `assistantMetadata` now treat `false`/`0`/`no`/`off` (case-insensitive) as false, not just the literal `"false"`. (#941 follow-up)
25
+ - **Writing an MCP server entry refuses to clobber an unparseable config** (detected via `parse()` with an error sink, not the error-tolerant `parseTree()`), and `updatedAt` is preserved through config normalization so the datamate reconnect signal survives. (#893 follow-up)
26
+ - **dbt error bubbling strips the full ANSI escape family** (cursor/erase sequences from progress spinners), not just SGR color codes. (#933 follow-up)
27
+
28
+ ### Changed
29
+
30
+ - **The headless `serve` startup upgrade check is jittered** (base + random, ~1–6s) so a fleet restarting together doesn't stampede the unauthenticated GitHub releases API in the same instant. (#940 follow-up)
31
+
32
+ ### Internal
33
+
34
+ - **Diverged upstream constants are wrapped in `altimate_change` markers** (`DEFAULT_CHUNK_TIMEOUT`, the question-tool `output` field) so they survive upstream merges. (#844, #937)
35
+ - **Added a v0.8.9 adversarial test suite** covering the shipping code and the review fixes under hostile input (question-tool env matrix, MCP config parse-guard, startup-upgrade fail-safety + jitter).
36
+
37
+ ## [0.8.8] - 2026-06-19
38
+
39
+ ### Added
40
+
41
+ - **Windows now has a one-line PowerShell installer.** `irm https://www.altimate.sh/install.ps1 | iex` downloads the standalone binary from GitHub releases (AVX2-aware, with a baseline fallback), adds it to your user `PATH`, and supports `-Version`, `-NoPathUpdate`, and `-ForceBaseline`. `altimate upgrade` uses the same path on Windows. (#930)
42
+ - **IDE-aware datamate transport, MCP enabled-state persistence, and a `/mcps` command.** The active IDE's `mcp.json` datamate entry/URL is mirrored into `altimate-code.json` and reconnected when it changes; enabled/disabled state for MCP servers now persists to disk; `/mcps` lists and toggles servers; project `mcp.json` files are discovered recursively (project-scoped servers are discovered disabled, never auto-connected). (#893)
43
+ - **Session transcript REST endpoint for the datamates extension.** `GET /session/:id/transcript` returns the full conversation as formatted Markdown, with `thinking`, `toolDetails`, and `assistantMetadata` query flags. (#941)
44
+
45
+ ### Changed
46
+
47
+ - **Headless `serve` now checks for and applies updates on startup.** When `autoupdate` is unset (the default) and a supported install method is present, `serve` performs a one-shot, best-effort self-upgrade shortly after start. It never restarts the running process and can never crash `serve` (errors are swallowed). Opt out with `autoupdate: false` or `"notify"` in config, or `OPENCODE_DISABLE_AUTOUPDATE=1`. (#940)
48
+ - **The per-chunk streaming watchdog timeout was raised from 2 minutes to 5 minutes** so slow warehouse/LLM streams are not aborted prematurely. (#844)
49
+
50
+ ### Fixed
51
+
52
+ - **`dbt show`/`compile` failures now surface the real dbt error** instead of a generic "Could not parse", with inline SQL redacted from the message so secrets/PII don't leak into logs. (#933)
53
+ - **The question tool no longer hangs in non-interactive contexts.** `altimate run` is detected as headless and returns "Unanswered" (letting the agent decide) rather than blocking forever; `ALTIMATE_AUTO_ANSWER=first|last|<label>` can pre-answer. (#937)
54
+ - **Windows release archives are verified by checksum in both installers** before extraction, and latest-version resolution is more resilient to transient fetch failures. (#942, #946)
55
+
56
+ ### Internal
57
+
58
+ - **`serve` logs the trace directory on startup** so operators can find session traces. (#929)
59
+ - **Added a release-validation regression suite** covering the merged PRs. (#952)
60
+
8
61
  ## [0.8.7] - 2026-06-10
9
62
 
10
63
  ### Added
@@ -401,7 +401,7 @@ function looksLikeRowData(val) {
401
401
  }
402
402
  }
403
403
  function stripAnsi(text) {
404
- return text.replace(/\x1b\[[0-9;]*m/g, "");
404
+ return text.replace(/\x1b\[[0-9;?]*[ -/]*[@-~]/g, "");
405
405
  }
406
406
  function parseAsciiTable(text) {
407
407
  const cleaned = stripAnsi(text);
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.8",
17
+ "version": "0.8.10",
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-x64-baseline": "0.8.8",
24
- "@altimateai/altimate-code-windows-x64": "0.8.8",
25
- "@altimateai/altimate-code-linux-x64": "0.8.8",
26
- "@altimateai/altimate-code-darwin-x64": "0.8.8",
27
- "@altimateai/altimate-code-darwin-x64-baseline": "0.8.8",
28
- "@altimateai/altimate-code-darwin-arm64": "0.8.8",
29
- "@altimateai/altimate-code-windows-x64-baseline": "0.8.8",
30
- "@altimateai/altimate-code-linux-arm64": "0.8.8"
23
+ "@altimateai/altimate-code-linux-x64-baseline": "0.8.10",
24
+ "@altimateai/altimate-code-windows-x64": "0.8.10",
25
+ "@altimateai/altimate-code-linux-x64": "0.8.10",
26
+ "@altimateai/altimate-code-darwin-x64": "0.8.10",
27
+ "@altimateai/altimate-code-darwin-x64-baseline": "0.8.10",
28
+ "@altimateai/altimate-code-darwin-arm64": "0.8.10",
29
+ "@altimateai/altimate-code-windows-x64-baseline": "0.8.10",
30
+ "@altimateai/altimate-code-linux-arm64": "0.8.10"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "pg": ">=8",