About Studio
Studio is the harness's reader. It shows you what your runs did, using only what was recorded.
It answers three kinds of question:
- Work in flight. What is happening, for how long, and who must act.
- Over time. The ten questions the Log exists to answer, plus a confidence comparison, as statistics and conclusions.
- Across repositories. Every repository one owner governs, on one page.
Studio is a harness feature. It reads the Log contract, which is the same for every process. Its screens speak the Vinaya process's vocabulary: rounds, verdicts, pauses, tranches and the nine derived statuses described in the Overview.
How it works
Studio has two inputs:
- The Log, for execution history. Studio reads Log events and nothing else to know what ran. The Log is a log server or the local log folder. Where a generic family has no event of its own, Studio works it out from the events that exist. See Events.
- The forge, for presentation only. Task titles, kinds, pull request state, merge state and who merged. Without the forge the screen is still correct, just plainer.
What Studio never does:
- It never decides. It does not touch control state. It does not start, resume, cancel or merge, and it holds no forge-write credential.
- It never claims more than the record supports. A task that stopped reporting is shown as presumed dead, with its silence stated. A pause with no recorded reason claims nothing. Merged appears only where a source outside the Log says so.
- It never asks the Log to record more. If a fact is not in the Log, Studio shows less.
What Studio shows
Mission Control
The live view of every task in flight: state, rounds, who must act
Dashboard and statistics
Planned work from the forge, and ten questions, plus a confidence comparison, answered from the Log
Many repositories
Every repository one owner governs, on one page
Start Studio
Run Studio from inside a governed repository:
vinaya studioTo choose the port yourself:
vinaya studio --port <n>- 1
The launcher finds your repository
Before the server starts, the launcher resolves which repository it is in. It passes the repository (
AEG_REPO, as owner/repo) and your working directory (VINAYA_REPO_ROOT) into the server's environment. - 2
It finds the Studio app
From a checkout that carries the Studio web app, it runs that (
workspace). Otherwise it runs the Studio build bundled into the installed@attalabs/vinayapackage (package). If neither is there (missing), it refuses and tells you how to install it. - 3
It picks a port
Studio uses port
3008by default, or3108if3008is taken. A port you pass with--portis used exactly, or refused; it is never moved. - 4
It binds to your machine only
Studio listens on loopback (
127.0.0.1) unless your ownHOSTNAMEsays otherwise.
Configuration
Studio has no keys of its own. It reads:
| Setting | What Studio uses it for |
|---|---|
logs | Where the Log is: a destination folder, or a server with its readHeaders |
. | Read by the dashboard, beside the forge |
vinaya. | The repository's settings |
Both files are read from the repository root Studio was launched in. See The file and its keys.
What gets logged
Nothing. Studio reads the Log and never writes to it.