KognitaKognita.

Blog

GitHub Copilot @workspace Indexing: What It Does and Where It Stops

9 min read

GitHub Copilot's workspace feature — accessed via @workspace in VS Code — is Copilot's answer to codebase-aware AI assistance. It searches your local workspace, retrieves relevant files, and feeds them into the chat context. It is more capable than autocomplete-only Copilot and handles many codebase navigation questions adequately. But it shares the same fundamental limits as every per-developer, per-repo indexing approach: the index is your snapshot, scoped to your machine, ending at your repository boundary.

How Copilot workspace indexing works

When you use @workspace in VS Code, Copilot searches your local workspace for files relevant to your query. It combines keyword search with semantic retrieval, and feeds the results into the chat context window. The results depend on what is in your locally cloned repository and which files are included in the VS Code workspace:

Copilot workspace indexing capabilities and limits
GitHub Copilot Workspace indexing:
  ✓ Reads open files in VS Code / JetBrains
  ✓ Uses @workspace to search the local clone
  ✓ Understands project structure from open workspace
  ✓ Respects .gitignore for inclusion/exclusion
  ✗ Single repo per workspace session
  ✗ No cross-repo relationship indexing
  ✗ No behavioral flow reconstruction
  ✗ Context limited to active editor files + retrieval window

This is a real improvement over file-by-file Copilot — when you have a question about your codebase and you are already in VS Code, @workspace handles a large class of navigation and explanation questions adequately. The ceiling becomes visible when questions require information outside the open workspace or across service boundaries.

Copilot vs. Cursor: the indexing comparison

The choice between Copilot and Cursor for codebase-aware AI assistance often comes down to IDE preference and retrieval depth, but both share the same architectural constraints when it comes to indexing:

Indexing comparison: Copilot workspace vs. Cursor
Copilot vs. Cursor indexing approach:
  Copilot:
    → Retrieval: keyword + semantic hybrid (via @workspace)
    → Scope: open VS Code workspace
    → Updates: on file open/save
    → Cross-repo: not supported

  Cursor:
    → Retrieval: semantic vector search
    → Scope: indexed repository
    → Updates: incremental on save
    → Cross-repo: not supported

  Both:
    → Per-developer, per-machine
    → No shared team index
    → Single-repo boundary

Cursor's vector-based semantic search is generally stronger than Copilot's hybrid approach for conceptual code navigation — finding related logic that does not share keywords. But for the structural limits that matter at team scale — per-developer state, single-repo scope, no shared canonical index — both tools have the same problem, as described in AI coding at scale with 50 engineers.

Questions @workspace handles poorly

The most consequential limitations of Copilot workspace indexing appear in cross-service questions, impact analysis, and any query that requires reasoning across more than one repository:

High-value questions beyond @workspace's reach
Questions @workspace answers poorly or not at all:
  "What other services publish to this queue?"
    → @workspace only sees the current repo

  "Where else in the codebase does this pattern appear?"
    → limited by context window, not full semantic index

  "What changed recently that might have broken this?"
    → no temporal awareness, no git diff context by default

  "What does this service own vs. what does it call?"
    → no ownership model, just import graphs

The cross-repo limitation is the most practically significant. On a microservice architecture, most non-trivial questions touch more than one service. "What happens downstream when this event fires?" — the answer requires looking at the service that consumes the event, which is in a different repo. This is the same structural gap covered in the context of Cursor's single-repo semantic search limit.

The enterprise limitation: no shared index

For enterprise teams, the deeper limitation is the per-developer model. Each developer using Copilot with @workspace has their own local workspace, their own pull state, and their own active files. There is no canonical shared index that the whole team can query. Two developers asking the same question about the same codebase may get different answers, depending on what each has locally checked out.

This also means that non-developer roles — product managers, support leads, engineering managers — cannot use Copilot for codebase questions at all. They do not have a local clone, they do not have VS Code set up, and the workspace model requires exactly the developer toolchain they lack. The AI advantage is developer-only by design.

What a shared semantic index changes for teams

The alternative to per-developer workspace indexing is a server-side semantic index that is shared across the team. Every developer queries the same ground truth. Product managers can ask codebase questions without a local clone. Engineering managers can check system state without opening an IDE:

What a shared managed index enables
What a shared semantic index enables:
  All developers:  query same current codebase state
  All repos:       cross-service relationships indexed
  All teams:       product, support, eng use same answers
  All sessions:    no cold start, no per-session re-derivation

Kognita operates as this shared layer — a managed semantic index of your repositories, continuously updated, served to every member of your team through a single interface regardless of their technical setup. No per-developer index to sync, no workspace to configure, no repository boundary that stops answers midway through a cross-service question.

Final take

GitHub Copilot's workspace indexing is a solid feature for developers who live in VS Code and need codebase- aware suggestions within their current repository. It handles a genuine class of navigation and explanation questions well. The limits emerge at team scale: the index is per-developer, per-workspace, and single-repo — which means the accuracy, freshness, and accessibility of codebase context varies by developer, not by codebase.

The ceiling for any per-developer IDE-based indexing approach is a team that operates from a single shared understanding of the codebase. That requires a shared index, not each developer building their own — and it requires access for the entire team, not just the developers with the right IDE.