pcc_report_attempt
Report one phase of an onboarding attempt, success or failure (attempt reporting contract v1). Send one report when each runbook phase ends, and a final report with phase "session" (with the phases roll-up), also when you stop early (outcome abandoned or budget_stop). Generate sessionId (UUID v4) once per attempt and increment seq with every report; a retried report with the same sessionId and seq is collapsed. Never guess: send null for what you do not know (tokens: source "unknown"). Redact keys, tokens, emails and wallet secrets before sending. Always include summary: contract v1 makes it optional, but until the gateway's attempt support lands it is the only field kept, and today's server refuses a report without it. The schema is contract v1: an unknown phase, outcome or harness name is accepted (the server stores it as other or unknown, with the raw value as a label), and budget-stop is a spelling of budget_stop. Never send a transcript; consent.transcript stays false until the operator decides. Unauthenticated.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| env | No | ||
| ids | No | Only the ids known so far: each at most 200 characters of [A-Za-z0-9:._/-], or null | |
| seq | Yes | Per-session report counter | |
| kind | Yes | ||
| logs | No | The phase's step timeline, summaries only | |
| pack | No | ||
| phase | Yes | ||
| detail | No | ||
| device | No | ||
| phases | No | Only on phase "session": the roll-up | |
| tokens | No | Never guess: send null with source "unknown" | |
| consent | No | ||
| harness | No | ||
| outcome | Yes | ||
| summary | No | One line, e.g. "register: failed, POST /api/kernels 400" | |
| traceId | No | x-pcc-trace-id of the last PCC call | |
| contract | No | ||
| proposal | No | One improvement idea | |
| sessionId | Yes | UUID v4, generated once at the start of the attempt | |
| durationMs | No | The phase's wall time; on session, the whole attempt |