# Zero-OS Builder – Persistent TODO This canonical checklist is the single source of truth for ongoing work. It mirrors the live task tracker but is versioned in-repo for review and PRs. Jump-points reference exact functions and files for quick triage. ## High-level - [x] Regenerate repository function index: [scripts/functionlist.md](../scripts/functionlist.md) - [x] Refresh NOTES with jump-points and roadmap: [docs/NOTES.md](NOTES.md) - [x] Extend RFS design with RESP/DB-style backend: [docs/rfs-flists.md](rfs-flists.md) - [x] Make Rust components Git fetch non-destructive: [bash.components_download_git()](../scripts/lib/components.sh:72) - [ ] Update zinit config for "zosception" workflow: [config/zinit/](../config/zinit/) - [ ] Add zosstorage to the initramfs (package/build/install + zinit unit) - [ ] Validate via minimal rebuild and boot tests; refine depmod/udev docs - [ ] Commit and push documentation and configuration updates (post-zosception/zosstorage) ## Zosception (zinit service graph and ordering) - [ ] Define service graph changes and ordering constraints - Reference current triggers: - Early coldplug: [config/zinit/udev-trigger.yaml](../config/zinit/udev-trigger.yaml) - Network readiness: [config/zinit/network.yaml](../config/zinit/network.yaml) - Post-mount coldplug: [config/zinit/udev-rfs.yaml](../config/zinit/udev-rfs.yaml) - [ ] Add/update units under [config/zinit/](../config/zinit/) with proper after/needs/wants - [ ] Validate with stage runner and logs - Stage runner: [bash.stage_run()](../scripts/lib/stages.sh:99) - Main flow: [bash.main_build_process()](../scripts/build.sh:214) ## ZOS Storage in initramfs - [ ] Decide delivery mechanism: - [ ] APK via [config/packages.list](../config/packages.list) - [ ] Source build via [bash.components_parse_sources_conf()](../scripts/lib/components.sh:13) with a new build function - [ ] Copy/install into initramfs - Components copy: [bash.initramfs_copy_components()](../scripts/lib/initramfs.sh:102) - Zinit setup: [bash.initramfs_setup_zinit()](../scripts/lib/initramfs.sh:13) - [ ] Create zinit unit(s) for zosstorage startup and ordering - Place after network and before RFS if it provides storage used by rfs - [ ] Add smoke command to confirm presence in image (e.g., which/--version) during [bash.initramfs_validate()](../scripts/lib/initramfs.sh:820) ## RFS backends — implementation follow-up (beyond design) - [ ] RESP uploader shim for packers (non-breaking) - Packers entrypoints: [scripts/rfs/pack-modules.sh](../scripts/rfs/pack-modules.sh), [scripts/rfs/pack-firmware.sh](../scripts/rfs/pack-firmware.sh) - Config loader: [bash.rfs_common_load_rfs_s3_config()](../scripts/rfs/common.sh:82) → extend to parse RESP_* (non-breaking) - Store URI builder (S3 exists): [bash.rfs_common_build_s3_store_uri()](../scripts/rfs/common.sh:137) - Manifest patching remains: - Stores table: [bash.rfs_common_patch_flist_stores()](../scripts/rfs/common.sh:385) - route.url: [bash.rfs_common_patch_flist_route_url()](../scripts/rfs/common.sh:494) - [ ] Connectivity checks and retries for RESP path - [ ] Local cache for pack-time (optional) ## Validation and boot tests - [ ] Minimal rebuild after zinit/units/edit - Helper: [scripts/rebuild-after-zinit.sh](../scripts/rebuild-after-zinit.sh) - [ ] Validate contents before CPIO - Create: [bash.initramfs_create_cpio()](../scripts/lib/initramfs.sh:691) - Validate: [bash.initramfs_validate()](../scripts/lib/initramfs.sh:820) - [ ] QEMU / cloud-hypervisor smoke tests - Test suite: [bash.testing_run_all()](../scripts/lib/testing.sh:299) - [ ] Kernel embed path and versioning sanity - Embed config: [bash.kernel_modify_config_for_initramfs()](../scripts/lib/kernel.sh:130) - Full version logic: [bash.kernel_get_full_version()](../scripts/lib/kernel.sh:14) ## Operational conventions (keep) - [ ] Diagnostics-first changes; add logs before fixes - [ ] Absolute path normalization respected - Normalization: [scripts/lib/common.sh](../scripts/lib/common.sh:244) Notes - Keep this file in sync with the live tracker. Reference it in PR descriptions. - Use the clickable references above for rapid navigation.