@altimateai/altimate-code 0.11.2 → 0.12.0

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.
Files changed (2) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/package.json +9 -9
package/CHANGELOG.md CHANGED
@@ -5,6 +5,26 @@ 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.0] - 2026-09-18
9
+
10
+ The workspace pilot grows a management surface: the agent knows which workspace it is linked to, the sidebar shows what has and has not synced, a `/workspace` menu handles refresh/sync/unlink, and a locally written skill can be published to the workspace. Everything under **Added** is pilot-only (`ALTIMATE_WORKSPACE=1`); nothing changes for other users. **Heads-up for support:** `upgrade` and `uninstall` now refuse when they cannot tell how the binary was installed, instead of guessing — see the first entry under **Fixed**.
11
+
12
+ ### Added
13
+
14
+ - **The agent knows which workspace it is linked to.** The system prompt names the bound workspace whenever the binding is verified, so "which workspace is this project linked to?" is answerable; unverified states stay unnamed. Server-provided names are stripped of control and line-separator characters and length-bounded before they reach the prompt, so a hostile workspace name cannot open a new heading or role. (#1278)
15
+ - **`/workspace` menu** — shows the binding, then **Refresh** (pull the workspace's skills and memory into this project), **Sync** (re-send local memory the workspace never received) and **Unlink**. Unlink is safe against a relink that lands mid-request and confirms with the server before clearing local state. (#1278)
16
+ - **Sidebar sync status** — two lines under the workspace name: `12 memories · 3 not synced` and `skills synced 6m ago`. Refreshes every 30 s and reacts immediately to a link, unlink or rebind in this process. The memory-enablement check is rate-limited (once per five minutes on "no", never re-asked on "yes") and scoped to the signed-in account, so a tenant switch never pairs one account's counts with another's name. (#1279)
17
+ - **Publish a skill to the workspace** — `altimate-code skill publish <name>`, and a "Publish to workspace" action in the Skills dialog (`ctrl+a` on a skill). Uploads every file in the skill directory, not just `SKILL.md`; re-publishing updates the same workspace skill. Refuses, with a message that says what to do, when the project is not linked, the account does not own the workspace, the skill is built-in, global, or one the workspace sent you, a file is binary or a symlink, the bundle is empty or over 10 MB / 100 files, the name is taken by another of your skills, or the skill was edited in the workspace while you were uploading. Never uploads `.env*`, `.git`, editor swap files, private keys and certificates (`id_rsa`, `*.pem`, `*.key`, `*.p12`, …), `.npmrc`/`.netrc`/`.pypirc`, `credentials.json`, `secrets.*`, or the `.ssh`/`.aws`/`.gnupg`/`.altimate` directories — a filename blocklist, so keep other secrets out of skill folders. Documented in [Skills](docs/docs/configure/skills.md#cli-commands). (#1280, #1313)
18
+ - **Extension tools in the prompt** — when a live VS Code bridge for this project serves extension-type tools (dbt project tools, SQL tools), the `## Workspace integrations` section now names them, so the model can call what the IDE is actually serving. Silent unless both the catalog lists the tool and the bridge is verified alive. (#1291)
19
+
20
+ ### Fixed
21
+
22
+ - **`upgrade` and `uninstall` resolve the install from the running binary** instead of asking every package manager and acting on the first that answered. When the method cannot be confirmed — a pinned `ALTIMATE_CODE_BIN_PATH`, an `npx`/`dlx` cache, a scoop or choco install (which only ever targeted upstream's `opencode` package), or an unfamiliar layout — both commands now refuse and print the manual command for each manager, rather than upgrading the wrong package or, for `uninstall`, deleting config, data and cache before failing to remove the binary. Upgrade failures name a reason; subprocess output reaching the log is redacted first. (#1305, #1306)
23
+ - **Compaction, title and summary requests no longer fail with "Could not get a response from the agent."** Those requests declare no tools while summarising a history full of tool calls, which the Altimate gateway rejects. Tool parts are now flattened to readable text for toolless requests only, with assistant turns coalesced so role alternation holds; ordinary turns are untouched. (#1319, closes #1315)
24
+ - **Creating a quick workspace from an already-linked project works.** The atomic create-and-bind call refused before creating anything, so the rebind path never had a target. It now creates unbound, then repoints — and aborts cleanly if the signed-in account changes in between, rather than stranding a new workspace. (#1318)
25
+ - **`skill publish` and the TUI "Publish to workspace" row appear only under the workspace pilot**, like `link`; outside it, the command told users to run a `link` command that did not exist for them. Found in this release's review.
26
+ - **`test/installation/ownership.test.ts` read the developer's real `BUN_INSTALL`** and was red on any machine where bun had ever installed this package globally. Found in this release's review.
27
+
8
28
  ## [0.11.2] - 2026-09-11
9
29
 
10
30
  Patch on 0.11.1: closes the gap that kept most free-tier users from ever being offered Altimate Base, and makes linked workspace names clickable. **Heads-up for support:** on their next launch, users whose default quietly moved to a public free Zen model after 0.11.0 will now see a one-time dialog asking whether to switch to Altimate Base. Nothing switches without a Yes.
package/package.json CHANGED
@@ -7,20 +7,20 @@
7
7
  "scripts": {
8
8
  "postinstall": "bun ./postinstall.mjs || node ./postinstall.mjs"
9
9
  },
10
- "version": "0.11.2",
10
+ "version": "0.12.0",
11
11
  "license": "MIT",
12
12
  "dependencies": {
13
13
  "@altimateai/altimate-core": "0.7.0"
14
14
  },
15
15
  "optionalDependencies": {
16
- "@altimateai/altimate-code-darwin-x64-baseline": "0.11.2",
17
- "@altimateai/altimate-code-linux-x64-baseline": "0.11.2",
18
- "@altimateai/altimate-code-linux-arm64": "0.11.2",
19
- "@altimateai/altimate-code-windows-x64-baseline": "0.11.2",
20
- "@altimateai/altimate-code-darwin-arm64": "0.11.2",
21
- "@altimateai/altimate-code-darwin-x64": "0.11.2",
22
- "@altimateai/altimate-code-windows-x64": "0.11.2",
23
- "@altimateai/altimate-code-linux-x64": "0.11.2"
16
+ "@altimateai/altimate-code-darwin-x64-baseline": "0.12.0",
17
+ "@altimateai/altimate-code-linux-x64-baseline": "0.12.0",
18
+ "@altimateai/altimate-code-linux-arm64": "0.12.0",
19
+ "@altimateai/altimate-code-windows-x64-baseline": "0.12.0",
20
+ "@altimateai/altimate-code-darwin-arm64": "0.12.0",
21
+ "@altimateai/altimate-code-darwin-x64": "0.12.0",
22
+ "@altimateai/altimate-code-windows-x64": "0.12.0",
23
+ "@altimateai/altimate-code-linux-x64": "0.12.0"
24
24
  },
25
25
  "peerDependencies": {
26
26
  "pg": ">=8",