You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 6ca5684
Browse filesBrowse the repository at this point in the historyBrowse files
--lazy-load previously failed at runtime: priorities used absolute
/app paths that never matched tar's payload-relative entries (and
listed the host interpreter as a payload file). Priorities are now
payload-relative, the entrypoint script is always a priority while the
interpreter never is, and --lazy-priority / [build] lazy_priority add
app-relative or payload-relative specs (dirs expand recursively, 2048
cap) via daedalus-core::lazy::expand_priority_paths.
Fixes: non-priority tar entries are drained before skipping (stream
misalignment caused 'Invalid argument (os error 22)'), and namespaced
builds (isolation >= 2) extract synchronously -- spawning any thread
makes the later unshare(CLONE_NEWUSER|CLONE_NEWNS) fail EINVAL and
pivot_root strands a bg thread's cache path. Small hosts (< 4 cores,
< 3 GiB) auto-disable lazy-load without an explicit priority list.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,10 @@ Format based on [Keep a Changelog](https://keepachangelog.com/).
7
7
## [Unreleased]
8
8
9
9
### Added
10
+
-**Lazy-loading priority extraction**: `daedalus build --lazy-load` now fast-starts by extracting only the entrypoint (plus an explicit `--lazy-priority file,dir,...` list or `[build] lazy_priority`) before launching, then fills the rest of the app tree in the background. Priority specs may be app-relative (`main.py`) or payload-relative (`app/main.py`); directories expand recursively (skipping `__pycache__`/`.git`), capped at 2048 files. Dry-run reports `Lazy:` on/off and the priority count. Namespaced builds (isolation ≥ 2) extract synchronously so the user-namespace `unshare` stays single-threaded.
11
+
-`daedalus-core::lazy::expand_priority_paths` — build-time expansion of `--lazy-priority` specs into payload-relative paths with tar-exclusion parity
12
+
- Constrained-host auto-disable: `--lazy-load` without an explicit priority list turns itself off on small hosts (< 4 cores or < 3 GiB RAM, via `daedalus-core::system_info::is_constrained_host`)
13
+
-`daedalus inspect` reports the `lazy_priority` metadata (`Lazy priority:` line)
10
14
-**GPU passthrough for accelerated inference**: `daedalus build --gpu auto|nvidia|rocm|none` (or `[build] gpu` in `.daedalus.toml`) records the compute backend in the binary metadata. When `nvidia` or `rocm` is set, the launcher bind-mounts the GPU device nodes (NVIDIA `/dev/nvidia*` + caps, ROCm `/dev/kfd` + `/dev/dri` render nodes) into the sandbox via a regular-file overlay and pins the matching visibility vars (`CUDA_VISIBLE_DEVICES`, `NVIDIA_VISIBLE_DEVICES`, `HIP_VISIBLE_DEVICES`, `ROCR_VISIBLE_DEVICES`) — Ollama/llama.cpp offload works headless, inside the sandbox.
11
15
-`daedalus-core::gpu` detection probe (`--gpu auto`): `/dev/kfd` → ROCm, `/proc/driver/nvidia/gpus` → NVIDIA; CPU fallback is safe (missing nodes are skipped)
12
16
-`daedalus inspect` shows the embedded `GPU:` backend; dry-run reports the resolved backend
@@ -18,6 +22,8 @@ Format based on [Keep a Changelog](https://keepachangelog.com/).
18
22
- System config detection module `daedalus-core/src/system_info.rs` (`SystemConfig`, `detect()`, `compute_universal_slices()`) for resource-adaptive builds
19
23
20
24
### Fixed
25
+
-**`--lazy-load` runtime failure**: priority files used absolute `/app/...` paths that never matched the tar's payload-relative entries (and wrongly listed the host PATH interpreter as a payload file), so every lazy build errored with `priority files not found in payload: /app/python3`. Priorities are now payload-relative and the interpreter is never one.
26
+
- Stub lazy extraction skipped non-priority tar entries without draining them, misaligning the stream and breaking extraction with `Invalid argument (os error 22)` whenever a non-priority entry was followed by more data — entries are now drained before skipping
21
27
- Stub multi-service supervisor on Unix now execs via `execvp` (PATH search) instead of `execve`, so bare interpreter names like `python3` resolve at runtime — multi-service binaries can actually launch their services
22
28
-`find_in_bin_paths`/`is_executable_path` made cross-platform (were Windows-only), so the Unix supervisor shares the same interpreter-resolution fallback as the Windows and single-service paths
23
29
- Removed unused `libc_execve` FFI declaration and `env_to_cstrings` helper
0 commit comments