Releases: y4ho0/assume-zero
Release list
AssumeZero v0.1.0
AssumeZero v0.1.0
AssumeZero tests finite project commands against controlled machine-environment changes and reports evidence-backed hidden assumptions.
Highlights
- Seven Quick scenarios and three Deep scenarios covering home, cache, environment,
PATH, working-directory, temporary-directory, timezone, and locale conditions. - Repeated stable baselines and failure confirmation before attribution.
- Verified 1-minimal recovery for
CLEAN_ENVenvironment-variable names and orderedMINIMAL_PATHentries. - Exit-code, output-text, regular-expression, and file oracles.
- Terminal, JSON, Markdown, and JUnit XML reports with bounded, redacted output.
- Working-tree and Git-clean copied workspaces with source-integrity, size, hardlink, and symlink protections.
Install
Requires Rust 1.80 or newer:
cargo install \
--git https://github.com/y4ho0/assume-zero \
--tag v0.1.0 \
--lockedFor a completely immutable source reference:
cargo install \
--git https://github.com/y4ho0/assume-zero \
--rev 1c06b02a42f0b494e2f31bd24af44d14731c712b \
--lockedPrecompiled archives are attached for Windows x86_64, Linux x86_64, macOS x86_64, and macOS arm64. Each contains the native assumezero executable, README.md, and LICENSE. Verify downloads with SHA256SUMS.
No crates.io package is published for v0.1.0.
Security boundary
AssumeZero runs user-provided commands with the current user's privileges inside copied workspaces. It protects the source workspace from ordinary command writes, but it is not a sandbox for untrusted code. Tested commands retain the user's operating-system permissions and may deliberately access resources outside the copy.
The release commit passed three-platform CI, the Rust 1.80 MSRV job, JSON Schema validation, an installation smoke test, and the dedicated cargo audit workflow.
Known limitations
- Only finite, non-interactive commands are supported.
- v0.1.0 does not execute pairwise scenario combinations.
- Descendant-process termination after timeout is best effort.
EMPTY_HOMEdoes not identify the specific home file involved.- Timezone changes are process-level and best effort; unsupported C locale scenarios are skipped explicitly.
- A 1-minimal recovery set is not necessarily globally minimal or a unique cause.
- AssumeZero does not provide OS virtualization, network/database fault injection, syscall/file-access tracing, or a security sandbox.
Full release commit: 1c06b02a42f0b494e2f31bd24af44d14731c712b
简体中文
AssumeZero 针对受控的机器环境变化测试有限项目命令,并报告有证据支持的隐藏假设。
主要能力
- 七个 Quick 场景和三个 Deep 场景,覆盖主目录、缓存、环境变量、
PATH、工作目录、临时目录、时区和 Locale 条件。 - 在归因前执行独立稳定基线和重复失败确认。
- 为
CLEAN_ENV环境变量名和有序MINIMAL_PATH条目执行经过验证的 1-minimal 恢复。 - 支持退出码、输出文本、正则表达式和文件 Oracle。
- 支持终端、JSON、Markdown 和 JUnit XML 报告,以及有界、脱敏的命令输出。
- working-tree 与 Git-clean 工作区副本,并提供源码完整性、大小、硬链接和符号链接保护。
安装
需要 Rust 1.80 或更新版本:
cargo install \
--git https://github.com/y4ho0/assume-zero \
--tag v0.1.0 \
--locked完全不可变的源码引用:
cargo install \
--git https://github.com/y4ho0/assume-zero \
--rev 1c06b02a42f0b494e2f31bd24af44d14731c712b \
--lockedRelease 附带 Windows x86_64、Linux x86_64、macOS x86_64 和 macOS arm64 的预编译包;每个包包含原生 assumezero、README.md 和 LICENSE。请使用 SHA256SUMS 校验下载文件。v0.1.0 没有发布到 crates.io。
安全边界与限制
AssumeZero 使用当前用户权限在工作区副本中运行用户提供的命令。它用于保护源工作区,不是运行不受信任代码的安全沙箱。v0.1.0 只支持有限、非交互式命令,不执行两两场景组合;超时后的后代进程终止、进程级时区设置和部分平台能力均为 best effort。1-minimal 集合不一定是全局最小或唯一根因。
完整发布提交:1c06b02a42f0b494e2f31bd24af44d14731c712b