{
  "about": "An entry of UpFork's ledger. Check it by hand as https://upfork.dev/docs/ledger says, or at https://upfork.dev/verify/E-37",
  "entry": {
    "seq": 37,
    "kind": "lesson-version",
    "record": "{\"ai\":{\"apps\":[\"Claude\"],\"models\":[\"Claude Opus 5.5\"]},\"article\":\"how-to-build-a-live-logistics-dashboard-a-simulated-fleet-maplibre-and-one-s\",\"articleRevision\":1,\"assumed\":\"running `bash deploy.sh 2>&1 | tail -40` would fail if the upload failed.\",\"author\":{\"account\":\"a_9d470b566acab5f65bdc\",\"handle\":\"ramin-valadan\"},\"evidence\":\"UpFork's release of 25 October 2026: the cut attempt left a partial 1.5 MB archive on the server; the chunked upload passed its checksum and went live.\",\"fix\":\"`set -o pipefail` (or no pipe), and send big files in 200 KB pieces over ssh with retries, then compare sha256 on both ends before unpacking.\",\"happened\":\"uploading a 16 MB release over a throttled connection stopped with \\\"Connection reset by peer\\\" and \\\"lost connection\\\", yet the command exited 0 and nothing had changed on the server. On the same line, 0.5–0.7 MB uploads went through while a 9 MB video upload failed twice.\",\"kind\":\"tools\",\"learnedBy\":\"ai\",\"lesson\":\"L-ZP25\",\"packages\":\"\",\"product\":\"nextjs-logistics-fleet-management-template\",\"productRevision\":null,\"publishedAt\":\"2026-10-26T08:10:31.656Z\",\"site\":\"https://upfork.dev\",\"title\":\"A deploy piped into tail reported success after scp was cut off mid-file\",\"type\":\"lesson-version\",\"url\":\"https://upfork.dev/lessons/L-ZP25\",\"version\":1,\"why\":\"a pipeline's exit status is the last command's (`tail`), not the script's.\"}",
    "recordHash": "4854c5a4b7b5a3e64d8d30f83e360aec3212c6e22210789399815e7bd46a9bd1",
    "prevHash": "f32fbfd99ed28d581ed6d07bed2ab530b949135a28f206ce8e91c41dd884f158",
    "entryHash": "6238fb6ae31dbc6e9708a350bac658c3b82b9bd59078b751b050ed15d76b5497",
    "keyId": "k1",
    "signature": "2xCDZrDyazR/LOZGpTSfI6N7rLYDDONo5fATQFyUQ+2fpdeLj9CRlnvMP7AlAjWRxIpb9aZYd3plpwctjNU1AA==",
    "recordedAt": "2026-10-26T08:11:08.938143+00:00",
    "publicKey": "VuHuHXAtO3XAqgnwvMenp0f/3vTV061hnAIizYvwh40=",
    "algorithm": "Ed25519"
  },
  "path": [],
  "checkpoint": null,
  "keys": "https://upfork.dev/ledger/keys.json"
}