test(cmux-tui): tree-publish-v2 stub accepts --conflict-exit-code (base red)

Merged
TE
23d ago
+6-1

Summary

This fixes one of the two feat-cmux-next base reds, in the "Script tests" step of cmux-next checks.

  • The red: scripts/cmux-next/tests/tree-publish-v2.test.sh fails on every head with upload-r2-object.py: error: unrecognized arguments: --conflict-exit-code 75.
  • Cause: since af8b68ebc8f9 (cx-a1q4d), publish-cmux-tui-tree.py passes --conflict-exit-code for source.json. The real scripts/ci/upload-r2-object.py accepts that flag, but the stub uploader inside the test doesn't.
  • Fix: the stub now accepts the flag. When a write-once object exists with other bytes, it exits with that code, the same way the real uploader does. Production code is unchanged.

The other base red, the PaneAnimationsSetting package-conventions lint, belongs to op-next-cmdclick.

Verification

I ran bash scripts/cmux-next/tests/tree-publish-v2.test.sh on base 13081c2eb446 and on this branch:

  • Red, on base: exit 1, unrecognized arguments: --conflict-exit-code 75.
  • Green, with this change: exit 0, tree-publish-v2 tests: ok.

Changelog

none

🤖 Generated with Claude Code


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


Summary by cubic

Fixes the tree-publish-v2 script tests failing on every feat-cmux-next head because the test stub for upload-r2-object.py rejected the --conflict-exit-code flag that publish-cmux-tui-tree.py now passes.

  • The stub uploader now accepts --conflict-exit-code and exits with that code when a write-once object differs, matching the real uploader's behavior.
  • Production code is unchanged.