owenewans/holy @ master -- 388 commits 72bbb1b zarazaex69 feat: report the capabilities two installed artifacts both offer d62c97a zarazaex69 feat: convert a Solus eopkg into a native package a73c8ab zarazaex69 feat: cut a debug output from the runtime artifacts by build-id fcb89f6 zarazaex69 feat: propose the split outputs of a prepared package tree 86f8f01 owenewans feat: import a captured Nix closure as one package per store path 006b13d owenewans test: build the core with each named host compiler feebbb5 owenewans feat: import WinGet artifacts through the shared artifact writer c3e7074 owenewans refactor: carry a verified foreign artifact through one shared writer b8364df owenewans test: prove a closure object survives one of its dependents fc8e5cd owenewans feat: import Scoop artifacts as packages without running anything 452dc99 owenewans refactor: read every foreign JSON document with one reader 306f70e owenewans feat: convert Flatpak manifests into holy recipes 2490123 owenewans feat: convert Snap payloads into native holy packages 97274cd owenewans refactor: share the squashfs image payload between converters 8563d19 owenewans feat: convert AppImage payloads into native holy packages 59afa4c owenewans docs: record the Pacstall converter and the parser repairs d4cc0e7 owenewans feat: convert Pacstall pacscripts into holy recipes dff99fe owenewans fix: read a shell list as one record per element ad851a8 owenewans feat: convert Gentoo ebuilds into holy recipes 43c5d3b owenewans feat: convert Debian source packages into holy recipes 5e02236 owenewans feat: convert RPM spec files into holy recipes f3e1f9a owenewans feat: convert SlackBuild scripts into holy recipes a1b918a owenewans docs: name the Aports converter in the synopsis and usage 4a76639 owenewans feat: convert Aports APKBUILDs into holy recipes f48f9b7 owenewans feat: convert Void templates into holy recipes bb9dfd4 owenewans docs: record the build root and interrupted set fixture repairs 9372c49 owenewans fix: report a caller build root as such and cover both build roots 9c12e41 owenewans fix: build the binaries the check targets invoke ed73992 owenewans fix: keep the temporary build root after the mkdtemp block 79860f8 owenewans docs: state where a declared hook is recorded in holy-recipe 9c12e41 owenewans fix: build the binaries the check targets invoke ed73992 owenewans fix: keep the temporary build root after the mkdtemp block 79860f8 owenewans docs: state where a declared hook is recorded in holy-recipe 5c0a245 owenewans docs: fix the phase order wording after the split-step change 331d47b owenewans docs: record the x- value shape and archive extraction in holy-recipe e6a5bd3 owenewans docs: state the PKGBUILD list and function body rules in holy-recipe bc1d354 owenewans docs: describe split-step staging and the unpack order in holypkg 7a85d0a owenewans docs: drop a duplicated line in the recipe conversion entry 48312df owenewans fix: read PKGBUILD lists like a shell does d0e4a69 owenewans test: hook openat64 in the interrupted set fixture f7c2f1d owenewans fix: make the interrupted set fixtures reach their code 35b3d35 owenewans feat: convert PKGBUILD into a holy recipe 2201e07 owenewans feat: build native packages from holy-recipe manifests 2a62741 owenewans feat: index rpm-md provides as an exact capability lookup 5eab3cc owenewans feat: register rpm-md sources with bound sync, search and fetch 04f284f owenewans feat: import rpm-md repositories over verified metadata e9d787a owenewans feat: resolve RPM epoch and versioned dependencies 601817d owenewans feat: import RPM v6 payloads with digest checks 1216e02 owenewans feat: import local RPM v4 packages 64f1bf4 owenewans feat: select updates from verified index metadata 99c471f owenewans feat: show effective source policy and review changes ca7c066 owenewans feat: select APK and XBPS source updates by version 441c18f owenewans feat: rank native dependency sources by family and priority 8147793 owenewans feat: prefer consumer and parent sources for dependencies e5cc21b owenewans feat: derive explicit run views from private files 47b0fbd owenewans feat: repair missing files in transformed config packages 25f1424 owenewans test: cover rollback of preserved configs 35b11af owenewans feat: preserve edited configs across package updates 2b31611 owenewans feat: roll back committed package updates 06d41dc owenewans feat: carry config flags through import and installed checks c2dfc61 owenewans feat: run reviewed native postinstall hooks e116b51 owenewans feat: record explicitly skipped package hooks cb555a4 owenewans feat: install packages with recorded transforms 233965f owenewans feat: package kernel images and module trees b8a1da1 owenewans feat: verify source kernel modules in QEMU ffc2531 owenewans feat: boot images from pinned kernel packages 353a090 owenewans feat: prepare source-ready core catalogs for both x86 targets 60306e9 owenewans feat: resolve image core packages from pinned sources 87d3754 owenewans feat: retain source provenance in live disk installation bffb394 owenewans feat: pin image resolver decisions across sources 43811fc owenewans docs: record automatic cross-source image boot 5fe8e4c owenewans feat: resolve cross-source image packages during preparation fe803dc owenewans feat: stage explicit cross-source image packages f6c3fa1 owenewans docs: record holygetiso boot and sealed-source acceptance f955b0c owenewans test: exercise i686 static core in chroot fa093e5 owenewans docs: record static and dual-libc boot acceptance 5c4ae28 owenewans feat: fetch pinned bootstrap sources 40e0b4a owenewans fix: keep QEMU probe deadline across repeated stage markers 7d5fb94 owenewans feat: remove QEMU trial layers unless keep requested 271d750 owenewans fix: isolate build-config temp files across make runs beda4e9 owenewans feat: route registered APT through common commands 0b69502 owenewans feat: query bound XBPS catalogs through common CLI 397fcaa owenewans feat: route registered XBPS sync and fetch through common CLI f6405cb owenewans feat: sync registered APK sources through common command 8cb44ec owenewans feat: fetch bound APK packages through common command e3d685b owenewans feat: query bound APK repos through common search and info aa4c0dc owenewans fix: skip foreign sources in native provider probe 667a29e owenewans feat: resolve native packages with imported local candidates dce4bd8 owenewans feat: fetch unique APK SONAME provider with payload proof 4a29a4f owenewans feat: index APK SONAME candidates by requirement 920b871 owenewans fix: record fetched APK artifact URL in origin 656dda7 owenewans feat: find APK SONAME candidates in checked index c1e7e94 owenewans feat: verify APK file providers after import 8788a2b owenewans docs: record verified APK import path 831f3c5 owenewans feat: import verified APK fetch into native packages 9fc69e5 owenewans fix: retain verified APT origin after import 772f770 owenewans fix: accept documented apt sync arguments 9729130 owenewans feat: record XBPS repository generation in origin d85ff5a owenewans fix: retain verified XBPS origin after import 103c823 owenewans feat: bind local dependency artifacts to sources 765437c owenewans feat: verify XBPS SONAME after fetch import 53b3a63 owenewans feat: derive foreign SONAME claims from ELF payloads 7052dec owenewans feat: index XBPS SONAME candidate hints 6a648b6 owenewans feat: bind XBPS catalogs to target roots 26c7bd5 owenewans feat: associate XBPS catalogs with registered sources 0a79df4 owenewans feat: verify XBPS package signatures with an explicit key 3f8dcd7 owenewans feat: index and fetch XBPS repositories over HTTPS 08e1efa owenewans feat: resolve simple XBPS versioned dependencies c3e1952 owenewans feat: import local XBPS packages with plist validation 37c5c4a owenewans feat: time QEMU guest stages and accept qcow2 trial bases 38a414e owenewans feat: index ELF exports for SONAME resolution ea84487 owenewans feat: probe cross-source SONAME compatibility dfb9966 owenewans feat: filter SONAME candidates by exported symbols cb16b68 owenewans feat: launch with private PATH and directory views 3ba809b owenewans feat: discover all Debian dependency alternatives 7950b99 owenewans feat: resolve Debian Depends alternatives e07ada5 owenewans feat: verify APT file hints against imported payloads d1fa2b5 owenewans feat: index signed APT Contents paths 92ae4bf owenewans feat: verify APT InRelease catalogs a46fd33 owenewans feat: discover bound APT catalogs by source 49ad442 owenewans feat: bind APT catalogs to registered sources 9a8152f owenewans feat: verify signed Debian Release catalogs 1f795ac owenewans feat: sync pinned APT indexes over HTTPS 7a0c9b2 owenewans feat: add pinned APT catalog fetch and import d88c313 owenewans feat: map private package files in run namespace 4383843 owenewans feat: report AppImage loader requirements during import cc9d0e9 owenewans feat: classify extracted AppImage payload files e978ae3 owenewans feat: stage type 2 AppImage contents without execution bead1a9 owenewans feat: accept stable source answers for add dcc3902 owenewans feat: select ambiguous dependency sources in terminal b3288c2 owenewans feat: require source choice for ambiguous providers 3b58c7a owenewans feat: verify signed APK imports with explicit keys 5fe1510 owenewans feat: verify bound APK package signatures 9b92c56 owenewans feat: verify APK index signatures for registered sources b5eec96 owenewans feat: bind APK catalogs to registered repositories 7103d60 owenewans feat: sync APK indexes from registered sources e8a6b7e owenewans feat: verify and fetch indexed APK packages 9c9d3dd owenewans feat: index local APK repositories c523a2e owenewans feat: compare APK versions for dependencies 12828ad owenewans feat: resolve simple APK dependencies a5224e3 owenewans feat: import APK v2 binary packages 206225b owenewans feat: import Slackware binary packages ae5bfc2 owenewans feat: apply reviewed source updates in one command 0c7b36c owenewans fix: bind prepared updates to catalog slot b4ba6ae owenewans fix: continue source lookup past unmatched ELF edges bf77841 owenewans feat: discover exact dependencies across active sources d37ccdf owenewans feat: stage indexed providers across sources 137cce9 owenewans feat: install explicit dependencies from multiple sources 65b0d4d owenewans feat: resolve ORIGIN loader paths within target root dbbcb98 owenewans feat: validate ordered ELF loader directories 19ee531 owenewans feat: preserve SONAME paths through aliases and updates a1f14a9 owenewans feat: install and check literal SONAME loader paths 9f602d3 owenewans feat: index ELF versions for native provider staging 6835c01 owenewans feat: retain unavailable cache history after confirmed deletion 3089e4f owenewans feat: inspect and clean unreferenced native cache objects 7e5a84e owenewans feat: expose source-aware repair and file ownership 2155601 owenewans feat: stage indexed native dependency closures 3848c45 owenewans feat: explain installed dependency paths 9d3222b owenewans feat: manage installed packages by source reference 94e6541 owenewans feat: add pinned native catalogs and image source staging 49e7371 owenewans feat: verify selected native lookup artifacts 73bd52e owenewans feat: search all active native sources 1a62ef4 owenewans feat: boot i686 installed disk from live installer b5dad95 owenewans feat: suggest fuzzy native package and file matches 0630346 owenewans feat: verify indexed file search candidates on demand 1ca7649 owenewans feat: index native package files for exact search 852ba13 owenewans feat: compare explicit Holy native versions 4fae7c5 owenewans feat: stage update candidates by indexed slot e7a5c61 owenewans feat: publish synced source catalogs to target cache dd9089e owenewans feat: prepare source-aware package updates 5a98475 owenewans feat: bind source mirrors for package queries 39630a1 owenewans feat: query registered source mirrors c0a618b owenewans doc: rm slop 6f1b4f3 owenewans feat: install packages from registered source mirrors 886b14c owenewans feat: fetch packages from registered source mirrors 1267a26 owenewans feat: approve arch and setuid in local add ae56495 owenewans feat: bind local add to registered source 7656584 owenewans feat: add reviewed local package installation d946dde owenewans feat: resolve mixed shebang alias providers 276a140 owenewans feat: discover installed shebang alias providers 8396462 owenewans feat: resolve shebang symlink chains in package sets e59ebf3 owenewans feat: resolve direct shebang interpreters in package sets b87988b owenewans feat: check shebang interpreters in target root a715c7c owenewans doc: add new sources for binary 570c4f3 owenewans test: probe physical Nouveau and NVK graphics 99e4be6 owenewans fix: validate Debian archive members and codecs 3c3e206 owenewans feat: verify Debian payload md5sums during import c7f98cc owenewans feat: import Debian virtual package claims fa37658 owenewans Delete README.md 1cf8ace owenewans doc: remove slop file 52bd93c owenewans docs: add Holy entry and README style review 5ed1cf5 owenewans feat: resolve simple Debian package dependencies e0870a9 owenewans feat: import local Debian binary packages cd0a7ab owenewans feat: review unsigned source generations before sync 8e3fb0d owenewans feat: sync pinned catalogs from registered holy-http sources af17682 owenewans feat: approve foreign-arch cached updates 797e7ca owenewans feat: require artifact approval for setuid updates b8b479e owenewans feat: bind doas approval to holyinstall plan ee0aed5 owenewans test: authenticate doas on installed Holy guests c6c8bba owenewans feat: require artifact approval for setuid packages 81ffa3b owenewans feat: test local user login on installed Holy f1dee05 owenewans feat: prepare blank guest disks in holyinstall 5a5a99f owenewans test: boot installed guest through BIOS and UEFI dee8b26 owenewans feat: test live ISO install on guest disk 57e03db owenewans feat: expose reviewed disk plans in installer menu a2cfa48 owenewans feat: plan disk image finalization for boot builds ff5309e Codex feat: install boot root through reviewed installer plan f380e73 Codex test: exercise installer plan and apply in booted guests 7f97423 Codex feat: package static installer in boot images 34da5ac Codex feat: prepare GPT disk images with reviewed installer plan 2cb2727 Codex feat: add installer text menu and reviewed apply 4e66ce2 Codex feat: plan and apply prepared-root installation 0d2e013 Codex fix: preserve removed instance through generation commit 5c898ee Codex feat: retain completed removal decisions 62cf64a Codex test: boot after removing both libc packages 13ea458 Codex feat: permit reviewed removal of required providers 05c492b Codex feat: recover both libc runtimes over isolated HTTPS in QEMU 295b15a Codex feat: build static network tools into both BusyBox targets 26dbf70 Codex feat: boot i686 from persistent ext4 and BIOS GPT fb07479 Codex feat: boot and recover both i686 libc runtimes 10b6fc7 Codex feat: boot i686 static Holy core from BIOS ISO 4ffb8bd Codex feat: build and run static i686 dinit with pinned C++ toolchain 4900b61 Codex feat: build static i686 mdevd with recorded musl toolchain 22fb15c Codex feat: build static i686 BusyBox with large file support 1d51aee Codex feat: build i686 glibc and verify four coexisting libc ABIs ec695b7 Codex feat: package and recover coexisting i686 and x86_64 musl runtimes 0040e95 Codex feat: persist artifact-scoped architecture placement decisions 1f9aa62 Codex feat: build and exercise static i686 userspace with multilib musl 57768d1 Codex feat: preserve native tree hardlinks with deterministic anchors 3eaf978 Codex feat: update and recover hardlink groups through shared staging e7173df Codex feat: install and recover verified hardlink groups 4c7651c Codex feat: resolve and retain versioned package capabilities d708b1a Codex feat: resolve pacman version constraints before mixed package solving ff4e291 Codex feat: include foreign archive codecs in static recovery client fbb65fd Codex feat: import pacman archives into verified native packages 67ec5e3 Codex feat: create and recover declared package directories 9a79674 Codex feat: apply and recover reviewed cached package updates 9a9efb0 Codex feat: preview source-bound cached package replacements 8e31ef4 Codex feat: validate complete proposed package sets d194e4e Codex feat: preflight canonical file update plans e8d330d OpenCode Agent feat: mirror pinned native catalogs over HTTPS 9475f64 Codex feat: add recoverable file replacement primitives 6a593f8 Codex feat: distinguish installed package slots by source and ABI 5246c9b Codex feat: retain registered sources in installed package transactions 33bac94 OpenCode Agent feat: generate and boot-verify installed image documentation a5161e6 Codex feat: preserve source identities through reviewed registry plans 242a9a8 Codex feat: report orphan packages from installed dependency graphs 33d2618 Codex feat: reuse installed providers in planned package sets a52474b OpenCode Agent feat: bundle verified installed man sources with coverage records 49c548b Codex feat: mount and verify the installed ESP across recovery reboots a9baf19 Codex feat: boot standalone GPT images through BIOS and UEFI 5757127 OpenCode Agent test: validate full x86_64 persistent libc recovery matrix 4fe748b Codex feat: retain libc recovery across disk-root reboots dae5b14 Codex feat: boot and recover dual-libc images in BIOS and UEFI 7eafdb4 Codex feat: restore dynamic libc payloads with a static recovery client ac1392c Codex feat: install resolved package sets with journaled recovery 745f396 Codex feat: bind resolver records to install plans and instance state e1fecb9 owenewans doc: reimorove readme 3dd1ece owenewans doc: reimorove readme 6320de3 owenewans doc: imorove readme d3aad47 owenewans doc: imorove readme 6729351 Codex feat: resolve file-scoped ELF dependency candidates 5359f37 Codex fix: resolve ELF interpreters within the target root 3fab175 Codex feat: read dynamic ELF symbols and their version bindings 99e6730 Codex feat: boot static Holy core through Limine and dracut fad7880 owenewans doc: rm slop file d20ed72 owenewans doc: upd readme a7a0b67 Codex docs: record public repository README survey ce7e64d Codex feat: journal relative symlink installation and removal 842a934 Codex test: keep local HTTPS fixtures off proxies a3bb41c OpenCode Agent feat: build and test musl-static mdevd package 6d471d0 OpenCode Agent test: exercise static dinit service control without dynamic libc 144eb8d OpenCode feat: build musl-static dinit package with upstream tests ad55e1a OpenCode test: verify static DNS and HTTPS without dynamic libc e350b29 OpenCode feat: build musl-static core and verify libc-free transactions c2c4b7c OpenCode fix: preflight interrupted removals without mutation d31cd0d OpenCode feat: build and test musl-static BusyBox package c0e9506 OpenCode feat: install native static ELF packages 5779d1b OpenCode fix: enforce installed ownership before mutations 565f02a OpenCode feat: pack native payload symlinks 1610e5d OpenCode feat: report installed file findings in JSON c23a8f3 OpenCode fix: validate source parent chains 92220bb OpenCode fix: reject source URL credentials in config 9b4d8b3 Holy Development Agent fix: vet HTTPS redirects before requesting targets 157b812 Holy Development Agent fix: verify shared directory metadata in data transactions 635a6d5 Holy Development Agent fix: classify static ET_EXEC without guessing plugin ABI 6764f96 Holy Development Agent feat: generate native file manifests from prepared data trees d8a580b Holy Development Agent fix: guard empty archive sort and directory stream errors bf9b613 Holy Development Agent test: fail JSON check without partial results on corrupt manifest 329441a Holy Development Agent feat: report installed data checks as JSON events 841a65d Holy Development Agent feat: fetch digest-pinned native packages over HTTPS 78695bc Holy Development Agent feat: check all installed data artifacts under one lock 0d8bcb0 Holy Development Agent test: gate QEMU ISO boot on guest serial probes 28d2419 Holy Development Agent test: expose target-root transaction gate 37c0d4c Holy Development Agent fix: reject malformed ELF and dependency claims during pack f6582e6 Holy Development Agent feat: pack verified native archives from prepared trees 12bb6b8 Holy Development Agent fix: reject duplicate local package names in plans acfaed8 Holy Development Agent docs: align install recovery description with current commands ce74e42 Holy Development Agent feat: query installed data file ownership bf37823 Holy Development Agent docs: replace readme survey with implementation roadmap 0ff20ad Holy Development Agent fix: finish committed data installs after crash ecf4e7d Holy Development Agent fix: resume journaled data removal after file loss 51b2425 Holy Development Agent feat: remove intact data package without shared directories d5e222a Holy Development Agent feat: check installed data against rootfs fe9e50f Holy Development Agent feat: abort untouched incomplete installs safely 72da005 Holy Development Agent feat: journal narrow target-root data installs 10bd483 Holy Development Agent feat: recheck approved plans against current root fa0dffc Holy Development Agent feat: persist approval of validated package plans b72f386 Holy Development Agent feat: hash read-only target-root package plans 8afe1ee Holy Development Agent feat: inspect validated package manifest c973547 Holy Development Agent feat: emit structured root preflight findings 6041cf4 Holy Development Agent feat: preflight a reserved artifact against target root 81c34e7 Holy Development Agent feat: report database reservation state as JSON a2ce634 Holy Development Agent fix: recover interrupted reservation publication 0568c30 Holy Development Agent feat: journal one prepared cache reservation e95d1f4 Holy Development Agent feat: select a repository provider by requirement dd75d4e Holy Development Agent feat: pin a direct local requirement to an artifact 8a11651 Holy Development Agent feat: bind repository solve reports to index generation b988be7 Holy Development Agent feat: resolve sealed local repository graphs 2152a98 Holy Development Agent fix: identify transitive local dependency gaps 3744245 Holy Development Agent fix: name missing direct package requirements ba24ca7 Holy Development Agent feat: emit structured local solver results e98c974 Holy Development Agent fix: reject partial database before publishing generation adf9301 Holy Development Agent feat: resolve exact local native package graphs 222c4b8 Holy Development Agent feat: detect alternative solver package sets 83c8ebc Holy Development Agent test: gate checks on libsolv fixture 4248d8a Holy Development Agent feat: solve exact capability conflicts 98b7670 Holy Development Agent feat: solve exact normalized capabilities with libsolv 390f415 Holy Development Agent feat: verify indexed provider candidates on demand eb2e5a8 Holy Development Agent feat: bind capability claims to catalog generations 42c069f Holy Development Agent feat: emit structured native capability claims 65c6c70 Holy Development Agent feat: emit structured local provider candidates 5862804 Holy Development Agent feat: search exact local provider claims f0fb577 Holy Development Agent feat: validate native capability claims d8f5381 Holy Development Agent fix: reject unknown target database entries 0cc825d Holy Development Agent feat: initialize empty target-root package database 5e91aa6 Holy Development Agent feat: verify cached native objects by digest d5ec7ea Holy Development Agent fix: validate loader ELF class in root checks fd946d1 Holy Development Agent feat: stage verified archives in target cache f059e94 Holy Development Agent feat: check ELF interpreters inside target root 8ae41bd Holy Development Agent feat: show env shebang helper candidates 8d10471 Holy Development Agent feat: show payload shebang interpreter paths ad20a27 Holy Development Agent feat: flag script interpreters in root preview c7ca0b5 Holy Development Agent feat: flag ELF dynamic edges in root preview 383fb98 Holy Development Agent docs: align Holy entry point with repository style 439fc35 Holy Development Agent feat: count unresolved requirements in root preview 2f0c874 Holy Development Agent feat: emit structured requirement events a386a37 Holy Development Agent feat: inspect typed native package requirements 94365c9 Holy Development Agent fix: check known ELF ABI mismatches in local payload 854e328 Holy Development Agent feat: preview native payload collisions in target root 5fd109e Holy Development Agent fix: reject libc tag mismatch in ELF plugins 4cf4c08 Holy Development Agent feat: fetch verified local catalog objects 179c524 Holy Development Agent feat: report file-scoped ELF dependency facts b2480da Holy Development Agent fix: require sealed catalog for repository reads fb80ea7 Holy Development Agent feat: publish digest-bound local catalog generations d9aa285 Holy Development Agent feat: search verified local repository names 344814a Holy Development Agent feat: verify local repository index records bd5b48b Holy Development Agent feat: publish a local native archive index prototype 7cbd8ee Holy Development Agent fix: check a stable local package copy e196b84 Holy Development Agent feat: scan verified package ELF payloads 2715096 Holy Development Agent feat: read GNU ELF version definitions 9a958be Holy Development Agent feat: report raw ELF machine and type a81fd4d Holy Development Agent test: distinguish i686 and x32 ELF classes e1a73f9 Holy Development Agent fix: pin local fetch staging to output directory 846c201 Holy Development Agent test: cover absent and malformed ELF ISA notes 58f6190 Holy Development Agent feat: read GNU x86 ISA requirements from ELF notes d70130c Holy Development Agent feat: read GNU ELF version requirements a6282ab Holy Development Agent feat: read ELF dynamic dependencies without sections 5ad1bcf Holy Development Agent feat: inspect ELF headers and interpreters with libelf ed2008e Holy Development Agent fix: reject unsupported native OS and ABI tags 7bb3932 Holy Development Agent fix: generate and install readable documentation bundle 8af0fbd Holy Development Agent fix: distinguish missing payload from changed payload 0563728 Holy Development Agent feat: report all local payload check findings 576dca8 Holy Development Agent feat: emit structured local check results 0f7eeb1 Holy Development Agent feat: compare local package payload with a chosen root 7c903c7 Holy Development Agent fix: reject archive path and attribute conflicts before extraction 15aa1ef Holy Development Agent fix: preflight archive path collisions before extraction f898cf6 Holy Development Agent feat: extract relative symlinks and direct hardlinks 7a58e29 Holy Development Agent feat: extract verified local regular-file packages 69234b8 Holy Development Agent feat: copy local artifacts into digest-addressed output 3892d73 Holy Development Agent fix: require native archive metadata members 9cbbc63 Holy Development Agent feat: validate source and rule configuration ca0a84b Holy Development Agent docs: add Holy view counter dc67ae1 Holy Development Agent docs: retain Holy README under lowercase filename a2a0b01 Holy Development Agent feat: verify direct hardlinks and manifest groups 01a1721 Holy Development Agent feat: verify payload directory entries a8e31d9 Holy Development Agent feat: verify symlink targets and reject hardlink payloads 07cd842 Holy Development Agent feat: verify regular payload files against HOLY/files 81572d3 Holy Development Agent fix: reject archive path traversal during inspection acb9386 Holy Development Agent fix: validate metadata features and hash local artifacts