.PHONY: build test fmt clippy release-check 1.0-check reconnect-check hostile-network-check persistence-check package-check install package-release package-release-linux package-release-windows publish-release bench-report bench-local bench-local-json bench-docker-ssh bench-docker-mosh fuzz-smoke fuzz-deep soak-local tui-harness build: cargo build --release test: cargo test fmt: cargo fmt clippy: cargo clippy --all-targets -- -D warnings release-check: cargo fmt --check sh -n install.sh scripts/*.sh cargo clippy --all-targets -- -D warnings cargo test $(MAKE) tui-harness 1.0-check: release-check reconnect-check hostile-network-check persistence-check package-check reconnect-check: cargo test --test integration_smoke resume_updates_udp_endpoint_for_roaming -- --nocapture DOSH_SOAK_SECONDS=$${DOSH_SOAK_SECONDS:-300} cargo test --test integration_smoke sleep_roaming_soak_30m -- --ignored --nocapture hostile-network-check: cargo test --test hostile_network -- --nocapture DOSH_BADNET_SOAK_SECONDS=$${DOSH_BADNET_SOAK_SECONDS:-300} cargo test --test hostile_network bad_network_tui_work_soak_30m -- --ignored --nocapture persistence-check: cargo test --test integration_smoke session_survives_server_restart_same_shell_and_screen -- --nocapture cargo test --test integration_smoke multiple_persistent_named_sessions_survive_restart_independently -- --nocapture package-check: $(MAKE) package-release-linux $(MAKE) package-release-windows sh scripts/verify-release-artifacts.sh \ target/dosh-release/dosh-linux-x86_64.tar.gz \ target/dosh-release/dosh-windows-x86_64.zip install: sh install.sh --from-current package-release: sh scripts/package-release.sh package-release-linux: DOSH_PACKAGE_OS=linux DOSH_PACKAGE_ARCH=x86_64 sh scripts/package-release.sh package-release-windows: DOSH_PACKAGE_OS=windows DOSH_PACKAGE_ARCH=x86_64 DOSH_PACKAGE_TARGET=x86_64-pc-windows-gnu sh scripts/package-release.sh publish-release: sh scripts/publish-gitea-release.sh bench-report: sh scripts/bench-report.sh # Safe, self-contained local benchmark matrix (native cold auth, cached attach # ticket, local-auth) on a throwaway server bound to 127.0.0.1 on a free port in # a temp HOME. Never touches the production server or UDP port 50000. bench-local: sh scripts/bench-local.sh # Same matrix, machine-readable JSON output (one object per metric with raw # samples). Useful for publishing or regression tracking. bench-local-json: DOSH_BENCH_JSON=1 sh scripts/bench-local.sh bench-docker-ssh: sh scripts/ci-docker-ssh-bench.sh bench-docker-mosh: DOSH_BENCH_INCLUDE_MOSH=1 sh scripts/ci-docker-ssh-bench.sh fuzz-smoke: sh scripts/fuzz-run.sh 20 # Longer pre-launch fuzz pass. Override with DOSH_FUZZ_SECONDS=NN. fuzz-deep: DOSH_FUZZ_SECONDS=$${DOSH_FUZZ_SECONDS:-300} sh scripts/fuzz-run.sh tui-harness: sh scripts/tui-harness.sh # 30-minute launch soak by default. Override with DOSH_SOAK_SECONDS=NN. soak-local: DOSH_SOAK_SECONDS=$${DOSH_SOAK_SECONDS:-1800} cargo test --test integration_smoke sleep_roaming_soak_30m -- --ignored --nocapture