Skip to content

base red (macOS): the non-UTF-8 secret-name tests accept APFS's EILSEQ, as #32091 does - #35889

Merged
cmux-bot[bot] merged 1 commit into
feat-cmux-nextfrom
fix/non-utf8-secret-tests-on-apfs
Nov 4, 2026
Merged

cmux-bot[bot] merged 1 commit into
feat-cmux-nextfrom
fix/non-utf8-secret-tests-on-apfs

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Base red on macOS: cmux-tui link::seed::tests::a_secret_with_a_non_utf8_name_is_left_out (#30923) and cmux-tui-core git_seed::tests::export::a_secret_with_a_non_utf8_name_never_goes (#30633) fail on every macOS run (feat tip 036f8aa job 856e771816456834927eabfa; 78ee0e1 too): Os { code: 92, ... "Illegal byte sequence" } at the test's own fs::write. They pass on Linux.

Cause: the tests create a file named b".env-\xff". APFS refuses a name that is not valid UTF-8 (EILSEQ), so the setup fails before the product code runs. No folder on macOS can hold such a secret, so the product path the tests check cannot meet one there. Side: test. The same case was fixed the same way for git_seed/secrets.rs in #32091 (reviewed).

Fix: both tests accept EILSEQ on macOS only and stop there; any other error still fails, and on Linux (ext4 takes raw bytes) the assertions run unchanged. Not deterministic-red work needed: the red is deterministic on every macOS run.

Testing

  • Red at feat tip 00655a4 on macOS (job e7ace611cf651cd47f870932): 2 of 2 fail; Linux (job of key b3-utf8-linux): 2 of 2 pass.
  • Green at head c74c1d6: macOS all (job b2aafbea47347a0e66eb2972): fmt, clippy pass, 2 of 2; Linux all (job 48c34fa024a8fa722da5b07b): fmt, clippy pass, 2 of 2.
  • python3 scripts/cmux-next/prepush-gate.py: no new violations.

Observed / Not run

  • Observed: the results above.
  • Not run: nothing else.

Changelog

none


Autofix with [code]smith
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Fixes two tests that fail on every macOS run because APFS refuses non-UTF-8 filenames (EILSEQ), so the tests couldn't set up their fixture. Both tests now accept EILSEQ on macOS only and stop there; on Linux they run unchanged. This mirrors the same fix applied to git_seed/secrets.rs in #32091.

Written for commit c74c1d6. Summary will update on new commits.

View guided diff Turn on auto-fix

… APFS (macOS base red)

a_secret_with_a_non_utf8_name_is_left_out (#30923) and a_secret_with_a_non_utf8_name_never_goes
(#30633) create a file named b".env-\xff". APFS refuses a name that is not UTF-8 (EILSEQ,
'Illegal byte sequence'), so both panicked at setup on every macOS run since they landed; no
folder on macOS can hold such a secret, so the product path they check cannot meet one there.
They now accept EILSEQ on macOS only, as git_seed/secrets.rs does since #32091; on Linux
(ext4 takes raw bytes) the assertions run unchanged.
@lawrencecchen lawrencecchen added the risk:low Risk tier (docs/ci/risk-tiers.md) label Nov 4, 2026
@cursor

cursor Bot commented Nov 4, 2026

Copy link
Copy Markdown

Bugbot needs on-demand usage enabled

Bugbot uses usage-based billing for this team and requires on-demand usage to be enabled.

A team admin can enable on-demand usage in the Cursor dashboard.

@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review c74c1d6: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr35889 -f ref=fix/non-utf8-secret-tests-on-apfs -f platform=macos -f backend_mode=local

Shipped in:

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/41927927728 at b5e96a1 failed: cmux-next checks (god files, concurrency, crash safety, l10n).
Those jobs last passed at 3484771. This pull request is one of 5 merged since: #35886, #35875, #35873, #35889, #35898.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

@lawrencecchen

Copy link
Copy Markdown
Contributor Author

Review (independent review subagent, Claude): SHIP at c74c1d6

Same guard as git_seed/secrets.rs since #32091 (EILSEQ on macOS only; any other error or OS still fails; Linux assertions unchanged; libc is a normal dependency of both crates). No product code here is OS-gated; on APFS a non-UTF-8 name cannot be written, so no macOS coverage is lost; Linux covers the logic. Read only; no build or test by the reviewer.

This branch was previously deployed

1 inactive deployment
ci-routing-agent — c74c1d6c Deployed Nov 4, 2026 by lawrencecchen via cmux-tui tree preflight #113144
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-land Reviewed at this head; next-autoland merges it into feat-cmux-next when its only reds are base reds risk:low Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant