Changelog
0.4.0 (2026-11-02)
Giga Brain is now Big Brain. The command is still
brain and existing brains keep working: an install that
already has giga-brain data/cache folders keeps using them;
new installs use big-brain (whichever folder actually holds
data wins, so an empty new folder can't hide an existing brain;
brain doctor warns if both hold entries).
brain setup installs the agent skill as
big-brain, replaces its old managed block in AGENTS.md, and
moves the old giga-brain copies it had installed (only ones
it recognises, never user skills) into
<tool>/big-brain-migration/; nothing is deleted.
Keeping a shared brain accurate as it grows (ideas studied from GBrain and Gigabrain, both MIT; no code taken).
- Links between entries:
relatedandsupersedesmust name existing entries;brain getshows links in both directions ("see also", "replaces", "linked from");brain checklists broken links;brain rmrefuses to delete an entry others link to unless--yes. - Retiring:
brain retire <id> --why "…" [--by <new-id>]. Retired and superseded entries drop out of search, lists, stale checks, reviews and hooks, and stay readable (brain get,--all), so an old procedure can't outrank its replacement. brain maintain: nightly upkeep that never edits entries: index, librarian review of stale entries, broken links, near-duplicates, and a contradiction check of closely related entries (each pair judged once per version, confident verdicts only).brain getshows "may contradict";brain doctorcounts contradictions and says when maintain last ran.nightly.shnow runs it.- Privacy masking: emails, IP addresses and
home-folder user names are masked in text sent to remote models, plus
your own patterns (
[privacy] patterns); local models get text unchanged. - Trust tie-break: when two results score about the same, the verified one ranks first.
- Safer automatic context: hooks name stale entries
and how many of their files changed, never file names (entry text is
untrusted);
brain getshows librarian verdicts, and their free-text notes only with--notes. Nothing that looks like a secret is sent to any model, search queries included. Masking fails closed on a bad pattern, more than 50 patterns, or more than 64 KB of text. - OpenAI's newer models work as the librarian:
OpenAI's GPT-5 and reasoning models refuse
max_tokensand a custom temperature; brain now retries once withmax_completion_tokensand keeps using it. Azure, LM Studio and other OpenAI-compatible services are unchanged. - Hardening (Grok audit): requests to this machine
(LM Studio, local servers) never go through an
HTTP_PROXY/HTTPS_PROXY/ALL_PROXYproxy, since that traffic is unmasked and may carry a key. A service's error replies are no longer shown (only the HTTP status and a short error code), so a hostile endpoint can't put instructions or echoed keys in front of agents. Endpoint URLs with a?queryare refused (keys belong inauth), and so isuser:password@with any auth setting. Short passwords, quoted passphrases with spaces and YAML|blocks are caught as secrets, while references ($DEPLOY_KEY,${TOKEN}), placeholders and ordinary code (password: String,self.password, unquoted only: a quoted value is a literal) still pass (checked against about 6,000 files of real code). Network errors and privacy-pattern errors are fixed descriptions: no proxy URL, server text or pattern text in them. Quoted passwords made of ordinary words are secrets too; escaped Windows paths (C:\\Users\\…in JSON or code) are masked; the Azure VM sign-in request never follows redirects. Service error codes are shown only if they're on a known list. Doctor and sign-in errors no longer show a token command's arguments oraz's raw error output. Masking also catchesip:2001:db8::1and Windows home folders written with forward slashes (c:/users/<name>).
0.3.0 (2026-11-02)
Security and polish, from reviews by Codex and Grok.
- Security:
- the secret scanner catches JSON keys (
"password": …),client_secret/AZURE_CLIENT_SECRET,secret_access_key,Authorization: Bearer|Basic …, passwords inside URLs and Azure SAS tokens; - entries (frontmatter and body) are checked for secrets again before being sent for embeddings or review, so hand edits and git pulls can't slip one out; flagged entries stay keyword-searchable and are reported;
- credentials are never sent over plain http (except to this machine:
localhostor a loopback IP) or along a redirect; the Azure sign-in token goes only to Azure OpenAI / AI Services endpoints, or to gateways you list intoken_hosts(brain setupasks; API Management gateways must be listed); azruns without a shell and token scopes must be plain https URLs; the managed-identity request encodes its parameters and checksAZURE_CLIENT_ID;- Azure tokens are cached per scope, identity and host in the private
cache folder, outside the brain (on Windows
%LOCALAPPDATA%\giga-brain-cache); an old cache in the brain folder is deleted; the cache file is created owner-only; - absolute and
~/refs must be inside a registered project (agents open refs); - git reads ref paths literally (
--literal-pathspecs), so a file name can't widen a diff; - librarian notes are flattened (no control characters or extra lines)
and never enter hook context: hooks show only the verdict and point to
brain get; the librarian is told entries and diffs are data, not instructions; file names in hook context are sanitised; skill-local.mdjoins agent instructions only if it matches what is already installed or a person approves it at the keyboard (--yesnever adds new or changed text); it is checked for secrets;- the brain folder is created readable only by its owner;
brain doctorwarns otherwise.
- the secret scanner catches JSON keys (
- New:
brain upgrade(and--check): fetch the clone's upstream (https or ssh only), show what's new, fast-forward, and rebuild the exact fetched commit from a clean checkout, with the same features, into the same place (on Windows the running exe is moved aside and restored on failure). A token in the clone's address is moved to git's credential store, read back to confirm, and only then removed from the address. Off a terminal it needs--yes. It also rebuilds when an earlier build failed after fetching. - Look and feel:
- one layout for every listing (search, list, related, stale): numbered bold title, a meta line (kind · project · verified · date · stale), and the id;
brain getshows a readable view (header, sections, files with their state, related entries, the librarian's labelled note) instead of raw YAML;--rawis unchanged;- search says whether it matched by meaning or by keywords only (and why), wraps the matching passage to the terminal, and colours match scores against each provider's own thresholds;
brain setupruns as five numbered steps, keeps earlier answers when re-run, refuses empty required values, lists the files it will change before changing them, and ends with a summary;- doctor, stats and digest share the "Giga Brain" header; clearer empty states with the next command;
- colours work in classic Windows consoles, and error colours follow stderr;
- layouts follow the real terminal width (stats bars shrink on narrow terminals).
- Docs: Windows/macOS build prerequisites,
cargo install --locked, PowerShell notes, the doctor's one-word embedding check,token_hosts, and where tokens are cached.
0.2.0 (2026-10-31)
- New:
brain doctorchecks settings, AI providers, the index and each agent tool's setup, with ✓/⚠/✗ and what to fix. - New:
brain stats, also shown by plainbrain: entries per project and kind, stale counts, most active writers, newest entries. - New:
brain digest [--since 24h|3d|2w|DATE]: what agents recorded recently, grouped by project. - New:
brain setup: one-time, re-runnable configuration (name, reviewer, AI providers, agent tools, projects), merging into existing settings. - New: pluggable AI. Embeddings: local (optional
local-embeddingsbuild feature), Azure OpenAI (keyless via managed identity oraz login), any OpenAI-compatible server, or none (keyword search). Librarian: LM Studio, Azure, OpenAI-compatible, or none. - New: Codex and Grok support (skill, always-on instructions, hooks); Copilot and other tools get an instruction block to paste.
- Search falls back to keywords when the embedding provider is unreachable, and catches up later.
- Stale-entry notes repeat after 10 messages if not handled; only entries actually shown count as told.
- Colour output in terminals (plain when piped or with
NO_COLOR); help with examples. - Duplicate check only compares entries of the same kind.
- Personal names and paths moved from code into settings; Windows and macOS paths.
- Security and robustness fixes from independent audits (Claude and
Grok):
- the librarian sends only git diffs of files inside registered
projects, never whole files, and withholds secret-looking diffs; only
real commit hashes reach
git diff, with external diff tools off; - refs can't escape their project (
.., symlinks, Windows drive letters); - the OS certificate store is used (corporate TLS inspection); Azure
tokens are cached between runs;
AZURE_CLIENT_ID, slow managed-identity endpoints,…/openaiURLs and custom token scopes work; brain recordworks when embeddings are down; brain commits ignore global signing and git hooks;- librarian notes reach agents marked as unverified AI notes;
brain setupwrites settings atomically and keeps a one-time backup;brain edituses a private temp file and editors with arguments; concurrent edits of one entry are refused, not lost;- match thresholds per provider (configurable); Azure keys and connection strings in the secret scan.
- the librarian sends only git diffs of files inside registered
projects, never whole files, and withholds secret-looking diffs; only
real commit hashes reach
- Automated tests (
cargo test). - Removed
brain backup(back up the brain folder however you back up other files).
0.1.0
- First version: entries in git, hybrid search, staleness via file fingerprints, hooks for Claude Code, runbook proposals, LM Studio librarian.