Skip to content

core: regression gate for scoped-request isolation (namespace/project leak) #1467

Closed

Description

@ajianaz

Problem

Issue #1353 (namespace orphans from silent writes) showed one shape of scope isolation failure. The broader class: any search surface returning records from outside its requested scope. This must be a regression gate, not a one-off fix; new search features (hybrid modes, expansion endpoints, MCP parity) keep adding surfaces that can leak.

Proposal

Add a CI-required isolation suite:

  • Seed a store with two namespaces (and two project tags) using deliberately overlapping vocabulary.
  • Assert zero cross-scope hits on every retrieval surface: recall, FTS search, hybrid/unified recall, room recall, doc search, and ID-based expansion/fetch (fetching a record ID from scope A while scoped to B must respect the filter).
  • Include the server (HTTP), CLI, and MCP paths; a surface that exists in one transport must be covered in all.
  • Wire as a required CI check: a failure blocks merge. Best-effort tests do not count.

Acceptance criteria

  • Suite covers all retrieval surfaces in all three transports
  • Marked required in branch protection; failure blocks merge
  • Documents which surfaces are covered so new endpoints get added to the suite

Activity

  1. ajianaz commented on Oct 21, 2026

    @ajianaz
    CollaboratorAuthor

    All acceptance criteria are met: the suite covers the read surfaces of the core, HTTP, MCP and CLI (#1488, #1489, #1490, with the coverage document and the two gate tests that fail when a route or tool is added without a check or an exemption), Test is a required status check of the develop-protected and main-protected rulesets (verified 2026-10-21 and documented in #1512), and docs/isolation-suite.md lists what is covered.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions