About many repositories
You open one thing and see every repository you govern, honestly. A repository that failed to load appears as unknown, not as empty.
It rests on four requirements:
- The repository is an argument. Which repository is being looked at is passed in, not a process-wide fact. Only one function reads the current directory.
- Discovery is asking, not declaring. Studio asks the forge and looks for the marker file
vinaya.. Nobody maintains a registry.config. json - One page, one question. Across every repository: what can I start right now?
- Version drift is visible. Two repositories on different harness versions run different gate sets, and you can see it.
How it works
- 1
Resolve the owner
Studio uses
--owner <name>, else the owner of theoriginremote, elseownersin~/. If none of the three gives an owner, it refuses and names all three.. vinaya/ config. json - 2
List the owner's repositories
It enumerates them with
gh repo list <owner>. - 3
Probe each one for the marker file
It asks
gh api repos/. A 200 means installed, a 404 means not installed, and anything else is unknown. At most four probes run at once.<owner>/ <repo>/ contents/ vinaya. config. json - 4
Cache the result
Results are cached at
~/. Negative results are cached like positive ones. A repository cannot switch discovery off.. vinaya/ cache/ owners/ <owner>. json
The owner overview
The overview at /studio has one row per repository:
| Column | Shows |
|---|---|
| Ready | Tasks ready to start |
| In flight | Work under way |
| Installed version | The harness version in that repository |
| Status | ok, partial or unknown, with a reason |
The overview shows counts only, never a full derivation per repository. With a single repository, it goes straight through to that repository.
Below the overview:
- The ready queue lists tasks ready to start, across every repository.
- Each repository lives at
/, above the single-repository pages.studio/ [owner]/ [repo]/ . . .
Honest status
- 404 and unknown never collapse. A 403, a single sign-on challenge or a network error is unknown. It gets its own row and its own remedy text.
- What did not run never reads as passed. Beyond
ok,partialandunreachable, a repository can beinaccessible, because ofsso,authornetwork.
Owner scope on the command line
vinaya studio, vinaya doctor and vinaya upgrade take an owner. vinaya doctor reports each repository's installed version. See Setup commands.
What stays per repository
- Every subprocess is told which repository it addresses. None infers it from the working directory.
- The trust anchor. It is read from each repository's default branch, never the working tree. See Trust.
- The gate runner. An owner-scoped gate run has no meaning.
Configuration
| Key | Where | What it sets |
|---|---|---|
owners | ~/ | The owners Studio looks at when no other owner is given |
owners is a subscription, not a registration. It grants nothing; your forge token decides what is readable. It lives in the global config and must never carry any key that is stripped from the global config.