
Loading

Loading
Release · August 26, 2026 · All news
A trust and install-safety release. Someone read our installer before running it and refused, and every objection was correct. Telemetry is now opt-in, disclosure comes before the first write, every shared config is backed up and never overwritten when unreadable, and there is one command to take it all back out.
curl -fsSL https://www.lamlab.ai/api/install/claude-upgrade | sh — or ask your agent to “update Cognition” in plain English. Same key, no new key needed.01 1.6.85
A prospective user read the Claude installer end to end before running it and refused. Every objection was correct. The Bash hook posted every command and its output on every call, the server-side flag gated storage but never transmission, and the only off switch was a marker file nobody was told about until after the writes had landed.
Content telemetry now requires explicit consent. Without COGNITION_TELEMETRY=1 the hook is never written, so no artifact on disk can send shell output anywhere, and a re-run without it removes a hook you consented to before. Both hooks fail closed. The session-end hook no longer opens your transcript without consent, because reading a transcript you were not permitted to read is the same violation as sending it. The feedback link still works with telemetry off — bundling an optional feature with data collection is what forced the all-or-nothing choice. The pre-1.6.85 no-telemetry marker still hard-disables everything.
02 1.6.85
A summary printed after the files are changed is a receipt, not consent. The installer now prints exactly what it is about to touch before it touches anything, and COGNITION_DRY_RUN=1 prints the whole plan and changes nothing.
Dry run needs no key, because the person most likely to want a preview is the one who does not have an account yet. The installer also stops touching other tools' state: it no longer runs an unqualified pkill on the MCP bridge or deletes the shared auth cache, both of which signed you out of every other MCP server on the machine. Installing one tool must not sign you out of the others.
03 1.6.85
Auditing the rest of the install surface the same way — render each script, syntax-check its payloads, run it against a sandboxed home directory — found five bugs that rewrote configuration you share with other tools. Every one is fixed, and each fix has a guard verified to fail on the old code.
Codex config.toml was edited by regex: a pre-existing duplicate survived and the installer appended a third, which is invalid TOML and breaks Codex rather than Cognition, and the lookahead orphaned an env subtable still holding your previous key. Both only fired on re-run, so they hit the person already reinstalling to fix something else. The Gemini and Claude installers caught a settings.json parse error, defaulted to an empty object, and wrote that over the whole file. claude-upgrade did the same on every update. The feedback hook wrote the literal text null into settings.json, which breaks Claude Code itself. Every path that rewrites a shared config now backs it up to <file>.cognition-backup and refuses rather than rewriting what it could not parse. Cursor already refused correctly; that behaviour is pinned so a refactor cannot simplify it into the same bug.
04 1.6.85
One command removes Cognition from every host it finds — Claude Code, Codex, Cursor, and Gemini — editing each host's own config format rather than shelling out to a CLI that may not exist after a failed install.
curl -fsSL https://www.lamlab.ai/api/install/uninstall | sh. Offline, idempotent, dry-runnable. It keeps every other MCP server and preserves the instructions you wrote yourself. An install that cannot be undone in one command is a decision you have to live with; one that can is a trial.
05 1.6.85
The first draft of this note named claude-upgrade as the command that removes the always-on telemetry hook. It did not: the upgrade path's hook matcher never listed the hook, so it refreshed the managed block, printed OK, and left the hook exactly where it was. The universal updater had the same gap. Both are fixed, and the hook script itself is now deleted rather than merely unhooked.
The matcher that answers is this hook ours? had been copy-pasted into four scripts with nothing forcing them to agree, and they disagreed twice. The copies were the defect. One registry now feeds all four, a test asserts every script ships the identical pattern, and it checks the matcher never over-matches another tool's hook — the more damaging direction, since removing hooks that were never ours is the same class of bug this release exists to fix. A user who opted in keeps their hook, because an upgrade must not silently reverse a decision they made.
06 1.6.85
Two skills auto-loaded onto work they had nothing to do with, on pure keyword collision. The precision gate was not wrong; it was unreachable. Every gate judges a candidate on its stored trigger and fails open when that is empty — correct for a skill with no trigger, wrong for a skill whose trigger lives in its body and never reached the column.
Retrieval now resolves the trigger from the stored column first and falls back to the skill's When to fire block, scoped to that section deliberately — a whole body mentions dozens of things the skill is not about. Strictly fail-open to fail-closed: when the column is populated nothing changes, and a recall guard pins the skill that should still fire. When a match lands, the result says what matched.
Also in this release
Re-run your installer once. After that, nothing on your machine can send shell output without your say-so, and one command removes everything if you change your mind.