Release v1.1.0 - #24
Merged
Merged
Conversation
Release v1.0.7 (#19) * ci: remove back-merge main to develop step Remove the back-merge step that automatically synced changes from the main branch to develop after a release. This eliminates the complex automatic conflict resolution logic that tried to merge or force-resolve merge conflicts. Simplifies the release workflow by avoiding potentially risky forced pushes to develop and reduces complexity in the CI process. * Merge back Release v1.0.6 (#17) (#18) Release v1.0.6 (#17) * chore: add .npmignore for cleaner npm package * chore(package): update bin path and repository url syntax Add the .claude directory to npm ignore to exclude development files. Improve package.json metadata by correcting repository URL format to use the git+ protocol and adjusting the CLI binary path to avoid a leading relative path indicator, ensuring better compatibility with package tools. * feat: implement automated release workflow - Add master release workflow triggered from develop branch - Integrate DXT packaging into main CI workflow - Remove redundant release-dxt.yml workflow - Update semantic-release config to disable npm publishing - Add comprehensive release documentation with secrets guide - Implement full GitFlow automation with back-merging This allows contributors to release new versions with a single workflow trigger from the develop branch. The process automatically: 1. Creates release branch with version updates 2. Opens PR to main 3. After merge: publishes to npm, creates GitHub release with DXT 4. Back-merges to develop * feat: extend CI workflow to run on every push to main branches - Rename workflow to ci-code-quality.yml - Run on both pull requests AND pushes to main/develop - Adjust PR-specific features to only run on PRs - Update summaries to reflect branch vs PR context This ensures code quality on all commits to protected branches. * chore: add missing newline at end of config file * fix: add workflow permissions and create CHANGELOG.md - Add explicit permissions for contents and pull-requests in release workflow - Create initial CHANGELOG.md for version tracking - Fix 403 error when creating PRs from GitHub Actions * feat: add pre-commit hooks for formatting and linting - Configure husky to run pre-commit hooks - Add lint-staged to run biome format and lint on staged files - Ensures code quality before commits * fix: update release workflow to handle GitHub Actions PR permissions - Add support for GH_PAT as alternative to repository permissions - Document required GitHub repository settings in RELEASING.md - Add troubleshooting for 403 PR creation errors - Fix lint-staged to only process supported file types * fix: use GitHub CLI for PR creation to avoid permissions issue - Replace github-script with gh CLI for more reliable PR creation - Update documentation for fine-grained token permissions - Add pull request write permission requirement * chore: remove redundant source file ignores from ignore configs Remove obsolete ignore rules for source and script directories in ignore files to simplify project configuration and avoid conflicts with actual publishing logic. This clarifies which files are included during packaging and syncing, ensuring ignore files remain minimal and accurate. * ci: use environment vars for signing certificates Modify the CI workflow to pass signing certificates via environment variables instead of referencing secrets directly in the script. This improves readability and consistency in handling sensitive data during the release process. Minor whitespace cleanups and formatting adjustments are also included for better maintainability. * ci: update dxt command and remove signature verification Replace signature verification step with cleaning the package in the CI workflow to streamline the process. Remove redundant signature verification from the signing script to simplify signing and reduce failure points. Delete the now-unused `.dxtignore` file that listed excluded files for the DXT package. * refactor(logger): defer logger initialization and file setup Improve startup performance and avoid module-level side effects by lazily initializing loggers and deferring log file creation until the first log event. Streamline logger initialization by centralizing file logging setup and replacing synchronous early setup with on-demand initialization. This enhances reliability and reduces unnecessary I/O during import phases. Also apply lazy logger instantiation to domain-related modules for consistent behavior and safer side effect management. * Deployment: Dockerfile and Smithery config (#6) This PR adds files for deploying your MCP server on Smithery. After deployment, users can use your server over streamable HTTP (hosted on [Smithery](https://smithery.ai)) without needing to install any dependencies. ### Changes - Added **Dockerfile** to package your server for deployment. - Added **Smithery Configuration** file to specify how to start your server. See [documentation](https://smithery.ai/docs/build/deployments). - Updated **README** to include installation command via Smithery. _Note that the command only works after the server is deployed on Smithery._ ### Server Details - **Smithery ID**: `@AbdallahAHO/lokalise-mcp` - **Server Homepage**: [https://smithery.ai/server/@AbdallahAHO/lokalise-mcp](https://smithery.ai/server/@AbdallahAHO/lokalise-mcp?utm_campaign=pr&modal=claim) ### Action Items - [X] **Build Passing**: We verified that the Docker builds and your server starts up using an automated test. - [ ] **Code Review**: Please review the changes to ensure the configuration is accurate for your server. *These files were automatically generated and tested by Smithery* --------- * Update smithery.yaml * feat(config): add MCP initialization config handling and prioritization (#12) Introduce a handler extracting configuration from MCP client info during initialization, enabling dynamic config setup based on client-provided data. Update configuration loader to prioritize MCP init config over environment variables and other sources, ensuring runtime flexibility and seamless integration with MCP clients. Add comprehensive tests verifying MCP config precedence, boolean parsing, nested config handling, and hostname extraction. * ci: improve back-merge handling in release workflow - Add proper error handling for merge conflicts - Create PR automatically if conflicts occur - Use proper git fetch and checkout commands - Add GH_TOKEN for PR creation * refactor: reorder exports to improve consistency Adjust export statements in the transport module to maintain consistent ordering and grouping. Also tidy up import order in several modules for improved readability and alphabetical consistency, such as reordering imports in the contributors service and keys controller. These changes focus on code style and maintainability without affecting runtime behavior. * feat(usergroups): add complete user group management domain Implement full user groups management including CLI commands, MCP tools, and MCP resources to enable listing, retrieving, creating, updating, deleting, and managing members and projects within user groups. - Introduce domain exports and types with comprehensive Zod validation schemas - Add controller layer handling input validation, error processing, and formatting - Build service layer interfacing with Lokalise User Groups API for actual data operations - Create detailed Markdown formatters for human-readable output of API responses - Provide CLI commands for seamless command-line interaction and automation - Register MCP tools exposing user group operations to the MCP server - Register MCP resources enabling resource-based access to user groups via URI schemes This modular setup establishes a robust user groups domain supporting team-based permission management and integration with Lokalise platform workflows. * feat(teamusers): add domain with CLI, service, controller, formatter, and MCP tools Introduce a new domain for managing Lokalise team users including: - CLI commands for listing, retrieving, updating, and deleting team users. - Controller layer with validation and error handling. - Service layer integrating Lokalise API for team user operations. - Formatting of responses into readable markdown. - MCP resource and tool registration supporting API and interactive usage. Establishes a foundation for consistent and extensible team user management within the system. * feat(queuedprocesses): add domain for monitoring async operations Introduce a new queuedprocesses domain to support tracking and managing background asynchronous processes within Lokalise projects. This includes: - CLI commands for listing and retrieving queued process details with validation - Controller layer for input validation, error handling, and response formatting - Rich Markdown formatters presenting process status, details, and summaries - Service layer encapsulating API communication with Lokalise SDK - MCP resources enabling resource-based access to queued processes data - Tools integration for MCP server with typed argument schemas and error handling - Comprehensive TypeScript types and guards aligned with Lokalise SDK v9.0.0+ This domain provides a structured and user-friendly way to monitor various async tasks such as file uploads, downloads, project imports/exports, improving observability and operational control. Closes #N/A * refactor(prompts): expand and restructure MCP prompts with detailed schemas Rebuilds the MCP prompt registration to provide comprehensive, structured workflows for Lokalise operations using explicit, XML-like instructions aligned with Claude 4 best practices. - Replaces previous prompts with extensively detailed prompts covering project management, language localization, key management, tasks, workflows, team collaboration, compliance, and advanced workflows. - Introduces strict Zod schemas defining argument validation and user-friendly parameter naming to improve usability and robustness. - Enhances prompt guidance with stepwise instructions, context, and output formats to standardize responses and improve clarity. - Enables parallel execution hints and comprehensive analysis steps for efficiency and thorough reporting. - Adds new complex workflows including file upload review, team onboarding, automated review pipelines, process monitoring, and translation memory import. This refactor significantly improves maintainability, clarity, and feature coverage of prompts, setting a foundation for scalable, user-friendly automation workflows within the MCP environment. * feat(prompts): add workflows for post-upload and document extraction reviews Introduce two new review workflows to improve translation task management: - Add post-upload review workflow enabling creation of language-specific review tasks for files already uploaded to the platform with flexible assignee mapping and optional confirmation prior to task creation. - Add document extraction review workflow that parses raw document content into translation keys, creates them in bulk, and sets up translation tasks with language-based assignee assignments. Additionally, enhance key listing functionality by supporting filename-based filtering to precisely select keys associated with specific files, improving task scope accuracy. These additions streamline review and translation setup processes for files and document content, reducing manual overhead and enhancing assignment flexibility. * docs: update documentation Provides a detailed, code-verified guide summarizing full MCP server capabilities including 11 completed domains, 59 tools, 21 resources, and 17 workflow prompts. Enhances project documentation with updated architecture, usage examples, domain interfaces, and best practices to support scalable development and onboarding. Updates metadata and readme to reflect latest feature set and expanded domain coverage. * chore(release): prepare release v1.0.4 * feat(bin): add CLI wrapper and update install scripts Implement a new CLI wrapper script as the package's bin entry point to ensure consistent and flexible server startup across global installs, local setups, and npx usage. Enhance the postinstall script to robustly set executable permissions on both the new CLI wrapper and the existing dist entry point, improving cross-platform reliability. Add metadata fields and files array to package configuration for better package management and publishing hygiene. Expand README with detailed instructions for global and npx usage to clarify recommended installation and running workflows for users. * ci: improve back-merge strategy from main to develop Update the back-merge process in CI to use the "theirs" merge strategy, automatically resolving conflicts by favoring changes from the main branch during merges into develop. Add a fallback force-resolution approach that resets develop and force-pushes a merge result when automatic conflict resolution still fails, improving merge reliability and reducing manual intervention. This ensures smoother synchronization after releases and minimizes blocked workflows. * refactor(tasks): enhance task formatting and error handling Improve task list and detail formatting by adding comprehensive fields such as progress, keys, words, and source language to provide richer task snapshots. Introduce detailed language assignment formatting including user and group listings with leverage info. Refactor error handling in task tool functions to return formatted errors instead of throwing, enhancing robustness and consistent error propagation. These changes improve clarity and completeness of task reporting and stabilize task tool error flows. * ci: remove back-merge main to develop step Remove the back-merge step that automatically synced changes from the main branch to develop after a release. This eliminates the complex automatic conflict resolution logic that tried to merge or force-resolve merge conflicts. Simplifies the release workflow by avoiding potentially risky forced pushes to develop and reduces complexity in the CI process. * chore(release): prepare release v1.0.6 --------- * feat(projects): add initial languages support on project creation Add support for specifying initial languages when creating a project. If no explicit languages are provided, default to including the base language as an initial language when it differs from English. Update request validation schema to accept an optional languages array, improving flexibility and correctness in project language initialization. * refactor(keys): unify key name display logic into helper function Extract key name formatting into a single helper to ensure consistent rendering across different platforms and key listing functions. This enhances maintainability and avoids duplication by centralizing the logic that handles varied key name formats or missing values. * test(tasks): add fixtures and extensive formatter tests Add comprehensive test fixtures representing various task scenarios including lists, pagination, creation, retrieval, and deletion states. Introduce detailed snapshot tests for task formatting to cover rich metadata, language assignments, due date handling, edge cases (nulls, invalid dates, long content), and markdown escaping. Implement a helper for paginated results and mock current date/time for stable, repeatable test snapshots. Fix language code handling to safely support null/undefined values in formatter output. This improves test coverage and reliability for task domain formatting logic, facilitating better validation of output formatting and edge case handling. * test(projects): add fixtures and comprehensive formatter tests Introduce detailed test fixtures for project domain with realistic sample data covering list retrieval, pagination, creation, update, deletion, and emptying states. Add extensive snapshot-based tests for project formatter functions to verify correct handling of various scenarios including null/undefined fields, zero statistics, invalid dates, special characters, and very long names. Ensure stable and consistent test output by mocking Date to a fixed timestamp. These enhancements improve test coverage, reliability, and maintainability of project-related formatting and data handling logic. * test(keys): add fixtures and snapshot tests for keys formatting Introduce comprehensive test fixtures simulating various keys API responses and cursor pagination scenarios to enable robust testing of keys formatting. Add detailed snapshot tests covering key listing, retrieval, creation, update, deletion, bulk operations, and edge cases to ensure formatting consistency and handle nulls, special characters, long key names, comments, and screenshots. * chore(bin): update imports to use node: protocol and improve typings Update native module imports to use the explicit `node:` protocol for clarity and compliance with current Node.js standards. chore(scripts): silence unused error variable warning Rename unused error variable to underscore-prefixed to avoid linter warnings while maintaining silent failure behavior on chmod errors. chore(tsconfig): exclude fixtures and test files from the build Exclude test and fixture files from TypeScript compilation to streamline type checking and improve build performance. * chore(release): prepare release v1.0.7 --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: smithery-ai[bot] <194235850+smithery-ai[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Adjust the debug mode setting to disabled by default to avoid excessive logging for typical users. Also relax the requirement constraint to make enabling debug mode optional rather than mandatory.
Unify default values for date and ID fields in project and task fixtures to use consistent empty strings and zeros instead of undefined, reducing type ambiguities in tests. Cast nullable and undefined fields explicitly to expected types to improve type safety and avoid potential runtime errors during tests. Enhance mock paginated result fixture with additional pagination flags to better simulate real API responses. Adjust test snapshot to reflect due date formatting improvements. Overall, improve fixture reliability and maintainability for more robust testing.
Organize documentation by relocating guides and checklists into a dedicated docs directory for better structure. Remove the Smithery integration guide, reflecting its deprecation or migration elsewhere and streamlining the docs.
Remove references to a deprecated environment variable used for test detection. Simplify test environment checks by relying exclusively on the NODE_ENV variable, improving configuration clarity and reducing unnecessary condition branches.
Remove an outdated localization file to clean up the release artifacts and reduce clutter. This helps maintain a lean release package and avoids confusion with obsolete resources.
Add detailed documentation for test implementation, mocking, fixtures, domain specifications, and production readiness planning. Introduce a structured test assignment matrix to track priorities and responsibilities across domains and test layers to drive coverage from ~18% to 90%+. Provide best-practice patterns, example mocks, error handling strategies, pagination, bulk operations, and performance test specifications. Include a clear testing roadmap with phased goals, quality gates, and blocker resolution protocols to ensure systematic, maintainable test development. Enhance project readiness by linking testing efforts with security, performance, and compliance task planning. This foundational testing documentation supports coordinated team efforts for robust, scalable, and production-grade MCP coverage. Closes #N/A
Add detailed documentation for test implementation, mocking, fixtures, domain specifications, and production readiness planning. Introduce a structured test assignment matrix to track priorities and responsibilities across domains and test layers to drive coverage from ~18% to 90%+. Provide best-practice patterns, example mocks, error handling strategies, pagination, bulk operations, and performance test specifications. Include a clear testing roadmap with phased goals, quality gates, and blocker resolution protocols to ensure systematic, maintainable test development. Enhance project readiness by linking testing efforts with security, performance, and compliance task planning. This foundational testing documentation supports coordinated team efforts for robust, scalable, and production-grade MCP coverage. Closes #N/A
Introduce a comprehensive test scaffolding CLI tool for generating domain-layer specific test files interactively or via options, streamlining test creation and standardizing test structures. Improve the testing environment setup by configuring Jest to auto-load setup files, clear and restore mocks between tests, and enhance mock API utilities with detailed mock builders and fixture generators. Add robust error simulation utilities for common API error scenarios to enable more realistic and controlled test error handling. Enhance formatter tests to utilize mock builders and generated data, improving test coverage and reliability. Provide performance measurement and benchmarking utilities to assist in testing bulk operations and performance-sensitive code. Overall standardize and centralize test helpers, mocks, and fixtures to promote consistency and maintainability in the test suite.
Document completion of Phase 1 testing infrastructure with full validation and zero failing tests. Introduce comprehensive guides covering mock builder usage, troubleshooting, and new domain testing patterns. Update task assignments to reflect Phase 1 completion and coverage improvement. Add detailed reports and examples showcasing fluent API mock builders, date mocking consistency, error simulation, and scaffold automation. Enhance README with testing metrics and quickstart instructions to promote best practices and future domain test development.
Replace Jest with Vitest for testing framework to improve test speed and configuration flexibility. Remove Jest config and related dependencies. Update test scripts and utilities to use Vitest APIs instead of Jest. Add Vitest config with coverage and alias support, introduce Vitest UI dependency, and replace existing manual mocks with Vitest mocks. Enhance test setup with Vitest compatible globals and mocks for better developer experience. Bump package version to 1.0.7 to reflect these maintenance changes.
Update snapshot headers and test titles to follow Vitest conventions for both keys and tasks modules. - Switch test imports from Jest to Vitest - Prefix snapshot test names with descriptive >-separated paths instead of flat labels - Update snapshot comments to reference Vitest documentation and format These changes improve test clarity and align snapshots with the current testing framework, streamlining future maintenance and consistency.
Migrate all project-related tests and mocks from Jest to Vitest to unify the testing framework and improve ESM compatibility. - Replace Jest imports and mocks with Vitest equivalents across controller, service, CLI, resource, formatter, and tool tests. - Fix mock implementations and typings to work correctly with Vitest. - Update snapshot tests to align with Vitest snapshot format. - Clean up test code by removing skipped tests and fixing false positives. - Improve error handling and assertions to better reflect Vitest behavior. - Refactor test suites to use consistent mocking and spying conventions. This unified test setup will streamline development and avoid Jest ESM issues.
Improve testing documentation by formalizing the three-tier mocking architecture, clarifying when and how to use module mocks, mock builders, and mock factories across layers. Enforce a strict no-any type policy for better TypeScript safety. Add detailed MCP schema registration, URI parsing, and error handling guidelines to reduce common test pitfalls. Update project task status and coverage metrics, reflecting progress with 236 passing tests and ~25% coverage. This enhances test reliability, maintainability, and developer guidance.
Update all testing-related documentation and configuration from Jest to Vitest, reflecting the migration of the testing framework. - Replace Jest usage with Vitest in mocks, test setup, and examples - Revise configuration files to use Vitest's config format and options - Implement a Three-Tier Mocking Architecture emphasizing module mocks, mock builders, and mock factory for type-safe and maintainable tests - Improve guidelines around mock implementations, error simulations, and best practices tailored for Vitest - Update commands and debugging instructions to Vitest equivalents - Remove deprecated Jest artifacts and references for consistency This enhances test speed, TypeScript integration, and developer experience across the project documentation and tooling.
- Implemented 28 tests covering standard and cursor pagination - Added tests for edge cases (empty results, single page, last page) - Included performance benchmarks for 100, 1000, and 5000 items - Added error handling tests for response too big and rate limiting - Tested filtering with both pagination modes - Ensured strict TypeScript compliance with no any types - All tests passing with proper mocking patterns
Restructure documentation into categorized folders for better clarity and discoverability (getting-started, development, testing, deployment, project-management, reference). Add a comprehensive top-level README.md providing an overview of the documentation structure, key guides, and quick navigation to help users find relevant resources efficiently. Introduce detailed README files for Getting Started and Testing to aid new users in setup and testing workflows.
Add a detailed README documenting the lokalise-mcp server, including purpose, features, installation instructions, usage examples, configuration guidance, available MCP tools, troubleshooting, and contribution guidelines. Provide extensive workflow templates, example prompts, and technical details to help users integrate localization workflows with AI assistants seamlessly. This improves developer onboarding, clarifies capabilities, and serves as a complete reference for the project.
… prompts Update the manifest with an extensively detailed description, expanded tool and prompt definitions, and refined configuration fields to enhance the AI- powered localization assistant capabilities. - Replace the previous manifest with a fully enriched one listing 59 tools across 11 domains, detailed usage descriptions, and 38 well-defined prompts. - Enhance user configuration options and environment variable mappings for improved flexibility and clarity. - Provide comprehensive long descriptions and examples to improve user understanding of the capabilities. - Refine tool descriptions to include required, optional arguments, and return data, aiding better usability. - Adjust compatibility and runtime versions to align with updates. - Modify related code to improve tool extraction, allowing multiline and escaped strings parsing for accurate manifest generation. - Enrich tool registration descriptions with detailed usage, inputs, and outputs. These changes significantly improve the manifest's clarity, completeness, and usability, laying groundwork for advanced conversational workflows in the Lokalise MCP project.
Implement a new HTTP transport module that replaces the previous version with a more feature-rich Express server featuring a styled HTML health check page and detailed usage instructions. Enhance configuration handling by supporting both base64-encoded Smithery config parameters and dot-notation query parameter parsing for dynamic runtime configuration. This update improves developer and user experience by providing insightful UI feedback and more flexible configuration options, facilitating easier integration and debugging of the MCP server. Additionally, the HTTP transport initialization now includes endpoint and port configuration passed through options.
Refine manifest formatting for better readability and consistency. - Replace hardcoded script paths with distribution entry points for clarity. - Reformat long description to improve markdown rendering and maintenance. - Expand argument arrays across multiple lines for easier updates. - Remove deprecated development ignore file to clean up repo. These changes enhance maintainability and prepare the project for smoother deployment workflows.
AbdallahAHO
force-pushed
the
release/v1.1.0
branch
from
August 28, 2025 20:31
e6e048b to
a2136e2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🚀 Release v1.1.0
Release Type: minor
Pre-release Checklist
Post-merge Actions
After merging this PR, the following will happen automatically:
v1.1.0This PR was automatically created by the release workflow.