server.status
Kde stojí server tohoto checkoutu — absent, starting, ready, outdated nebo stale — měřeno proti tomu, co by poskytoval tento spustitelný soubor; jak daleko je strom, který poskytuje, od vzdáleného trunku (`trunk`: current, lagging, stale, unjudged nebo unmeasured proti `checkout.trunk_distance` politiky, k poslednímu fetchi); lease, který tento proces drží, když je serverem; a, pokud `checkouts` nezúží výběr jen na tento, každý checkout, který git pro repozitář eviduje, primární první, každý se svým lease, postavením a důvodem a s peery, které hlásí jeho server. `checkouts: this` přečte jeden lease, otestuje jeden server a nevyjmenuje žádný jiný checkout, což je cena, kterou má platit volající, který se ptá jen na checkout, ve kterém je. Čte se z lease souborů a ze serverů při každém volání; nic se necachuje, protože lease zapisují jiné procesy.
Kde stojí server tohoto checkoutu — absent, starting, ready, outdated nebo stale — měřeno proti tomu, co by poskytoval tento spustitelný soubor; jak daleko je strom, který poskytuje, od vzdáleného trunku (`trunk`: current, lagging, stale, unjudged nebo unmeasured proti `checkout.trunk_distance` politiky, k poslednímu fetchi); lease, který tento proces drží, když je serverem; a, pokud `checkouts` nezúží výběr jen na tento, každý checkout, který git pro repozitář eviduje, primární první, každý se svým lease, postavením a důvodem a s peery, které hlásí jeho server. `checkouts: this` přečte jeden lease, otestuje jeden server a nevyjmenuje žádný jiný checkout, což je cena, kterou má platit volající, který se ptá jen na checkout, ve kterém je. Čte se z lease souborů a ze serverů při každém volání; nic se necachuje, protože lease zapisují jiné procesy.
- query
- behaviorally_verified
- modul server
- #server
- #lease
- #coordination
- #introspection
Zpřístupnění
Kde je tato jedna definice dosažitelná. Absence je explicitní: povrch, který není uveden, ji nenese.
| povrch | jako |
|---|---|
| MCP | nástroj majordomus_server zdroj majordomus://server |
| HTTP | GET /api/v1/server operationId server.status |
| příkazová řádka | majordomus serve status |
Schémata
Kanonický vstup a výstup z typů Rustu; schéma nástroje MCP a parametry a odpovědi OpenAPI se odvozují z nich.
input · ServerStatusInput
server.status: jak široká je odpověď.
Jedno pole, protože stav serveru není něco, podle čeho volající filtruje — je to něco, co volající chce pro jeden checkout nebo pro všechny, a rozdíl je čtyřicet round tripů na stroji se čtyřiceti worktree.
use majordomus_cli::capability::builtin::server::{Checkouts, ServerStatusInput};
// the field is optional on every surface, and its absence is the wide answer
let asked_nothing: ServerStatusInput = serde_json::from_str("{}").unwrap();
assert_eq!(asked_nothing.checkouts, Checkouts::Repository);
let narrow: ServerStatusInput = serde_json::from_str(r#"{"checkouts":"this"}"#).unwrap();
assert_eq!(narrow.checkouts, Checkouts::This);| vlastnost | typ | povinné | popis |
|---|---|---|---|
| checkouty | reference | ne | Které checkouty odpověď pokrývá. Chybějící znamená repository. výchozí "repository" |
JSON Schema
{
"$defs": {
"Checkouts": {
"description": "Which checkouts a reading of the server status covers.\n\nThe two answers cost differently and that is the whole reason the choice exists: the\nrepository's checkouts are read from git's registry of them and each one costs a lease\nread and a probe, while this checkout alone costs one of each and enumerates nothing.\nThe word each variant serialises to is the word the query parameter, the tool input and\nthe command-line flag all take.\n\n```\nuse majordomus_cli::capability::builtin::server::Checkouts;\nassert_eq!(serde_json::to_value(Checkouts::This).unwrap(), \"this\");\nassert_eq!(serde_json::to_value(Checkouts::Repository).unwrap(), \"repository\");\nassert_eq!(Checkouts::default(), Checkouts::Repository, \"the wide answer is what a caller who says nothing has always got\");\n```",
"oneOf": [
{
"const": "repository",
"description": "Every checkout git registers for the repository, the primary first — a lease read\nand a probe each. The default, because it is the answer this capability gave before\nthere was anything to ask.",
"type": "string"
},
{
"const": "this",
"description": "This checkout alone. No other checkout is enumerated, no other lease is read and no\nother server is probed; `servers` holds the one entry, and it is this one.",
"type": "string"
}
]
}
},
"additionalProperties": false,
"description": "What to ask of `server.status`: how wide the answer is.\n\nOne field, because the standing of a server is not something a caller filters — it is\nsomething a caller wants for one checkout or for all of them, and the difference is\nforty round trips on a machine with forty worktrees.\n\n```\nuse majordomus_cli::capability::builtin::server::{Checkouts, ServerStatusInput};\n// the field is optional on every surface, and its absence is the wide answer\nlet asked_nothing: ServerStatusInput = serde_json::from_str(\"{}\").unwrap();\nassert_eq!(asked_nothing.checkouts, Checkouts::Repository);\nlet narrow: ServerStatusInput = serde_json::from_str(r#\"{\"checkouts\":\"this\"}\"#).unwrap();\nassert_eq!(narrow.checkouts, Checkouts::This);\n```",
"properties": {
"checkouts": {
"$ref": "#/$defs/Checkouts",
"default": "repository",
"description": "Which checkouts the answer covers. Absent means `repository`."
}
},
"title": "ServerStatusInput",
"type": "object"
}výstup · ServerStatus
use majordomus_cli::capability::builtin::server::{Desired, ServerStanding, ServerStatus};
let status = ServerStatus { checkout_id: "c".into(), git: None,
desired: Desired { host: "127.0.0.1".into(), port: 8741, version: "1.0.0".into(), executable: None },
this_process: None, standing: ServerStanding::Absent, servers: Vec::new(),
connections: None, trunk: None };
let text = serde_json::to_string(&status).unwrap();
assert_eq!(serde_json::from_str::<ServerStatus>(&text).unwrap(), status);| vlastnost | typ | povinné | popis |
|---|---|---|---|
| checkout_id | string | ano | Identita tohoto checkoutu: čím odpovídá tento proces jako repository_id. |
| spojení | jedno ze 2 | ne | Co HTTP server tohoto procesu udělal s připojeními, která ho držela bez požadavku: uplatněný limit čtení, připojení, která tento limit zavřel, a požadavky odmítnuté, protože všechny obslužné rutiny byly zaneprázdněny. Chybí, pokud tento proces neobsluhuje HTTP. |
| požadováno | reference | ano | Co by tento spustitelný soubor poskytoval a vůči čemu se měří standing. |
| git | jedno ze 2 | ne | Repozitář git, do něhož tento checkout patří; chybí tam, kde se git nedá zeptat. |
| servery | array | ano | Každý checkout repozitáře, primární první, každý se svým serverem. Jeden záznam — tento checkout — tam, kde se git nedá zeptat. |
| postavení | reference | ano | Kde stojí server tohoto checkoutu. |
| this_process | jedno ze 2 | ne | Pronájem, který tento proces drží, pokud je serverem; chybí, pokud odpověděl proces, který nic neobsluhuje. |
| trunk | jedno ze 2 | ne | Jak daleko je strom, který tento checkout obsluhuje, od vzdáleného trunku, posuzováno podle checkout.trunk_distance politiky: server checkoutu o 779 commitů pozadu odpovídá každé relaci ze stromu, který už neexistuje, a tady se to říká. Chybí jen v odpovědi, která předchází tomuto poli. |
JSON Schema
{
"$defs": {
"ConnectionCounts": {
"description": "What this process's HTTP server has done to clients that held a connection without using\nit: the deadline it applies and what that deadline cost, since the process started.\nAbsent while this process serves no HTTP.\n\n```\nuse majordomus_cli::http::deadline::{counts, ConnectionCounts};\n// a process that has started no server reports nothing, rather than zeroes that would\n// read as \"no slow client was seen\"\nassert_eq!(counts(), None);\nlet c = ConnectionCounts { read_deadline_seconds: 30, closed_by_deadline: 4, refused_busy: 0 };\nlet text = serde_json::to_string(&c).unwrap();\nassert_eq!(serde_json::from_str::<ConnectionCounts>(&text).unwrap(), c);\n```",
"properties": {
"closed_by_deadline": {
"description": "Connections closed because no request was read in full on them within the deadline.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"read_deadline_seconds": {
"description": "`server.read_deadline_seconds:` as this process applies it.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"refused_busy": {
"description": "Requests answered 503 because every request handler was busy.",
"format": "uint64",
"minimum": 0,
"type": "integer"
}
},
"required": [
"read_deadline_seconds",
"closed_by_deadline",
"refused_busy"
],
"type": "object"
},
"Desired": {
"description": "What this executable would want a server of this checkout to be: the address it would\nbind, the version and the executable it would serve from. What `standing` is measured\nagainst.\n\n```\nuse majordomus_cli::capability::builtin::server::Desired;\nlet d = Desired { host: \"127.0.0.1\".into(), port: 8741, version: \"1.0.0\".into(), executable: None };\nlet v = serde_json::to_value(&d).unwrap();\nassert_eq!(v[\"port\"], 8741);\nassert!(v.get(\"executable\").is_none(), \"an executable that cannot be located is not written as null\");\n```",
"properties": {
"executable": {
"anyOf": [
{
"$ref": "#/$defs/ExecutableIdentity"
},
{
"type": "null"
}
],
"description": "This executable, when it can be located."
},
"host": {
"description": "The interface a server started here would bind: what `MAJORDOMUS_HTTP_HOST` names\nin this process's environment, and loopback when it names nothing.",
"type": "string"
},
"port": {
"description": "The port it asks for first.",
"format": "uint16",
"maximum": 65535,
"minimum": 0,
"type": "integer"
},
"version": {
"description": "This executable's version.",
"type": "string"
}
},
"required": [
"host",
"port",
"version"
],
"type": "object"
},
"Distance": {
"description": "How many commits two refs have that the other lacks.\n\n```\nuse majordomus_cli::worktree::trunk::Distance;\nlet d = Distance { behind: 779, ahead: 0 };\nassert_eq!(serde_json::to_value(d).unwrap(), serde_json::json!({\"behind\": 779, \"ahead\": 0}));\n```",
"properties": {
"ahead": {
"description": "Commits of this ref the remote trunk lacks.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"behind": {
"description": "Commits of the remote trunk this ref lacks.",
"format": "uint64",
"minimum": 0,
"type": "integer"
}
},
"required": [
"behind",
"ahead"
],
"type": "object"
},
"ExecutableIdentity": {
"description": "The identity of the file an executable was started from: where it is, and the mtime\nand size of the file at that path. A server outlives its own binary — a rebuild replaces\nthe file under a process that keeps serving the code it loaded hours ago — and nothing\nabout the process itself says so. This is what makes that visible.\n\n```\nuse majordomus_cli::lease::ExecutableIdentity;\nlet recorded = ExecutableIdentity { path: \"/opt/majordomus\".into(), mtime: 1_700_000_000, size: 42 };\nlet text = serde_json::to_string(&recorded).unwrap();\nassert_eq!(serde_json::from_str::<ExecutableIdentity>(&text).unwrap(), recorded);\n```",
"properties": {
"mtime": {
"description": "The file's modification time, seconds since the epoch.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"path": {
"description": "The path the process was started from.",
"type": "string"
},
"size": {
"description": "The file's size in bytes.",
"format": "uint64",
"minimum": 0,
"type": "integer"
}
},
"required": [
"path",
"mtime",
"size"
],
"type": "object"
},
"GitIdentity": {
"description": "The git repository a checkout belongs to, as distinct from the checkout itself.\n\n`identity` names a checkout: one server, one lease, one index per checkout root. Every\nlinked worktree of one git repository is a checkout of its own by that measure, and\nnothing in it said that they belong together. This does: the git directory every work\ntree shares (`git rev-parse --git-common-dir`) is the repository's identity, its digest\nis one value for every checkout of that repository, and `linked` says whether this\ncheckout is the primary one or a work tree hanging off it. `None` where git cannot be\nasked: a repository of the layer does not have to be version controlled.\n\n```\nuse majordomus_cli::repository::{git_identity, identity, GitIdentity};\nuse std::process::Command;\nlet dir = tempfile::tempdir().unwrap();\nlet root = dir.path().join(\"repo\");\nstd::fs::create_dir_all(&root).unwrap();\nlet git = |args: &[&str]| assert!(Command::new(\"git\").arg(\"-C\").arg(&root).args(args).status().unwrap().success());\ngit(&[\"init\", \"-q\", \".\"]);\ngit(&[\"-c\", \"user.email=t@example.com\", \"-c\", \"user.name=t\", \"commit\", \"-q\", \"--allow-empty\", \"-m\", \"init\"]);\nlet wt = dir.path().join(\"repo-wt\");\ngit(&[\"worktree\", \"add\", \"-q\", \"-b\", \"feature/x\", wt.to_str().unwrap()]);\n\nlet primary: GitIdentity = git_identity(&root).expect(\"a work tree\");\nlet linked: GitIdentity = git_identity(&wt).expect(\"a linked work tree\");\nassert_eq!(primary.id, linked.id, \"one repository\");\nassert_ne!(identity(&root), identity(&wt), \"two checkouts\");\nassert!(!primary.linked && linked.linked);\nassert!(!primary.id.contains('/'), \"a digest, never a path\");\n```",
"properties": {
"common_dir": {
"description": "The git directory every work tree of the repository shares, canonical.",
"type": "string"
},
"id": {
"description": "Its digest: the same for every checkout of one repository, different across\nrepositories, and never a path.",
"type": "string"
},
"linked": {
"description": "Whether this checkout is a linked work tree rather than the primary one.",
"type": "boolean"
}
},
"required": [
"common_dir",
"id",
"linked"
],
"type": "object"
},
"LeaseView": {
"description": "A lease as a reader sees it: what the server wrote about itself, without the token that\nmakes the file the server's own.\n\n```\nuse majordomus_cli::capability::builtin::server::LeaseView;\nlet view = LeaseView { pid: 7, url: Some(\"http://127.0.0.1:8741\".into()),\n started_at: \"2026-09-10T00:00:00Z\".into(), executable: None, version: Some(\"1.0.0\".into()) };\nlet v = serde_json::to_value(&view).unwrap();\nassert_eq!(v[\"pid\"], 7);\nassert!(v.get(\"token\").is_none() && v.get(\"root\").is_none());\n```",
"properties": {
"executable": {
"anyOf": [
{
"$ref": "#/$defs/ExecutableIdentity"
},
{
"type": "null"
}
],
"description": "The executable the server was started from, when it could be located."
},
"pid": {
"description": "The server's process id. Not proof of a live server — only a probe that is answered\nis — but decisions are made from it: a live pid earns a server that does not answer\nthe election's busy wait before its lease is taken over, and `serve ensure`'s patience\nbefore it starts another; `serve stop` sends its `SIGTERM` to this pid.",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"started_at": {
"description": "When the server took the lease, RFC 3339.",
"type": "string"
},
"url": {
"description": "The address, once bound.",
"type": [
"string",
"null"
]
},
"version": {
"description": "The executable's version; absent for a server too old to have written one.",
"type": [
"string",
"null"
]
}
},
"required": [
"pid",
"started_at"
],
"type": "object"
},
"ServerStanding": {
"description": "Where a checkout's server stands, decided from its lease, whether the server the lease\nnames answers for that checkout, and whether what answers is this executable's code.\n\n```\nuse majordomus_cli::capability::builtin::server::ServerStanding;\nlet all = [ServerStanding::Absent, ServerStanding::Starting, ServerStanding::Ready,\n ServerStanding::Outdated, ServerStanding::Stale];\nlet words: Vec<&str> = all.iter().map(|s| s.as_str()).collect();\nassert_eq!(words, [\"absent\", \"starting\", \"ready\", \"outdated\", \"stale\"]);\nassert_eq!(serde_json::from_str::<ServerStanding>(\"\\\"stale\\\"\").unwrap(), ServerStanding::Stale);\n```",
"oneOf": [
{
"const": "absent",
"description": "No lease: nothing serves this checkout.",
"type": "string"
},
{
"const": "starting",
"description": "A lease without an address, young enough that its owner is still binding.",
"type": "string"
},
{
"const": "ready",
"description": "The server the lease names answers for this checkout, from the code on disk, at\nthis executable's version.",
"type": "string"
},
{
"const": "outdated",
"description": "The server answers, but from older code than this executable, or from a file that\nhas been replaced since it started: everything it says is yesterday's.",
"type": "string"
},
{
"const": "stale",
"description": "The lease names a server that does not answer, or is not a lease at all.",
"type": "string"
}
]
},
"ServerView": {
"description": "One checkout of the repository, and the server its lease names.\n\n```\nuse majordomus_cli::capability::builtin::server::{ServerStanding, ServerView};\nlet view = ServerView { worktree: \"/r\".into(), branch: Some(\"master\".into()), checkout_id: \"c\".into(),\n primary: true, this_checkout: true, standing: ServerStanding::Absent, reason: None, lease: None, peers: None };\nlet v = serde_json::to_value(&view).unwrap();\nassert_eq!(v[\"standing\"], \"absent\");\nassert!(v.get(\"lease\").is_none() && v.get(\"peers\").is_none(), \"what there is not is not written\");\n```",
"properties": {
"branch": {
"description": "The branch checked out there, when git names one.",
"type": [
"string",
"null"
]
},
"checkout_id": {
"description": "The checkout's identity: what its server answers as `repository_id`.",
"type": "string"
},
"lease": {
"anyOf": [
{
"$ref": "#/$defs/LeaseView"
},
{
"type": "null"
}
],
"description": "The lease, when the file holds one."
},
"peers": {
"description": "How many peers the server reports attached, when it answers.",
"format": "uint",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"primary": {
"description": "Whether this is the primary checkout rather than a linked worktree.",
"type": "boolean"
},
"reason": {
"description": "Why, when the standing is not `ready`: what the lease held, or what answered.",
"type": [
"string",
"null"
]
},
"standing": {
"$ref": "#/$defs/ServerStanding",
"description": "Where its server stands."
},
"this_checkout": {
"description": "Whether this is the checkout the answering process serves.",
"type": "boolean"
},
"worktree": {
"description": "The checkout, absolute and canonical.",
"type": "string"
}
},
"required": [
"worktree",
"checkout_id",
"primary",
"this_checkout",
"standing"
],
"type": "object"
},
"TrunkDistance": {
"description": "A checkout's distance from the remote trunk, judged.\n\n```\nuse majordomus_cli::worktree::trunk::{Distance, TrunkDistance, TrunkStanding};\nlet d: TrunkDistance = serde_json::from_value(serde_json::json!({\n \"standing\": \"stale\", \"local_trunk_standing\": \"stale\",\n \"worktree\": \"/repo\", \"on_trunk\": true,\n \"checkout\": {\"behind\": 779, \"ahead\": 0},\n \"thresholds\": {\"warn_behind\": 50, \"fail_behind\": 300},\n \"message\": \"779 commits behind origin/master\",\n})).unwrap();\nassert_eq!(d.standing, TrunkStanding::Stale);\nassert_eq!(d.checkout, Some(Distance { behind: 779, ahead: 0 }));\n// what is absent stays absent in the answer\nassert!(serde_json::to_value(&d).unwrap().get(\"remedy\").is_none());\n```",
"properties": {
"checkout": {
"anyOf": [
{
"$ref": "#/$defs/Distance"
},
{
"type": "null"
}
],
"description": "The checkout's `HEAD` against the remote trunk. While a merge is in progress, the\ncommits it brings in count as present: the commit being made will hold them, so the\nmerge that brings a checkout current is never judged by the tree it is replacing."
},
"fetched_at": {
"description": "When the repository last fetched (the time of `FETCH_HEAD`), RFC 3339: the moment\nthis answer is true as of. Absent when it never fetched.",
"type": [
"string",
"null"
]
},
"local_trunk": {
"anyOf": [
{
"$ref": "#/$defs/Distance"
},
{
"type": "null"
}
],
"description": "The local trunk branch against the remote trunk: what a branch made from the local\ntrunk starts from."
},
"local_trunk_standing": {
"$ref": "#/$defs/TrunkStanding",
"description": "Where the local trunk branch stands, judged the same way: what a branch made from it\nstarts from. The same as `standing` when the checkout holds the trunk."
},
"message": {
"description": "What the standing means here, in one line.",
"type": "string"
},
"on_trunk": {
"description": "The work tree holds the trunk branch itself.",
"type": "boolean"
},
"remedy": {
"description": "The commands that bring the checkout and the local trunk current, when either is\nbehind. Suggested, never run.",
"type": [
"string",
"null"
]
},
"remote_head": {
"description": "The commit the remote-tracking trunk names.",
"type": [
"string",
"null"
]
},
"remote_trunk": {
"description": "The remote-tracking trunk counted against (`origin/master`).",
"type": [
"string",
"null"
]
},
"standing": {
"$ref": "#/$defs/TrunkStanding",
"description": "Where the checkout stands: its `HEAD` — with the commit a merge in progress brings\nin — judged against the thresholds. This is what its server serves."
},
"thresholds": {
"$ref": "#/$defs/TrunkThresholds",
"description": "The thresholds judged against, as `checkout.trunk_distance` declares them."
},
"trunk": {
"description": "The trunk branch, short.",
"type": [
"string",
"null"
]
},
"worktree": {
"description": "The work tree measured.",
"type": "string"
}
},
"required": [
"standing",
"local_trunk_standing",
"worktree",
"on_trunk",
"thresholds",
"message"
],
"type": "object"
},
"TrunkStanding": {
"description": "Where a checkout stands against the remote trunk.\n\n```\nuse majordomus_cli::worktree::trunk::TrunkStanding;\nlet s: TrunkStanding = serde_json::from_str(r#\"\"lagging\"\"#).unwrap();\nassert_eq!(s, TrunkStanding::Lagging);\nassert_eq!(serde_json::to_value(TrunkStanding::Unmeasured).unwrap(), \"unmeasured\");\n```",
"oneOf": [
{
"const": "current",
"description": "Behind by less than the warn threshold, or not behind at all.",
"type": "string"
},
{
"const": "lagging",
"description": "At or past the warn threshold: what it serves is old enough to mislead.",
"type": "string"
},
{
"const": "stale",
"description": "At or past the fail threshold: what it serves is the wrong tree.",
"type": "string"
},
{
"const": "unjudged",
"description": "Behind, and the policy declares no threshold to judge the distance by.",
"type": "string"
},
{
"const": "unmeasured",
"description": "The distance could not be measured: no trunk, no remote-tracking trunk, no `HEAD`.",
"type": "string"
}
]
},
"TrunkThresholds": {
"description": "The thresholds `checkout.trunk_distance` declares, in commits behind the remote trunk.\nAbsent is absent: the reader supplies no default, and a distance with nothing to judge\nit against is reported as `unjudged`.\n\n```\nuse majordomus_cli::worktree::trunk::TrunkThresholds;\nlet t: TrunkThresholds = serde_json::from_str(r#\"{\"warn_behind\": 50, \"fail_behind\": 300}\"#).unwrap();\nassert_eq!((t.warn_behind, t.fail_behind), (Some(50), Some(300)));\nassert_eq!(TrunkThresholds::default().warn_behind, None, \"absent is not a default\");\n```",
"properties": {
"fail_behind": {
"description": "At or past this many commits behind, the checkout is `stale`: a failure.",
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"warn_behind": {
"description": "At or past this many commits behind, the checkout is `lagging`: a warning.",
"format": "uint64",
"minimum": 0,
"type": [
"integer",
"null"
]
}
},
"type": "object"
}
},
"description": "The shared server of this checkout and of every other checkout of the repository.\n\n```\nuse majordomus_cli::capability::builtin::server::{Desired, ServerStanding, ServerStatus};\nlet status = ServerStatus { checkout_id: \"c\".into(), git: None,\n desired: Desired { host: \"127.0.0.1\".into(), port: 8741, version: \"1.0.0\".into(), executable: None },\n this_process: None, standing: ServerStanding::Absent, servers: Vec::new(),\n connections: None, trunk: None };\nlet text = serde_json::to_string(&status).unwrap();\nassert_eq!(serde_json::from_str::<ServerStatus>(&text).unwrap(), status);\n```",
"properties": {
"checkout_id": {
"description": "This checkout's identity: what this process answers as `repository_id`.",
"type": "string"
},
"connections": {
"anyOf": [
{
"$ref": "#/$defs/ConnectionCounts"
},
{
"type": "null"
}
],
"description": "What this process's HTTP server did to connections that held it without a request:\nthe read deadline it applies, the connections that deadline closed, and the requests\nrefused because every handler was busy. Absent when this process serves no HTTP."
},
"desired": {
"$ref": "#/$defs/Desired",
"description": "What this executable would serve, and what `standing` is measured against."
},
"git": {
"anyOf": [
{
"$ref": "#/$defs/GitIdentity"
},
{
"type": "null"
}
],
"description": "The git repository this checkout belongs to; absent where git cannot be asked."
},
"servers": {
"description": "Every checkout of the repository, the primary first, each with its server. One entry\n— this checkout — where git cannot be asked.",
"items": {
"$ref": "#/$defs/ServerView"
},
"type": "array"
},
"standing": {
"$ref": "#/$defs/ServerStanding",
"description": "Where this checkout's server stands."
},
"this_process": {
"anyOf": [
{
"$ref": "#/$defs/LeaseView"
},
{
"type": "null"
}
],
"description": "The lease this process holds, when it is the server; absent when the question was\nanswered by a process that serves nothing."
},
"trunk": {
"anyOf": [
{
"$ref": "#/$defs/TrunkDistance"
},
{
"type": "null"
}
],
"description": "How far the tree this checkout serves is from the remote trunk, judged against the\npolicy's `checkout.trunk_distance`: a server of a checkout 779 commits behind answers\nevery session from a tree that no longer exists, and this is where that is said.\nAbsent only from an answer that predates the field."
}
},
"required": [
"checkout_id",
"desired",
"standing",
"servers"
],
"title": "ServerStatus",
"type": "object"
}Politiky
- benchmark
- povinné — cíl na každém transportu, který expozice deklaruje; případy jsou ty ze vstupního typu
- cache
- vypnuto — každé volání spustí handler
Cíle benchmarku
Odvozeno z registru pro tento repozitář: jeden požadavek na transport a případy, které poskytuje typ vstupu. Celá matice je na stránce měření výkonu.
| transport | state | případy | targets |
|---|---|---|---|
| direct | pokryto | 2 | repozitář this-checkout |
| mcp | pokryto | 2 | repozitář this-checkout |
| http | pokryto | 2 | repozitář this-checkout |