Repository navigation
Tags
Tags
chore(release): v0.12.10 (#1693) Release v0.12.10: workspace rules state lives outside the project (#1669), a path-linked project can gain its git remote and learn status says why rules are off (#1670), tool commands deliver a large answer whole on a pipe (#1687), and a failed session title is retried on later turns and reported (#1688). Adds the changelog entry, the release adversarial tests, a 60 s stall bound on tool output, and the requested model in title failure reports. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
chore(release): v0.12.8 (#1587) * fix: release review follow-ups for v0.12.8 - `run`: the stdin timeout notice says input sent after the wait is ignored - `uninstall`: on Windows, say the removal commands are for PowerShell - telemetry: the `error_message` type comment describes the fixed-vocabulary mask - docs: `check` policy/semantic fail closed on statements without a plan; `schema_inspect` value profiles, the `values` switch and that sampled values reach the model provider; `client_connected` in the telemetry table; `/integrations` and `datamate_manager` in linked projects; plain `run` prompt arguments are no longer quoted; the Windows `.cmd` alias goes through cmd.exe Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011chv9Rmu7jQXokum1WNcs7 * fix(check): tell the user to review a statement policy cannot evaluate The `policy_not_evaluated` and skipped-semantics messages now end with what to do: review the statement by hand, naming `TABLE(...)`, `LATERAL FLATTEN` and file readers such as `read_csv(...)`. Fixes #1585 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011chv9Rmu7jQXokum1WNcs7 * feat(schema_inspect): `ALTIMATE_DISABLE_SCHEMA_VALUES` turns value profiles off When set, `schema_inspect` runs no value sampling whatever the model passes as `values`, and says so in its output so the model does not retry. Parsed like `ALTIMATE_DISABLE_WORKSPACE`: only empty, `0` or `false` leave it unset. Documented in the schema tools page and the CLI feature toggles. Refs #1578 (env var only; a per-warehouse setting needs new config) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011chv9Rmu7jQXokum1WNcs7 * fix(storage): say why startup waits on the first-run setup lock After 5 s waiting on another process's `<db>.setup-lock`, print one line to stderr naming the lock file, then keep waiting to the same 60 s limit. Both the sync and async paths; thresholds are injectable for tests. Fixes #1580 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011chv9Rmu7jQXokum1WNcs7 * test: Windows shim parity between installers, SQL function policy, index control - `install` and `install.ps1` must write identical `altimate-code.cmd` and sh shims (fixes #1583) - direct tests for `sql-function-policy` and `schema/index-control` (part of #1581) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011chv9Rmu7jQXokum1WNcs7 * release: v0.12.8 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011chv9Rmu7jQXokum1WNcs7 * fix(sql): treat replication-slot copy and sync functions as side effects `pg_copy_logical_replication_slot`, `pg_copy_physical_replication_slot` and `pg_sync_replication_slots` were missing from `SIDE_EFFECT_PG_FUNCTION`, so a top-level call (where unknown `pg_*` functions are allowed) classified as read-only. The create and drop slot functions were already denied. Tests pin these three plus `pg_promote` and `pg_advisory_unlock_all`. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011chv9Rmu7jQXokum1WNcs7 * fix: release PR review follow-ups - `uninstall`: `removalHeader` and `removeEmptyDirCommand` helpers; Windows prints a PowerShell command for the empty `.opencode` bin directory instead of POSIX `rmdir ... 2>/dev/null`; tests for both platforms - setup lock: a failing notice write can no longer abort the database open; tests release the external holder deterministically and with wider margins - telemetry: correct the `templateErrorMessage` comment; the adversarial test asserts the concrete template and adds a long-value distinct-count case - `schema_inspect` tests restore `ALTIMATE_DISABLE_SCHEMA_VALUES` - docs: which columns get ranked values, "no value-profile query", and how policy vs semantic skips affect `--fail-on` - CHANGELOG: where the lock notice appears, and the two fixes above Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011chv9Rmu7jQXokum1WNcs7 * test: move the policy skip-guard case into its own describe block Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011chv9Rmu7jQXokum1WNcs7 * fix: bot review follow-ups on the release PR - `uninstall` offers removing an empty `~/.altimate/bin`, not only a legacy `~/.opencode/bin` (`emptyBinDirToRemove`, tested) - setup lock: the `announce` comment covers what it handles (synchronous throws) - docs: `--fail-on` defaults to `none`; a semantic skip warning does not fail `--fail-on error` Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011chv9Rmu7jQXokum1WNcs7 * test: build the bin-dir paths with the host path module Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011chv9Rmu7jQXokum1WNcs7 --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
chore(release): v0.12.7 (#1458) * fix(server): the trace viewer page may not call the server's API Found in the v0.12.7 release review. `GET /altimate/trace/:sessionID/view` (#1415) serves the viewer from the API's own origin, and a trace holds tool output and fetched pages. Script injected through that content could have called every other route as same-origin. - The response carries a CSP that allows the page's inline script and styles but no requests (`connect-src 'none'`), form posts or base URL. The embedded viewer is never live, so it makes no requests of its own. Checked in Chromium on a real trace: every tab renders, Copy Summary works, no CSP violations. - The summary tab's rendering error is escaped like the rest of the page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011z8XLFXDGuywPteBesoZSU * docs: Snowflake reconnect log lines and the `serve` routes for the IDE Found in the v0.12.7 release review: #1427's `warehouse-connect` log lines and #1415/#1435's `serve` routes were not documented. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011z8XLFXDGuywPteBesoZSU * fix(traces): a trace containing `<!--<script` no longer renders the viewer empty Found by this release's adversarial tests, confirmed in Chromium. The viewer embeds the trace as JSON in an inline script and escaped only `</`. Tool output with `<!--<script` and no `-->` after it (a fetched page, say) puts the HTML parser in a state where the script's own `</script>` no longer closes it, so no script ran and the page showed only its frame. Every `<` is now written as `<`, which the parser never reads as markup and JavaScript reads back as the same character. Predates this release (the TUI's `/traces` has the same viewer); the IDE's trace view (#1415) reaches it too. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011z8XLFXDGuywPteBesoZSU * release: v0.12.7 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011z8XLFXDGuywPteBesoZSU * test: expect the viewer's `\u003c` escaping in the v0.8.4 break-out test The viewer now writes every `<` in its embedded trace JSON as `\u003c` (this release's `<!--<script` fix), so the old `<\/script>` form no longer appears. The test's other check, that the raw payload never appears, is unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011z8XLFXDGuywPteBesoZSU --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
chore(release): v0.12.6 — TUI keybindings work again (#1417) * fix(tui): take the workspace welcome section off the start screen; it disabled every keybinding In 0.12.5, with workspaces on by default, the boot-box welcome section (`workspace-welcome.tsx`, #1312) was registered for every signed-in user. Once its binding lookup ran on the home screen, every keybinding (Ctrl+C, Ctrl+D, Ctrl+P, Esc) stopped working and the TUI could not be quit; typing still worked. Found by the post-release E2E in a pty: Ctrl+P/Esc/Ctrl+C produced no output and the process never exited. With the section removed, all keybindings work and Ctrl+C exits, on the home screen and inside a session. The section is no longer registered; its root cause is open. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fJ3X7pcGT4R9yzjsJnqsV * release: v0.12.6 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fJ3X7pcGT4R9yzjsJnqsV * test(tui): the plugin-list test also requires the `/workspace` menu plugin (review) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fJ3X7pcGT4R9yzjsJnqsV --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
chore(release): v0.12.5 (#1416) * release: v0.12.5 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fJ3X7pcGT4R9yzjsJnqsV * fix(workspace): a workspace missing from the list is "unknown", not "memory off" The service's `/datamates/` list can leave out a workspace created moments ago (one replica serves it stale for a few minutes). `memoryStatus` read the absence as memory switched off and memoized it, so `workspace sync` and the bind seed said "Memory is off for this workspace" and sent nothing, and `workspace status` counted everything as synced. Found by this release's live test on freemium. - `memoryStatus` returns "error" for a workspace missing from the list, uncached; the write path still fails closed - The bind seed reports "incomplete" (retry) instead of "off"; status reports the outstanding count as unknown - Two `manage.test.ts` cases that meant "memory genuinely off" now stub `memory_enabled: false` instead of relying on an empty list Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fJ3X7pcGT4R9yzjsJnqsV * fix(workspace): a missing workspace also clears a cached "memory off", and warns once (review) - `memoryStatus` clears `memoryDisabledMemo` as well when the workspace is missing from the list, so cache-only readers (`workspace status` without a poll, the identity section) say unknown instead of a stale "disabled" - The "missing from the workspace list" warning is logged once per workspace while it stays missing Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fJ3X7pcGT4R9yzjsJnqsV --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
chore(release): v0.12.4 (#1387) * fix(workspace): v0.12.4 release review — user-facing wording, adopted-binding comment - Link / re-link messages in `link.ts` and the TUI workspace plugin no longer say "binding" or "pre-check" (End User review). - `state.ts`: the `pinned` field's comment described memory mirroring to adopted bindings as an unfixed gap. It is intended: a project belongs to exactly one workspace, so new memory in a linked project belongs there; only the backfill of earlier memory waits for the user's Attach. - `identity.ts`: import spacing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fJ3X7pcGT4R9yzjsJnqsV * release: v0.12.4 - CHANGELOG entry for 0.12.4. - `release-v0.12.4-adversarial.test.ts`: snapshot attribution under traversal and lookalike segments, `snapshotCopyYields` type confusion, skip reasons and displayed skill ids never carrying raw errors or control characters, sync problem boundaries and the announce latch, the `serve` workspace route gate across header combinations, hidden-workspace conflicts, and the review's wording fixes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fJ3X7pcGT4R9yzjsJnqsV * fix(workspace): v0.12.4 release PR review — attach-path wording, portable tests - The "not found" message after linking or re-linking now fits both paths: the chosen workspace may be gone (attach), or the project's link to it (re-link). It no longer sends an attach user to "pick Create". TUI picker, TUI inline attach, and `altimate-code link`. - `state.ts`: the `pinned` comment no longer claims the field is unused; `identity.ts` reads it, and no write-permission check keys on it. - `release-v0.12.4-adversarial.test.ts`: pass `""` for "no password" (an `undefined` argument selects the environment's `OPENCODE_SERVER_PASSWORD`), and build snapshot-path expectations from the platform's root and separator so the file passes on Windows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fJ3X7pcGT4R9yzjsJnqsV * fix(workspace): attribute a drive-root project's snapshot to `C:\`, not `C:` `snapshotProjectOf` joined the path segments before the snapshot folder, so a project opened at a Windows drive root came back as the bare drive `C:`, which resolves to that drive's current directory rather than its root. It now returns the platform's root (`/`, `C:\`, or a UNC share root) for a root-level project. The function takes an optional path implementation so the Windows behaviour is tested on every platform. Found in the v0.12.4 release PR review. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fJ3X7pcGT4R9yzjsJnqsV * docs(changelog): v0.12.4 — Windows drive-root snapshot fix Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fJ3X7pcGT4R9yzjsJnqsV * fix(workspace): v0.12.4 consensus review — link wording, stale comment, CHANGELOG accuracy - The remaining user-visible link strings no longer say "bindings", "Binding" or "pre-check": the lookup warning and the "Workspace approved" spinner in `link.ts`, and the re-link guard's thrown error in both `link.ts` and the TUI plugin (both surfaces show a thrown error's message as-is). - The not-found message after linking or re-linking also covers a workspace the account can no longer see: the server answers 404 for both. - "Already linked — re-linking it instead" no longer stops the spinner with the error glyph right before a successful re-link. - `state.ts`: the note that new memory mirrors to adopted bindings moves from `pinned` to `adopted`, and `resolveBinding`'s doc no longer says memory writes stay behind a real link — only the backfill of earlier memory does. - CHANGELOG: the Windows drive-root bullet is removed. `path.win32.join` already normalised `C:` + `.altimate-code` to `C:\.altimate-code`, so no user could hit it; 03fbb9d is hardening for future callers that `resolve` or compare the value. The route-gate description now says `same-site` is refused too, and the TUI model fix reads "now keeps". - Tests: the wording test covers the reworded strings and the not-found message's three sites; `snapshotProjectOf` pins lowercase-drive, forward-slash and `\\?\` long-path roots; the older root test in `skill.test.ts` is portable. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fJ3X7pcGT4R9yzjsJnqsV --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
chore(release): v0.12.3 (#1362) * fix: auto-register Altimate Base before `agent create` and `review` resolve a provider Neither `altimate agent create` nor `altimate review` called `FreeTier.autoRegisterWithin()` before resolving a provider, unlike the other five entrypoints (`run`, `tui`, `serve`, `acp`, `web`). On a fresh install this meant `agent create` leaked a raw upstream error mentioning "OpenCode" with no remediation, and `review`'s AI lane silently produced zero findings with no visible signal. Found by the Chaos Gremlin (Support Engineer) persona during the v0.12.3 release review — both confirmed P0s, verified against the actual failure path, not indirect reasoning. Wires both call sites with the same `autoRegisterWithin(undefined, () => void printDisclosureOnceForHeadless(true))` pattern already used by run/acp/web, and extends the entrypoint-late-notice-wiring pin test to cover both new call sites. * fix: surface startup feedback during the TUI's auto-register wait `tui.ts`'s up-to-3s auto-register wait gave zero terminal output — on a fresh install this reads as a hang on the very first launch (End User persona, v0.12.3 release review, P1). Gates a "Connecting to Altimate Base…" status line behind a 300ms delay so the common already-registered/fast path never flashes it. * docs: fix stale consent-gate wording flagged by the v0.12.3 release review Two independent findings (CTO and PM personas): - `altimate-base-disclosure.ts`'s header comment still described the disclosure as something "a user actually consents against before any Base credential is minted" — stale since this release removed the consent gate entirely. It's now a post-registration notice, not a pre-credential prompt. - README's "Step 1: Choose an LLM provider (required before anything works)" directly contradicted the next sentence, which explains a fresh install registers Altimate Base automatically if you skip this step. * chore: remove a duplicate altimate_change marker in server.ts Found while auditing the "Kilo Code Review" FAILURE check on PR #1361 (CTO and Tech Lead personas flagged it as an open loose end): every one of the bot's 9 findings was already fixed by a later commit in the same PR, and this harmless leftover duplicate `// altimate_change end` was noticed in the same import block along the way. * test: adversarial coverage for v0.12.3 release fixes Covers the new code from this release's review fixes: ordering/scoping invariants for the autoRegisterWithin() wiring in agent.ts/review.ts (must run before the provider is resolved, must stay outside review.ts's latency timer, must be unconditional regardless of --no-ai), the tui.ts feedback timer's delay bounds and try/finally cleanup, and a regression guard against the duplicate marker comment. * revert: restore the second altimate_change end marker in server.ts Not a duplicate. The two consecutive `// altimate_change end` lines close two separate blocks that happen to end at the same point: the outer "Altimate-only server endpoints" block (opened at the `McpRoutes` import) and the inner "registration must invalidate BOTH instance registries" block (opened at the InstanceStore import). Removing one left the outer block's start unpaired, which the marker-integrity test (test/upstream/bridge-merge.test.ts, test/branding/upstream-merge-guard.test.ts) caught in CI on PR #1362 — correctly, since I'd broken a real invariant while "cleaning up" what looked like leftover cruft without running the actual test that verifies pairing. * test: drop the mistaken duplicate-marker regression guard Followed the previous commit's correction — the "duplicate marker" this test pinned against was never a duplicate, so the test encoded the same wrong assumption. Removed rather than fixed forward, since there's nothing left to assert once the premise is gone. * docs: changelog for v0.12.3
chore(release): v0.12.2 — changelog entry for #1353 (#1355) #1353 (synced memory blocks get a title) merged to main between the beta and the release PR; the [0.12.2] entry now lists it. The changelog ships inside the binary, so it has to be in the tagged commit. Claude-Session: https://claude.ai/code/session_012Q51zFUmPg1WwtS5CrGJE6 Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
chore(release): v0.12.2-beta.1 (#1347) * chore(release): v0.12.2-beta.1 Beta of the six workspace-pilot and configuration fixes merged after v0.12.1 (#1341 #1342 #1343 #1344 #1345 #1346). Publishes to the npm `beta` dist-tag; `latest` stays at 0.12.1. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012Q51zFUmPg1WwtS5CrGJE6 * chore(release): v0.12.2-beta.1 — correct the docs path in the changelog entry (bot review) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012Q51zFUmPg1WwtS5CrGJE6 --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
PreviousNext