anomalyco / anomalyco/opencode

[FEATURE]: support multi-repository change tracking for workspace subdirectories

Open
#45,498 1 comment 0 reactions 1 assignee View on GitHub

@Hona is already working on this.

Since Aug 27, 2026.

Dominant language
TypeScript
Stars
209k
Forks
27.5k
PR merge metrics
PR metrics pending

Description

Feature hasn't been suggested before.
  • I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request
Problem Statement

Currently, the Changes / Source Control panel only tracks Git status when the root workspace folder itself is a Git repository (.git exists at the root).

When working on multi-repository projects (e.g., an organization workspace with org/service-a, org/service-b), opening the parent directory disables git change tracking altogether.

Use Case

In microservices, multi-repo architectures, or full-stack setups, developers often open a parent directory to manage multiple related projects simultaneously. Requiring developers to switch workspace roots repeatedly to check Git status introduces significant context-switching friction.

Proposed Solutions
  1. Repository Auto-Discovery (Recommended):
    • Scan subdirectories (up to 1–2 levels deep) for .git folders upon workspace loading.
    • Display detected repositories as grouped trees inside the Changes view (e.g., VS Code multi-root SCM panel style).
  2. Fallback / Manual Configuration:
    • If auto-discovery is too heavy, allow defining sub-repository paths in workspace configuration (e.g., .opencode/workspace.json).
Performance Considerations

To avoid performance degradation when scanning deep or large directory trees:

  • Limit recursive search depth to a configurable maximum (e.g., depth: 2).
  • Honor ignore rules (.gitignore, node_modules, .terragrunt-cache, etc.) during discovery.
  • Execute git status lazily or in parallel for detected repos.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.