You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3aa43a8
Browse filesBrowse the repository at this point in the historyBrowse files
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>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+18Lines changed: 18 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,24 @@ 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.12.10] - 2026-11-07
9
+
10
+
**Workspace rules are no longer read from the repository, and a session's title no longer sticks on its placeholder.** The workspace rules state (queued proposals, pending approvals, review notices, dismissed topics and the personal learning choice) moves out of the project folder to a private per-user file, so a branch, merge or pull cannot plant a proposal or an approval that a client would then send with the signed-in person's credential, and team rules reach a session only for the account that pulled them. A session whose first title request fails now retries on the next messages and records the provider's error. Also in this release: a project linked by its path can gain its git remote so team rules can sync, `learn status` says why rules are off, and `tool` commands deliver a large answer whole on a pipe.
11
+
12
+
**Heads-up for support:**
13
+
-**Workspace rules state moves to `$XDG_STATE_HOME/altimate-code/workspace-rules/<hash>.json`** (usually `~/.local/state/…`), keyed by the project folder's real path, so two clones or a moved folder keep separate state. Only projects linked to a workspace are affected. There is no migration from the in-project `.altimate-code/learn/workspace-rules/rules.json`, on purpose: that file is no longer read and can be deleted. Lost with it: proposals queued but never sent, review notices, dismissed topics, the personal learning choice (someone who turned learning off in `/rules` is back on the workspace setting until they set it again), and the record of which usage was already reported, so the first report after upgrading can count the last 30 days again. Until the first sync after upgrading (at session start, then every 5 minutes, or `altimate-code learn sync`) a session has no team rules. The in-project `approved.json` copy is still written for display and recurrence but is never used for delivery.
14
+
-**Before the first sync, `learn status` distinguishes** not linked, linked by path only (rules need a git remote), not signed in, learning off, and linked but not yet synced, and the `learn sync` skip message says what to do.
15
+
-**A path-linked project that now has a git remote gets it added to the link** when `altimate-code link` or the TUI link picker is run again and the same workspace is picked, or with `link --workspace <id>`, instead of stopping at "Already linked".
16
+
-**A session keeps `New session - <time>` only while its title request keeps failing.** The title is retried on each of the first five user messages, always from the first message; a session titled on the first message makes no extra request, and one that already has more than five messages (for example resumed from an older version) is left as it is. Each failure writes `failed to generate title` to the log with the provider's error (`errorType`, `message`, `status`, `attempt`) and sends a `title_generation_failed` telemetry event (provider and model that were asked for, attempt, error class and type, HTTP status; no message text). The worst case for a session whose small model never answers is five attempts of up to three HTTP requests each. A `small_model` the provider cannot serve, or does not list, is a likely cause; the models page now describes it.
17
+
-**`tool` commands write the whole answer before returning.** Read stdout while the command runs: a reader that stops taking output for 60 seconds makes the command exit 1 with a message on stderr, as does a write that fails (for example a full disk), where it used to exit 0 with the answer lost. A reader that closes early, such as `| head`, still exits 0.
18
+
19
+
### Fixed
20
+
21
+
-**Workspace rules state lives outside the project.** Proposals, approvals and notices found in the working tree are no longer trusted or acted on; the state is a private per-user file, and team rules come from it only for the account that pulled them. (#1669)
22
+
-**A project linked by its path can gain its git remote**, and `learn status` says why workspace rules are off (not linked, linked by path only, not signed in, learning off, not yet synced) instead of "not linked". The learn docs say that rules need a git remote. (#1670)
23
+
-**`tool` commands no longer lose a big answer on a pipe.** A slow reader used to receive only the first 64 KiB of a larger answer (for example 64 KiB of a 354 KB `tool run --json` result). `tool run` in JSON and text mode, `tool list --json`, `tool context` and `tool schema` now write the whole answer before returning. (#1687)
24
+
-**A failed session title is retried on later turns and reported.** The log carries the provider's error instead of "No output generated", a failure before the request (a `small_model` the provider does not list) is reported too, and telemetry gets a `title_generation_failed` event. (#1688)
25
+
8
26
## [0.12.9] - 2026-11-04
9
27
10
28
**Claude Code and other coding agents can call altimate-code's data tools directly.**`altimate-code mcp serve` and the new model-free `altimate-code tool` CLI run the same tools without a second model: reads by default, writes only with `--allow-write` (over MCP, `warehouse_add` can save a connection without it). In projects linked to a workspace, what people teach the agent can become a team rule: they confirm it on a card, the workspace owner reviews it, and approved rules reach every teammate's sessions. `dbt_lineage` and `impact_analysis` now return structured lineage, and column impact traces each downstream model's compiled SQL. Also in this release: `auth logout` removes the saved Altimate gateway key, the analyst stays read-only whatever config grants, and the home screen suggests the Claude Code and Codex plugins.
Copy file name to clipboardExpand all lines: docs/docs/configure/models.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,7 +18,7 @@ altimate supports models from all configured providers. Use the `model` and `sma
18
18
19
19
The model format is `provider/model-name`.
20
20
21
-
`small_model` handles the small background requests that are not part of the conversation, such as the session title and prompt enhancement. When it is not set, Altimate Code picks a cheap model from the same provider (Claude Haiku, Gemini Flash or GPT-5 nano when the provider lists one) and otherwise uses the chat model. A `small_model` the provider cannot serve, or does not list, fails only those requests: chat keeps working, while new sessions keep their `New session - <time>` placeholder title until a retry succeeds. Altimate Code retries the title on each of the first five messages of a session and reports every failure in telemetry.
21
+
`small_model` handles the small background requests that are not part of the conversation, such as the session title and prompt enhancement. When it is not set, Altimate Code picks a cheap model from the same provider (Claude Haiku, Gemini Flash or GPT-5 nano when the provider lists one) and otherwise uses the chat model. A `small_model` the provider cannot serve, or does not list, fails only those requests: chat keeps working, while new sessions keep their `New session - <time>` placeholder title until a retry succeeds. Altimate Code retries the title on each of the first five messages of a session and reports every failure in telemetry. A failure shows up as a `failed to generate title` line in the log, with the provider's error, and as a `title_generation_failed` telemetry event naming the model that was asked for; correct or remove the `small_model` value to resolve it.
0 commit comments