# Changelog
## 0.3.1 — 2026-05-30
- **Track upstream Lightpanda `v0.3.1`.** Bumped fork release tag to
`fork-2026-05-30`, rebased the cookie-on-WS-upgrade patch onto
upstream `v0.3.1`. The patch was reworked to use the new
`exec.context.global` API (a `GlobalScope` union of `.frame` /
`.worker`) since upstream refactored `WebSocket.init` to take an
`Execution` instead of a `*Frame`. Picks up upstream improvements
while keeping cookie-authenticated WS upgrades working.
- **Expanded test coverage on the cookie patch.** The fork now ships
four additional regression tests alongside the original happy-path:
path-scoped cookies don't leak across paths, `SameSite=Strict` still
attaches on same-site upgrades, empty cookie jar produces no
`Cookie:` header, and multiple matching cookies are joined per RFC
6265 §5.4.
- **New `:install_dir` config + `LIGHTPANDA_INSTALL_DIR` env var.**
Override the directory the binary is installed and looked for in,
while the package keeps owning the per-target filename
(`lightpanda-<target>`). Relative paths resolve against
`File.cwd!/0`, so `config :lightpanda, install_dir: ".browsers"`
lands the binary under `<project_root>/.browsers/` — matching the
layout used by Chrome for Testing / Puppeteer and making
Docker/CI cache mapping a single-directory affair. Default
behaviour is unchanged (`_build/lightpanda-<target>`). Precedence:
`:path` (full file) > `:install_dir` config > `LIGHTPANDA_INSTALL_DIR`
env var > default.
## 0.3.0 — 2026-05-23
- **Track upstream Lightpanda `v0.3.0`.** Bumped to fork release
`fork-2026-05-23`, rebased onto upstream `v0.3.0`. Picks up 120
commits of upstream improvements (CDP refactor, Page container,
additional Worker APIs, SameSite cookie fixes) while keeping the
WS-cookie-on-upgrade patch.
- **Hex package version now tracks the lightpanda binary version**
(we jumped past `0.2.10` to match upstream's `0.3.0`). Future bumps
follow upstream cadence — `0.3.1` when upstream cuts `v0.3.1`, etc.
- **Breaking: removed binary-source config knobs.** The package no
longer reads `:version`, `:release`, `:url`, `:verify_checksum`, or
`:version_check`. The release tag and download URL are baked in;
bump the dep to upgrade. The `:path` knob is kept for developers
running against a locally-built sibling checkout.
- **Removed APIs:**
```
Lightpanda.latest_version/0
Lightpanda.configured_version/0
Lightpanda.bin_version/0
Lightpanda.default_base_url/0
Lightpanda.maybe_warn_version_mismatch/0
```
Added `Lightpanda.release/0` returning the baked-in fork tag.
## 0.2.10-rc.2 — 2026-05-10
- **Default URL now points at the [u2i fork build](https://github.com/u2i/lightpanda-browser)**
of Lightpanda. The fork carries a patch to send session cookies on
the WebSocket upgrade request, fixing cookie-authenticated WS
endpoints (e.g. Phoenix LiveView). Override `:url` to use upstream
binaries (see README).
- `@latest_version` bumped to `"fork-2026-05-10"` (the first u2i fork
release tag).
- `@checksums` reset to empty: the upstream-version SHAs no longer
apply to fork builds. Verification is skipped with a warning until
the fork release artifacts have published checksums. Users can also
opt out explicitly via `config :lightpanda, :verify_checksum, false`.
- New `:verify_checksum` config flag (defaults to `true`) — set
`false` to silence the missing-checksum warning when pointing `:url`
at a custom mirror or build.
## 0.2.10-rc.1
- Lazy install on first invocation, concurrent-call deduplication,
startup version-mismatch warning.
## 0.2.9 and earlier
- See git log.