Skip to content

feat(cli): add progress bars to tool pack and improve UX#97

Merged
appcypher merged 1 commit intomainfrom
appcypher/pack-progress-bars
Feb 6, 2026
Merged

feat(cli): add progress bars to tool pack and improve UX#97
appcypher merged 1 commit intomainfrom
appcypher/pack-progress-bars

Conversation

@appcypher
Copy link
Copy Markdown
Member

Summary

  • Add real-time progress indicators for tool pack with visual feedback during bundle creation
  • Show scrolling file names while packing single bundles, parallel progress bars for multi-platform packing
  • Add validation warning W018 for script names that conflict with built-in subcommands
  • Improve Windows compatibility for shell command execution
  • Update README with expanded feature list

This improves the developer experience by providing visual feedback during potentially long-running pack operations, making it clear what files are being processed and how far along the operation is.

Changes

Progress System (lib/pack.rs, lib/handlers/tool/pack_cmd.rs):

  • Add PackProgress enum with Started, FileAdded, and Finished variants
  • Add ProgressCallback type and on_progress field to PackOptions
  • Refactor pack_bundle and pack_bundle_for_platform to emit progress events
  • Add extract_icon option to control icon file creation (pack vs publish)

Pack Command UI (lib/handlers/tool/pack_cmd.rs):

  • Single bundle mode: progress bar with 3 scrolling file names below
  • Multi-platform mode: parallel progress bars per platform (no file names)
  • Add validation spinner for strict mode

Script Name Validation (lib/validate/validators/scripts.rs - NEW):

  • Add W018 warning code for reserved script names
  • Validate script names don't conflict with built-in subcommands (init, install, run, etc.)
  • Integrate into manifest validation pipeline

Windows Compatibility (lib/handlers/tool/detect_cmd.rs, lib/handlers/tool/scripts.rs):

  • Use cmd /C on Windows instead of sh -c for shell execution

Documentation (README.md):

  • Add expanded feature list with icons

Test Plan

  • Run cargo build to verify compilation
  • Run cargo test --lib pack:: to verify pack tests pass
  • Test single bundle packing: tool pack <path> - should show progress bar with scrolling files
  • Test multi-platform packing: tool pack --multi-platform <path> - should show parallel progress bars
  • Test strict validation: tool pack --strict <path> - should show validation spinner
  • Verify no icon files are created by tool pack (only tool publish should create them)

Add real-time progress indicators for bundle creation with scrolling
file names display. The packing system now emits progress events that
enable visual feedback during bundling operations.

Key changes:

- Add PackProgress enum and ProgressCallback for progress reporting
- Single bundle mode shows progress bar with scrolling file names
- Multi-platform mode shows parallel progress bars per platform
- Add extract_icon option to control icon file creation (pack vs publish)
- Add validation spinner for strict mode

Additional improvements:

- Add W018 warning for script names that conflict with built-in
  subcommands (init, install, run, etc.)
- Add Windows compatibility for shell command execution in detect
  and scripts handlers (cmd.exe vs sh)
- Update README with expanded feature list and icons
@appcypher appcypher merged commit 38654f5 into main Feb 6, 2026
6 checks passed
appcypher added a commit that referenced this pull request Feb 6, 2026
Changes since v0.1.13:

Features:
- Add progress bars to tool pack with improved UX (#97)
- Add --json and --concise support to tool config get (#95)
- Add OpenCode as supported MCP host (#94)
- Add tool config list <ref|path> command (#93)
- Implement all template functions and auto-install local tools (#91)

Fixes:
- Pass Authorization header from manifest to HTTP transport (#96)
- Fix OAuth re-authentication flow (#93)
- Correct config path derivation for path-resolved tools (#92)
appcypher added a commit that referenced this pull request Feb 6, 2026
Changes since v0.1.13:

Features:
- Add progress bars to tool pack with improved UX (#97)
- Add --json and --concise support to tool config get (#95)
- Add OpenCode as supported MCP host (#94)
- Add tool config list <ref|path> command (#93)
- Implement all template functions and auto-install local tools (#91)

Fixes:
- Pass Authorization header from manifest to HTTP transport (#96)
- Fix OAuth re-authentication flow (#93)
- Correct config path derivation for path-resolved tools (#92)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant