This matrix keeps the boundary clear: rubash owns shell language semantics,
while Niubash owns Windows host integration, REPL behavior, completion, plugin
routing, and winuxcmd command discovery. Use it when deciding whether a fix
belongs in rubash or in the Niubash host layer.
Focused Niubash binary tests for common bash semantics that depend on rubash plus winuxcmd command links.
CARGO_TARGET_DIR=target/codex-verify-phase17 cargo test --test compat --locked -- --ignored passed 18/18 on 2026-07-31.
Host contract tests
Windows process, cwd, stdin, script, env, and stdio behavior around rubash execution.
Covered by tests/host_contract.rs; full workspace test passed in the Phase 16 verification run.
GNU Bash upstream local gate
Broader upstream bash fixture from a sibling rubash checkout, intentionally local-only and not vendored.
docs/planning/bash-upstream-local.md records the Niubash local gate; the current rubash upstream ledger is the rubash README "Compatibility at a Glance" section: 83 suites, 82 pass, 1 residual (nameref), re-run 2026-09-25 on rubash master 71c933eb.
Full GNU Bash upstream gate is local-only and not normal CI.
Keep using docs/planning/bash-upstream-local.md for the Niubash local gate; source rubash suite numbers from the rubash README compatibility ledger. Do not vendor upstream bash tests.
niu -c still has host-side rough edges around POSIX assignment prefixes, env VAR=value cmd, heredoc temp-file flows, and complex quoting in agent commands.
Track as Niubash command-mode/host issues, not as rubash language failures unless a direct rubash fixture reproduces it.
Job control and interactive terminal process-group semantics are not covered by the focused compat matrix.
Route through rubash first; add Niubash host tests only for Windows process integration.
Plugin runtime behavior is intentionally outside current shell compatibility scope.
Keep in plugin docs; do not mix with bash language compatibility claims.
Add one focused fixture under tests/compat/fixtures/ before claiming a new
bash-language capability in README or roadmap.
Prefer host contract tests for Windows cwd/env/stdin/stdout issues that
happen around rubash rather than inside rubash.
Re-run the ignored compat suite before updating this matrix:
CARGO_TARGET_DIR=target/codex-verify-phase17 cargo test --test compat --locked -- --ignored.
Use the upstream local gate only when parser/executor behavior changes or when
syncing a new rubash revision.