Repository navigation
Fix what live-testing code search and shared memory found - #396
Merged
Merged
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
…symbol has no match, type method receivers - .atlasignore re-includes vendor/atlas-engine (first-party per ADR-0003); a re-include now lifts only the skip it names, so target/ and node_modules inside it stay pruned. The CI planner classifies it as an input of atlas-codeindex's tests. - files pruned by built-in rules (vendor, .atlasignore) count as skipped - find_symbol leads with 'no exact match for "X"' when nothing matches the name - the resolver infers Rust receiver types (let bindings, tuples, fields, method chains, Arc/Box/guards, ?/await) and links a method only to that type's impl; a name-only match in another crate drops to 0.375 confidence - eval_edges reports call-only recall beside the historical metric; a gold answer gains the moved memory store - examples get Metal on macOS like the app does Call recall vs rust-analyzer: 0.849 -> 0.926, precision 0.972 -> 0.980. On the PR #382 metric (every reference on a call line, types included) 0.661 -> 0.700; that metric is capped near 0.70. EXTRACTOR_VERSION 2.3: indexes rebuild once. Co-authored-by: Ahammad Nafiz <ahammadnafiz@outlook.com>
…r offers the code embedding model - looking up a model's path no longer creates its folder; installed means every model file is present, and model_download creates the folder on tokio::fs - an 'Enable semantic search' pill in the composer starts the download or opens Local Models; hidden while agent code tools are off, dismissible per model (every open composer hears it), never downloads on its own - the mock backend keeps memory and code model selections apart and fakes a download Co-authored-by: Ahammad Nafiz <ahammadnafiz@outlook.com>
…s bounded, and no session token reaches an agent's argv Capture and briefing - extraction catches up on recorded sessions in prompt-sized passes, at most 3 per job, skipping anything active in the last 15 minutes (in any process); failures log at warn instead of debug - sessions imported from outside Atlas (terminal agents) are read only when the new per-project 'Learn from sessions outside Atlas' setting is on; it is off by default because it sends their transcripts to the extraction model - a plan whose items are all done (or superseded) is no longer the active plan - filesChanged keeps only paths under the project root or its worktrees, with .., ~ and linked-worktree roots resolved; out-of-root paths are not captured - the briefing always carries handoff (null when there is none) and builds one for a session that never recorded its end memory_search - documents are excerpts around the matching passage inside a max_output_tokens budget (1000-12000, default 4096) with a truncation marker - a relevance floor: a match must be supported by its words or its meaning, and a query nothing supports returns an empty result with a note MCP credentials (ADR-0020, amends 0010, 0015, 0019) - only the in-process agent gets the loopback servers over HTTP with a bearer header; every ACP agent gets them through the stdio bridge, which reads the token from a 0600 file, because adapters copy an entry's headers and env onto the agent's command line - token files are removed when their session ends; ended launches are swept at startup off the runtime thread; a live launch holds a lock and is never swept Tests for each; AtlasMemBench passes unchanged; parity_bench fixtures now carry a body as the corpus format requires. Co-authored-by: Ahammad Nafiz <ahammadnafiz@outlook.com>
uzayer
force-pushed
the
fix/codeindex-memory-live-test
branch
from
October 9, 2026 18:16
71346e3 to
c9e7a40
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What?
Fixes for what a live test of the code-search (#382) and shared-memory (#387) pipelines found, run against this repo and the installed 0.4.1 app. Three commits:
vendor/atlas-engine, two thirds of the source) is indexed; built-in skips show up in the skipped counts;find_symbolsays when nothing matches the name; the resolver types Rust method receivers.memory_searchoutput is bounded and filtered by relevance, and the session token no longer reaches an agent's command line (ADR-0020).Why?
What the live test found, each now covered by a test:
ps. The token was inclaude --mcp-config {…"Authorization":"Bearer <token>"}, and any local process could read it. Putting it inenvinstead doesn't help, because the adapter copiesenvonto the command line too.handofffield.memory_search:find_symbol AppServerClientreturned unrelated hits.find_symboldressed loose matches up as answers.New data flow, behind a setting that is off by default. "Learn from sessions outside Atlas" lets extraction read sessions the recorder imported from the terminal. Their transcripts then go to the extraction model, the same way in-app sessions' do. It is a per-project switch next to the sharing switch, and it is greyed out while sharing is off.
How?
0600file. The decision is made per connection (in_process), never per agent id.claudeCLI, neitherclaudenor the bridge has the token in its command line.warn...,~and linked-worktree roots resolved.handoffis always present (nullwhen there is none), and one is built for sessions that never recorded their end.memory_search.max_output_tokensbudget (default 4096), with atruncationmarker..atlasignorere-includesvendor/atlas-engine. A re-include now lifts only the skip it names, sovendor/atlas-engine/targetstays pruned.EXTRACTOR_VERSIONis 2.3, so existing indexes rebuild once.crates/andsrc-tauri/.eval_edgesnow prints both.Not fixed:
clippy.toml's config warnings: it is upstream's file.MemoryRegistry::request_reindexis already called only from tests at the base commit; probably dead since code left the memory corpus.memory_searchcan still return a couple of loosely related excerpts.Checklist
bun run dev(headless Chrome). The token path was proven with a debug binary and the real claude-acp adapter against the installed app. No session has been driven through a debug build of Atlas itself.bun run ci:localis green from clean builds, includingapp (src-tauri, Linux)in the container. The Windows compile is CI-only, and launching the stdio bridge on Windows is still the manual check ADR-0019 describes. It now applies to every ACP agent.Co-authored-by: Ahammad Nafiz ahammadnafiz@outlook.com