Visitar URL original
Tags · AltimateAI/altimate-code · GitHub
Skip to content

Tags

Tags

v0.12.10

Toggle v0.12.10's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
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>

v0.12.9

Toggle v0.12.9's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
chore(release): v0.12.9 (#1647)

See CHANGELOG.md for the v0.12.9 entry.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XM3J9mB75wZRnzTSGcW2kc

v0.12.8

Toggle v0.12.8's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
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>

v0.12.7

Toggle v0.12.7's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
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>

v0.12.6

Toggle v0.12.6's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
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>

v0.12.5

Toggle v0.12.5's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
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>

v0.12.4

Toggle v0.12.4's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
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>

v0.12.3

Toggle v0.12.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
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

v0.12.2

Toggle v0.12.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
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>

v0.12.2-beta.1

Toggle v0.12.2-beta.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
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>