Refactored the main request handler in src/index.js for improved readability and error handling. Enhanced Docker request detection in validation.js to include additional Content-Type checks. Updated tests to increase timeouts and expand expected status codes for container registry platforms.
Moved AI and Git protocol detection and header configuration logic from utils/validation.js and index.js into dedicated modules (src/protocols/ai.js and src/protocols/git.js). This improves code organization, modularity, and maintainability by separating protocol-specific concerns.
Moved Docker/OCI protocol handling, performance monitoring, security, and validation logic into dedicated modules under src/protocols and src/utils. Updated src/index.js to use these new modules, improving maintainability and separation of concerns. Added pre-computed sorted platform keys for efficient matching in platform config.
Introduces the transformPath function to remove platform-specific prefixes from paths. This utility helps standardize path handling by stripping prefixes like /gh/ or /cr/docker/ based on the platform key.
Moved Docker authentication logic to occur before platform detection for /v2/auth paths, parsing the scope parameter to identify the registry platform and repository. Improved parsing of the WWW-Authenticate header and removed redundant Docker authentication code from the platform detection block.
Added logic to remove the cr/[registry]/ prefix from the scope parameter and handle official Docker Hub images by adding the library/ prefix. Updated tests to verify correct scope transformation for Docker Hub, GHCR, and official images.
Changed moduleResolution to 'bundler' and added Cloudflare Vitest pool workers types to the include array for better type support. Removed explicit types array and ensured configuration aligns with new tooling requirements.
Changed moduleResolution from 'bundler' to 'node', added global types for Cloudflare Workers and Vitest, and simplified the include paths. This improves compatibility with Node.js tooling and test environments.
Introduces src/types.d.ts and test/types.d.ts for Cloudflare Workers and test utilities. Enhances JSDoc comments and type annotations across test files for better type safety and clarity. Updates tsconfig.json to use bundler module resolution and include additional type sources. Minor test logic and assertion improvements for robustness.
Integrated eslint-config-prettier to disable formatting rules that conflict with Prettier. Updated ESLint configuration and added the dependency to package.json for improved code formatting consistency.
Refines regex patterns for URL rewriting and authentication parsing, ensures parseInt uses radix 10 throughout, and updates test mocks and helpers for consistency. Also adds more global variables to ESLint config, improves error handling, and removes unused code in tests.
Introduces a new CI workflow for linting, type checking, and testing. Updates sync and workers deployment workflows to trigger on successful completion of the CI workflow instead of direct pushes, improving reliability and sequencing of deployments.
Enhances the logic for obtaining Content-Length when a HEAD request does not return it by first attempting a Range GET for the first byte, extracting the total size from Content-Range if available, and falling back to buffering the response body for small files. This approach avoids unnecessary full downloads and improves efficiency, especially for large files.
Moved 'Ask Zread', 'Ask DeepWiki', 'Chromium', and 'Firefox' badges to the top of the badge section in both README.en.md and README.md. This improves badge visibility and maintains consistency across documentation.
Added a Deno Deploy badge to the README files and provided step-by-step instructions for deploying the project to Deno Deploy, including switching the default branch and connecting the repository. This update improves documentation for users who want to deploy using Deno Deploy.
Deleted the .github/workflows/functions-dn.yml file, removing the workflow for deploying to Deno Deploy. This may be due to a change in deployment strategy or deprecation of this workflow.
Workflows now trigger on both successful workflow runs and manual dispatch events. Increased timeout and moved permissions block for functions-dn workflow to align with job configuration.
Change the workflow trigger from push on 'functions' branch to workflow_run on 'main' after 'Sync to Pages and Functions' completes. Add concurrency group to prevent overlapping runs.
Introduces a workflow to deploy the 'functions' branch to Deno Deploy using denoland actions. The workflow checks out the branch, sets up Deno, verifies the installation, and deploys the project.
Introduces a step in the GitHub Actions workflow to create a Deno Deploy handler (deno.js) for deployments. The handler adapts the main request handler for Deno's environment, extracting environment variables and providing minimal context support.
Modularizes test helpers into separate files for assertions, generators, and mocks, and updates imports for platform tests. Adds new tests to verify Authorization header forwarding for authenticated requests. Cleans up and simplifies test setup, and updates fixtures for clarity and maintainability.
Clarified and expanded the required GitHub secrets for Vercel deployments, including Team ID and Project ID, and updated token naming for EdgeOne in both English and Chinese README files. Improved wording for Netlify Project ID instructions.
Sets VERCEL_ORG_ID and VERCEL_PROJECT_ID environment variables in the functions-vc GitHub Actions workflow using repository secrets. This enables the workflow to access Vercel organization and project context during execution.
Added Netlify deployment badge and detailed deployment steps to both English and Chinese README files. Also clarified that Workers code is converted to Functions-compatible format for both Vercel and Netlify workflows.
Enhanced the handler to better distinguish between Netlify, Vercel, and other environments. Environment variable normalization now accounts for different runtime contexts, and warning logs for unsupported features are always shown, not just in non-production.
Introduces a new GitHub Actions workflow for deploying to Netlify, updates the Vercel workflow name, and refactors the edge function handler to support both Netlify and Vercel platforms with runtime detection. Adds Netlify-specific configuration and redirect files to enable shared handler logic, reducing code duplication and simplifying multi-platform deployments.
Added Vercel deployment badge and detailed deployment steps to both English and Chinese README files. Updated the GitHub Actions workflow commit messages to generalize function conversion steps and removed detailed change lists. Minor wording improvements in the Chinese README for consistency.
Changed workflow_run triggers in deployment workflows to reference the updated workflow name 'Sync to Pages and Functions' instead of the previous names. This ensures deployments are triggered correctly after the new workflow completes.
Introduces a new GitHub Actions workflow for deploying to Vercel Functions and extends the sync workflow to auto-convert and push the codebase to a 'functions' branch for Vercel deployment. Updates workflow YAML files for consistent quoting and naming, refines documentation in CLAUDE.md for platform support and development, and updates package-lock.json dependencies.
Removed the sponsors section from both English and Chinese README files and added a new section referencing a detailed deployment guide for running Xget on DigitalOcean. Introduced docs/deploy-on-digitalocean.md with comprehensive instructions for deploying and optimizing Xget using Droplets, App Platform, and Kubernetes on DigitalOcean.
Added a new sponsors section with DigitalOcean and DartNode badges to both English and Chinese README files. Updated image tags to remove inline styles for badges. Modified the issue template config to update the public instance link and description.
Revised Python and JavaScript code samples in both English and Chinese READMEs to use updated OpenAI, Claude (formerly Anthropic), and Gemini API interfaces. Renamed references from 'Anthropic' to 'Claude' throughout documentation and config comments for clarity. Also updated tsconfig.json formatting for consistency.
Deleted the section detailing Docker registry mirror configuration for image acceleration from both English and Chinese README files. This streamlines the documentation and focuses on direct image pulling instructions.
Added EdgeOne Pages deployment instructions and badge. Expanded and clarified deployment steps for Cloudflare Workers and Cloudflare Pages, including notes on branch automation and secret configuration. Improved self-hosted deployment notes for clarity and consistency.
Standardized terminology by changing 'Cloudflare Worker' to 'Cloudflare Workers' across documentation, workflow comments, and code. Expanded deployment instructions in README to include Cloudflare Pages and EdgeOne Pages, clarified secrets setup, and improved deployment notes for self-hosting.
Corrects multiple instances of 'Pagess' to 'Pages' in the sync.yml workflow, including job names, comments, documentation, and deployment commands. Also removes redundant env block from pages-eo.yml. This improves clarity and ensures correct terminology for Cloudflare Pages.
Changed Cloudflare Pages and EdgeOne Pages workflows to trigger on successful completion of the 'Sync to Pages' workflow for the main branch, instead of on push to pages branch. Also updated permissions and job names for clarity and consistency.
Eliminated the 'Install dependencies' and 'Build project' steps from the pages-eo GitHub Actions workflow, leaving only the deployment step. This streamlines the workflow and may indicate that build artifacts are now pre-generated or handled elsewhere.
Introduces separate GitHub Actions workflows for deploying to Cloudflare Pages and EdgeOne Pages. Also renames and updates the existing deploy workflow to workers.yml, reduces its timeout, and clarifies step names for Cloudflare Workers deployment.
Renames all references from 'Page' or 'Pages' to 'Pagess' in the sync workflow, updates directory and script names, and consolidates the deployment process. Removes the EdgeOne conversion job and related configuration, simplifying the workflow to focus solely on Pagess deployment.
Update request handling to redirect root, invalid platform prefixes, and platform prefixes without resource paths to the homepage. Adjust tests to expect 302 redirects instead of 404 or 400 responses for these cases.
Included a Product Hunt badge with a link and image to promote Xget on Product Hunt. This enhances project visibility and provides users with a quick way to access the Product Hunt page.
Introduces a new GitHub Actions job to automate converting the Worker codebase for EdgeOne Pages deployment. The workflow copies runtime files, creates a catch-all Pages Function handler, updates exports, generates edgeone.json configuration, modifies package.json scripts, and force-pushes to a dedicated 'pages' branch.
Renamed 'depoly.yml' to 'deploy.yml' and added concurrency groups to deploy, image, and sync workflows for better job management. Updated the sync workflow to copy only runtime-required files, removing documentation, tests, and development configs from the deployment process.
Added npm and Docker support to dependabot.yml. Updated deploy and image workflows to use latest actions/checkout and set timeouts. Renamed and improved sync workflow to exclude docs and tests, and updated file copy logic.
Remove legacy EdgeOne Pages deployment and sync workflows, and add a new unified sync-worker-to-page.yml workflow for converting and syncing Worker code to a Pages-compatible branch. This streamlines the deployment process and updates the automation to use a more standard Cloudflare Pages Functions handler and configuration.
Introduces two GitHub Actions workflows: one for deploying the 'pages' branch to EdgeOne Pages, and another for auto-syncing and converting the main Worker codebase to the 'pages' branch. This enables automated deployment and compatibility with EdgeOne Pages, including conversion steps, configuration, and branch management.
Updated the CLAUDE.md file to provide a more comprehensive and structured overview of the Xget project. The changes include expanded feature lists, clearer architecture and testing sections, detailed command references, platform support instructions, security considerations, and deployment guidance. The documentation is now more accessible for new contributors and better reflects the current state and best practices of the project.
Revised the README files to clarify that multi-platform support covers mainstream platforms in various development scenarios, improving the accuracy of the feature description.
Enhances cache logic to ensure compatibility with non-Cloudflare environments by checking for cache API availability. Refactors cache key construction to always use GET method, adds error handling for cache operations, and ensures only GET requests are cached. Improves robustness and prevents runtime errors when cache API is unavailable.
Added Podman deployment instructions and badges to both English and Chinese README files. Updated several badge colors for consistency. Introduced new scripts for badge color fixes. Updated dependencies in package.json and package-lock.json. Added scripts/README.md and scripts/fix-badge-colors.js for badge management.
Added Docker badge and updated Cloudflare Workers badge links in both English and Chinese README files. In the GitHub Actions workflow, assigned an id to the Docker build-and-push step and updated the provenance attestation to use the correct digest output.
Expanded documentation in both English and Chinese READMEs to include detailed container registry acceleration usage and deployment instructions. Refactored Dockerfile to use a multi-stage build with workerd for self-hosted deployment. Improved .dockerignore for cleaner builds. Updated GitHub Actions workflows to refine path ignores and metadata extraction. Added config.capnp for workerd configuration. Removed obsolete .html file and enhanced CLAUDE.md with comprehensive architecture and development guidance.
Revised the disclaimer sections in both README files for clarity, legal accuracy, and broader coverage of use cases. Updated CONTRIBUTING.md to improve language consistency and removed references to GitHub Discussions. Removed author contact and sponsorship sections from the README files.
Deleted a duplicate or unnecessary line in both English and Chinese README files under the Quick Start section to streamline instructions and avoid repetition.
Reorganized and updated badges in both English and Chinese README files for improved clarity and consistency. Added new badges for Cloudflare Workers, Chromium, and Firefox, and adjusted the layout for better visual alignment.
Simplified the README header by replacing the custom HTML heading and logo with a Markdown heading. Moved the Trendshift badge below the badges section for better organization.