v20.20.2
TAP version 13
# Subtest: CLI export, hash guard, noninteractive overwrite refusal, source aliases and recovery-safe preflight
ok 1 - CLI export, hash guard, noninteractive overwrite refusal, source aliases and recovery-safe preflight
  ---
  duration_ms: 240.601139
  ...
# Subtest: parse four complete exchanges and preserve the exact source
ok 2 - parse four complete exchanges and preserve the exact source
  ---
  duration_ms: 0.853188
  ...
# Subtest: pins survive verbatim; whole tool exchange stays paired; chronological output
ok 3 - pins survive verbatim; whole tool exchange stays paired; chronological output
  ---
  duration_ms: 0.850521
  ...
# Subtest: pinned minimum is exact, and too-small budget refuses
ok 4 - pinned minimum is exact, and too-small budget refuses
  ---
  duration_ms: 0.363449
  ...
# Subtest: normal beats an earlier aside; oversized normal can be skipped whole
ok 5 - normal beats an earlier aside; oversized normal can be skipped whole
  ---
  duration_ms: 0.13583
  ...
# Subtest: bad priorities, budgets, incomplete exchanges and tool mismatches fail closed
ok 6 - bad priorities, budgets, incomplete exchanges and tool mismatches fail closed
  ---
  duration_ms: 0.48778
  ...
# Subtest: message-wrapped tool blocks belong to the same exchange
ok 7 - message-wrapped tool blocks belong to the same exchange
  ---
  duration_ms: 0.763273
  ...
# Subtest: fences grow around hostile Markdown and Unicode byte counts are exact
ok 8 - fences grow around hostile Markdown and Unicode byte counts are exact
  ---
  duration_ms: 0.20612
  ...
# Subtest: selection is deterministic and leaves inputs intact
ok 9 - selection is deterministic and leaves inputs intact
  ---
  duration_ms: 0.338159
  ...
1..9
# tests 9
# suites 0
# pass 9
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 317.386364
Sidecar saved; 4 complete exchanges. Source unchanged.
Exported 872/1000 bytes to /tmp/packet
{
  "version": 1,
  "budgetBytes": 1000,
  "packetBytes": 872,
  "ordering": "pinned first; normal next; aside last; oldest fitting first within tier; output chronological",
  "exchanges": [
    {
      "id": "e001",
      "priority": "pinned",
      "bytes": 191,
      "selected": true,
      "reason": "selected"
    },
    {
      "id": "e002",
      "priority": "normal",
      "bytes": 391,
      "selected": true,
      "reason": "selected"
    },
    {
      "id": "e003",
      "priority": "aside",
      "bytes": 180,
      "selected": false,
      "reason": "budget"
    },
    {
      "id": "e004",
      "priority": "normal",
      "bytes": 180,
      "selected": true,
      "reason": "selected"
    }
  ],
  "sourceSha256": "a4369c8a7234d9e8933e62f6643a73c59b571e267d8a65d668a1d827b72b43b5"
}
