Skip to content

release: v1.19.0 — named routes across a domain list, Symfony CVE bumps - #186

Merged
hakeemRash merged 3 commits into
mainfrom
dev-mac
Oct 16, 2026
Merged

hakeemRash merged 3 commits into
mainfrom
dev-mac

Conversation

@hakeemRash

Copy link
Copy Markdown
Contributor

Releases v1.19.0. Merging lands the ## [1.19.0] CHANGELOG heading on main, which starts auto-release.yml (tag → release.yml → Homebrew bump).

Changed

  • A domain or subdomain list keeps its route names. "domain": ["brand.com", "vote.brand.com", "brand.local"] used to fail the boot as soon as any route under it was named, because every host's copy claimed the name again. A project serving one brand on several hosts had to copy the whole group per host. Now every copy carries the name. The copies differ only in host (same method, same path), so the name still means one URL path and a relative route() is right on every host.
  • An absolute route() for such a name points at the first host: the first domain, or APP_URL for bare labels.
  • Two separate declarations reusing a name still fail the boot, even on the same path.
  • Disabling one host's copy through routePolicy.disable no longer frees a name the other hosts still hold.

Security

  • symfony/http-foundation 8.1.9 (CVE-2026-108082) and symfony/expression-language 7.4.21 (CVE-2026-109449). Both were failing the required composer audit check. The lock diff touches only these two packages.

Verified

  • 622 tests pass, including 9 new ones for lists with named routes. PHPStan is clean and composer audit is clean.
  • A downstream project (hkmvote) merged three brands' per-host groups into lists. On this branch it compiles to the same 873 routes with identical handlers, filters and hosts; only the redundant per-host names are gone.

Pages now serves the site from the custom domain's root, but the workflow
still built it with DOCS_BASE=/hkm-kernel/ for the github.io sub-path. The
HTML loaded and every stylesheet and script 404'd under /hkm-kernel/assets/,
so the site rendered as unstyled HTML. Build with DOCS_BASE=/.
A group or route whose "domain" or "subdomain" is a list now keeps its
route names. Each host's copy used to claim the name again, so the boot
failed as soon as a route under the list was named, and a project serving
one brand on several hosts had to copy the whole group per host.

The copies of one declaration differ only in host, so the name still
means one URL path. GroupExpander records where each route was declared,
RouteCompiler::claimName() lets copies of the same declaration share a
name, RouteIndex::names() indexes it under the first host, and a disabled
copy no longer releases a name the other hosts still hold. Two separate
declarations reusing a name still fail the boot.

Bumps symfony/http-foundation to 8.1.9 (CVE-2026-108082) and
symfony/expression-language to 7.4.21 (CVE-2026-109449), which were
failing the required composer audit check.
@hakeemRash
hakeemRash merged commit e6b59f6 into main Oct 16, 2026
11 checks passed
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.

2 participants