{"content":"Development journal\n\nCommit: b6d8832e6011fd5072a7fe3cc17a65e9def53734\nMessage: fix: drop bootstrap restore python dependency\nScope: scripts/bootstrap-restore.sh only\n\nRoot cause:\n- bootstrap-restore.sh depended on python3 at restore time only to read manifest.json includedNamespaces.\n\nImplementation:\n- Replaced the inline python3 JSON loader with a strict awk parser for the includedNamespaces block.\n- Decoded standard JSON string escapes inside namespace entries.\n- Kept shell-side validation for non-empty strings, slash rejection, dot and dot-dot rejection, and duplicate rejection.\n- Kept existing restore safety checks intact: checksum verification, symlink target rejection, symlink-in-archive rejection, and undeclared payload file and directory rejection before touching the target path.\n- Stayed within the approved write scope by editing only scripts/bootstrap-restore.sh.\n\nVerification:\n- bash scripts/bootstrap_test.sh\n- bash -n scripts/bootstrap-restore.sh\n- git diff --check -- scripts/bootstrap-restore.sh\n- rg -n python3 scripts/bootstrap-restore.sh returned no matches\n\nNotes:\n- Manifest namespaces are now parsed from the includedNamespaces array using awk plus standard shell validation, so restore no longer requires python3 in the operator runtime path.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}