Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: damsfx/valet-windows
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: yCodeTech/valet-windows
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Checking mergeability… Don’t worry, you can still create the pull request.
  • 17 commits
  • 19 files changed
  • 7 contributors

Commits on Apr 11, 2026

  1. fix: PHP port replacement string to prevent it removing the entire line.

    When isolating a site, the port replacement corrupts the config and removes the entire `set $valet_site_php_port` line. This happens because:
    
    If the isolated port is `9002`, the replacement string `"$1{$phpPortValue}$2"` becomes `$19002$2`. In `preg_replace`, `$19` is treated as backreference 19, not “group 1 + literal 9”. Since group 19 does not exist, it collapses to an empty string, leaving the literal `002` plus group 2.
    ~ Explanation by Copilot.
    
    So the entire line is removed because the backreference to it in $1 isn't interpreted as that.
    
    - Fixed by separating the values via contatenation instead of string interpolation, and wrapped the backreference to be isolated: `${1}` to ensure the PHP port is correctly set without removing the entire line.
    yCodeTech committed Apr 11, 2026
    Configuration menu
    Copy the full SHA
    dfc0618 View commit details
    Browse the repository at this point in the history
  2. fix: php port replacement for multiple location blocks in a site config.

    The PHP port replacement was happening only once but there can be a max of 2 location blocks with the `set $valet_site_php_port` line (ie. secured sites). This happens because the `preg_replace` had a replacement limit set to 1.
    
    - Fixed by removing the limit so it replaces all `set $valet_site_php_port` lines it finds, and not limited to the max of 2 either.
    yCodeTech committed Apr 11, 2026
    Configuration menu
    Copy the full SHA
    eab4758 View commit details
    Browse the repository at this point in the history
  3. fix: php port replacement removes entire line in site config (cretueu…

    …sebiu#43)
    
    Fixes cretueusebiu#42.
    
    This pull request makes a minor update to the way the PHP port is
    replaced in the site configuration within the
    `replacePhpVersionInSiteConf` function. The change simplifies the usage
    of replacement variables in the `preg_replace` call, improving
    readability and maintainability.
    
    - Refactored the `preg_replace` replacement string in the
    `replacePhpVersionInSiteConf` function in `Site.php` to use string
    concatenation with `${1}` instead of double-quoted interpolation with
    `$1`, ensuring correct variable substitution and preventing entire line
    removal with the wrong interpretation of the backreference numbers.
    
    - Removed the limit of max replacements the `preg_replace` can do,
    ensuring all PHP port lines in multiple location blocks in the site
    configs are replaced.
    yCodeTech authored Apr 11, 2026
    Configuration menu
    Copy the full SHA
    f53db7d View commit details
    Browse the repository at this point in the history
  4. Release v3.4.1 (cretueusebiu#44)

    * chore: bump version to 3.4.1
    
    * chore: update changelog with v3.4.1 release changes
    yCodeTech authored Apr 11, 2026
    Configuration menu
    Copy the full SHA
    937ee4d View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2026

  1. fix: which command bug that still uses the old `drivers/require.php…

    …` path. (cretueusebiu#46)
    
    * fix: `which` command bug that still uses the old `drivers/require.php` path.
    
    Fixes cretueusebiu#45.
    
    - Fixed the require path in the `which` command, as it was still using the old require drivers path, it now uses the new `includes/require-drivers.php` path. Otherwise this bug would spit out a PHP warning:
    
    > PHP Warning:  require(C:\Users\Name\AppData\Roaming\Composer\vendor\ycodetech\valet-windows\cli/drivers/require.php): Failed to open stream: No such file or directory in C:\Users\Name\AppData\Roaming\Composer\vendor\ycodetech\valet-windows\cli\valet.php on line 1239
    
    Also added a deprecation notice for the require statement to prepare for future removal of legacy driver code.
    
    - Added a `use` statement at the top of the file to import the `ValetDriver` namespaced class.
    
    * fix: update changelog for `which` command bug fix
    
    * chore: update Prettier configuration for Markdown files
    yCodeTech authored Jun 7, 2026
    Configuration menu
    Copy the full SHA
    2a75289 View commit details
    Browse the repository at this point in the history

Commits on Jun 8, 2026

  1. Fix fetch-share-url fatal errors and release v3.4.3 (cretueusebiu#48)

    * fix: `fetch-share-url` command bug where the `retry` helper function was undefined.
    
    Fixes cretueusebiu#47.
    
    - Removed all the function_exists conditionals from Valet's helpers, so that they work no matter what, fixing a `PHP Fatal error:  Uncaught Error: Call to undefined function Valet\retry()`.
    
    * fix: improve error messages in `currentTunnelUrl` method
    
    - Clarified the parameter description for `$site` in the docblock.
    - Enhanced logging and exception messages to include the site name for better debugging context.
    
    * fix: prevent duplicate TLD in share URL construction
    
    Removed the TLD from the site variable if it's included, to avoid issues with duplicate TLDs in the site being shared.
    
    * chore: update changelog and version to 3.4.3
    yCodeTech authored Jun 8, 2026
    Configuration menu
    Copy the full SHA
    ce840d2 View commit details
    Browse the repository at this point in the history

Commits on Jun 22, 2026

  1. ci: add auto changelog and version update workflows (cretueusebiu#50)

    * ci: add auto changelog and version update workflows
    
    * ci: address code review feedback
    
    * fix: strip redundant leading verb from changelog entry titles
    
    When a PR title like "feat: add X" or "fix: fixed Y" was processed,
    the changelog entry would duplicate the verb: "Added add X" / "Fixed fixed Y".
    
    A new `stripRedundantLeadingWord` helper removes the leading verb from
    the cleaned title when it is a form of the prefix already applied to the
    entry (e.g. add/adds/added/adding when prefix is "Added"). If stripping
    would leave the title empty or whitespace-only, the original is kept.
    
    * refactor: simplify regex and guard in stripRedundantLeadingWord
    
    ---------
    
    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
    Copilot authored Jun 22, 2026
    Configuration menu
    Copy the full SHA
    f2e7040 View commit details
    Browse the repository at this point in the history

Commits on Jul 3, 2026

  1. fix: ngrok error logging by adding real-time output (cretueusebiu#51)

    * fix: ngrok error logging by adding real-time output
    
    It was really hard to figure out if there was something wrong with ngrok without proper logging. Ngrok does actually have a --log option. so we can use this to stream live logging output directly to the terminal.
    
    - Implemented `streamCommandOutput` method in `CommandLine` to handle command output in real time, while also optionally collecting errors for later checks, and format errors as valet errors.
    
    - Enhanced `Ngrok` class to utilize the new streaming method with the --log options for better error handling and output visibility.
    
    - Updated `error` helper function to support additional `newline` and `escapeOutput` parameters for output formatting, and changed the Symfony's `writeln` to `write` so we can toggle on/off the writing of a newline at the end of the output.
    
    * fix: improve ngrok error message formatting & add newline characters for clarity
    
    * refactor: `output` helper function to toggle newlines on/off.
    
    - Updated `output` helper function to accept a `newline` parameter, and changed the Symfony's `writeln` to `write` so we can toggle on/off the writing of a newline at the end of the output.
    
    * refactor: callback params in `streamCommandOutput` method to an array.
    
    - Refactored `CommandLine::streamCommandOutput` method:
    
        - Removed the callback `lineMatches` and `lineIsError` params.
    
        - Added a `callbacks` array param to define the many callbacks that may be used, for better flexibility.
    
        - Updated the callback defaults.
    
    - Updated ngrok integration to utilize the new callback structure for error line handling.
    
    * fix: enhance ngrok default options handling when they're not set by users
    
    - Refactored the host-header options conditional check in favour of defining the default options including the log options and their values in an array, and looping through them only adding them if they're not in the user options array.
    
        - Allowed the logging options to be overridden by users by removing the hardcoded logging options from the ngrok command in favour of the options array.
    
    * feat: enhance ngrok output handling to extract the public URL for ease
    
    - Added a `lineHandler` callback option to the `CommandLine::streamCommandOutput` method, and allow it to be called after the line has been outputted to the terminal.
    
    - Added a line handler closure function in `Ngrok::start` method to find and extract the public URL when the tunnel starts and output it as a Valet info message, so the user can easily identify the URL without having to use the `fetch-share-url` valet command.
    
    - Added a conditional to detect if the options string doesn't contain the log stdout/stderr option, then it'll output the info message to inform users they can use the `fetch-share-url` valet command. This message doesn't need to be outputted if it is logging to stdout/stderr as it tells the use about the url anyway.
    
    - Also added a notes about why stdout and stderr values are the same - because `CommandLine::streamCommandOutput` method uses `2>&1` to redirect stderr to stdout.
    
    * fix: outputting the URL info before the line is even outputted from ngrok
    
    ngrok's command output is now processed through the `output` helper function which uses Symfony's `ConsoleOutput` instead of relying on PHP's `echo`. This fixes the output race where the URL info in the lineHandler was outputted before ngrok's own output was shown.
    
    By changing it to our helper, everything goes through Symfony's buffer system and output them in order.
    
    * feat: add clipboard functionality for public URL in ngrok sharing
    
    - Implemented `ShareTool::copyUrlToClipboard` method to copy the specified URL to the clipboard, and changed the `ShareTool::currentTunnelUrl` method to use this new method instead of duplicating the code.
    
    - Removed the info message from the `fetch-share-url` command, and added it into the new `ShareTool::copyUrlToClipboard` method.
    
    - Updated `Ngrok:start` method to use the new `ShareTool::copyUrlToClipboard`  method for copying the URL in the `lineHandler`.
    
    * fix: `copyUrlToClipboard` method to use PowerShell's `Set-Clipboard`.
    
    - Fixed `ShareTool::copyUrlToClipboard` method to use PowerShell's `Set-Clipboard` instead of CMD's `clip`. This is so that we can take advantage of PowerShell's single quotes to prevent command injection with shell metacharacters (e.g. &, |, >) as they are only interpreted as string characters. So if somehow the public url contains the metacharacters, they will not be used as shell operators.
    
    * fix: error line detection in ngrok output handling in `Ngrok::start`.
    
    - Added detection for 'ERR_NGROK_' in addition to 'ERROR:' to improve error logging and error appearance for easier skim-reading.
    
    * fix: `streamCommandOutput` method to output an error if the command failed
    
    - Fixed `CommandLine::streamCommandOutput` method to output an error to the user if the command failed to execute.
    
    Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
    
    * docs: update README with ngrok real-time logging for the `share` command
    
    - Clarified that prior to v3.4.4, the public URL wasn't displayed and required the `fetch-share-url` command.
    
    - Added information about the new real-time logging feature in ngrok and how to disable it if needed.
    
    * chore(editorconfig): change indent size for md files to be inline with prettier
    
    * style: auto format readme
    
    * docs(readme): update the known issues section re the share url coping.
    
    Updated the known issue to state the share url will now be copied to the clipboard automatically as of v3.4.4.
    
    ---------
    
    Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
    yCodeTech and Copilot authored Jul 3, 2026
    Configuration menu
    Copy the full SHA
    e579e1c View commit details
    Browse the repository at this point in the history
  2. refactor: update error pages (cretueusebiu#49)

    * Update error pages (cretueusebiu#41)
    
    Refactor code structure for improved readability and maintainability
    
    -update dark scheme rendering
    
    Co-authored-by: Stu <31927084+yCodeTech@users.noreply.github.com>
    
    * refactor: 404 and 500 error pages structure and refined CSS.
    
    - Added container div for improved HTML structure and added classes for better style selectors.
    - Moved the flex styles from the body to the new container class.
    - Refined values for widths, margins, and font sizes.
    - Changed some of the styles to use CSS nesting.
    - Moved the SVG styles into the main style block to keep all styles together.
    - Moved the `@media prefers-color-scheme` rules to be nested under each element that it's for.
    - Updated colours for dark mode.
    - Auto formatting
    
    * fix: small logo on desktop by ensuring the content fills the flex space.
    
    Using width stretch the content fills the entire of the flex container space, capping at max-width, so the logo is always at optimum size.
    
    Reason why this only affects the 404 page and not 500 page, is because 500 has the additional paragraphs that always makes the content fill the flex container.
    
    * fix: change `width: stretch` to `flex-basis: 100%`
    
    Width stretch is supported but some browsers require a different name, so we're switching to flex basis 100% instead which does the same job of filling the flex container space, but without an additional property for certain browsers.
    
    ---------
    
    Co-authored-by: Damien MATHIEU <contact@hounddd.fr>
    yCodeTech and damsfx authored Jul 3, 2026
    Configuration menu
    Copy the full SHA
    0620831 View commit details
    Browse the repository at this point in the history
  3. docs: Update changelog (cretueusebiu#52)

    * docs: update changelog for PR cretueusebiu#51
    
    * docs: update changelog for PR cretueusebiu#49
    
    ---------
    
    Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
    github-actions[bot] and github-actions[bot] authored Jul 3, 2026
    Configuration menu
    Copy the full SHA
    ad892ee View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    bb9ecc4 View commit details
    Browse the repository at this point in the history
  5. Release v3.4.4 (cretueusebiu#53)

    chore: version bump and update changelog
    
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] authored Jul 3, 2026
    Configuration menu
    Copy the full SHA
    ee07beb View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2026

  1. fix: release workflow and immutable release tags for Packagist (cretu…

    …eusebiu#55)
    
    * chore(editorconfig): update indent style for YAML files
    
    * refactor: release workflow for immutable tag and release publishing
    
    Fixes cretueusebiu#54 where packagist complains the release tag has been modified after the release. To fix we need to completely change how we do releases and auto version bump. We now manually trigger the workflow, input the version tag, run the auto version bump and changelog update jobs, and then create the release and tag pragmatically after committing.
    
    - Refactor release pipeline to completely change how we do releases and auto version bump. Allowing the workflow to be triggered manually (instead of on-release) with inputs to set the release tag version and publish the release.
    
        - Introduced `tag_name`, `target_branch` with default as master, and `prerelease` boolean inputs.
    
        - Introduced `publish_only` and `release_sha` inputs to enable the skipping of a version and changelog updates and jump directly to publishing the release.
    
        - Fixed the release tag behaviour and removed the updating of tag commits.
    
        - Added a proper publish release job with the creation of immutable tags and releases.
    
        - Publish releases from resolved release commit SHA to keep tag/release contents aligned both on GitHub and Packagist.
    
    - Updated versioning validation and enforce semver release tags prefixed with a v.
    
    - Require both version.php and CHANGELOG.md updates for every release and validate them before creating a PR.
    
    * fix: formatting
    
    * fix: release tag validation being skipped in publish only mode.
    
    When using publish only mode, the release tag validation is skipped because it's a step in the skippable prepare-release job. But we still need the validation for publish only mode. Fixed by:
    
    - Moved the release tag validation into a separate required job (validate-release-tag) that always runs no matter the mode.
    
    - Refactored code to use the new validate-release-tag job outputs, and require it in the publish-release job.
    
    * fix: correct regex for extracting PR number from URL
    
    * fix: validate remote tag state for publish-only mode
    
    - Added checks to ensure that existing tags are immutable and point to the expected release commit.
    - Implemented conditional steps to handle tag validation based on the `publish_only` input.
    
    * fix: rename `tag_name` input to `release_tag` to make it self documenting
    
    - Changed all instances of the input `tag_name` to `release_tag`.
    - Changed the env variable name `TAG_NAME` to `RELEASE_TAG`.
    yCodeTech authored Jul 5, 2026
    Configuration menu
    Copy the full SHA
    8247ff3 View commit details
    Browse the repository at this point in the history
  2. docs: Update changelog (cretueusebiu#56)

    docs: update changelog for PR cretueusebiu#55
    
    Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
    github-actions[bot] and github-actions[bot] authored Jul 5, 2026
    Configuration menu
    Copy the full SHA
    121e7ce View commit details
    Browse the repository at this point in the history
  3. Release v3.4.5 (cretueusebiu#57)

    chore: version bump and update changelog for v3.4.5
    
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] authored Jul 5, 2026
    Configuration menu
    Copy the full SHA
    aac2091 View commit details
    Browse the repository at this point in the history
  4. ci(release): add custom title to GitHub release in the release workflow

    - Added a custom release title to the gh cli command in the publish-release job.
    yCodeTech committed Jul 5, 2026
    Configuration menu
    Copy the full SHA
    a865601 View commit details
    Browse the repository at this point in the history

Commits on Oct 28, 2026

  1. fix(styles): add dark mode styles to body for error templates (cretue…

    …usebiu#59)
    
    * fix(cli): add dark mode styles to body for error templates
    
    * fix(cli): use css variables for colors
    damsfx authored Oct 28, 2026
    Configuration menu
    Copy the full SHA
    630d6b1 View commit details
    Browse the repository at this point in the history
Loading