UNPKG

@ably/cli

Version:

Ably CLI for Pub/Sub, Chat and Spaces

526 lines (346 loc) 17 kB
# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [0.15.0] - 2025-12-03 ### Added - Public Preview version notice displayed across all CLI modes - Release status information to version command ### Changed - Improved support commands for web CLI mode with proper link display - Consolidated terminal connection logic to prevent duplicate WebSocket connections - Refactored exit handling for more consistent behavior across commands ### Fixed - Fixed spaces cursors `get-all` command hanging issue - Fixed chat occupancy `get` command hanging issue - Fixed initial command execution in split terminal mode - Fixed initial command being sent when resuming sessions - Prevented duplicate WebSocket connections in terminal server - Improved command cleanup and exit code handling ### Development - Added `.env` to `.gitignore` to prevent committing secrets - Applied Prettier formatting across entire codebase and enforced in CI - Centralized chat command cleanup logic - Removed obsolete test scripts and dependencies on Sinon - Improved test mode detection using `isTestMode()` helper - Fixed various flaky e2e and integration tests ## [0.14.0] - 2025-10-23 ### Changed - Bumped the `@ably/chat` version to 1.0.0 - Renamed the `roomId` parameter for `rooms` commands to `room` for consistency. ## [0.13.0] - 2025-09-10 ### Fixed - Setting the `--endpoint` flag or `ABLY_ENDPOINT` environment variable correctly sets the endpoint SDK client option - Setting the `ABLY_CONTROL_HOST` environment variable correctly sets the Control API client hostname ### Added - Add `ablyEndpoint` and `ablyControlHost` props to the AblyCliTerminal react component ## [0.12.0] - 2025-08-31 ### Fixed - Enhanced auth info display functionality to only hide when API key or token is explicitly provided (#81) - Updated auth info tests to support async methods for improved consistency - Resolved security vulnerability by updating @types/node-fetch to fix form-data dependency issue - Added missing `await` keywords for async `showAuthInfoIfNeeded` calls throughout codebase - Fixed "Unknown App" display issue by fetching and caching missing app names dynamically - Improved interactive mode test assertions to expect `>` prompt instead of `$` - Ensured correct default behavior in configuration handling ### Changed - Refactored auth info display based on code review feedback for cleaner implementation - Updated interactive mode prompt from `$` to `ably>` for better brand consistency (#54) ### Improved - Web CLI tests now use TERMINAL_SERVER_URL environment variable for better test configuration - Enhanced repository URLs to match new repository name across documentation ## [0.11.0] - 2025-08-08 ### Added - Added an AI_START_HERE.md file. ### Changed - For chat rooms, `rooms messages get` is now `rooms messages history` ### Fixed - Runtime errors now return more useful error messages when environment variables are not set. - Fixed spaces cursor connection stability issues. - Fixed various Web CLI terminal connection and UI issues. ### Improved - Improved the terminal session and resume stability in message handling. - Improved functionality of the API key selection flow. - Improved AI assistant instructions. ## [0.10.0] - 2025-07-24 ### Added - Added `endpoint` option, to allow use with custom endpoints and dedicated environments. ### Changed - For chat rooms, `rooms messages reactions add` is now `rooms messages reactions send` ### Fixed - Race conditions in session storage to ensure smoother reconnection and consistent handling ## [0.9.0] - 2025-07-07 ### Added - Interactive mode improvements: - Added helpful feedback when typing "ably" in interactive mode - Improved welcome messages across all CLI modes - Enhanced help display and SIGINT handling in interactive mode - Allow help command in interactive mode - WebSocket control message prefix protocol client implementation - Hidden test:wait command for testing purposes - Multi-project workspace documentation improvements ### Changed - Restructured help system and promoted support commands - Improved Ctrl+C handling during command execution - Updated help instruction in interactive mode - Enhanced anonymous mode command restrictions in web CLI ### Fixed - Prevented terminal clearing in interactive mode and web terminals - Fixed handling of binary WebSocket messages in client - Resolved test failures in CI - Fixed interactive mode tests and documented exit codes ## [0.8.2] - 2025-06-25 ### Fixed - Web CLI help command now properly displays help content when using `--help` flag - Fixed padding issue that was cropping the bottom line of the terminal in Web CLI - Resolved race condition in React Web CLI sessionId tests for better test reliability - Fixed flaky test timing issue in manual reconnect test ## [0.8.1] - 2025-06-24 ### Added - Enhanced Web CLI mode restrictions with separate handling for authenticated and anonymous users - Authenticated users can now access control plane commands (e.g., `auth:keys:list`, `apps:list`) - Anonymous users are restricted from privacy-sensitive and authentication-required commands - Wildcard pattern support for command restrictions (e.g., `config*`, `mcp*`) - Clearer error messages that guide users to appropriate actions (login or install locally) ### Fixed - Domain-scoped credential storage for enhanced security - React Web CLI unit test failures - CI reliability improvements around rate limits - Web CLI mode now properly differentiates between authenticated and anonymous states ### Security - Credentials are now properly scoped per domain, preventing cross-domain credential access - Anonymous Web CLI users cannot access commands that might expose other users' activity ## [0.8.0] - 2025-06-20 ### Changed - Refactored client creation methods to provide type-specific alternatives - Deprecated `createAblyClient()` method in favor of: - `createAblyRestClient()` - Returns `Promise<Ably.Rest | null>` - `createAblyRealtimeClient()` - Returns `Promise<Ably.Realtime | null>` - This eliminates the need for type casting and improves type safety - All 50+ command files updated to use the appropriate method - All test files updated to match new method signatures ### Added - Web CLI authentication support with credential validation UI - Auto-update notifications to inform users about new CLI versions - Auto-completion support for improved command discovery - Standardized topic command display with `BaseTopicCommand` - Restricted mode for Web CLI to handle anonymous users - User agent header (`ably-cli`) in all data and control plane requests - Reconnection attempt counter that resets on manual reconnect - Line break between countdown and install instructions in reconnection display ### Fixed - Presence CLI regression where commands were not working correctly - Meta channel names for connection lifecycle logs (now use `[meta]connection.lifecycle`) - Multi-line JSON handling in connection lifecycle tests - E2E test failures for web-cli application with proper authentication scenarios - Playwright E2E tests for rate limiting and server disconnection scenarios - Credentials no longer baked into test builds - Various linting errors across the codebase - Consistent authentication recommendations when not logged in - Help and list commands now have standardized output format ### Removed - Obsolete TODO comments that have been completed - Old test skip logic that was no longer needed ## [0.7.7] - 2025-06-14 ### Fixed - Updated React Web CLI README to reflect server separation - Default to public CLI endpoint in development ### Changed - Updated GitHub Actions to use checkout@v4 - Added release workflow for automated releases - Updated CONTRIBUTING.md with release workflow documentation ## [0.7.6] - 2025-06-14 ### Fixed - Ensured README is properly visible in npm package ## [0.7.5] - 2025-06-14 ### Fixed - Explicitly linked to README in npm package configuration ## [0.7.4] - 2025-06-14 ### Fixed - Resolved npm package publishing issues ### Removed - Cleaned up old Markdown files ## [0.7.3] - 2025-06-14 ### Fixed - Fixed global installs that were broken by npm link issues ## [0.7.2] - 2025-06-14 ### Fixed - Included README in npm package ## [0.7.1] - 2025-06-13 ### Fixed - Initial patch release after v0.7.0 with minor fixes ## [0.7.0] - 2025-06-13 ### Security - Fixed critical security vulnerabilities in dependencies: - Updated `brace-expansion` to 1.1.12+ and 2.0.2+ to fix ReDoS vulnerability - Updated `tar-fs` to 2.1.3+ to fix directory traversal vulnerability - Applied pnpm overrides to enforce secure versions across all transitive dependencies ### Changed - **BREAKING**: Complete removal of all server-related code from git history - Git history has been rewritten to remove all traces of terminal server implementation - Repository size reduced by 71% (from 68MB to 20MB) - All old branches and tags that referenced server code have been removed - Contributors will need to re-clone the repository after this update ### Fixed - Fixed environment-dependent test skips by correcting environment variable names - Updated .env.example to remove obsolete variables - Ensured all tests run consistently in CI environments ### Added - Added placeholder file (server/REMOVED.md) to indicate server code has been moved - Added comprehensive documentation for the server migration process ### Removed - Removed all server-related files from git history including: - Server directory and all its contents - Docker configurations - Terminal server scripts - Server-specific tests and documentation - Removed unnecessary test skip logic that was checking for environment variables ## [0.6.0] - 2025-06-12 ### Changed - **BREAKING**: Terminal server functionality has been moved to a separate private repository (`@ably/cli-terminal-server`). - Removed server-specific dependencies and configurations - Updated documentation to reflect the separation - Web CLI now connects to the production endpoint `wss://web-cli.ably.com` by default ### Added - Instructions in CONTRIBUTING.md for Ably engineers to test against local terminal server ### Removed - Server directory and all terminal server implementation code - Server-related test files that were specific to server implementation ### Notes - The terminal server is now maintained in a private repository - Web CLI functionality remains fully operational using the production terminal server endpoint - For local development against terminal server, see CONTRIBUTING.md ## [0.5.0] - 2024-05-15 ### Added - Enhanced Web CLI with improved connection status display and animations. - Support for Docker container development with `pnpm dev:container`. - Improved bench tooling for performance testing. - Self-contained connection-status overlay with tests for Web CLI. - Postinstall notice for better user experience. - Support for `--filter` option to the pnpm test runner. - Split-screen support planning in terminal. - Defer first WebSocket connection until terminal is visible. - Add inactivity timeout for web connections. - New convenience development commands. ### Changed - Improved UI styling and state persistence in Web CLI. - Enhanced example UI with integrated CliDrawer component. - Optimized prepare script to avoid redundant build steps. - Improved specificity for terminal server connection resume functionality. - Switched from npm to pnpm as the preferred package manager. - Web CLI no longer reconnects automatically for idle connections. - Silenced React terminal noise and added opt-in debug logging. ### Fixed - Addressed numerous CI and build issues. - Fixed flakey tests in various test suites. - Resolved CPU issues with Ora spinner. - Fixed restricted shell parsing error. - Resolved history command issue with API key environment variable and silent failures. - Fixed terminal issues related to color support in Docker containers. - Improved reconnection stability. - Fixed hijack messages leaking into terminal interface. - Fixed TypeScript errors in Web CLI e2e tests. - Made Docker capability tests compatible with different Docker API versions. - Resolved React unit test drift from implementation. - Fixed package mismatch issues. - Removed messageId argument from room reactions. ## [0.4.0] - 2024-04-28 ### Added - Comprehensive AI Assistance guidelines (`.cursor/rules/AI-Assistance.mdc`). - Mandatory development workflow definition (`.cursor/rules/Workflow.mdc`, `CONTRIBUTING.md`). - Detailed `Debugging.md` and `Troubleshooting.md` guides in `docs/`. - Formalized `CONTRIBUTING.md` in the root directory. ### Changed - Significantly restructured and enhanced `docs/Testing.md` with clear strategies, examples, and folder structure. - Refactored `.cursor/rules/` for clarity, consistency, and improved AI guidance. - Updated `README.md` to link to new contribution and workflow documents. - Standardized documentation file naming (`Title-Case-With-Hyphens.md`). - Simplified `Product-Requirements.md`. ### Fixed - Persistent failures in Web CLI Playwright E2E tests related to incorrect WebSocket URL usage (`examples/web-cli/src/App.tsx`). - Corrected inaccurate release dates in previous `CHANGELOG.md` entries. - Minor typos and formatting inconsistencies in documentation. ## [0.3.4] - 2025-04-20 ### Added - Apache 2.0 LICENSE file. - Project Structure documentation. - `.editorconfig` for IDE formatting consistency. - Initial test strategy and proposed test coverage. ### Changed - Improved terminal server with timestamps in logging. - Enhanced error handling in `AblyCliTerminal.tsx`. - Improved project documentation organization and clarity. - Applied consistent formatting across all files via `.editorconfig`. ### Fixed - Terminal server regressions following TypeScript/lint fixes. - React mismatch issues in Web-CLI. - Fixed variable redeclaration in `channel-rules/update.ts`. - Ensured bottom line of terminal is always visible and resize works correctly. - Fixed dependency issues in `package.json`. - Various linting errors. ## [0.3.3] - 2025-04-19 ### Fixed - Dependency update (vite 6.2.4 to 6.2.6). - Various linting issues and improvements across the codebase. - Ensured test runs are supported with GitHub Actions. - Improved consistency of `process.exit()` usage (using `this.exit()`). - Fixed `unicorn/no-array-push-push` linting error. ### Added - ESLint v9 compatibility and standardized configuration. - Mocha support for testing framework. - "Did you mean" functionality for command suggestions via `command_not_found` hook. ### Changed - Updated oclif dependencies for consistency. ## [0.3.2] - 2025-04-14 ### Added - Support for `--verbose` logging flag. - MCP Server section to `README.md`. ### Fixed - Formatting in `Product-Requirements.md`. ## [0.3.1] - 2025-04-11 ### Added - Experimental Model Context Protocol (MCP) server (`src/mcp/mcp-server.ts`). ### Fixed - Bug in Control API access for MCP server. - Dependency update (vite 6.2.4 to 6.2.5). ## [0.3.0] - 2025-04-11 ### Added - React Web CLI component (`packages/react-web-cli`). - Terminal server for Web CLI (`scripts/terminal-server.ts`). - Example Web CLI implementation (`examples/web-cli`). - Standardized stats display service (`src/services/stats-display.ts`). - `--web-cli-help` command. ### Changed - Standardized CLI command status reporting. - Improved help command intuitiveness. - Refactored handling of interactive commands and history in Web CLI. - Updated Cursor rules to reference `Product-Requirements.md`. - Improved build dependability. ### Fixed - Various bugs related to Web CLI (Ctrl-C handling, prompt behavior, history). - Prevented exit from terminal with Ctrl-C (SIGINT) in Web CLI server. ## [0.2.6] - 2025-04-01 ### Added - `ably apps switch` command. ### Changed - Improved handling of missing API keys and access tokens. ### Fixed - Added missing `switch` command to `ably apps` topic help. ## [0.2.5] - 2025-04-01 ### Added - Screenshot to `README.md`. ### Changed - Improved welcome screen with ASCII logo and colorization. ### Fixed - Ensured alias commands show errors for invalid requests. ## [0.2.4] - 2025-03-31 ### Added - Ably AI Agent integration (`ably help ask`). - Support for follow-up questions (`--continue`) with the AI agent. - `ably help contact`, `ably help support`, `ably help status` commands. ### Changed - Ensured consistent help output when topic commands are called without subcommands. - Improved alias handling and error display for invalid commands. ### Fixed - Ensured `--control-host` argument works for all commands. - Replaced colons with spaces in `ably channels occupancy` and `