From 26333847fb34f0266ccafaf08eca66ed37a4e1c8 Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Sat, 31 Oct 2026 04:19:34 +0800 Subject: [PATCH] Recover verified old task images while retaining live and recent versions --- .../creative-browser-diagnostics.yml | 64 +++++++++++++++---- 1 file changed, 52 insertions(+), 12 deletions(-) diff --git a/.gitea/workflows/creative-browser-diagnostics.yml b/.gitea/workflows/creative-browser-diagnostics.yml index 984db11..f763f17 100644 --- a/.gitea/workflows/creative-browser-diagnostics.yml +++ b/.gitea/workflows/creative-browser-diagnostics.yml @@ -1,20 +1,60 @@ -name: runner tagged image ownership inventory +name: runner verified cross-task image recovery on: push: branches: [codex/creative-browser-diagnosis] jobs: diagnose: runs-on: ces-control - timeout-minutes: 10 + timeout-minutes: 25 steps: - - name: Inventory tagged image repositories and container references without deleting + - name: Recover verified old task images while keeping running and rollback versions run: | - set -euo pipefail - df -h / - docker image ls --no-trunc --format 'IMAGE {{json .}}' - ids=$(docker ps -aq) - if [ -n "$ids" ]; then - docker inspect --format 'CONTAINER {{.Name}} status={{.State.Status}} image={{.Image}} tag={{.Config.Image}} project={{with index .Config "Labels"}}{{index . "com.docker.compose.project"}}{{end}}' $ids - fi - echo 'DEPLOYMENT ROOT DIRECTORIES (names only)' - find /opt -mindepth 1 -maxdepth 2 -type d -print + python3 -u - <<'PY' + import json,subprocess,pathlib,fcntl,shutil,time,urllib.request + plan={'candidates': [{'tag': 'endorphin-tessera-gui-ci:7bb59fe06f61acec546404c40abee825fa52a453', 'id': 'sha256:fbf42fb0508a782a68cdd896bf18b676994e20b95c844d999013e10c1f60b172', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:e0a7d8169c7fd3eb75e5cce4eeafd1f6f5461b43', 'id': 'sha256:341273ddc8083fc20fb04a525b4cb7be669cc424f8678d1042506b69f495284f', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:eb48ec33966448dcd56785fcef6061a769b3cef5', 'id': 'sha256:8a4c505cd17fc5aa666468f117ff71fffd39e97f53a1923f215d43ce15b9c40f', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:053b0f5fba90fdce544b93938ba99da52d607b44', 'id': 'sha256:663ad55ab40a7e5d7f586f70c0c3677b48e02eb4ba9a57d35e79fa1870b7720d', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:b725cf488d4958116a8a5d6e384fc86731c831c3', 'id': 'sha256:d2a0cff5d6219c64eb4bc4de23e3d2d461cc5f78928641ee3f908887a6aa02e0', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:05b727a4a58673b5edd051e5dfe3a3d282e68879', 'id': 'sha256:4e1df5fd7964ec37c11c6975c0d4beb2c0af04117cf428f9dc8e218224aef40c', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:05403e6996bd466d2449c4f672b797f17855634f', 'id': 'sha256:66efefa7280eff01ee8442aa5d30292e88f7a2c12a8223643e00592ff721368c', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:fc0634e79f8b6dd379c611e689c819153d04f132', 'id': 'sha256:e126b6c8ab47688139ec0af5b4c1184aa349ba9122388270c76379228a57b5f9', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:ae89dfad1eb99b077fcfda95ffd14e9a13935ce8', 'id': 'sha256:fd25afce60c820f97a98eb75d264e8c3228c70ee47ac3af0ccbc376654775154', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:65f5092f0f48d194eae9a140ad2cf26a9e8e8e58', 'id': 'sha256:7f726b25addcece740460a01079dfad9aa180fa56825f6b4afa25808e7763fd5', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:180a08ea63031ef7dd6051ce21d1c270cde1c0e3', 'id': 'sha256:84af6e29815cbf8c29d787105faa626897b8ce931f970bb12ff126e171fdbaf1', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:470454caa67fdb41857f9b243bb64971001e2873', 'id': 'sha256:419dad1c75128f7b2708230ec1891a453c542007521ae1d02b45005298d13966', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:ef44d7cb18e4bd88c2fbf7e9cb44f8110e20a135', 'id': 'sha256:490ca220b889904884132fac00dbbda73d3b0ad7f23e044275fbf2949f254afb', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:184b06794583e4df0e1d7d9cae87044284ade5d7', 'id': 'sha256:100b158d5f9bc3a773ac8faa387836e3dffec02176ed20f3d98c7761af07ac03', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:8a13cd027a8dde694cdad78174f90f255ffaf66c', 'id': 'sha256:adeaca04097fa910cdd92be1945bfffce2b682689ed04d18f7aab799f173f9b8', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:cd35121b59cb2ab20f1008d9ba4e06942754d35d', 'id': 'sha256:2d25c89132b8aef16fd3f0a4437a19695c0b22cd00b9672f0750ece7cf4e4e38', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:4df99cb2aad47ec447805f5d553a297ceb47a98a', 'id': 'sha256:a932e17782e221e841217897908f2e31375b2d1fa282b00dc08f89305c84f4e9', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:8f7255f4cf1cebf813a5c2b6fbe5c54ffcdbd20f', 'id': 'sha256:3b5bab3d0be2319b8aea1e87734466798b5bdae0f79a0ad6011f51373157b1b6', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:6c4be694f7b67db0243f09b5d381c83000521302', 'id': 'sha256:e1692657a6383fe10b0df8fdcb9d40d3e576de1fb14e8d20ef6ec6ce232a42cd', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:175421ece3c469317d696879cf8c10f36977115f', 'id': 'sha256:f8d2975484bd49b729ac70b5feebdaa283f2df216379715ae1e9b41a361de0ea', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:020b914658c27f607ce52c17af8b958bc4c8f2db', 'id': 'sha256:5c0af9eec46a2f71ec44d3e2b3ebdf66335192056ec7aef1d8c97dbc2e7b005e', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:09c3902d8406767bbd6786442bcd3be8db8b5774', 'id': 'sha256:54239b33ff8ae46ef308b0e8f13123a702bea66f3ae79405cb6f3f3ad62ec7f0', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:33f94da927b936a5844fd3d20b9a8413d3950164', 'id': 'sha256:3ad75cb1678735ea16a9e6b3f88095b0789118a959d37da377166f1793b4921c', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:1fda07ebc58d4cf460f8e9064597bc6de5ef7cd5', 'id': 'sha256:0126fecdcf6d10dd1e2c3aa3020bff6a0038d4e3255fd7b4997ae94d197cd3dc', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:78fb66277d27eb9a1123d2f9618ba5043caf0626', 'id': 'sha256:93dd8f5c9603ce79221f3eb9b93a46c0713f6a3d63130d4bcc038e21d0226eff', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:0c1cc12b6b195536c492ac0fd8f07d1a981736ab', 'id': 'sha256:6467821739f4a1e0492df1d828fbbb2f003bdb4a856d9beaa256224cc078c432', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:1885693f7c3dc297d9fa743033d6d60cf725b53d', 'id': 'sha256:9b84135bf627e74ad231d9de8074993a15ad596d20d296bae62e4e23dfe1097a', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:2b20976658eb5ce1eac70e5b4856b2b6c759baf1', 'id': 'sha256:5e4bce14f6d3e90ceb99eece3097f2ef5eaf4e378faa03b4b635b10dd420156d', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:1eb3b8705036e174f54d3c73aa6b0047506cf32b', 'id': 'sha256:5dc78f60255010fe43cf2f56bdcc49d467932a84b160cb18816172e2ac7388e4', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:7b5d3940fd182d07dff052f9cece9975e7640424', 'id': 'sha256:53a0bfcca394ddd14d9269baf6382814347ba0c601353ffffd04073a12c9334e', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:25275b515cf15711800425774649e0b43f3aa645', 'id': 'sha256:8bd0274a068a2751b8562d5698490985ecb5a2fe7657f971f4741be242d1c5bf', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:50422f801ab6e36cdab9d5b30f3c3898c31e8e70', 'id': 'sha256:e3f3d140c5e19b3775c8ed9837372969d1a18a0d862ae28d5fcbcdf99f4d8653', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:7cd7ec2c1141649d9697aa3c1151d0e266663283', 'id': 'sha256:24887b42a1a0070ade27db37b8ab510f68c91804831a20d5d4c4596e333ef25f', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:6d6a9b7a346e5e461aa198856843005c1c9779c5', 'id': 'sha256:3c5d9eeed573c0bfeb7a620c64466109e9ab3ebee1656ff3fe7225aa6644c57a', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:3a7b7555322e174093d3fe1d20185b9c71ba31d2', 'id': 'sha256:988080151e8853caa3ce953f34f42454c0de4846812a731fc83031240e8bcdbd', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:6e69c5e5ce8e14e73597687ec963a3dd9a551aa2', 'id': 'sha256:471c74c2fb60206478fcdfe33ebdd207e3c78f7452027ba5d3fb27aeeaee18ee', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:7acc5783a5abe3d65682763f6326aced45492411', 'id': 'sha256:47c6facbee5735ba381e3026fbca7f5dd42aa51b8feb031ef73d0b7af0db6d54', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:8d980745eadbe4d939586903a4509d6704f534f7', 'id': 'sha256:c888fb4f05e0d0d895c964cc59014b4ed5c552515d939e61d11d57f476870ce8', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:dff49770fad15975c3e5612051fe26d49cd57b9d', 'id': 'sha256:e1916ea1f0964f6917e2999274a0ea4e20f1c2e269432a0acc49aea5f08caaa0', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:e3e46068ebc9cfe8b0b8af41e91bddc855bceb30', 'id': 'sha256:c799a9887935d4690accc335e7ba364d3f0b2d77947dee8e99b2298b040ac120', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:f8173168fd9a471e8508e23b835da76b5844f0b8', 'id': 'sha256:e09ebd69b146db98769e2c159d17d64f75a0b9648b5c59b8cc74c2c120ca4994', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:96319b13a3c266dfaa0909e4031d32298385a3ee', 'id': 'sha256:a25860f428b7220bef4d620285625f71918573c63441d075c3f97169b425ff77', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:76e293d3b89df2e7fb5da764a1ba79e92f1b1de3', 'id': 'sha256:e0d45cced6e93c45e7ab4acbfcba400ee907ac96ad4ad36e7243379bb913f9ce', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:3ea4bac48cab24609f3acd6f563a75ee22f45890', 'id': 'sha256:e7fd391bc5d7eecef40060ebf6467b201ac4eb92f222ad7545964501edfb70c7', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:1b5fe1069fbc73dc2a9d6926ac275c38edf12476', 'id': 'sha256:af9e37cc49bac746bb43326321e652801d3cf4da8b819da7b42252079d49655f', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:7b11e32eb6ddebcbfdc31653b3d32f05c740f8a8', 'id': 'sha256:9bd1dfe690e721f17bbd9b267d0d6ec63eb476b83adf4ae3b40029038914a3c2', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:d19fab55b9d3f2f55d824467a174cf06129c249f', 'id': 'sha256:750b189ef8a60c6f0f0b3fc0c624084e0175c667c07700f5aa65df0650ce1c72', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:6a88447524c20d1c5eee35a770a2a93da0b1124b', 'id': 'sha256:8c64f04830ee6d34dfb67cb1c49186c3dec9d35b456deb83176b99e2ffbb1728', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:dc61f5e33cc7c5b6664f8c702038d5ef42738254', 'id': 'sha256:efad12bdc13f48d586b02b3d69d5b8ed19954f9f83c308bdc7a0693ff00dd05d', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:d2f167e71f6304739c4c6063675cd50a3730ef0d', 'id': 'sha256:70bc66beff26a5d8827050e81a9da3d4d4fb6b4920936afa8d2a18b36f8b01af', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:8886bdbd2d659f6b085ce896b67eb8a75f077165', 'id': 'sha256:d3918e2c22e24245bf92290e2a82e8d1a223d53937ce8b5e36e4a4c6ab7864b3', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:6c42e5dde4653739aaf0e05029c88e7d56af2366', 'id': 'sha256:058c951f3b2dec219afaf949eefff5699c452be5639e3caf00a3da036ae2309a', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:0d5e4b318d0cf1c99a3ecb807821d22110932b1d', 'id': 'sha256:e73c4e4b8fcb0a0bb09d8772404cbafe203ad185ca6607963aec8e1c63fbef85', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:757fa22d9bebee555af3104f91103bb045c35875', 'id': 'sha256:f7f86b58048106992dc8a15c1ea7703110d2966447133107471d1672c1534eaf', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:9d3f76627542cd1794dca6650f6d65666b78d150', 'id': 'sha256:63a988986155cb6a0bce9bbc200afa43a662248c5ffe1d6ed61fa000b8976b3e', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:098fe451291326b901a337c08bb3528dc24268c1', 'id': 'sha256:c9971b042f3f0f10f3403cf81bb4d849579472860e9890ecc841b723aa063817', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:53e8d7b2876fff26d927bd92cfab8b1b9625b8a4', 'id': 'sha256:6e3243decaf5205f5dee55cf1082f71e07278502a3911407de0febe458da819b', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:1d4b1d3c86cee3ef71b1ef6af55cfe2f47f12b3a', 'id': 'sha256:76e9b41edc4843664e9e3f3238ef778160c4b4f03116e6c73b55c9f11fbd05bb', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:d641f6211696cbd550e68b21be1218fe4d937c87', 'id': 'sha256:188b0e9ff5b6270ed3fb956bcdad27076a397aacc6e62d848361b271e8bc119c', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:5f202e8347617523ee76a3e1fb36848506243cc8', 'id': 'sha256:f9f5197e662ad67657c3b14b08d2532f62e184d8aee6e8188fd0e85dc1f30890', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:f0fae1792f22cfbd27267ac10fe8ec0ab511de20', 'id': 'sha256:0b774ea61c50e0397b1618e59453426cf1727b880c4ae6ce348f14a41c653e82', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:1f64de48b9f632b1c943fee03b08fa2c7dc31a32', 'id': 'sha256:323be471aa77c8e322e33a25b2523f1c837af5df8453fc2fb7c00bf40f9ea413', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:47ab2aa3a6c6b6f1882540036e091e7843fd5da1', 'id': 'sha256:fd63671380ef8b18ce7cd1910c9c1a0d8fc3dd64d5cba1cb22c9aef0c815c1eb', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:8cb2bf8607e76f4202eb4d73291a561dfda37c3f', 'id': 'sha256:63755b7c8c8d8765b92d768886e56aa1a9aa187072be45bfa8e49d70f85bfda2', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tessera-gui-ci:3e1cce78f8120f23dfa12ee768dfad2852babc03', 'id': 'sha256:5fbdc8b15be3e2ff6eed78da2f80fc7ef3c4550240f2cc1b533a3b0375644411', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm-ci:be4f1add58172f73436e030ba57a86a255420cfe', 'id': 'sha256:78eac51bcbd4e1b7009667fab23cd07c4feb24aee4dd4ff3cb27824dc603f75e', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm-ci:f77b8370eaa48e3e54d7505360ccc25ff134a26a', 'id': 'sha256:fc7d22d2a153d097b0d1460efccd417956d2cc982a1a10fc3383c4e50f7b598b', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm-ci:78fc859825f7acc50bf955acbeba8d409c4583cc', 'id': 'sha256:569254db0cae1544ebe4cbf0d3904983da401f6d613667974ed6ba286da0ee9e', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm-ci:483d9d17172b084b9ff2631be9bc09dee90a4c19', 'id': 'sha256:cc26d32a7fa39d6286a4c5dc1e9f692ab007e1d32bdb1ebd4acefda9a555069b', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm-ci:4bf889e5b71377cac98abdc0b4a8aef1362318f9', 'id': 'sha256:a79777f6e63968c508606d89ab48312d74c81a5c61351888cb82e622515cec2d', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm-ci:0b3a480555aa62e2b0b0d4cfcc69299c8322a069', 'id': 'sha256:45b92d86fc1c332f700bd4ad156a9b6f2c73046b448119357e5654f50b65fa7d', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm-ci:e24909a56e745fa49f050400254373a985e85198', 'id': 'sha256:7b2432ba1bef0d1367fba483d2efd424b5a4c052b71f5f237b57488aa246acfa', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm-ci:e52d2e1e4b06542b5a763c916826eb380276c11e', 'id': 'sha256:ced415cebb8dc3181078dcfd3020b0b65eabc746f7822ca9c5c78e14e7779713', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm-ci:18cd24a20387d3b544e582e5a8008ee32d211145', 'id': 'sha256:435ead9e007e95e9f6bfeabc787f46da0152e43409a1fa6e41574d23d0082844', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm-ci:8bbe78e01e88b8f996a1dfee352c7c48374876d6', 'id': 'sha256:521d7b7bbd88cd7c972e95e0f2d346d634c6f5fadd0e467b782aa789aecb94ff', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm-ci:6fa95b64b038bebb15438bab8cc50c561577b330', 'id': 'sha256:5d2dc66b80586897cd47c769d0c4f8b027e0c3dc94f351db2be8cccd0ede7c71', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm-ci:50e8fcb5e71a25e55983e26b5a7b8650d3cc1569', 'id': 'sha256:62ae48a96a495117b69d7c874fad997153f4084d56124a0702cd550b763a1942', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm-ci:891defb34cf375414488968fd3f6b601dc808f88', 'id': 'sha256:c9d2769f5298fa7858c5d0740d4a6c5d029231b4be4b5f952e211239ebd266ca', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm-ci:534c2a3b2cd2c7e5142656108599d7c8f3c594b2', 'id': 'sha256:87fdb78d32abe25c8d10d5f4517eee1ea6829665078825b9ac3215c1fd33af4e', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm-ci:d394f07fc2f6bab9841bfd7df912041e202d36c6', 'id': 'sha256:4edf39d7287d6d2eb110d4d710159b3e4a8831d6b7756f89cf567a0890d5080d', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm-ci:9648b9e8dd064f1dab11d974d0f7931a86943c71', 'id': 'sha256:d119ff09c9cc1d9236369e713cfeb70bee11aad21bed1947ea0151b04587c0dc', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm-ci:afcaf5cff8b0f612ad23bffce813db39ec971460', 'id': 'sha256:d119ff09c9cc1d9236369e713cfeb70bee11aad21bed1947ea0151b04587c0dc', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm:483d9d17172b084b9ff2631be9bc09dee90a4c19', 'id': 'sha256:d03144feb8fad039ac2926d28aae4caa191cfa7c13beb361805b73c1ab1bdc2c', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm:78fc859825f7acc50bf955acbeba8d409c4583cc', 'id': 'sha256:d03144feb8fad039ac2926d28aae4caa191cfa7c13beb361805b73c1ab1bdc2c', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm:4bf889e5b71377cac98abdc0b4a8aef1362318f9', 'id': 'sha256:5816d1d1b9c1c5550b234b9aa79d32c6b9630206a29efbe8bd2e24c9958a8894', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm:0b3a480555aa62e2b0b0d4cfcc69299c8322a069', 'id': 'sha256:07e5df80bc35e3754fa3f4d575b3ca76196bfa6e780435c58302d86eadcef580', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm:e24909a56e745fa49f050400254373a985e85198', 'id': 'sha256:94d24cc7f84e92a4a3698c28183d19a91a94a9b2a850931bff208f256f6aebcf', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm:e52d2e1e4b06542b5a763c916826eb380276c11e', 'id': 'sha256:cee3453ecab23bc2a2a973e22b3970c0c5461ea84015417e1d83851e93c55172', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm:18cd24a20387d3b544e582e5a8008ee32d211145', 'id': 'sha256:f71c9e9ac3fab441e53ce02290f6bbe702645ae17ab9087a3f71da4113644db4', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm:6fa95b64b038bebb15438bab8cc50c561577b330', 'id': 'sha256:e4d14c1e28a821eb8128129b28465c340ab13b3b88d990937e2fab0dd72d3e0d', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm:8bbe78e01e88b8f996a1dfee352c7c48374876d6', 'id': 'sha256:e4d14c1e28a821eb8128129b28465c340ab13b3b88d990937e2fab0dd72d3e0d', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm:50e8fcb5e71a25e55983e26b5a7b8650d3cc1569', 'id': 'sha256:dc1a1916d3aa45aeb5645b4f92c42c90481fdedc47ecf6a03c43b0e30ac43f86', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm:891defb34cf375414488968fd3f6b601dc808f88', 'id': 'sha256:79486756759cd4cb14e535fcb60f7c04d63a33ca735adfde1302ec39d1d82e9c', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm:534c2a3b2cd2c7e5142656108599d7c8f3c594b2', 'id': 'sha256:7956e321d3593057b903f63295a88ae4be29e820af4aa0efd426dd00ce72dd71', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm:d394f07fc2f6bab9841bfd7df912041e202d36c6', 'id': 'sha256:0ad2f21b8c11edcc5fe26e01f0d9c16212358f899f6a57e9eaf33aea69e83b03', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm:9648b9e8dd064f1dab11d974d0f7931a86943c71', 'id': 'sha256:6c57790c15d383c60754d29a4799f68e5b274662616f6d67484c1adc65a987e7', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-aster-vm:afcaf5cff8b0f612ad23bffce813db39ec971460', 'id': 'sha256:6c57790c15d383c60754d29a4799f68e5b274662616f6d67484c1adc65a987e7', 'reason': 'terminal CI commit outside retained recent builds'}, {'tag': 'endorphin-tabularium-docs:verified-main-2b55f733c7133ca7ad9b5b99b55a32697b7730246078b775badc33d38b1b2ffc', 'id': 'sha256:2675c65b7f18f168885859ca944fb3d8b40e11154c137cb1a95676895ba7066d', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-b505e831902ce0d4fe1ba5477d46fd74922e3c2d21a886b73dac9046c6f6887a', 'id': 'sha256:8c41e8f6a714f9a664f2aeee6ab7d75d1e1e080c758e56253db664eea126c878', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-0855bbdc391b3bec6c40a50de846c8680530afa55e207380eded40a0eb30adda', 'id': 'sha256:e1d6acefc41e626fd3da1d67b476ae60c745917c8bb8ba4952e7f321bb593af0', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-183b38b7cc2e2990e821adb87fe9dd01ac6aedda025a71884d57bdcd8d71c86a', 'id': 'sha256:cc18284935e30bc6065ba9736c6dfd02db7cae15a763c2513b95c727412d43bf', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-a80c5c80d68664f78bd4c7a8e4db31c7c261d59e12e43035682192cf5580b8f1', 'id': 'sha256:a78a55e1c27bee44612ecc644435916387c34c532e9a75a641720839f3d4d1b5', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-f77131e8612abbd15d287b2985c3643436fbc7c41f65dd7f55d7c68ee418da87', 'id': 'sha256:22f426749971f0fcae34526693da5ff36dcfb2b055afde30dc222ee43e808c2d', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:candidate-pr-10', 'id': 'sha256:790e62e15c431ff2a400c8b3d9f0ff7d206e7e59a74304c1aab9d09cabbd89f1', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs:verified-pr-10-f77131e8612abbd15d287b2985c3643436fbc7c41f65dd7f55d7c68ee418da87', 'id': 'sha256:790e62e15c431ff2a400c8b3d9f0ff7d206e7e59a74304c1aab9d09cabbd89f1', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs:candidate-pr-9', 'id': 'sha256:76640dfd884f62cc57579151ec864fdf467c4c428f825824b34b882bade89df1', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs:verified-pr-9-7e2d4a3a59f04a0f0c607e760502433399052e71f22db60249889ac1f70b4092', 'id': 'sha256:76640dfd884f62cc57579151ec864fdf467c4c428f825824b34b882bade89df1', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs:candidate-pr-7', 'id': 'sha256:dcc53453d2a26f06ffed46ddf388c3be30d112b87b77c761d1922255c6d39d56', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs:verified-pr-7-c558c9c34d76aeb6d5159424112cad56b659ce09a4b7ac7de944e019e1d4e923', 'id': 'sha256:dcc53453d2a26f06ffed46ddf388c3be30d112b87b77c761d1922255c6d39d56', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs:verified-main-c558c9c34d76aeb6d5159424112cad56b659ce09a4b7ac7de944e019e1d4e923', 'id': 'sha256:392b787c079299cc3885af1361fa228682ba335af93c92e456920a9632279ce3', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:candidate-pr-5', 'id': 'sha256:8fbdff015a17c1455537621b0bb8ad62862eb16e85c39103ac93dd7d1e66f024', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs:verified-pr-5-5b6181a92fbdfec7d271215f4b53b32474b8744f89f3d678ed81a2af72d867d9', 'id': 'sha256:8fbdff015a17c1455537621b0bb8ad62862eb16e85c39103ac93dd7d1e66f024', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs:verified-main-5b6181a92fbdfec7d271215f4b53b32474b8744f89f3d678ed81a2af72d867d9', 'id': 'sha256:7b78356fc3304d46b687218d879792f6690bd20195885e363e88ff4138a86a4b', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-382649d3039df0f4253f7366e983172ef33f2be9c9bfe92c1a2bae460236de0d', 'id': 'sha256:ae415911fa4b017e6881fb8218a3253b1a115730fd0660a508da90bce8e571be', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:candidate-pr-4', 'id': 'sha256:3904fbf8a34598f5747d8a89ea4afa9e44285db1ca4f032beb69c7fcb1a537d6', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs:verified-pr-4-382649d3039df0f4253f7366e983172ef33f2be9c9bfe92c1a2bae460236de0d', 'id': 'sha256:3904fbf8a34598f5747d8a89ea4afa9e44285db1ca4f032beb69c7fcb1a537d6', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs:verified-main-39901cf750ad15213682cfb546cc71641c21d2e5811c9c651b517058ceb0dc5a', 'id': 'sha256:80d1cb7371abcf15557972b33f2a9ddac8377b137c2cc903cf7f5e110c90e9bb', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:candidate-pr-2', 'id': 'sha256:5096eee189aaea0724eb6beacbdbddbe6e25f2cbe962e255c585c1de7a608aa4', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs:verified-pr-2-39901cf750ad15213682cfb546cc71641c21d2e5811c9c651b517058ceb0dc5a', 'id': 'sha256:5096eee189aaea0724eb6beacbdbddbe6e25f2cbe962e255c585c1de7a608aa4', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs:verified-main-ba8dbf7ecb76d3e60798a7fdd539196e7f105baaf21d002df9b0363e91d39f5c', 'id': 'sha256:10cfb9f4483bea8180fe637614ca9b3322e2c7ee87c484d4372ea14b3a684a32', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-114a01335aef0f12c22c06f0e07415dca307476e22145218cd2fa68814de750e', 'id': 'sha256:ead7a5a59f6feca33731d6f11814f260ed7d6a57a8e2ab7b821d96567debc56a', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-6108bf3e5285b054e2ec344d03c5da6ce72003154bc6443a18a1c4d053241d67', 'id': 'sha256:0bce3a95626be4b74bdca1c8ed1206cb9b7c4b568587e1f5398c82749662c276', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-7e45b3a534683c3f57bac62a703c6d6e3106ac8a29e5aa24722fbc402ffb1526', 'id': 'sha256:8ff2408b9fcb868ad9103060b0ea149ece8798d3bf0a60b6ccb89a2b3dca5fcd', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-e1bb6313957a51557d798d249a7efe8356e1ef255d077cfa550c762a86e6f68b', 'id': 'sha256:db2e74356dda20a374142a10f770db2d1155962c6289a48fb767875e43cfed0d', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-11eac80911cae615888ec2ec7893ad02736f2c3075b82ef662683e7038dc5d19', 'id': 'sha256:303f5ef723128dae5405e3fb6a9dcc8cbef22c5816437d32534f12f413b87157', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-bb544ac9a0c5df5d33c26d101c7485276c248306acb4eb038a555c73e66d5431', 'id': 'sha256:fdcd5783e94c480460a15083a11a243cd5944f46bca5d5f12621e212faa9780b', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-a0bdaf77afac94804c1399d1a53e4c5df2179935a06f1adbf2a91debfa2c2460', 'id': 'sha256:2f4b010b670990b66082d950d3745ab0f73ebf91f86031e14022d7743bb2a1c8', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-07e11109a0c9fc3bfce0203f97bda8df2c08c87e05cb133a01549664c06fdcc7', 'id': 'sha256:5fdac11f77b0a7e91a022e18cf9a80c698c24935e8676bb37130b0e249402dc3', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-8cd6f63608e945ab8a16e51c39d00677c0879a4efbff6b43119ce1efe5487722', 'id': 'sha256:a8104856df5d2010c80ec7797c7f9f56d061859077c88b9be3f428ce3d13c53a', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-3e41f94f0429008cfb59b85a1787823f53d4313fdbc0c0430f6388ee02d79c18', 'id': 'sha256:32852b358c5908fb5f424b22a399468340c7ba4b6cf2d5354bc1572d193ed050', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-efa3e31400dbfe82dcd711e4cd58f666e3b2d46bd9144747455e25b3014caf1c', 'id': 'sha256:24903c1f5c5854a99ab54546ba9afbd24e0c7ac04c0a950b6c41b8809f7c3612', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-b0b834fd9cb30c16d083cee83b4499003001fa74713d9746dc3e6b7c5c5038f9', 'id': 'sha256:ee707778b945a5362a410e47399f3b49ecccae9e964f53467e4db65f8fc4805b', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-669aac58061e0f6098f4f3958394e2dff19b07d6327cf91fd8c49cb8720516b1', 'id': 'sha256:9ea498bf4085b5141847bdc68b413d0a9ae9a1fe8a7bb19da0c7cf9f7d55fe72', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-01c5895d7b72146a296eb55b325854d941b2b1608981e931e3dfbf600d8e3326', 'id': 'sha256:c0a842ad0547b96ebe5c823d6695ea28727fbac611aa420d1e55c82dbeb92a1e', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs:verified-main-ac5ee9538dfaa712dd13661d2bb62b7cba76fc67e5a902c5d513a7b969be80a0', 'id': 'sha256:dfbb4a805c61c13a755ea685e353bc26aab7e76ecffb94d4d8948ad486c137ad', 'reason': 'older verified runtime outside current plus three recent images'}, {'tag': 'endorphin-tabularium-docs-checks:pr-17', 'id': 'sha256:c7cedf376e9ba2c0e68743060bf657931d51e91e21f2b1b2bfe7f46787de60cf', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs-checks:pr-10', 'id': 'sha256:6e288b829c3d47698b8e85f4b04a6b812f2f98dbb95233b5a721557bb0497fd1', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs-checks:pr-9', 'id': 'sha256:a30a404fe3f6bd65418409b1420b2193ad2684bcb862e99b67b6972d173f4189', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs-checks:pr-7', 'id': 'sha256:c5a33bc2436548494a9af4043ed0050cb777d8e28167b6513c716b862c5d0838', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs-checks:pr-6', 'id': 'sha256:64467e9b696f26768e2003bf552df4c538a1625dd47f6897f346e49862b35abe', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs-checks:pr-5', 'id': 'sha256:291344f3856be6791a66fc79beca63cc068102cbf05b13a4e85077b0931f4ff9', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs-checks:pr-4', 'id': 'sha256:86887419658fd4f35cd0a4dfc58c9818467d2a31a43d47c8ace687c379b7b46d', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs-checks:pr-2', 'id': 'sha256:15f587636206b43ed1b70ccf52a67d9197d76c0f38444c24c271d4ac3af61c3c', 'reason': 'closed PR build image'}, {'tag': 'endorphin-tabularium-docs-checks:pr-3', 'id': 'sha256:f3e67c46616699af6930ba94f2b39302aa099611be84fec67632b7fce3327b6b', 'reason': 'closed PR build image'}, {'tag': 'prompt:38ec492ca3e5fdcbd394e9e199e0ba5bb1889bba', 'id': 'sha256:ea41400527a93a00d3324084c75db0d8f669aa85f154721f519820afe45af382', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:dd09ae34854238568d26acf22733cb5c808e6330', 'id': 'sha256:3b799577c0439d0fe054b074845c78d8e192b8ae4c60d66b3087a1ec7b3451f0', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:a8515e575a91c8ac5b54ea521cb81cfa3d4a5aae', 'id': 'sha256:7cbc3ef505288434ab7fd5cd23af900fc99aff0019e1c80a7003cf32b84071ae', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:f81aed8ce82ce649743393d82c8d30b7d9558578', 'id': 'sha256:d8b67c2b1366b70320436e467635ce7d1a3d7f55cccfae4805bfb44013546bf4', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:b0a60ea498b4c5cb926493ef1af4f32c01f64ada', 'id': 'sha256:1705dee03f77800aeee489b5129cc463e41dc9a6c594719459b2aff4e125b360', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:9a183aeeea249ac505a954e5c5295475e7e61be9', 'id': 'sha256:c05bc96ea2b2bd9a32109d1c2cfcda211ffeadfc9a5592c8d09fb5436a3d2b85', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:9986846c36d5953beae8ee2d2e65d64ce4ab0013', 'id': 'sha256:61437db7d21632ce98e31ac4b25015aee83fa48d38e81a1b801ddb680b542f90', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:742b58013e39e6ecd13801dc0129381e3942294b', 'id': 'sha256:fb19f913e70ed1064eaeee4ab87c11ce820886ff649aa4bdae077feaf52f1ffd', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:5f1af4e9f60705e2aaf0cb350cbb38fa2f6682b1', 'id': 'sha256:d9c10c848f503abc5042b4c32929e179c9403512c614ac2fcd0c8d9bed2baa87', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:4690c1ae9b50fd3e26602382f2be83727a981fa6', 'id': 'sha256:422fd29b6360643ded210832ba59e1490acdb8a2d6966ab9f98180034c36261c', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:46cd53a2a18edd35f59fdfce6f036047c0ea4961', 'id': 'sha256:4074322ece60968a05f42e7b12eff2cc3451e68d7ee3055a9fa42b383bd6743e', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:b67574f9502dd3be3a82618c1bcd05debc881798', 'id': 'sha256:909b7148468c40681abc95e9643feaa0a7f415bac307a911b1e89829fb637e44', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:83e19d31ca0dbd3f0ade725b1863780ed5f7de03', 'id': 'sha256:c0569013ac9f04b695b7b282360159036fe8ad526eedd2b5a9e76fed36204047', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:228e3dcf949caf977782a6d1a009daacbf2e8aa6', 'id': 'sha256:72dd877347ae0c15ccc3650027c4a7629ccbbbf9e4423ab420ebc35a52d64156', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:1defcf0b0a3aaba66c128a26204e36ba158e1f08', 'id': 'sha256:563d253c44753745fb5cfeeef772c2904fc448e3d98b9d1616171820de551c0c', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:0a07f120dff96ff672d742f7e3f6bb1a0eb5b089', 'id': 'sha256:d5569944382864d8c902037a12682cbe6f1f09084435a48327cef72c8425ed27', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:2a5cff3bec7d532ad8ae3eb6e29312ab0aede5e6', 'id': 'sha256:24a780cba1ffde15ddbb6582c60050b3bfeeb6d06cd4ea6729dbdf944675539d', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:a60d19b3c9f56c26996defd348d5fb10809ceae0', 'id': 'sha256:d83608352e95c04be4206fe54dd2f541f116aa2f81d291eeead38b4888f1215f', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:72623b75f770a2d68303717809a90783aab4d4a2', 'id': 'sha256:72ecf264adebd679e9a0ac5f1ee68e70c1edc825a9bfbb5ee2edc24e0fbf1681', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt:818b1894e73512f3599dae942bae6d2fe96d20e6', 'id': 'sha256:64f30afac43062983d9347773040c7db82c26c476ba98e5a6b9ac6afae75c42c', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:38ec492ca3e5fdcbd394e9e199e0ba5bb1889bba', 'id': 'sha256:c2900edf7257593373e4283d330556d5cfa3b927adb1eec953581211619873a0', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:dd09ae34854238568d26acf22733cb5c808e6330', 'id': 'sha256:efe14da5865c696d9a1017440cb900e8e8c32096f595aa1609adb30bca2e66c3', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:a8515e575a91c8ac5b54ea521cb81cfa3d4a5aae', 'id': 'sha256:afa5bdd03b600986aa0a744a4f1c952d0e56a2070878a7f2098cd4d51ce9fee8', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:f81aed8ce82ce649743393d82c8d30b7d9558578', 'id': 'sha256:d783dfd17e287f211a1b7508950f4dc06e30bdc365c6b4f39e7586863caed909', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:b0a60ea498b4c5cb926493ef1af4f32c01f64ada', 'id': 'sha256:84b2d6eab4dd0a06efd48700a17a8427b6c78b007ab95093639f4309fb7d8d0f', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:9a183aeeea249ac505a954e5c5295475e7e61be9', 'id': 'sha256:586145f234dc7ff2f76648a8443e93dcf804407b65b3b7b51eacb1ceeda3c7c9', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:9986846c36d5953beae8ee2d2e65d64ce4ab0013', 'id': 'sha256:a566d0aacb49db7679234831b2b61987514d571f4080d4db7dec22140d44b283', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:742b58013e39e6ecd13801dc0129381e3942294b', 'id': 'sha256:9c69f56cb833d86f740567932eed43b70439b6fec0bc3c46e41449d4e9959cb1', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:b4f4facea0bfff8111944be2abd96ce1c7276418', 'id': 'sha256:1c1caf9e69a342b8fcd6af797338d5fc735eb1553d990df48e0bf6c01bcebbc0', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:5f1af4e9f60705e2aaf0cb350cbb38fa2f6682b1', 'id': 'sha256:6c47a8600d59a8d5bb6a9f16e3e8a2ffa621cd0cdda5cfb1b29d23ce1c5d95e4', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:4690c1ae9b50fd3e26602382f2be83727a981fa6', 'id': 'sha256:4a2acd7c3b5d84690f1c8ebe1c94b62d1a51e793eb44d9f531d20b003adb685b', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:46cd53a2a18edd35f59fdfce6f036047c0ea4961', 'id': 'sha256:6946a8e28b1ec400623e0d4877cef281138311d6709c92e71eb27f01b35b837d', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:b67574f9502dd3be3a82618c1bcd05debc881798', 'id': 'sha256:79957ab0c052b0c145ed7cbe51196a496b8c195c4c6a498d62bf65373b82980c', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:83e19d31ca0dbd3f0ade725b1863780ed5f7de03', 'id': 'sha256:ac7bc1c1a6a71d9b61d93a51786b10bb2684af5354f27bc874a7aacadddfba53', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:228e3dcf949caf977782a6d1a009daacbf2e8aa6', 'id': 'sha256:c7404e24211432b9d8c1acbc5dc2cc9265a595206fc91819df210af7f832aafa', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:1defcf0b0a3aaba66c128a26204e36ba158e1f08', 'id': 'sha256:11dec2b50627c4ede214789732d79f6c4f6b54a6441c67d1664439bd9fe46fb0', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:0a07f120dff96ff672d742f7e3f6bb1a0eb5b089', 'id': 'sha256:d2222e6fbb1d2959f061bfa2eb826be961af67cde8764a4bb9d70dc40cb70e5c', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:2a5cff3bec7d532ad8ae3eb6e29312ab0aede5e6', 'id': 'sha256:bb07865f9f3b10de1ec6e99a2b6bdfe1546e5ac3a5eb22f307a64a8e50719ce9', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:a60d19b3c9f56c26996defd348d5fb10809ceae0', 'id': 'sha256:6144b7220736ff40e2b05c1951499c959244cabc7a30002ce69a7e323e3e65b2', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:72623b75f770a2d68303717809a90783aab4d4a2', 'id': 'sha256:5bc335ab3a348ff2a4e9cd2f1990a69ca901b1bdf54d8de133b4d49bf52b7d60', 'reason': 'terminal legacy build outside four newest images'}, {'tag': 'prompt-tests:818b1894e73512f3599dae942bae6d2fe96d20e6', 'id': 'sha256:b42dda1d5478a973ba27360324c8d82fe97f116ed6fe06d186d0194eb229c624', 'reason': 'terminal legacy build outside four newest images'}], 'retainedIdsByRepository': {'endorphin-tessera-gui-ci': ['sha256:beee0597639575d3bf8f140af1e852a80d29080ce44010f8013e4bb543744cb3', 'sha256:cc0860587b337c213238757791b4bda73a3dd4251a085ea9e2555696a422b7e3', 'sha256:d2dd871727665ed24efa97b7cbb40008363e109a8e433c3a0d557a868007ae23'], 'endorphin-aster-vm-ci': ['sha256:61b3059b79d156abaa6407dceadf6c424699ba9c7a0fb35a8d5d7e5e273b2505', 'sha256:7ff8e456a7c84040de386e78650069059943de8c71afe99b0c739a8fb51468d8', 'sha256:835720df0e0277f25aefb80f150623346a574aeca2108313af7e4e607e1a03b9'], 'endorphin-hestia-server-ci': ['sha256:6d9c331268baa31786f5fcafda9826adb3089a0351ab5f9dcc2df74ef3c22551', 'sha256:c5e99d916231e0d06fdfda5d7262c916ada5d7b554da258388e0ced38930f258'], 'endorphin-lyra-cli-ci': ['sha256:7819d2089b5c246e3a438bf4332fa5f71cbbea5788333ea56ffdb70d9a17baa1', 'sha256:d7c9c26eb5b02fb1df62504df61db238ad10722bf930967686fb16ec6b57c5a6'], 'endorphin-aster-vm': ['sha256:674365dbec4f8f894696e678570713f0329cc2168ea35679f4d1e4057f29563a', 'sha256:9165640b03f4824c6fe751dfe460f75554193baff1d8f715fe2b989aa2e1473a', 'sha256:ac88f6929cada3d1caff70107e3ef8e3ab02796bd087c095ea9d2a9ee29b069c', 'sha256:c06aca4e240345216036dc73d870f2656bcda5c917f0a797913b1d13d27cd29f'], 'endorphin-tabularium-docs': ['sha256:69189c388bb21ca25195edb8ed7094afca7485b950434cad5bce225339912e32', 'sha256:a88936886e918fb44316ffda7c2983237cd6c005f7031dae491ee65850cd92b7', 'sha256:d7ebca289bd22583e66d34f065bde1d549e2137821680849e9f16dba7d547423', 'sha256:f45e25153d54646139fef46da87d039caeac6ef6d37a35d881c1ddbf9f825b2e'], 'prompt': ['sha256:0ebadcd508d97588ac9d857dac960ff3c6bd53e766eb175bad0a951b7214ab37', 'sha256:364c049fa85ef4bc56e58be8bc99254aef9da2d4ad038b1e312741b1b470f3cd', 'sha256:71ae30962237595763ef52ec243644fc44a5ecb3ef8350c29cbbc454d29cd474', 'sha256:ca02a128e015acd2a30bb8b205ce9c3e7f77d5f062a85ebf924b465df5c0a749'], 'prompt-tests': ['sha256:2c33897ee413a0cca188d04b47b7f788c740210075e6f52888e2f71377bdbb68', 'sha256:818604f33dfb95b5f854fcc671e32898bcebbb223f632d413a7ef5850fde55ae', 'sha256:83c9197f7bbe9c91a20a1490d85ae87028c27ae80c6ea468abb13dd3dd5a7927', 'sha256:e687a1c08591c2045e63d735b0eac414b0210a3552e2a9f09f8ca90cf78d059d']}} + allowed={'endorphin-tessera-gui-ci','endorphin-aster-vm-ci','endorphin-aster-vm','endorphin-tabularium-docs','endorphin-tabularium-docs-checks','prompt','prompt-tests'} + protected={image for images in plan['retainedIdsByRepository'].values() for image in images} + locks=[] + for name in ['/opt/endorphin-tabularium-docs/.deploy.lock','/opt/prompt/.image-lifecycle.lock','/opt/prompt/.deploy.lock','/opt/endorphin-aster-vm/.deploy.lock']: + if pathlib.Path(name).exists(): + handle=open(name,'a');fcntl.flock(handle,fcntl.LOCK_EX|fcntl.LOCK_NB);locks.append(handle) + def output(args):return subprocess.check_output(args,text=True) + def containers(): + ids=output(['docker','ps','-aq']).split() + return json.loads(output(['docker','inspect',*ids])) if ids else [] + def snapshot(): + return {c['Id']:{'name':c['Name'],'health':c['State'].get('Health',{}).get('Status','not-configured')} for c in containers() if c['State']['Running']} + before_services=snapshot();before=shutil.disk_usage('/').free + print('RUNNING SERVICES BEFORE '+json.dumps(before_services),flush=True) + subprocess.run(['df','-h','/'],check=True) + removed=[];kept=[];missing=0 + for item in plan['candidates']: + tag=item['tag'];assert tag.rsplit(':',1)[0] in allowed + result=subprocess.run(['docker','image','inspect','--format','{{.Id}}',tag],text=True,capture_output=True) + if result.returncode: + if 'no such image' in result.stderr.lower():missing+=1;continue + raise RuntimeError('Image verification failed for '+tag+': '+result.stderr[:200]) + image=result.stdout.strip() + if image!=item['id'] or image in protected or image in {c['Image'] for c in containers()}: + kept.append(tag);continue + result=subprocess.run(['docker','image','rm',tag],text=True,capture_output=True) + print(result.stdout,flush=True) + if result.returncode: + if 'conflict' in result.stderr.lower():kept.append(tag);print('Docker protected '+tag,flush=True);continue + raise RuntimeError('Docker image removal failed for '+tag+': '+result.stderr[:200]) + removed.append(tag) + print('CROSS TASK TAG RECOVERY '+json.dumps({'removedTags':len(removed),'kept':kept,'missingTags':missing}),flush=True) + subprocess.run(['df','-h','/'],check=True) + # Dangling-only, older than one day; no --all, no containers, no volumes. + subprocess.run(['docker','image','prune','--force','--filter','until=24h'],check=True) + time.sleep(5) + after=shutil.disk_usage('/').free;after_services=snapshot() + print('RUNNING SERVICES AFTER '+json.dumps(after_services),flush=True) + assert set(before_services)<=set(after_services),'A previously running container changed; inspect before declaring acceptance' + for cid,state in before_services.items(): + if state['health']=='healthy':assert after_services[cid]['health']=='healthy' + print('CROSS TASK DISK RECOVERY '+json.dumps({'beforeFreeBytes':before,'afterFreeBytes':after,'netRecoveredBytes':after-before,'removedTagCount':len(removed),'runningServicesUnchanged':True}),flush=True) + subprocess.run(['df','-h','/'],check=True) + with urllib.request.urlopen('http://8.211.154.134:18131/api/health',timeout=20) as response: + print('PUBLIC HEALTH '+response.read().decode(),flush=True) + PY