Skip to content

Feat: Shared Repository Index Service #51

Description

@marco0560

#Shared Repository Index Service

Summary

Introduce an optional shared index service capable of hosting and serving Codira indexes for multiple repositories within a single persistent storage backend.

The service shall support both related and unrelated repositories and provide a centralized retrieval and indexing infrastructure.

Motivation

As documentation retrieval, embeddings, and semantic search capabilities expand, the cost of repeatedly loading, parsing, embedding, and indexing repositories increases.

A shared service can provide:

  • centralized storage
  • shared memory utilization
  • shared vector indexes
  • shared retrieval infrastructure
  • reduced indexing duplication
  • faster startup times
  • centralized administration

This deployment model is particularly attractive for:

  • servers with large memory capacity
  • developer teams
  • self-hosted environments
  • AI-assisted development platforms
  • repository collections

The shared service is intended as an optional deployment topology.

The canonical Codira workflow remains local deterministic batch indexing.

Design Principles

  • Local indexing remains canonical.
  • The service is optional.
  • The service must not change analyzer behavior.
  • The service must not change repository facts.
  • The service must not introduce hidden state into analysis.
  • Repository provenance must remain explicit.
  • Deterministic outputs remain mandatory.

Scope

Provide an optional long-running service capable of:

  • hosting multiple repository indexes
  • hosting multiple embedding collections
  • serving retrieval requests
  • supporting incremental updates
  • supporting daemon-mode indexing
  • supporting repository registration and removal

Repository Model

The service shall support:

Related Repository Collections

Examples:

codira
codira-analyzer-python
codira-analyzer-go
codira-analyzer-rust

Unrelated Repository Collections

Examples:

codira
llvm-project
cpython
postgres

The service shall not assume repositories are related.

Deliverables

  • Shared repository catalog
  • Repository registration mechanism
  • Repository isolation model
  • Shared retrieval interface
  • Shared embedding storage
  • Shared vector index support
  • Administrative tooling
  • Service documentation

Acceptance Criteria

  • Multiple repositories can coexist within a single service.
  • Repository provenance remains preserved.
  • Retrieval can be constrained to specific repositories.
  • Retrieval can span multiple repositories.
  • Deterministic indexing behavior remains unchanged.
  • Local batch mode and service mode produce equivalent repository facts.

Non-Goals

  • Mandatory client/server architecture
  • Distributed indexing
  • Distributed consensus
  • Multi-node clustering
  • Automatic repository discovery
  • Authentication and authorization systems

Dependencies

Architectural Constraints

  • Deterministic indexing
  • Immutable validated facts
  • Explicit provenance
  • No hidden analyzer state
  • Local mode remains fully supported

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions