docs: correct FreeBSD source-build claims (#1097)

FreeBSD stays a source-only target, with no prebuilt asset and no
release-matrix row (founder decision 2026-10-25, item 14). This change
fixes the claims the issue sweep found to be false or stale:

- packaging/freebsd/README.md said x86_64-unknown-freebsd "is validated in
  CI ... on the release/0.9.5 branch". No job does this:
  `git grep -i freebsd -- .github scripts` matches only a YAML comment. The
  README now says no CI job checks the target and gives the cargo check
  command to run on a FreeBSD host.
- The README pointed to crates/tui/build.rs for the rquickjs bindgen fix.
  1582ba9653/5eb0385e8f touch only crates/workflow-js/Cargo.toml, which
  holds the target_os = "freebsd" bindgen dependency. It now names that
  file.
- The README now states the Rust minimum, 1.89 (Cargo.toml rust-version),
  and its verification block no longer says ">= 1.88". The matrix list now
  says Linux musl arm64, which is the target the matrix builds, not gnu.
- The release-artifacts.yml build-job comment no longer claims a FreeBSD
  cargo check. It now says FreeBSD has no prebuilt asset, no npm binary and
  no CI check.
- "OpenBSD" is dropped from the support-table row in docs/INSTALL.md and
  docs/zh_hans/INSTALL.md. workflow-js has no rquickjs bindgen entry for
  openbsd, and no OpenBSD build has been verified.

Ignore the vendor Ratatui target directory produced by its separate-workspace
test command; generated output is preserved in the SSD cache, not committed.

Docs, ignore rules and a YAML comment only; no product behaviour changes, so no CHANGELOG
bullet. Verified by read-only greps against the worktree. No FreeBSD compile was
attempted.

Verified as one frozen batch at 7db526a725 plus consensus patch
sha256 d6418055436eaada55f4cbedc954a0eeeb51d9d922716a3588006cf7932fab45:
- scripts/with-hermetic-test-home.sh scripts/dev-cargo.sh nextest run
  -p codewhale-tui -p codewhale-localization --lib --locked:
  15343 run, 15341 passed, 2 failed, 25 skipped; build 3m41s.
  The two fixed-width rendered-fixture failures came from the long SSD
  TMPDIR wrapping paths mid-needle. Same source/binary, shorter SSD TMPDIR,
  only those two tests rerun: 2 passed, 15312 skipped. Distinct passing
  coverage across both runs: 15289 TUI + 54 localization tests.
- scripts/with-hermetic-test-home.sh scripts/dev-cargo.sh test
  --manifest-path vendor/codewhale-ratatui/Cargo.toml --locked --all-targets:
  145 passed, 0 failed (128 library and 17 example tests).
- fmt and diff checks passed; changelog sync passed; runtime boundary PASS
  (120 closure modules); dead-code budget 212; blocking-call budget 543
  across 165 files; locale parity 2583 keys in all 15 packs.
- The vocabulary guard initially failed on an already-published advertised
  legacy alias. Both refuters confirmed the docs-only correction; the
  unchanged guard then passed. Web prebuild and check-facts passed.
Before peer reconciliation, only .gitignore, docs/MODES.md and generated web
documentation changed after native tests; frozen compiler inputs were identical.
Published peer commits aa45bf84ef/485382f81d then advanced main. Their exact
diff was integrated, preserving their ancestry and regenerating web docs.
Focused reconciliation nextest (TUI ops/runtime_info/spawn and CLI cloud
callers): 117 passed, 0 failed, 15698 skipped; source remained frozen
(104 TUI, 13 CLI). Command/filter and source SHA256
are retained in coordination/land-0103-20261025/reconciliation-test-run.json.
Final integrated tree f297b67c73 is checked against the regenerated commits.
macOS ld emitted its __eh_frame size warning. No hosted CI, FreeBSD/Linux
compile, paid provider call, install, deploy, or release is claimed.

This does not resolve #1097: the npm prebuilt and pkg port asks remain open.

Refs #1097

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
CodeWhale BotandClaude Opus 5.5 committed 2026-10-25 02:15:50 -07:00
1 parent 9f4993f820
commit 62bbcebf2b
5 files changed
+12 -10

No files matched your search

+2 -3
View File
@@ -87,9 +87,8 @@ jobs:
# Both cold macOS artifact builds on 0.10.1 exhausted 90 minutes inside
# compilation. Keep the full CI build budget; packaging stays capped below.
timeout-minutes: 210
# FreeBSD is a source-build target validated via `cargo check --target x86_64-unknown-freebsd -p codewhale-cli --locked`
# (see packaging/freebsd/README.md and docs/INSTALL.md#freebsd). The 7×1 prebuilt matrix stays 7 targets;
# FreeBSD has no prebuilt asset, no npm binary, and no matrix bloat — it builds from source.
# FreeBSD is a source-build target with no prebuilt asset, no npm binary and no CI check
# (see packaging/freebsd/README.md and docs/INSTALL.md#freebsd).
strategy:
fail-fast: false
matrix:
+1
View File
@@ -1,6 +1,7 @@
# Build artifacts
/target
/target-*
/vendor/codewhale-ratatui/target/
.entire/
.cursor/
.plans/
+1 -1
View File
@@ -1005,7 +1005,7 @@ v0.8.8 onward. Linux RISC-V prebuilts are temporarily paused because the locked
| Windows | arm64 | `codewhale-windows-arm64.exe`, `codew-windows-arm64.exe` | ✅ | ✅ |
| Linux x64 or arm64 on musl (Alpine) | native arch | matching static Linux asset | ✅ (static) | ✅ |
| Other Linux (musl on other arches) | — | build from source | ❌¹ | ✅² |
| FreeBSD 14+ / OpenBSD | x64, arm64 | `cargo install codewhale-cli --locked` (no prebuilt; see § FreeBSD) | ❌ | ✅² |
| FreeBSD 14+ | x64, arm64 | `cargo install codewhale-cli --locked` (no prebuilt; see § FreeBSD) | ❌ | ✅² |
¹ The npm package will exit with a clear error and point you here.
² Provided your toolchain can compile a recent Rust workspace; see
+1 -1
View File
@@ -764,7 +764,7 @@ v0.10.0 的已知 bug。bash 和 fish 没问题。
| Windows | arm64 | `codewhale-windows-arm64.exe`, `codew-windows-arm64.exe` | ✅ | ✅ |
| Linux x64 或 arm64 上的 musl(Alpine) | 原生架构 | 匹配的静态 Linux 资源 | ✅(静态) | ✅ |
| 其他 Linux(其他架构上的 musl) | — | 从源码构建 | ❌¹ | ✅² |
| FreeBSD 14+ / OpenBSD | x64, arm64 | `cargo install codewhale-cli --locked`(无预编译;见 § FreeBSD) | ❌ | ✅² |
| FreeBSD 14+ | x64, arm64 | `cargo install codewhale-cli --locked`(无预编译;见 § FreeBSD) | ❌ | ✅² |
¹ npm 包会以明确的错误退出,并引导你到这里。
² 前提是你的工具链能编译较新的 Rust workspace;见下文[从源码构建](#5-cargo-与从源码构建)。
+7 -5
View File
@@ -5,7 +5,8 @@ Resolves #1097 — FreeBSD install via `cargo` today, native `pkg` port planned.
## Current: cargo install (supported)
FreeBSD has no prebuilt GitHub Release asset. The npm wrapper intentionally fails with
`Unsupported platform: freebsd` and points to the Cargo path. Build from source:
`Unsupported platform: freebsd` and points to the Cargo path. Build from source with
Rust 1.89 or newer (the workspace `rust-version`):
```bash
pkg install -y rust pkgconf git # or: pkg install -y lang/rust devel/pkgconf devel/git
@@ -22,13 +23,14 @@ installed `codewhale-tui` from ports or Cargo, run
Linux `libdbus-1` / `pkg-config` build deps are not needed on FreeBSD for the default
feature set; the `rquickjs` FreeBSD bindings are generated at build time via `bindgen`
(see `crates/tui/build.rs` and the `1582ba965`/`5eb0385e8` FreeBSD bindgen fix).
(see the `target_os = "freebsd"` dependency in `crates/workflow-js/Cargo.toml`, added by
`1582ba965`/`5eb0385e8`).
## Target validation
- Rust tier-2 target `x86_64-unknown-freebsd` is validated in CI via `cargo check --target x86_64-unknown-freebsd -p codewhale-cli --locked` on the `release/0.9.5` branch.
- No CI job builds or checks the Rust tier-2 target `x86_64-unknown-freebsd`, so FreeBSD source builds are not verified before a release. To check one, run `cargo check --target x86_64-unknown-freebsd -p codewhale-cli --locked` on a FreeBSD host.
- `aarch64-unknown-freebsd` cross-check is tracked for future hardware.
- The release matrix in `.github/workflows/release-artifacts.yml` remains 7×1 (Linux musl x64, Linux gnu arm64, Android arm64, macOS x64/arm64, Windows x64/arm64). FreeBSD is a source-build target — no prebuilt asset, no matrix bloat, but the row in `docs/INSTALL.md` is authoritative.
- The release matrix in `.github/workflows/release-artifacts.yml` remains 7×1 (Linux musl x64, Linux musl arm64, Android arm64, macOS x64/arm64, Windows x64/arm64). FreeBSD is a source-build target — no prebuilt asset, no matrix bloat, but the row in `docs/INSTALL.md` is authoritative.
## Future: native pkg / port
@@ -53,7 +55,7 @@ and report the `codewhale doctor` JSON in #1097.
```bash
# on a FreeBSD 14.1 amd64 host or VM
rustc --version # >= 1.88
rustc --version # >= 1.89
cargo install --path crates/cli --locked
codewhale --version
codewhale exec --auto "run pwd"