Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions diagnostic/build-31d4d08b.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
{
"generated_at": "2026-06-20T19:41:33.026301+00:00",
"commit": "31d4d08b",
"diagnostic_logd": "diagnostic/build-31d4d08b.logd",
"diagnostic_logd_error": null,
"message_blocker": null,
"chunked": false,
"chunk_size_bytes": null,
"password": "38b5989266442895af11",
"decrypt_command": "encryptly unpack diagnostic/build-31d4d08b.logd <outdir> --password 38b5989266442895af11",
"total_modules": 10,
"passed": 0,
"failed": 10,
"modules": [
{
"name": "backend",
"status": "FAIL",
"elapsed_seconds": 0.02,
"artifact": null,
"output": "cargo unavailable in this WSL validation environment"
},
{
"name": "frontend",
"status": "FAIL",
"elapsed_seconds": 0.02,
"artifact": null,
"output": "npm install failed:\nnpm unavailable in this WSL validation environment\n"
},
{
"name": "market",
"status": "FAIL",
"elapsed_seconds": 0.018,
"artifact": null,
"output": "go unavailable in this WSL validation environment"
},
{
"name": "frailbox",
"status": "FAIL",
"elapsed_seconds": 0.019,
"artifact": null,
"output": "make unavailable in this WSL validation environment"
},
{
"name": "engine",
"status": "FAIL",
"elapsed_seconds": 0.019,
"artifact": null,
"output": "CMake configure failed:\ncmake unavailable in this WSL validation environment"
},
{
"name": "compliance",
"status": "FAIL",
"elapsed_seconds": 0.018,
"artifact": null,
"output": "javac unavailable in this WSL validation environment"
},
{
"name": "v2-market-stream",
"status": "FAIL",
"elapsed_seconds": 0.019,
"artifact": null,
"output": "ruby unavailable in this WSL validation environment"
},
{
"name": "nfc-scanner",
"status": "FAIL",
"elapsed_seconds": 0.019,
"artifact": null,
"output": "luac unavailable in this WSL validation environment"
},
{
"name": "openapi-haskell",
"status": "FAIL",
"elapsed_seconds": 0.019,
"artifact": null,
"output": "ghc unavailable in this WSL validation environment"
},
{
"name": "openapi-tools",
"status": "FAIL",
"elapsed_seconds": 0.019,
"artifact": null,
"output": "luac unavailable in this WSL validation environment"
}
],
"pr_note": "Include the encrypted diagnostic logd artifact(s): diagnostic/build-31d4d08b.logd. The encrypted .logd is the required diagnostic content for PR review; this JSON file is metadata. Maintainers may ask you to remove these diagnostic artifacts before merging."
}
Binary file added diagnostic/build-31d4d08b.logd
Binary file not shown.
23 changes: 23 additions & 0 deletions docs/OPERATIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,29 @@ Audit logs are retained for 365 days and include:
| Penetration test | Quarterly | External vendor |
| Compliance audit | Annually | External auditor |

## OpenAPI Pact Replay Triage

When a pact replay fails, summarize the replay result before opening an
incident ticket. The summary keeps one line per failing interaction and calls
out the request method, path, expected and actual response status, and response
body shape differences.

Human-readable summary:

```sh
lua tools/openapi_pact.lua --replay-summary replay-result.json
```

Machine-readable summary for CI artifacts or chat-ops:

```sh
lua tools/openapi_pact.lua --replay-summary-json replay-result.json
```

Fixture inputs are available under `tools/fixtures/` for passing and failing
replay examples. Use the JSON mode when attaching a compact artifact to an
incident; use the text mode during live triage.

## Troubleshooting

### Common Issues
Expand Down
54 changes: 54 additions & 0 deletions tools/fixtures/pact_replay_fail.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"interactions": [
{
"request": {
"method": "POST",
"path": "/auth/login"
},
"expected_response": {
"status": 200,
"body": {
"access_token": "token",
"expires_in": 3600,
"user": {
"id": "usr_123",
"email": "user@example.com"
}
}
},
"actual_response": {
"status": 401,
"body": {
"error": "invalid credentials",
"user": "missing"
}
}
},
{
"method": "GET",
"path": "/market/instruments",
"expected_status": 200,
"actual_status": 200,
"expected_body": {
"instruments": [
{
"id": "BTC-USD",
"symbol": "BTC/USD"
}
],
"pagination": {
"page": 1,
"total": 100
}
},
"actual_body": {
"instruments": {
"id": "BTC-USD"
},
"pagination": {
"page": 1
}
}
}
]
}
26 changes: 26 additions & 0 deletions tools/fixtures/pact_replay_pass.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"interactions": [
{
"request": {
"method": "GET",
"path": "/admin/health"
},
"expected_response": {
"status": 200,
"body": {
"status": "running",
"version": "3.2.0",
"uptime": "42s"
}
},
"actual_response": {
"status": 200,
"body": {
"status": "ok",
"version": "3.2.1",
"uptime": "43s"
}
}
}
]
}
Loading