Atlas Scout Preview 27 · Official release · August 4, 2026

What Scout skips is now shown. What Scout says is now checked.

The dangerous failures in a navigation tool are the silent ones: an ignore rule that hides files without saying so, a hook that promises an index it never verified, a cached plugin that keeps speaking for a runtime three releases newer. Preview 26 made the answers honest. Preview 27 makes the integration honest - it shows every exclusion, checks every claim before making it, and keeps itself aligned with the runtime it represents.

.atlasignore · .gitignore outside Git · ignored_paths

What Scout skips is no longer a secret.

An exclusion you cannot see is indistinguishable from a bug. When a directory is missing from results, the agent - or the person supervising one - cannot tell whether the index is broken, the language is unsupported, or an ignore rule somewhere decided the files should not exist. Preview 27 resolves that ambiguity in both directions: more control over what is excluded, and full visibility into what was.

New

Scout-only exclusions.

A workspace .atlasignorefile excludes paths from Scout’s index without affecting any other ignore-aware tool. Your build, your linter, and your text search never see it.

Parity

.gitignore works without Git.

Scout now honors .gitignorefiles even outside a Git repository, matching ripgrep’s --no-require-git behavior - the semantics developers already expect from their search tools.

Visibility

Exclusions are reported, not implied.

Discovery records excluded paths at their shallowest roots, capped at 256 entries with an explicit truncation flag. symbol_schema returns the list as an optional ignored_pathsblock, filtered to a requested directory scope. Scout’s own cache and .git remain hidden.

Fixed

Ignore edits take effect on the next reconcile.

Changing a known .gitignore previously updated only its snapshot metadata, leaving newly ignored files indexed until an unrelated full walk. Changed ignore files now force the documented ignore-aware discovery pass.

Verified claims · real search patterns · guidance where it is read

The hooks stopped promising what they had not checked.

The Claude Code tool notice used to open with “Atlas Scout has this workspace indexed” - unconditionally. In an unindexed workspace that was a promise the first tool call could not keep, and a reader taught to distrust one notice distrusts them all. Both the tool notice and the new prompt reminder now verify that an index database actually exists at or above the hook’s working directory, and stay silent when it does not.

The notice also aimed at the wrong target. It matched only Claude’s Grep tool, but sessions search through Bash running rg or grep at least as often - and newer harnesses may not expose Grep at all. The hook now parses shell commands too, finds the first rg/grep-family invocation across command separators, and applies the same identifier test to its pattern. The failure mode is chosen deliberately: a mistaken parse costs a missed notice, never a wrong one, because the identifier gate still has the final word. The per-session notice budget rises from two to four to match the wider reach.

And the navigation policy moved to where it is actually read. The session-start description sits at the top of a conversation that only grows away from it, and models weight recent context far more heavily. A new UserPromptSubmit hook adds a short reminder of the structural tools on the first prompt of a session and every fifth prompt after - only in workspaces that hold an Atlas Scout index, and never twice for a turn that just paid for one.

The hooks remain advisory only: they inject context, never make a permission decision, and never deny, retry, or modify a tool call. Prose searches and regular expressions are still ignored.

One command · three managed surfaces · every upgrade

The integration now follows the runtime.

Claude Code copies a plugin into its install cache. That is the right design for Claude Code - and it means releasing a new Atlas Scout runtime silently left the old hooks, skill, and MCP declaration in place, speaking for a version that no longer existed. Cached guidance drifting behind the runtime is the same failure as an unverified index claim: the integration saying something the product cannot back.

atlas-scout claude-code sync

The command aligns three things independently and reports each: the managed Atlas Scout section of the user-global ~/.claude/CLAUDE.md - created for new users, appended to an existing memory, rewritten in place when a release changes the canonical text, and never touching content outside its begin/end markers - plus the managed marketplace registration and the installed plugin, registered, installed, enabled, or updated as the inspected state requires. A memory file with a begin marker but no end marker is reported and left untouched rather than guessed at.

You will rarely need to type it: atlas-scout upgradenow runs the upgraded binary’s sync after promotion, so each release carries its own texts forward, and doctor recommendations point at the command instead of describing manual steps.

The code-navigation skill also learned the phrasings users actually type. Its description listed capability nouns; it now also names the questions - where a symbol is defined, who calls or uses a function, what implements an interface, what breaks if code changes - so Claude Code’s description matching can find it from a natural request.

Fresh on arrival · space returned · never blocking

Maintenance that never asks for your time.

Session start

The first query answers from a current index.

The SessionStart hook now spawns a detached atlas-scout indexfor the session’s working directory, so the first structural query does not pay for the refresh itself. The session never waits on it, and directories without a .git or .atlas ancestor are left alone - a session opened in a home directory cannot start an account-wide scan.

Space reclamation

A shrinking workspace returns its pages.

A reconcile now runs a best-effort VACUUM when the SQLite freelist is both larger than 16 MiB and more than one quarter of the database. It runs on the full and healthy fast paths, and optional space reclamation is never allowed to become an indexing failure.

Signed release · four native targets · public verification

The release boundary, verified as always.

Signed tag
v1.0.0-preview.27
Release commit
2e7a23ef4739fc7e93b40e64a7b8bf353a4a8f6f
Release manifest SHA-256
2cb96953f35d265d2b51cc0a7b7ef6fbe2067c9c5f93087092619f0965191d8f
Release tests
487 passed per Linux and macOS lane · 456 on Windows · intentional ignores only · 0 failed on every target
Public immutable objects
24 objects · exact size and SHA-256 verified
Stable channel
Untouched · no stable pointer published

Every native lane built and tested on its target runner, completed the offline smoke test, produced its SBOM and Sigstore provenance, passed OpenPGP certification, and moved through private staging and owner-gated promotion without rebuilding. Independent public verification then downloaded every versioned object and checked its bytes, hash, and cache policy.

Preview 27 is the current public preview

Upgrade the complete managed installation.

The native updater verifies the signed release contract, checks pointer freshness, stages the complete runtime and integration payload, and atomically moves the managed installation to Preview 27 - then runs the upgraded binary’s claude-code sync so the integration arrives already aligned.

atlas-scout upgrade --check
atlas-scout upgrade