assets/decdn.sh runs decdn key-gen --output-dir ~/.decdn/client when no keystore exists. Absent a preset DECDN_KEYSTORE_PASSWORD, decdn key-gen falls through to an interactive password prompt (decdn/crates/cli/src/commands/key_gen.rs:45-52) — which has no TTY under curl … | sh, so the install hangs or fails.
Fix: wire a non-interactive password source in the installer — e.g. generate a random password and export DECDN_KEYSTORE_PASSWORD, or pass --password-file, and tell the user where it is. The wrapper already reads the password from DECDN_KEYSTORE_PASSWORD (crates/wrapper/src/config.rs), so keep them consistent.
Pre-public-launch; not a merge blocker. Found in the final whole-branch review (opus traced the decdn key-gen path).
assets/decdn.shrunsdecdn key-gen --output-dir ~/.decdn/clientwhen no keystore exists. Absent a presetDECDN_KEYSTORE_PASSWORD,decdn key-genfalls through to an interactive password prompt (decdn/crates/cli/src/commands/key_gen.rs:45-52) — which has no TTY undercurl … | sh, so the install hangs or fails.Fix: wire a non-interactive password source in the installer — e.g. generate a random password and export
DECDN_KEYSTORE_PASSWORD, or pass--password-file, and tell the user where it is. The wrapper already reads the password fromDECDN_KEYSTORE_PASSWORD(crates/wrapper/src/config.rs), so keep them consistent.Pre-public-launch; not a merge blocker. Found in the final whole-branch review (opus traced the decdn key-gen path).