One test across the runs it appeared in
const url = 'https://beta-api.plune.ai/v1/results/example/history';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://beta-api.plune.ai/v1/results/example/history \ --header 'Authorization: Bearer <token>'Grouped by signature, not by test case id: the same case run with different params is a different test, and a history that mixed them would put a green and a red side by side with nothing to explain the difference. The rows are read like a run’s results: each carries failure and a sanitized errorContext.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Responses
Section titled “ Responses ”The signature and its results, newest first
object
One stored result, as every reader returns it — a run’s results, a test’s history, a corrected mark.
object
Returned sanitized — no colour codes, no credentials — whether it was stored before the rules existed or after.
What the platform removed before storing — written whenever something was, even without text; null when nothing ever was.
object
Values replaced by a marker, in the text and in every string of failure, each once. The headline counts only when there is no text — otherwise it repeats a line of it.
Whether the TEXT was cut to 256 KB. A shortened field of failure carries its own ….
What the reporter said about the failed attempt, or null.
object
How many steps between the outer and the inner ones were left out. Absent when none were.
object
From the repository root in posix form, the way a case’s specRef names it. A path of the machine is refused: absolute, with a drive or a scheme, from a home (~), or climbing out with ...
object
As the runner named it — screenshot, trace, error-context.
How many artifacts past the listed ones there are — all reachable through ciUrl.
Files uploaded to this result — screenshots, and text (JSON, plain text, logs) — oldest first (ADR 0040) — present on a run’s results list, and only when there is one. The bytes are GET /v1/files/{id}.
A file of a result, everything but its bytes (ADR 0040).
object
The last segment of the name it was uploaded with, cleaned of credentials as a text is.
A log is text/plain.
Bytes as kept: a picture at most 2 MiB; a text at most 512 KiB, and counted after its credentials are cleaned, so it can differ from what was sent.
Example
{ "history": [ { "files": [ { "contentType": "image/png" } ] } ]}No / invalid token or session
Not found or not yours
object
Example generated
{ "error": "example"}