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: koajs/koa
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.1.2
Choose a base ref
...
head repository: koajs/koa
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v3.2.0
Choose a head ref
  • 5 commits
  • 6 files changed
  • 7 contributors

Commits on Feb 25, 2026

  1. docs: remove dead Job Board links (#1926)

    ## Checklist
    
    - [x] I have ensured my pull request is not behind the main or master
    branch of the original repository.
    - [x] I have rebased all commits where necessary so that reviewing this
    pull request can be done without having to merge it first.
    - [x] I have written a commit message that passes commitlint linting.
    - [x] I have ensured that my code changes pass linting tests.
    - [x] I have ensured that my code changes pass unit tests.
    - [x] I have described my pull request and the reasons for code changes
    along with context if necessary.
    
    ## Summary
    - Remove the "Job Board" section from README as all links are dead (404)
    
    ## Details
    The `astro.netlify.com` service was added by TJ Holowaychuk in April
    2017 as a
    private job board sponsorship service for open source projects. This
    service is
    no longer operational - all URLs return 404 errors.
    
    The affected links pointed to:
    - Automattic
    - Segment  
    - Auth0
    
    The Backers and Sponsors sections using OpenCollective remain functional
    and are preserved.
    
    ## Test plan
    - [x] Verified all `astro.netlify.com` URLs return 404
    - [x] Confirmed OpenCollective links still work
    
    
    Issues: [[docs] Job Board three link and image not show in readme
    #1911](#1911)
    Jerry-CodeHub authored Feb 25, 2026
    Configuration menu
    Copy the full SHA
    fd11140 View commit details
    Browse the repository at this point in the history
  2. build(deps-dev): bump qs from 6.14.1 to 6.14.2 (#1927)

    Bumps [qs](https://github.com/ljharb/qs) from 6.14.1 to 6.14.2.
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/ljharb/qs/blob/main/CHANGELOG.md">qs's
    changelog</a>.</em></p>
    <blockquote>
    <h2><strong>6.14.2</strong></h2>
    <ul>
    <li>[Fix] <code>parse</code>: mark overflow objects for indexed notation
    exceeding <code>arrayLimit</code> (<a
    href="https://redirect.github.com/ljharb/qs/issues/546">#546</a>)</li>
    <li>[Fix] <code>arrayLimit</code> means max count, not max index, in
    <code>combine</code>/<code>merge</code>/<code>parseArrayValue</code></li>
    <li>[Fix] <code>parse</code>: throw on <code>arrayLimit</code> exceeded
    with indexed notation when <code>throwOnLimitExceeded</code> is true (<a
    href="https://redirect.github.com/ljharb/qs/issues/529">#529</a>)</li>
    <li>[Fix] <code>parse</code>: enforce <code>arrayLimit</code> on
    <code>comma</code>-parsed values</li>
    <li>[Fix] <code>parse</code>: fix error message to reflect arrayLimit as
    max index; remove extraneous comments (<a
    href="https://redirect.github.com/ljharb/qs/issues/545">#545</a>)</li>
    <li>[Robustness] avoid <code>.push</code>, use <code>void</code></li>
    <li>[readme] document that <code>addQueryPrefix</code> does not add
    <code>?</code> to empty output (<a
    href="https://redirect.github.com/ljharb/qs/issues/418">#418</a>)</li>
    <li>[readme] clarify <code>parseArrays</code> and
    <code>arrayLimit</code> documentation (<a
    href="https://redirect.github.com/ljharb/qs/issues/543">#543</a>)</li>
    <li>[readme] replace runkit CI badge with shields.io check-runs
    badge</li>
    <li>[meta] fix changelog typo (<code>arrayLength</code> →
    <code>arrayLimit</code>)</li>
    <li>[actions] fix rebase workflow permissions</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/ljharb/qs/commit/bdcf0c7f82387c18ac8fabfccd2f440645cef47b"><code>bdcf0c7</code></a>
    v6.14.2</li>
    <li><a
    href="https://github.com/ljharb/qs/commit/294db90c812ddbe7d7a35d5687c505fd21a2d6a2"><code>294db90</code></a>
    [readme] document that <code>addQueryPrefix</code> does not add
    <code>?</code> to empty output</li>
    <li><a
    href="https://github.com/ljharb/qs/commit/5c308e5516c270a78caa6f278465914090f91ec6"><code>5c308e5</code></a>
    [readme] clarify <code>parseArrays</code> and <code>arrayLimit</code>
    documentation</li>
    <li><a
    href="https://github.com/ljharb/qs/commit/6addf8cf738d529c54d91f6f3ffb6c1be91bbfdc"><code>6addf8c</code></a>
    [Fix] <code>parse</code>: mark overflow objects for indexed notation
    exceeding <code>arrayLimit</code></li>
    <li><a
    href="https://github.com/ljharb/qs/commit/cfc108f662326d6ab540f3545ef0b832baf83cdf"><code>cfc108f</code></a>
    [Fix] <code>arrayLimit</code> means max count, not max index, in
    <code>combine</code>/<code>merge</code>/`pars...</li>
    <li><a
    href="https://github.com/ljharb/qs/commit/febb64442a80e49200211fa38d3c96b58024ac77"><code>febb644</code></a>
    [Fix] <code>parse</code>: throw on <code>arrayLimit</code> exceeded with
    indexed notation when `thr...</li>
    <li><a
    href="https://github.com/ljharb/qs/commit/f6a7abff1f13d644db9b05fe4f2c98ada6bf8482"><code>f6a7abf</code></a>
    [Fix] <code>parse</code>: enforce <code>arrayLimit</code> on
    <code>comma</code>-parsed values</li>
    <li><a
    href="https://github.com/ljharb/qs/commit/fbc5206c25b4d1851cea683f02c10756c521d15a"><code>fbc5206</code></a>
    [Fix] <code>parse</code>: fix error message to reflect arrayLimit as max
    index; remove e...</li>
    <li><a
    href="https://github.com/ljharb/qs/commit/1b9a8b4e78c6aff4c22fa559107227f02fd0216a"><code>1b9a8b4</code></a>
    [actions] fix rebase workflow permissions</li>
    <li><a
    href="https://github.com/ljharb/qs/commit/2a35775614e0fb46ac8a3060201a32a7c23a7fda"><code>2a35775</code></a>
    [meta] fix changelog typo (<code>arrayLength</code> →
    <code>arrayLimit</code>)</li>
    <li>Additional commits viewable in <a
    href="https://github.com/ljharb/qs/compare/v6.14.1...v6.14.2">compare
    view</a></li>
    </ul>
    </details>
    <br />
    
    
    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=qs&package-manager=npm_and_yarn&previous-version=6.14.1&new-version=6.14.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
    
    Dependabot will resolve any conflicts with this PR as long as you don't
    alter it yourself. You can also trigger a rebase manually by commenting
    `@dependabot rebase`.
    
    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)
    
    ---
    
    <details>
    <summary>Dependabot commands and options</summary>
    <br />
    
    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits
    that have been made to it
    - `@dependabot show <dependency name> ignore conditions` will show all
    of the ignore conditions of the specified dependency
    - `@dependabot ignore this major version` will close this PR and stop
    Dependabot creating any more for this major version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop
    Dependabot creating any more for this minor version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop
    Dependabot creating any more for this dependency (unless you reopen the
    PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the
    [Security Alerts page](https://github.com/koajs/koa/network/alerts).
    
    </details>
    
    Signed-off-by: dependabot[bot] <support@github.com>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Feb 25, 2026
    Configuration menu
    Copy the full SHA
    3b0508e View commit details
    Browse the repository at this point in the history
  3. chore: Add workflow_dispatch trigger to npm-publish workflow (#1930)

    Enables manual triggering of the npm publish workflow with a specific
    tag input, so tags created from non-default branches (e.g. `v2.x`) can
    be published.
    
    - Added `workflow_dispatch` trigger with a required `tag` string input
    - Updated checkout step to use `inputs.tag || github.ref` — manual runs
    check out the specified tag, tag-push runs retain existing behavior
    
    Note: GitHub Actions `workflow_dispatch` does not support dynamic
    dropdowns, so the tag is a free-text input field.
    
    <!-- START COPILOT CODING AGENT TIPS -->
    ---
    
    🔒 GitHub Advanced Security automatically protects Copilot coding agent
    pull requests. You can protect all pull requests by enabling Advanced
    Security for your repositories. [Learn more about Advanced
    Security.](https://gh.io/cca-advanced-security)
    
    ---------
    
    Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
    Co-authored-by: fengmk2 <156269+fengmk2@users.noreply.github.com>
    Copilot and fengmk2 authored Feb 25, 2026
    Configuration menu
    Copy the full SHA
    d3ea8bf View commit details
    Browse the repository at this point in the history

Commits on Mar 28, 2026

  1. feat: defer AsyncLocalStorage creation for v8 startup snapshots (#1946)

    ## Summary
    
    - Defer `AsyncLocalStorage` creation when
    `v8.startupSnapshot.isBuildingSnapshot()` is true, making Koa compatible
    with Node.js startup snapshots
    - Register a `v8.startupSnapshot.addDeserializeCallback` to properly
    initialize `ctxStorage` after snapshot restoration
    - Extract `getAsyncLocalStorage()` helper to consolidate creation logic
    
    ## Test plan
    
    - [x] All 429 existing tests pass with 0 failures
    - [x] `currentContext` tests verify both `asyncLocalStorage: true` and
    custom `AsyncLocalStorage` instance paths work correctly
    - [x] Normal (non-snapshot) code path is unchanged —
    `v8.startupSnapshot?.isBuildingSnapshot?.()` returns `undefined` in
    regular execution
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    ---------
    
    Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
    killagu and claude authored Mar 28, 2026
    Configuration menu
    Copy the full SHA
    2503a1f View commit details
    Browse the repository at this point in the history
  2. 3.2.0

    fengmk2 committed Mar 28, 2026
    Configuration menu
    Copy the full SHA
    e0ba8ef View commit details
    Browse the repository at this point in the history
Loading