mirror of
https://github.com/got-feedBack/feedBack.git
synced 2026-09-12 22:08:32 +00:00
3.9 KiB
3.9 KiB
Contract: Jobs Diagnostics Schema
Schema
Jobs diagnostics are contributed under:
{
"schema": "slopsmith.jobs.diagnostics.v1"
}
The payload is included in browser diagnostics and the Capability Inspector. Export mode is redaction-safe by default. Local inspector mode may show user-visible labels that are already present in the UI, but must still avoid raw paths, tokens, command lines, handles, and artifacts.
Top-Level Shape
{
"schema": "slopsmith.jobs.diagnostics.v1",
"generatedAt": "2026-05-31T00:00:00.000Z",
"providers": [],
"selectedProviders": [],
"jobs": {
"active": [],
"queued": [],
"paused": [],
"recentTerminal": []
},
"outcomes": [],
"bridgeHits": [],
"limits": {
"terminalJobsRetained": 5,
"perJobHistoryLimit": 50,
"snapshotBudgetBytes": 65536
},
"notes": []
}
Provider Summary
{
"providerId": "provider-1",
"pluginId": "sloppak_converter",
"label": "Sloppak Converter",
"jobTypes": ["conversion.sloppak"],
"actions": ["enqueue", "cancel", "retry"],
"availability": "available",
"capacity": { "maxRunning": 1, "maxQueued": 10 },
"currentLoad": { "running": 0, "queued": 1 },
"recoverySupport": { "queued": true, "running": false, "paused": false },
"safeReason": null,
"lastSeenAt": "2026-05-31T00:00:00.000Z"
}
Job Summary
{
"jobId": "job-1",
"jobType": "conversion.sloppak",
"providerId": "provider-1",
"requesterId": "core.user",
"targetRef": "target-1",
"state": "running",
"priority": "user-approved-interactive",
"safeLabel": "Conversion job",
"progress": {
"mode": "determinate",
"percent": 42,
"step": "convert",
"message": "Converting arrangement data",
"updatedAt": "2026-05-31T00:00:00.000Z"
},
"actionsAvailable": ["cancel"],
"retryable": false,
"attempts": [{ "attemptId": "attempt-1", "attemptNumber": 1, "state": "running" }],
"safeReason": null,
"timestamps": {
"createdAt": "2026-05-31T00:00:00.000Z",
"queuedAt": "2026-05-31T00:00:00.000Z",
"startedAt": "2026-05-31T00:00:01.000Z",
"updatedAt": "2026-05-31T00:00:02.000Z",
"terminalAt": null
},
"history": []
}
Outcome Summary
{
"seq": 1,
"operation": "enqueue",
"jobId": "job-1",
"providerId": "provider-1",
"requesterId": "core.user",
"status": "queued",
"category": null,
"safeReason": null,
"timestamp": "2026-05-31T00:00:00.000Z"
}
Bridge Hit
{
"bridgeId": "jobs.legacy-sloppak-queue",
"legacySurface": "plugin-queue",
"pluginId": "sloppak_converter",
"operation": "enqueue",
"jobId": "job-1",
"providerId": "provider-1",
"timestamp": "2026-05-31T00:00:00.000Z",
"safeReason": "legacy queue observed"
}
Retention Rules
- Preserve all active, queued, paused, and cancellation-requested jobs.
- Preserve at least five most recent terminal jobs when available.
- Cap per-job progress/log history at 50 entries unless the support snapshot budget requires stricter trimming.
- Trim oldest terminal jobs and oldest per-job history first.
- Never trim active job identity, current state, current progress, current action availability, or latest terminal outcome.
Redaction Rules
Diagnostics must not include:
- unredacted local paths or raw filenames when sensitive
- secret-bearing URLs, tokens, cookies, API keys, or environment values
- raw command lines or subprocess invocation details
- raw media files, converted artifacts, downloaded payloads, recordings, audio buffers, waveform/sample data
- subprocess handles, native handles, browser handles, or plugin-private objects
- provider-private request payloads or unreviewed artifacts
Diagnostics may include:
- provider id and plugin id
- safe job type
- pseudonymous target ids
- bounded safe labels and reasons
- failure categories
- retryability and action availability
- bridge ids and legacy surface categories