Harness review: correctness bugs, stale docs, missing packages #4
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Review via the residual harness agent (see
residual-overview.md). Two correctness bugs break advertised features; remainder are issues and smells.Violations (break advertised features)
image/config/limine.conf:14and inlinelimineConfininternal/build/convert.go: entry reads/Residual OS, but Limine entries begin with:. Config yields no boot entry. Fix::Residual OSin both, then deduplicate to a single source of truth.internal/build/initramfs.go(pocInit):/initexecutesresidual-overlayas a child and tests$OVERLAY_UPPER/$OVERLAY_WORK, butexportin the child never propagates to the parent. The overlay branch is dead code. Fix: have the script printUPPER=…/WORK=…andevalit, or source the script instead of executing it.Issues
build.go:build --output foo.isoruns the full pipeline before failing "ISO not implemented". Fail fast afterdetectFormat.build.go(pullOCIImage): takesindex.Manifests[0]blindly; multi-arch images return a manifest list with no.layers→ empty rootfs. Select the linux/amd64 manifest.build.go(buildDockerfile): hardcoded tag/container names collide on concurrent builds. Use unique suffix.build.go:--image-dirsilently skipped when explicitly passed but missing. Error on explicit missing path.initramfs.go:143-146: dangling comment describes deletedcopyModules/parseModulesDep. Delete.initramfs.go:15: docstring claimsbuild-initramfssubcommand (removed). Reword.convert.go: writes syslinuxgptmbr.binwhile shippinglimine.conf. Pick one bootloader or document the incoherence.convert.go: boot partition typed Microsoft basic data GUID; UEFI needs ESP GUIDC12A7328-F81F-11D2-BA4B-00A0C93EC93B.image/scripts/residual-overlay: header still says "residual-data.qcow2"; behavior is the dotfile list. Update.image/Dockerfile.residual: missingqemu-nbd(Alpineqemupkg) and realblkid(BusyBox applet lacks-o value -s). Overlay exFAT path cannot work. Add both.image/Dockerfile.residual: comments reference staledocker/paths. Update.cmd/res-os-builder/README.md: uses removed--image/--dockerfileflags; lists deleted subcommands. Rewrite.README.md(root): uses deletedbuild-rootfs/build-initramfs. Update.image/README.md: uses renamed--dockerfileflag. Fix to--from-dockerfile.initramfs.go(pocInit): never loads storage modules before overlay discovery;/dev/vd*never appears in QEMU.modprobe virtio_pci virtio_blk(+ ahci/sd_mod) before discovery.Smells
build.go(convertImageFormat): nestedappend(...)...; build slice plainly.build.go: comment references nonexistent--virtual-sizeflag.build.go:--initramfs-only --output foo.vhdprints "output format: vhd" then writes gzipped cpio.build.go:--from-rootfscopies tree to workdir, then initramfs copies again; first copy protects nothing.build.go(extractTarReader): silently skips path-traversal, ignoresio.Copy/Closeerrors, drops device nodes/FIFOs, hardlink failure aborts without context.build.go:pullOCIImageerror "(is skopeo installed?)" redundant afterCheckDeps.convert.go: step comments misnumbered after squashfs removal.convert.go:installExtlinuxunreachable (only called withskipBootloader=true). Dead code.convert.go:buildBootImagetakes 7 params; consider a struct.convert.go:st, _ := os.Stat(img)ignores error then derefs.initramfs.go:13:const pocMarkerdeclared, never used.residual-overlay(find_residium): double-scans${dev}/${dev}*.residual-overlay: hardcodes/dev/nbd0; fails if busy.deps.go,build.go,convert.go.Notes
*_test.gofiles;go test ./...in CI is vacuous.From harness review 2026-10-10. Full audit in
residual-overview.md.Fixed and merged to main (build rc=0, vet rc=0 verified on code-server):
Violations:
:Residual OSsyntax fixed (both file and inline copy)Issues fixed:
--image-direrrors if explicitly provided but missingqemu,blkid; fixed stale paths--from-*flagsRemaining: smells (gofmt, dead code, etc.) — lower priority, can be addressed incrementally.