···11+{"id":"reqwl-backend-feature-matrix","title":"Add backend feature matrix and compile guards","description":"Introduce explicit backend features for posix-libc and rustix with compile-time exclusivity checks and a documented default backend selection.","acceptance_criteria":"- define backend-posix-libc and backend-rustix features\\n- exactly one backend must be enabled\\n- build fails with clear compile_error on invalid backend combinations\\n- README documents backend selection","status":"open","priority":2,"issue_type":"feature","owner":"rektide+git@voodoowarez.com","created_at":"2026-03-25T23:05:49Z","created_by":"rektide de la faye","updated_at":"2026-03-25T23:05:49Z","dependency_count":0,"dependent_count":0,"comment_count":0}
22+{"id":"reqwl-backend-owned-addr-conversion","title":"Move address conversion into backend modules","description":"Ensure SocketAddr to backend connect-address conversion lives in backend-specific modules to avoid ABI coupling and keep unsafe localized.","acceptance_criteria":"- posix-libc backend owns sockaddr conversion code\\n- rustix backend owns rustix address conversion path\\n- app layer has no direct sockaddr manipulation\\n- conversion failures map to shared error surface","status":"open","priority":2,"issue_type":"task","owner":"rektide+git@voodoowarez.com","created_at":"2026-03-25T23:05:49Z","created_by":"rektide de la faye","updated_at":"2026-03-25T23:05:49Z","dependency_count":0,"dependent_count":0,"comment_count":0}
33+{"id":"reqwl-backend-rustix","title":"Implement rustix transport backend","description":"Add a rustix-based implementation of TCP transport that satisfies embedded-nal-async integration for the downloader.","acceptance_criteria":"- rustix backend compiles and runs basic HTTP download flow\\n- backend selection swaps between posix-libc and rustix without changing app logic\\n- backend-specific errors map into shared app errors\\n- unsafe usage is minimized and contained","status":"open","priority":2,"issue_type":"feature","owner":"rektide+git@voodoowarez.com","created_at":"2026-03-25T23:05:49Z","created_by":"rektide de la faye","updated_at":"2026-03-25T23:05:49Z","dependency_count":0,"dependent_count":0,"comment_count":0}
44+{"id":"reqwl-dns-mode-features","title":"Split DNS behavior into feature modes","description":"Separate DNS resolution into explicit modes so portability and minimal builds can choose between getaddrinfo-based resolution and IP-only operation.","acceptance_criteria":"- define dns-getaddrinfo and dns-ip-only features\\n- exactly one DNS mode must be enabled\\n- dns-ip-only rejects hostname resolution with clear error\\n- docs describe DNS mode trade-offs","status":"open","priority":2,"issue_type":"feature","owner":"rektide+git@voodoowarez.com","created_at":"2026-03-25T23:05:49Z","created_by":"rektide de la faye","updated_at":"2026-03-25T23:05:49Z","dependency_count":0,"dependent_count":0,"comment_count":0}
55+{"id":"reqwl-domain-refactor-portability","title":"Refactor source into portability domains","description":"Restructure source files into app/net/platform/runtime domains so backend and DNS implementations stay isolated from downloader flow logic.","acceptance_criteria":"- create domain-grouped layout as proposed in doc/portable.md\\n- app download flow depends on traits, not backend internals\\n- backend modules encapsulate platform-specific code\\n- build remains functional after refactor","status":"open","priority":2,"issue_type":"task","owner":"rektide+git@voodoowarez.com","created_at":"2026-03-25T23:05:49Z","created_by":"rektide de la faye","updated_at":"2026-03-25T23:05:49Z","dependency_count":0,"dependent_count":0,"comment_count":0}
16{"id":"reqwl-rng-dev-urandom","title":"Add /dev/urandom RNG backend","description":"Implement an RNG backend that reads entropy from /dev/urandom behind its own Cargo feature for environments where syscall strategy is not desired.","acceptance_criteria":"- feature flag adds /dev/urandom entropy backend\\n- backend handles partial reads and error propagation correctly\\n- build fails if more than one RNG backend feature is enabled\\n- docs include feature usage and operational caveats","status":"open","priority":2,"issue_type":"task","owner":"rektide+git@voodoowarez.com","created_at":"2026-03-25T22:15:35Z","created_by":"rektide de la faye","updated_at":"2026-03-25T22:15:35Z","dependency_count":0,"dependent_count":0,"comment_count":0}
27{"id":"reqwl-rng-dummy-default","title":"Add default dummy TLS RNG backend","description":"Introduce a default RNG backend intended for deterministic/dev use so HTTPS scaffolding can compile before secure entropy backends are wired in.","acceptance_criteria":"- add a dedicated RNG abstraction used by TLS setup\\n- default backend is dummy and builds without extra OS integration\\n- README/docs clearly mark dummy RNG as insecure and non-production\\n- backend selection is compile-time and explicit","status":"open","priority":2,"issue_type":"task","owner":"rektide+git@voodoowarez.com","created_at":"2026-03-25T22:15:35Z","created_by":"rektide de la faye","updated_at":"2026-03-25T22:15:35Z","dependency_count":0,"dependent_count":0,"comment_count":0}
38{"id":"reqwl-rng-linux-getrandom","title":"Add Linux getrandom RNG backend","description":"Implement a secure RNG backend backed by the Linux getrandom syscall and expose it behind a dedicated Cargo feature.","acceptance_criteria":"- feature flag adds getrandom-based entropy backend\\n- backend uses syscall directly (no std dependency)\\n- build fails if more than one RNG backend feature is enabled\\n- docs include feature usage and security posture","status":"open","priority":2,"issue_type":"task","owner":"rektide+git@voodoowarez.com","created_at":"2026-03-25T22:15:35Z","created_by":"rektide de la faye","updated_at":"2026-03-25T22:15:35Z","dependency_count":0,"dependent_count":0,"comment_count":0}
49{"id":"reqwl-tls-verify-certificate-flag","title":"Add optional certificate verification mode","description":"Keep TLS verify-none as the initial default, then add a feature-gated certificate verification mode with explicit CA handling and hostname checks.","acceptance_criteria":"- default behavior remains verify-none for initial rollout\\n- feature flag enables certificate verification mode\\n- CA source strategy is documented (embedded CA bundle or pinning)\\n- hostname/SNI verification requirements are documented and tested","status":"open","priority":2,"issue_type":"feature","owner":"rektide+git@voodoowarez.com","created_at":"2026-03-25T22:15:35Z","created_by":"rektide de la faye","updated_at":"2026-03-25T22:15:35Z","dependency_count":0,"dependent_count":0,"comment_count":0}
510{"id":"reqwl-http-redirects","title":"Follow HTTP redirects","description":"Add redirect handling for 3xx responses in the no_std downloader while preserving stack-buffered streaming and bounded redirect depth.","acceptance_criteria":"- 301/302/303/307/308 with Location are followed up to a fixed max hops\\n- relative and absolute Location values are resolved safely\\n- loop detection or hop limit failure returns a clear error\\n- downloader still streams body to stdout without heap allocation in app code","status":"open","priority":2,"issue_type":"feature","owner":"rektide+git@voodoowarez.com","created_at":"2026-03-25T21:58:56Z","created_by":"rektide de la faye","updated_at":"2026-03-25T21:58:56Z","dependency_count":0,"dependent_count":0,"comment_count":0}
66-{"id":"reqwl-https-feature-flag","title":"Add optional HTTPS support","description":"Introduce an opt-in Cargo feature for HTTPS/TLS in the Linux downloader while keeping the default HTTP-only minimal footprint.","acceptance_criteria":"- default build remains HTTP-only\\n- enabling feature compiles and supports https:// URLs\\n- TLS verification mode is explicitly configured and documented\\n- README includes HTTP vs HTTPS build and usage examples","status":"open","priority":2,"issue_type":"feature","owner":"rektide+git@voodoowarez.com","created_at":"2026-03-25T21:58:56Z","created_by":"rektide de la faye","updated_at":"2026-03-25T21:58:56Z","dependency_count":0,"dependent_count":0,"comment_count":0}
1111+{"id":"reqwl-https-feature-flag","title":"Add optional HTTPS support","description":"Introduce an opt-in Cargo feature for HTTPS/TLS in the Linux downloader while keeping the default HTTP-only minimal footprint.","acceptance_criteria":"- default build remains HTTP-only\\n- enabling feature compiles and supports https:// URLs\\n- TLS verification mode is explicitly configured and documented\\n- README includes HTTP vs HTTPS build and usage examples","notes":"Implemented baseline optional HTTPS support behind Cargo feature 'https' with current verify-none mode.","status":"closed","priority":2,"issue_type":"feature","owner":"rektide+git@voodoowarez.com","created_at":"2026-03-25T21:58:56Z","created_by":"rektide de la faye","updated_at":"2026-03-25T23:05:49Z","closed_at":"2026-03-25T23:05:49Z","dependency_count":0,"dependent_count":0,"comment_count":0}
712{"id":"reqwl-min-sized-rust","title":"Apply min-sized-rust optimization profile","description":"Adopt binary-size optimization recommendations from github.com/johnthagen/min-sized-rust for release builds and document trade-offs for this project.","acceptance_criteria":"- release profile updates are applied and explained\\n- binary size before/after is measured and recorded\\n- guide reference: https://github.com/johnthagen/min-sized-rust\\n- behavior remains correct for basic download flow","status":"open","priority":2,"issue_type":"task","owner":"rektide+git@voodoowarez.com","created_at":"2026-03-25T21:58:56Z","created_by":"rektide de la faye","updated_at":"2026-03-25T21:58:56Z","dependency_count":0,"dependent_count":0,"comment_count":0}