Interlinked.

Agents · measured July 2026 · 8 min

Why does Copilot suggest outdated code?

GitHub Copilot autocompletes the deprecated API. Cursor reaches for last year's syntax. The model isn't out of date: its view of your code is. It completes from the file you have open plus a training snapshot from months ago, and where that runs out it guesses with the most common pattern it ever saw. Here is why that happens, and the two things that actually fix it: reach and freshness.

Start here · the definition

What an outdated suggestion actually is.

An outdated suggestion is what you get when an AI completes from a stale, partial picture of your codebase: where its live context runs out, it falls back on the most common pattern from its training data, and that pattern is usually the older one.

None of this is the model being wrong on purpose. An assistant only ever completes from the evidence in front of it. GitHub's own description of Copilot's inline suggestions is that they draw on the current file and your other open tabs, a technique it calls neighboring tabs. That is a small, fast window. When the answer you actually want (the renamed function, the migrated call, the new option) lives outside it, the model has nothing local to lean on, so it reconstructs from the statistically likeliest thing it saw in training. On real code, the likeliest thing is often last year's way of doing it.

For exactly what Copilot can and cannot see when it completes, see how GitHub Copilot finds context.

TL;DR
  • An outdated suggestion is a context problem, not an intelligence one: the model completes from a partial, lagging picture and fills the gaps with the most common pattern it learned, usually the older one.
  • Two blind spots cause it: reach (it only sees the file and tabs you have open, or the one repo it indexed) and freshness (any index is briefly behind your last save).
  • Close both and the guessing stops: a whole-machine index across every repo and the non-git 90%, kept current to about a millisecond after each save.
  • Interlinked has no model in it. It is the retrieval floor any agent (Copilot Chat, Cursor, Claude Code) can query, so it grounds on today's code, not a months-old training prior.
  • Measured on a 4.47M-file machine: a whole-machine content query lands in 16 ms where ripgrep took 93.8 s, and a saved edit is searchable in about a millisecond.

The same model, two contexts

Draw the two contexts side by side. The gap is the whole story.

Nothing about the model changes between these two panels. On the left it is fed a partial, lagging window and has to fill the gap by guessing; on the right it is handed the current code from the whole machine and has nothing left to invent. Same weights, same prompt: the only variable is what it could see.

SAME MODEL, DIFFERENT CONTEXTIN-EDITOR ASSISTANTCOPILOT · CURSORcompletes from what's open + a training snapshot1 · WHAT IT CAN SEEcurrent fileauth.tsuser.ts+ tabstraining snapshot, months old2 · WHAT IT CAN'T SEEthe renamed function · the migrated API· a sibling repo's newer copyFILLS THE GAP WITH THE TRAINING PRIOR suggests the old, deprecated patternthe newer version existed, just not where it looked- PARTIAL· only what's open- STALE· training fills the restALWAYS-FRESH INDEXWHOLE MACHINEevery file, every repo, current to ~1 ms1 · WHAT IT CAN SEEevery repo · the non-git 90%· today's version of every file2 · THE CURRENT DEFINITIONit's right there · ✓ currentupdated ~1 ms after your last saveGROUNDS ON WHAT'S ACTUALLY THERE suggests what your code uses todayno gap left for the old pattern to fill+ WHOLE MACHINE· across every repo+ FRESH· ~1 ms behind your save

Copilot's open-tabs mechanism is from GitHub's own documentation; no behavior is invented for it. The right panel is a whole-machine index kept current to about a millisecond after each save.

Four ways a suggestion goes stale

It is never one reason. It is four, and they compound.

Every stale suggestion traces to one of four gaps between what the code is now and what the assistant can see of it. Three are about reach (the file, the repo, the disk it can't look at) and one is about time: even a good index is briefly behind your last keystroke. Read the right-hand column and the same fix keeps appearing.

Why a suggestion goes staleWhat you seeWhat closes the gap
Bounded contextIt completes from the open file and your tabs; the current version lives in a file you didn't open.Reach across every repo, not just what's open.
The training priorWhere live context runs out, it falls back on the most common pattern it learned, usually the older one.Enough real, current context that it never has to guess.
Index lagA repo index built minutes ago still holds the code from before your last edit.Freshness: searchable about a millisecond after you save.
One-repo blind spotThe canonical copy lives in a sibling repo, or in the non-git 90% of the disk.One index spanning every repo and the files git never tracked.

Cursor closes the first three inside one repo by indexing your codebase and re-indexing as files change. The mechanics are in how Cursor indexes your codebase. The two it can't close on its own are the fourth-row blind spot (repos it never opened) and the lag between a save and the next re-index.

The lag is the leak

You already migrated the code. The index didn't get the memo.

Reach is the obvious half; freshness is the sneaky one. You rename a function and every call updates, but an index that rebuilds on a timer still holds the old name until its next pass, and for those seconds or minutes the assistant confidently completes the thing you just deleted. The bigger the repo, the longer the pass, the wider the stale window. An index that keeps up with the disk in real time doesn't have a stale window: the edit is searchable before you reach for the next key.

Duplication makes it worse. On our test machine the vault found two separate repos that shared 435 identical files, the exact shape where you fix one copy and the other silently rots. See how fast fresh can be in live indexing, measured.

~1 ms
typical time for a saved edit to become searchable: a human blink is about a hundred times slower
< 30 ms
worst-case freshness, roughly a single frame of a movie
435 files
duplicated across two repos on our machine, found unprompted: edit one copy and the other goes stale

The floor under the assistant

Don't make the model smarter. Give it a better view.

Interlinked doesn't rewrite Copilot's or Cursor's suggestions: there is no model in it, so it suggests nothing at all. It changes what the assistant can see before it suggests: an always-fresh index of every file on the machine, names and contents, across every repo and the non-git 90%, current within about a millisecond of your last save. Inline ghost text can't call a tool, but the moment you move to Chat, agent mode, or any MCP-speaking assistant, it can, and the context it pulls back is today's code from the whole machine instead of a months-old prior. It isn't semantic and doesn't try to be: it's the fast, literal, exhaustive layer that answers "what does this project use now?" before the model has to guess.

~1 ms
freshness: your rename or migration is in the index before the next keystroke, never a stale window
16 ms
a whole-machine content query that took ripgrep 93.8 s here: literal, exhaustive, and current
19
AI clients auto-configured in one install: Copilot, Cursor, Claude Code, Codex, Windsurf, Zed and the rest

Reach and freshness stop the guessing in the moment. A shared knowledge vault stops it repeating: the same index derives relationships by itself (which files change together, which separate repos ship as a set) and carries short notes any agent leaves, so a "deprecated, use X" you write once rides back to the next agent automatically on the searches it already runs. On a fresh machine, day one:

12 / 12
repos on the disk found and webbed, including which separate repos ship together, a fact no in-repo index can see
1.7 s
to replay 8,455 git events and seed 26,958 relationship pairs, no failures
0 LLMs
every edge is receipts (counts and hashes you can check), never a model's guess, and it never leaves the machine

For scale on the same drive: a by-name lookup that lands here in 139 µs takes VS Code's own search about 35 seconds (412,000× slower) and Windows Search a median 67 seconds (~480,000×). A single file lands in 85 µs, best case 2 µs. At rest the whole engine sits around 44 MB (less than a browser tab) and the index on disk stays under 1% of the drive. There is no model anywhere in the box. Why this is the slowest layer under every agent is the subject of the backbone of the LLM economy.

NOT A NEW MODEL: A FRESH, WHOLE-MACHINE VIEW SO THE ONE YOU ALREADY USE STOPS GUESSING.

Do this today

Give your assistant today's code.

1

Install once. One signed installer indexes every file on your machine and auto-configures 19 AI clients: Copilot, Cursor, Claude Code, Codex, Windsurf, Zed and the rest. No JSON editing, no cloud account, no keys.

2

Keep your assistant. Nothing here asks you to drop Copilot's completions or Cursor's index. They keep working exactly as they do; they just gain a fast, literal, always-fresh, whole-machine lookup alongside them.

3

Let it stay fresh. A saved edit is searchable in about a millisecond, so the migration you did thirty seconds ago is already the answer, with no stale window while an index catches up on a timer.

4

Leave notes for the next agent. When you deprecate something, say so once on the file. The vault feeds that back to whichever agent asks next, so the whole machine remembers the change you already made.

Everything local is free forever, on all your devices, no card. Hosting starts at $5.99/mo. Download for Windows · Claude Code vs Copilot

Questions people actually ask

Outdated suggestions, answered.

Why does Copilot suggest outdated code?

Because it completes from a partial, lagging view of your project. Inline suggestions are built from the file you have open and your other tabs; where that runs out, the model falls back on the most common pattern from its training data (a snapshot that is months old) and that pattern is usually the older, deprecated one.

Does Cursor have the same problem?

Broadly yes. Cursor indexes your codebase and re-indexes as files change, which helps a lot inside one repo, but between an edit and the next re-index the index is briefly behind, and its reach still stops at the workspace you opened, so a newer definition in a sibling repo or an untracked file stays invisible.

Is it the model's fault, or the context?

Mostly the context. A newer model guesses a little better, but it is still guessing whenever the live evidence runs out. Close the gap (give it more of the current code, from everywhere, kept fresh) and there is far less it has to invent.

How do I stop it suggesting a deprecated API?

Shrink the gap it fills by guessing. Give the agent a fresh, whole-machine view so the current definition is in front of it, and leave a short note on the file ('deprecated, use X') that a shared knowledge vault feeds back to the next agent automatically on the searches it already runs.

Does Interlinked replace Copilot or Cursor?

No. There is no model in it, so it suggests nothing. It is the retrieval floor underneath them: an always-fresh, whole-machine index either one can query over MCP, so the code it grounds on is today's, across every repo, instead of a months-old prior. Keep the assistant you like; give it a better view.

Measured July 2026 · Ryzen 9 9950X3D · 4.47M files · Windows 11← All research