{
  "file": "F14-files.md",
  "bullet": "Exclude controls (`F14.archive-excludes`).",
  "ids": [
    "F14.archive-excludes"
  ],
  "line": 443,
  "script": "control-agent-server api GET /api/file/archive --query path=\"$REPO\" --query format=tar.gz --query use_default_excludes=false \\\n  --expect 200 --raw-out \"$F/full.tgz\" --save F14.archive-excludes/full\ntar tzf \"$F/full.tgz\" > \"$F/full.list\"\ngrep -qx 'qa-f14-repo/node_modules/pkg/j.js' \"$F/full.list\"\ngrep -qx 'qa-f14-repo/.git/HEAD' \"$F/full.list\"\ntest -f \"$REPO/.git/config\"\ntest -d \"$REPO/.git/logs\"\ntest -z \"$(grep -E '\\.git/(config|logs/)' \"$F/full.list\")\"\ncontrol-agent-server api GET /api/file/archive --query path=\"$REPO\" --query format=tar.gz --query 'exclude=*.log' \\\n  --expect 200 --raw-out \"$F/nolog.tgz\" --save F14.archive-excludes/exclude-log\ntar tzf \"$F/nolog.tgz\" > \"$F/nolog.list\"\ngrep -qx 'qa-f14-repo/notes.txt' \"$F/nolog.list\"\ntest -z \"$(grep 'qa.log' \"$F/nolog.list\")\"\ntar xzOf \"$F/nolog.tgz\" qa-f14-repo/archive_manifest.json | python3 -c 'import json,sys; m=json.load(sys.stdin); assert m[\"excludes\"][-1] == \"*.log\" and \".git/\" in m[\"excludes\"], m'\ncontrol-agent-server api GET /api/file/archive --query path=\"$REPO\" --query format=tar.gz --query 'exclude=*.log' \\\n  --query exclude=notes.txt --expect 200 --raw-out \"$F/two-ex.tgz\" --save F14.archive-excludes/exclude-two\ntar tzf \"$F/two-ex.tgz\" > \"$F/two-ex.list\"\ngrep -qx 'qa-f14-repo/README.md' \"$F/two-ex.list\"\ntest -z \"$(grep -E 'qa\\.log|notes\\.txt' \"$F/two-ex.list\")\"\n",
  "exit_code": 0,
  "elapsed_ms": 8941,
  "failed_line": null,
  "failed_command": null,
  "stdout": "{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"/api/file/archive\",\n    \"query\": [\n      [\n        \"path\",\n        \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/fixtures/qa-f14-repo\"\n      ],\n      [\n        \"format\",\n        \"tar.gz\"\n      ],\n      [\n        \"use_default_excludes\",\n        \"false\"\n      ]\n    ],\n    \"auth\": \"header\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-type\": \"application/gzip\",\n      \"content-disposition\": \"attachment; filename=\\\"qa-f14-repo.tar.gz\\\"\",\n      \"content-length\": \"13066\",\n      \"etag\": \"\\\"6d6698bff3483398bb9465b83f0938f4\\\"\"\n    },\n    \"body\": \"<13066 bytes of application/gzip>\",\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 792,\n  \"raw_out\": \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/fixtures/qa-f14/full.tgz\",\n  \"saved\": \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/evidence/F14.archive-excludes/full.json\"\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"/api/file/archive\",\n    \"query\": [\n      [\n        \"path\",\n        \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/fixtures/qa-f14-repo\"\n      ],\n      [\n        \"format\",\n        \"tar.gz\"\n      ],\n      [\n        \"exclude\",\n        \"*.log\"\n      ]\n    ],\n    \"auth\": \"header\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-type\": \"application/gzip\",\n      \"content-disposition\": \"attachment; filename=\\\"qa-f14-repo.tar.gz\\\"\",\n      \"content-length\": \"702\",\n      \"etag\": \"\\\"d2e9c305c77cd3b26cb66ba905a787f7\\\"\"\n    },\n    \"body\": \"<702 bytes of application/gzip>\",\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 694,\n  \"raw_out\": \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/fixtures/qa-f14/nolog.tgz\",\n  \"saved\": \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/evidence/F14.archive-excludes/exclude-log.json\"\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"/api/file/archive\",\n    \"query\": [\n      [\n        \"path\",\n        \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/fixtures/qa-f14-repo\"\n      ],\n      [\n        \"format\",\n        \"tar.gz\"\n      ],\n      [\n        \"exclude\",\n        \"*.log\"\n      ],\n      [\n        \"exclude\",\n        \"notes.txt\"\n      ]\n    ],\n    \"auth\": \"header\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-type\": \"application/gzip\",\n      \"content-disposition\": \"attachment; filename=\\\"qa-f14-repo.tar.gz\\\"\",\n      \"content-length\": \"668\",\n      \"etag\": \"\\\"3e26193434f386ea6e55cc018e1dabb3\\\"\"\n    },\n    \"body\": \"<668 bytes of application/gzip>\",\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 442,\n  \"raw_out\": \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/fixtures/qa-f14/two-ex.tgz\",\n  \"saved\": \"/workspace/verification-artifacts/runs/20261013-022038-d620-map-f14/evidence/F14.archive-excludes/exclude-two.json\"\n}\n",
  "stderr": ""
}
