The bug: When pypi-publish-agent is called via workflow_call from
bump-version, github.event_name is "workflow_dispatch" (inherited
from parent), NOT "workflow_call". This caused the code to check
github.event.inputs.version (empty) instead of inputs.version (0.4.44).
The fix: Check inputs.version first, before checking event_name.
This works correctly for:
- workflow_call: uses inputs.version
- Tag push: extracts from tag
- workflow_dispatch with version param: uses inputs.version
- workflow_dispatch event UI: uses event.inputs.version
Debug output showed:
- Event name: workflow_dispatch
- Input version: 0.4.44 (correct!)
- Workflow dispatch version: (empty)
- Final VERSION= (bug - used wrong source)
Now it will use inputs.version first, giving VERSION=0.4.44.
Fixes: https://github.com/trycua/cua/actions/runs/19483269380🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added debug logging at every stage of version passing to identify
where the version parameter is being lost:
1. bump-version job: Verify agent_version output is set correctly
2. pypi-publish-agent prepare job: Show inputs.version and verify
the get-version step output
3. pypi-reusable-publish: Already has debug showing empty version
Debug output will show:
- Event name and workflow trigger type
- Input version values at each stage
- Step output values
- Final version passed to reusable workflow
This will pinpoint exactly where the version parameter becomes empty
in the workflow_call chain.
Related: Previous debug showed "Expected version: " (empty)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added comprehensive debugging to diagnose why get_pyproject_version.py
is not receiving arguments correctly after git reset.
Changes:
- Added debug output showing current directory, GITHUB_WORKSPACE, and paths
- Changed pyproject.toml path to use absolute path with GITHUB_WORKSPACE
- Added ls commands to verify files exist before running script
- This will help identify if the git reset is affecting path resolution
The error shows the script's usage message, indicating arguments
aren't being passed correctly. The debug output will reveal why.
Related: https://github.com/trycua/cua/actions/runs/19482970320🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add explicit git fetch and reset after checkout to guarantee
workflows get the most recent main branch commits, including
version bumps pushed by the bump-version workflow.
The issue: When using workflow_call, even with ref: main, GitHub
Actions may use a cached repository state from workflow run start.
This caused version consistency checks to fail because the checkout
didn't include the just-pushed version bump.
Solution: After checkout, explicitly fetch and reset to origin/main
to ensure we have the absolute latest code. Added logging to show
the current commit for debugging.
Fixes: https://github.com/trycua/cua/actions/runs/19482970320🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Ensure publish workflows check out the main branch to get the
latest bumped version after the bump-version workflow pushes changes.
Previously, workflows were checking out the SHA at trigger time,
which didn't include the version bump committed by bump-version job.
This fixes the "Verify version consistency" step failure where the
expected version didn't match the pyproject.toml version.
Related to: https://github.com/trycua/cua/actions/runs/19482814921🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Replace heredoc-based Python script with inline command to fix
exit code 2 error in the "Capture bumped agent version" step.
The heredoc syntax with indented EOF marker was causing issues
in GitHub Actions. Simplified to a single-line Python command.
Fixes: https://github.com/trycua/cua/actions/runs/19482457144🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add introducing-cua-cli.md blog post following the Windows/macOS announcement style
- Update CLI sandbox command to use sandbox.cua.ai domain instead of containers.cloud.trycua.com
- Update all documentation references to use new sandbox.cua.ai domain
- Maintain consistency with Python SDK which already uses sandbox.cua.ai
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Register grouped commands (auth, sandbox/sb) first so they appear at top of help
- Hide flat commands from help using describe: false while maintaining functionality
- Fix remaining --configuration references in docs (should be --size)
- Improves help clarity by showing recommended command structure prominently
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Enhance help text throughout the CLI to make commands more discoverable
and their purposes clearer. Better descriptions help users understand
what each command does without consulting documentation.
Changes:
- Update main command descriptions:
- 'cua auth': "Authenticate with CUA (login, logout, or export credentials)"
- 'cua sb': "Create and manage cloud sandboxes (Linux, Windows, or macOS)"
- Improve auth subcommand descriptions:
- login: "Authenticate via browser or API key and save credentials locally"
- env: "Export your API key to a .env file in the current directory"
- logout: "Clear stored API credentials from this machine"
- Enhance sandbox subcommand descriptions:
- list: "List all your sandboxes with status and connection details"
- create: "Provision a new cloud sandbox in your chosen OS, size, and region"
- delete: "Permanently delete a sandbox and all its data"
- start: "Start a stopped sandbox"
- stop: "Stop a running sandbox (data is preserved)"
- restart: "Restart a sandbox (reboot the system)"
- vnc: "Open remote desktop (VNC) connection in your browser"
- Expand epilogue to show command hierarchy with examples
- Replace generic descriptions with action-oriented, specific language
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add epilogue to help output that clarifies the recommended command structure
(grouped commands like 'cua auth' and 'cua sb'). While flat commands remain
available for backwards compatibility, the help now clearly guides users toward
the more organized grouped command style.
Changes:
- Add usage and epilogue text to cli.ts explaining grouped command structure
- Mark flat commands as hidden (though yargs doesn't fully respect this for top-level commands)
- Add type annotations to command builders to fix TypeScript errors
- Epilogue shows recommended patterns: 'cua auth <command>' and 'cua sb <command>'
- Include docs link for more information
The help output now clearly distinguishes between available commands and
recommended command patterns, reducing confusion while maintaining full
backwards compatibility.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add support for grouped auth command structure (cua auth login/env/logout)
while maintaining backwards compatibility with flat commands (cua login/env/logout).
Update all documentation to prefer the more explicit grouped style.
Changes:
- Refactor auth.ts to support both flat and grouped command structures
- Extract auth command handlers for reuse (loginHandler, envHandler, logoutHandler)
- Add "cua auth" command group with login/env/logout subcommands
- Update quickstart to use "cua auth login" instead of "cua login"
- Update CLI index.mdx and installation.mdx to use grouped style
- Update commands.mdx to show grouped style as primary with flat as alternative
- Update README.md to document both command styles
- Update error messages and examples to use grouped style
Both command styles work identically - users can choose based on preference.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>