Skip to content

Release v1.0.6 - #17

Merged
AbdallahAHO merged 36 commits into
mainfrom
release/v1.0.6
Aug 13, 2025
Merged

Release v1.0.6#17
AbdallahAHO merged 36 commits into
mainfrom
release/v1.0.6

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 13, 2025

Copy link
Copy Markdown
Contributor

🚀 Release v1.0.6

Release Type: patch

Pre-release Checklist

  • Version updated in all files
  • CHANGELOG.md updated
  • Tests passing
  • DXT package created
  • Documentation updated

Post-merge Actions

After merging this PR, the following will happen automatically:

  1. Tag will be created: v1.0.6
  2. npm package will be published
  3. GitHub release will be created with DXT artifacts
  4. Changes will be back-merged to develop

This PR was automatically created by the release workflow.

AbdallahAHO and others added 30 commits July 16, 2025 10:18
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.
- 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
- 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.
feat: Automated Release Workflow
- 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
- Configure husky to run pre-commit hooks
- Add lint-staged to run biome format and lint on staged files
- Ensures code quality before commits
- 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
- Replace github-script with gh CLI for more reliable PR creation
- Update documentation for fine-grained token permissions
- Add pull request write permission requirement
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.
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.
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.
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.
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*

---------

Co-authored-by: smithery-ai[bot] <194235850+smithery-ai[bot]@users.noreply.github.com>
…on (#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.
- 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
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.
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.
… 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.
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
…chemas

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.
…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.
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.
AbdallahAHO and others added 5 commits August 12, 2025 11:09
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.
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.
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.
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.
@AbdallahAHO
AbdallahAHO merged commit a66ce74 into main Aug 13, 2025
8 checks passed
@AbdallahAHO
AbdallahAHO deleted the release/v1.0.6 branch August 13, 2025 14:06
AbdallahAHO added a commit that referenced this pull request Aug 13, 2025
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

---------

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>
AbdallahAHO added a commit that referenced this pull request Aug 14, 2025
* 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

---------

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>

* 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: Abdallah Othman <abdallah.othman@lokalise.com>
Co-authored-by: Abdallah Othman <Abdallah.ali.hassan@gmail.com>
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>
AbdallahAHO added a commit that referenced this pull request Aug 14, 2025
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>
AbdallahAHO added a commit that referenced this pull request Aug 28, 2025
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>
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