objects.verify
Přečíst každý soubor, z něhož byla vrstva postavena, a porovnat ho s tím, co tento proces servíruje. Index se staví jednou při startu a drží se, čímž je každý další požadavek zadarmo a čímž se soubor upravený později servíruje tak, jak byl; takto běžící server říká, zda se to stalo, aniž by se musel restartovat, aby to zjistil. Soubor, který je jeden objekt, se porovnává bajt po bajtu; soubor kolekce, jehož objekty index drží jako členy a ne jako text, se porovnává podle velikosti a každý nález říká, které porovnání proběhlo. Čte každý soubor vrstvy, takže hlásí postup soubor po souboru a zastaví se, když o to dostane požadavek.
Přečíst každý soubor, z něhož byla vrstva postavena, a porovnat ho s tím, co tento proces servíruje. Index se staví jednou při startu a drží se, čímž je každý další požadavek zadarmo a čímž se soubor upravený později servíruje tak, jak byl; takto běžící server říká, zda se to stalo, aniž by se musel restartovat, aby to zjistil. Soubor, který je jeden objekt, se porovnává bajt po bajtu; soubor kolekce, jehož objekty index drží jako členy a ne jako text, se porovnává podle velikosti a každý nález říká, které porovnání proběhlo. Čte každý soubor vrstvy, takže hlásí postup soubor po souboru a zastaví se, když o to dostane požadavek.
- query
- behaviorally_verified
- module objects
- #objects
- #diagnostic
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_verify_objects |
| HTTP | GET /api/v1/objects/verify operationId objects.verify |
| příkazová řádka | — |
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.
vstup · VerifyInput
objects.verify.| vlastnost | typ | povinné | popis |
|---|---|---|---|
| druh | string | null | ne | Pouze objekty tohoto druhu. |
| limit | integer | null | ne | Kolik objektů nejvýše číst; když chybí, všechny. |
JSON Schema
{
"additionalProperties": false,
"description": "The input of `objects.verify`.",
"properties": {
"kind": {
"description": "Only objects of this kind.",
"type": [
"string",
"null"
]
},
"limit": {
"description": "How many objects to read at most; every one of them when absent.",
"format": "uint",
"minimum": 0,
"type": [
"integer",
"null"
]
}
},
"title": "VerifyInput",
"type": "object"
}výstup · VerifyReport
objects.verify.| vlastnost | typ | povinné | popis |
|---|---|---|---|
| compared_by_content | integer | ano | Kolik jich bylo porovnáno bajt po bajtu, ne podle velikosti. |
| aktuální | integer | ano | Kolik z nich je to, co index přečetl. |
| odchýleno | integer | ano | Kolik jich není, jakéhokoli druhu „není“. |
| soubory | integer | ano | Kolik souborů bylo přečteno. |
| zjištění | array | ano | Soubory, které nejsou, s tím, co je na každém špatně. |
| otisk | string | ano | Otisk indexu, který tento proces poskytuje. |
| index_is_current | boolean | ano | Zda je index stále pravdivým obrazem pracovního stromu, pokud to toto porovnání dokáže posoudit. |
| objekty | integer | ano | Kolik objektů indexu tyto soubory nesou. |
JSON Schema
{
"$defs": {
"Comparison": {
"description": "How closely a file could be compared with what the index holds.\n\nA file that is one object is compared byte for byte, because the index kept its whole\ncontent. A collection file holds one object per member, and what the index kept for each\nis that member as JSON rather than the file's text — so the strongest thing that can be\nsaid without re-parsing it is whether its size is what it was. The report says which\ncomparison was made rather than implying the stronger one.",
"oneOf": [
{
"const": "content",
"description": "Byte for byte against the content the index holds.",
"type": "string"
},
{
"const": "size",
"description": "By size against the size the index recorded.",
"type": "string"
}
]
},
"DriftedObject": {
"description": "One file of the layer that is no longer what the index read.",
"properties": {
"comparison": {
"$ref": "#/$defs/Comparison",
"description": "How it was compared."
},
"detail": {
"description": "What is wrong, for a person.",
"type": "string"
},
"example_uri": {
"description": "One of the URIs it holds, so a reader can see what is affected.",
"type": "string"
},
"objects": {
"description": "How many objects of the index came from it.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"path": {
"description": "Its repository-relative path.",
"type": "string"
},
"standing": {
"$ref": "#/$defs/ObjectStanding",
"description": "How it stands."
}
},
"required": [
"path",
"standing",
"comparison",
"objects",
"example_uri",
"detail"
],
"type": "object"
},
"ObjectStanding": {
"description": "How one file stands against what the index read from it.",
"oneOf": [
{
"const": "current",
"description": "It is what the index read.",
"type": "string"
},
{
"const": "changed",
"description": "It is there and it has changed since the index was built.",
"type": "string"
},
{
"const": "missing",
"description": "The file the index read is no longer there.",
"type": "string"
},
{
"const": "unreadable",
"description": "It is there and could not be read.",
"type": "string"
}
]
}
},
"description": "The answer of `objects.verify`.",
"properties": {
"compared_by_content": {
"description": "How many were compared byte for byte rather than by size.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"current": {
"description": "How many of them are what the index read.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"drifted": {
"description": "How many are not, of any kind of not.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"files": {
"description": "How many files were read.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"findings": {
"description": "The files that are not, with what is wrong with each.",
"items": {
"$ref": "#/$defs/DriftedObject"
},
"type": "array"
},
"fingerprint": {
"description": "The index fingerprint this process is serving.",
"type": "string"
},
"index_is_current": {
"description": "Whether the index is still a true picture of the working tree, as far as this\ncomparison can tell.",
"type": "boolean"
},
"objects": {
"description": "How many objects of the index those files carry.",
"format": "uint",
"minimum": 0,
"type": "integer"
}
},
"required": [
"files",
"current",
"drifted",
"objects",
"compared_by_content",
"fingerprint",
"index_is_current",
"findings"
],
"title": "VerifyReport",
"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.
Tvrzení implementovaná vedle ní
Připojeno souborem, který každé tvrzení implementuje; každé odkazuje na svou stránku s implementací a testem, který je dokazuje.