E2E
openathleteorg/openathlete
Run, debug or extend the OpenAthlete Playwright end-to-end tests, which exercise the production Docker images (API, worker, web, PostgreSQL, Redis) through the API and a real browser on desktop and…
Evidence-capture protocol for verifying web/dashboard/backoffice/checkout changes in the Polar local stack by driving the real UI with Playwright.
$ npx skills add polarsource/polar --skill verifier-web -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install polarsource/polar verifier-web --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/polarsource/polar.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/verifier-web .claude/skills/verifier-web && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "verifier-web" agent skill from https://github.com/polarsource/polar/tree/main/.agents/skills/verifier-web into .claude/skills/verifier-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verifier-web", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/polarsource/polar/tree/main/.agents/skills/verifier-webType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add polarsource/polar --skill verifier-web -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install polarsource/polar verifier-web --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/polarsource/polar.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/verifier-web .agents/skills/verifier-web && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "verifier-web" agent skill from https://github.com/polarsource/polar/tree/main/.agents/skills/verifier-web into .agents/skills/verifier-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verifier-web", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add polarsource/polar --skill verifier-web -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install polarsource/polar verifier-web --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/polarsource/polar.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/verifier-web .cursor/skills/verifier-web && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "verifier-web" agent skill from https://github.com/polarsource/polar/tree/main/.agents/skills/verifier-web into .cursor/skills/verifier-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verifier-web", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/polarsource/polar.git --path .agents/skills/verifier-web--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add polarsource/polar --skill verifier-web -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install polarsource/polar verifier-web --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/polarsource/polar.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/verifier-web .gemini/skills/verifier-web && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "verifier-web" agent skill from https://github.com/polarsource/polar/tree/main/.agents/skills/verifier-web into .gemini/skills/verifier-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verifier-web", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install polarsource/polar verifier-webInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add polarsource/polar --skill verifier-web -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/polarsource/polar.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/verifier-web .github/skills/verifier-web && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "verifier-web" agent skill from https://github.com/polarsource/polar/tree/main/.agents/skills/verifier-web into .github/skills/verifier-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verifier-web", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add polarsource/polar --skill verifier-web -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install polarsource/polar verifier-web --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/polarsource/polar.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/verifier-web .opencode/skills/verifier-web && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "verifier-web" agent skill from https://github.com/polarsource/polar/tree/main/.agents/skills/verifier-web into .opencode/skills/verifier-web/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "verifier-web", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
verifier-webEvidence-capture protocol for verifying web/dashboard/backoffice/checkout changes in the Polar local stack by driving the real UI with Playwright.
Verifier Web is an agent skill from polarsource/polar. Evidence-capture protocol for verifying web/dashboard/backoffice/checkout changes in the Polar local stack by driving the real UI with Playwright. Auto-discovered by the built-in /verify skill; can also be invoked directly. Brings up the Docker stack, logs in via the real email-OTP flow, and exercises flows end-to-end (including a live Stripe checkout) capturing screenshots as evidence.
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Data & Analytics, covering DataFrames, Browser testing and End-to-end testing. It works with Stripe, Docker and Playwright. The repository describes itself as: Polar — A billing platform for the intelligence era. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 599c727. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curldockeruvstripeFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
dashboard.stripe.comdocs.stripe.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
POLAR_STRIPE_SECRET_KEYPOLAR_STRIPE_PUBLISHABLE_KEYNEXT_PUBLIC_STRIPE_KEYPOLAR_STRIPE_WEBHOOK_SECRETPOLAR_STRIPE_CONNECT_WEBHOOK_SECRETFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Verifier Web loads about 3k tokens when it runs. Until then it costs about 101 tokens; SKILL.md has 1,294 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
each worktree's `server/.env`. So you don't redo Stripe setup per worktree —set them in the central file (or `server/.env`) anded` runs on the **host** against `server/.env`Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from polarsource/polar at commit 599c727, republished under its MIT licence (© polarsource). 1,294 words, ~2,967 tokens.
.claude/skills/verifier-web/SKILL.md (or your agent's skills folder).The handle is the browser. The evidence is screenshots + the resulting DB/backoffice state. This skill is the repo's replay protocol for any change that a user — human or programmatic — meets through the web UI: the dashboard, the checkout, or the backoffice.
Use the local-environment skill for all stack
mechanics (start/stop/logs/instances). This skill adds the browser-driving and
auth/payment recipe on top.
For CLI/API/library changes, use the built-in /verify surfaces instead — this
skill is for pixels.
Drive the browser with the Playwright MCP (mcp__playwright__*). Prefer
browser_snapshot (accessibility tree, gives refs) over screenshots for
acting; use browser_take_screenshot for evidence. Read backend state with
dev docker exec db psql and docker logs.
dev docker ps # allocates/detects this worktree's instance number N
dev docker up -d # build + migrate + seed on first run (several minutes)dev docker up prints the authoritative ports — always read them from its
output, do not compute them. They look like:
API: http://localhost:81NN
Web: http://localhost:31NN(N is the instance; e.g. instance 7 → API :8107, Web :3107. Container
names are polar-app-<N>-api-1, -web-1, -worker-1; DB is polar_dev_<N>.)
Poll readiness before driving anything:
for i in $(seq 1 60); do
a=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:81NN/healthz)
w=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:31NN)
# web may answer 200/307/308 (Next.js dev redirects/compiles on first hit)
[ "$a" = 200 ] && [ "$w" -ge 200 ] && [ "$w" -lt 400 ] && break; sleep 5
doneLog in through the real email-OTP flow. The backoffice at
http://localhost:81NN/backoffice/ uses the same user-session cookie, so logging
into the dashboard authenticates the backoffice too.
browser_navigate → http://localhost:31NN/auth
(the nav "Login" link is hidden; go to /auth directly. /login 404s.)admin@polar.sh into the Email field, click Sign in with email.
The seed account admin@polar.sh owns admin-org (approved, payout account,
products) — go straight to checkout testing, no onboarding./auth/email-otp. Read the code from the api logs:docker logs --since 60s polar-app-<N>-api-1 2>&1 | grep -A1 "LOGIN CODE"C9YLIF) → lands
on /dashboard/admin-org.browser_navigate → http://localhost:81NN/backoffice/.The backoffice needs compiled assets (Tailwind/DaisyUI → static/styles.css +
scripts.js). On a clean start these are often not built yet — the
backoffice then renders unstyled and /backoffice/static/styles.css +
scripts.js 404 (served as application/json). Build them once:
cd server && uv run task backofficeThe output lands in server/polar/backoffice/static/ on the host, which is
mounted into the api container — it's picked up live, no recreate needed.
(dev docker up has a "Building backoffice assets" step, but don't rely on it
having run; check that the backoffice is styled and rebuild if not.)
Login through the browser requires the auth-session cookie domain to match
the host the frontend uses (localhost). This is set in
dev/docker/docker-compose.dev.yml:
POLAR_USER_SESSION_COOKIE_DOMAIN: localhost
POLAR_AUTHENTICATION_SESSION_COOKIE_DOMAIN: localhost # both must be presentIf you see POST /v1/auth/email-otp/request → 401 "Invalid or missing
authentication session token", the Set-Cookie from /auth/start is being
dropped because its Domain= doesn't match the page host. Check:
curl -si -X POST http://localhost:81NN/v1/auth/start \
-H 'Origin: http://localhost:31NN' -H 'Content-Type: application/json' \
-d '{"return_to":"/dashboard"}' | grep -i set-cookieDomain=localhost → good. Domain=127.0.0.1 → the override above is missing;
add it, then recreate the api (dev docker up -d api — a restart does NOT
reload compose env). Do not fall back to minting/injecting a session cookie.
A real purchase needs (a) a valid Stripe sandbox key on api and worker, and (b) a webhook listener forwarding to the api. Order creation is async — the api 202s the webhook and the worker creates the order.
Use your own Stripe sandbox (https://dashboard.stripe.com/sandboxes). Never a
live account, and never a shared team account — dev stripe refuses both. The
Stripe CLI profile is always polar-sandbox.
Secrets are set up once and reused across worktrees. They live centrally in
~/.config/polar/secrets.env and dev/setup-environment propagates them into
each worktree's server/.env. So you don't redo Stripe setup per worktree —
populate the central file once. The one-step path:
dev stripe --listen --port <api-port> # <api-port> = the API port from `dev docker up`This installs/logs-in the Stripe CLI if needed, writes the API keys + webhook secret into the central secrets file, propagates them, and starts the webhook listener (3b). If the CLI is already configured it skips straight to listening.
CLI test keys expire every 90 days. Symptom of an expired key: checkout sticks on
"We are processing your order" and the worker/api logs show
AuthenticationError: Expired API Key provided. Refresh with dev stripe, which
detects the expired key and re-runs the link flow, then recreate services (3c).
If you ever set keys by hand, set them in the central file (or server/.env) and
keep them on the same account: POLAR_STRIPE_SECRET_KEY (the secret key),
POLAR_STRIPE_PUBLISHABLE_KEY and NEXT_PUBLIC_STRIPE_KEY (the publishable key —
the browser tokenizes the card with it). pk and sk must belong to one account or
the card tokenizes against one account while the backend charges another.
dev stripe --listen --port <api-port> starts it for you. To run it directly in
the background with its output captured to a log you can grep later:
stripe listen \
--forward-to http://localhost:81NN/v1/integrations/stripe/webhook \
--forward-connect-to http://localhost:81NN/v1/integrations/stripe/webhook-connect \
> /tmp/stripe-listen.log 2>&1 &(If you started it via dev stripe --listen instead, its events print in that
command's terminal — redirect to a file as above if you want to grep them in 3e.)
It prints Your webhook signing secret is whsec_.... Both
POLAR_STRIPE_WEBHOOK_SECRET and POLAR_STRIPE_CONNECT_WEBHOOK_SECRET must equal
that secret. Leave the listener running in the background. If webhooks come back
400 (signature failure), the configured secret is stale — re-sync it to the value
the listener prints.
dev docker up -d api web workerThe worker is easy to forget — if it keeps a stale/expired key, the api will 202 the webhook but order creation fails silently and retries forever. Recreate api, web, and worker on every env change.
admin-org product, then open its redirect
to start a checkout session. The redirect token is the link's
client_secret (the polar_cl_... value — not the UUID id):http://localhost:81NN/v1/checkout-links/<polar_cl_...>/redirectid/client_secret):select cl.client_secret from checkout_links cl
join organizations o on o.id = cl.organization_id
where o.slug = 'admin-org' limit 1;petru+verify-<flow>@polar.sh.
.local and example.com are rejected by checkout email validation.4242 4242 4242 4242, exp 12 / 34,
CVC 123.input event if you set them via
browser_evaluate.…/confirmation showing
"We are processing your order", then "Thank you for your order!".Test cards (Stripe test mode; any future expiry, any 3-digit CVC, any ZIP):
| Outcome | Number |
|---|---|
| Success | 4242 4242 4242 4242 |
| Requires 3DS / authentication | 4000 0027 6000 3184 |
| Generic decline | 4000 0000 0000 0002 |
| Insufficient funds decline | 4000 0000 0000 9995 |
Verify the unhappy paths too: a decline should surface an inline card error and create no order; a 3DS card should pop the authentication modal. Full list: https://docs.stripe.com/testing.
# webhook delivery (expect charge.succeeded + payment_intent.succeeded → 202)
# from the listener log you captured in 3b:
grep -E 'POST|payment_intent|charge' /tmp/stripe-listen.log
# order + subscription created by the worker
dev docker exec db psql -U polar -d polar_dev_<N> -tc \
"select o.status, o.net_amount_v2, c.email from orders o
join customers c on c.id=o.customer_id
where c.email='petru+verify-<flow>@polar.sh' order by o.created_at desc limit 1;"Expect paid | 2000 | …. Also confirm it renders in backoffice Orders
(/backoffice/orders/). Screenshot the confirmation page and the backoffice row.
Follow the built-in /verify report format: Verdict (PASS/FAIL/BLOCKED/SKIP),
Claim, Method, and numbered Steps where each step is one thing you did to the
running app and what it showed — attach the screenshots. Test runs and
typechecks are not steps. Note anything that made you pause (a slow poll, a
stale-key retry, a confusing validation message) — that's the signal.
dev docker restart keeps the old compose env; use
dev docker up -d <svc> to load env/key changes.dev stripe --listen refreshes the webhook secret whenever it writes new API
keys, so switching sandbox propagates the new signing secret too. It leaves the
two secrets alone when they already differ from each other — that means they
came from dashboard endpoints, not the CLI listener.dev seed runs on the host against server/.env
(POLAR_POSTGRES_*), which is not the dockerized polar_dev_<N>. For a
docker instance, seed inside the container instead:
docker exec polar-app-<N>-api-1 sh -c 'cd /app/server && uv run python -m scripts.seeds_load'© polarsource, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/verifier-web of polarsource/polar.
Open the folder on GitHubat commit 599c727
Verifier Web next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Verifier Web this skillpolarsource/polar | 10k | — | ~3k | Automated safety check: Notes | MIT | |
| E2Eopenathleteorg/openathlete | 100 | — | ~675 | Automated safety check: Pass | AGPL-3.0 | |
| Acarshub Tool Additionssdr-enthusiasts/docker-acarshub | 117 | — | ~707 | Automated safety check: Pass | GPL-3.0 | |
| Run Dashboard E2E Local ChangesBlackBeltTechnology/pi-agent-dashboard | 316 | — | ~1.3k | Automated safety check: Pass | MIT | |
| E2E TestingOpenHands/OpenHands | 90k | — | ~308 | Automated safety check: Pass | MIT | |
| Dozzle Visual Snapshot Updateramir20/dozzle | 15k | — | ~797 | Automated safety check: Pass | MIT |
openathleteorg/openathlete
Run, debug or extend the OpenAthlete Playwright end-to-end tests, which exercise the production Docker images (API, worker, web, PostgreSQL, Redis) through the API and a real browser on desktop and…
sdr-enthusiasts/docker-acarshub
Use ONLY when working in the docker-acarshub repository AND a task may require adding a system tool, npm package, or other dependency.
BlackBeltTechnology/pi-agent-dashboard
Run Playwright E2E (tests/e2e/) against the docker/ all-in-one harness so it reflects LOCAL code changes, not a stale cached image.
OpenHands/OpenHands
This skill should be used when the user asks to "add an E2E test", "run live E2E", "run mock-LLM tests", "debug Playwright CI", "test the Docker image", or changes tests/e2e, Playwright configs, E2E…
amir20/dozzle
Regenerates Playwright visual snapshots for Dozzle after an intentional UI change, running them through Docker Compose so filenames match the Linux CI platform.
sendou-ink/sendou.ink
Run, debug, and manage Playwright e2e tests. An agent skill from sendou-ink/sendou.ink.
polarsource/polar
Integrate Polar billing in server-side Python applications using the versioned Polar and PolarAsync clients.
polarsource/polar
Integrate Polar billing in server-side TypeScript applications using the versioned createPolar and createPolarCore clients.
polarsource/polar
Check a code change against the repo's Accepted Architecture Decision Records (ADRs) in handbook/engineering/decisions/ and report violations with citations.
polarsource/polar
Review changes to Polar's API contract — Pydantic schemas, FastAPI endpoints, OpenAPI output and the generated SDKs.
polarsource/polar
Review a diff that touches Polar's billing domain — subscriptions, cycles and crons, orders, billing entries, meters and usage, discounts, checkout, payments and dunning, refunds, disputes, payouts…
polarsource/polar
Prepare an interview task for a candidate, as part of our hiring process.
Works with
Categories
Evidence-capture protocol for verifying web/dashboard/backoffice/checkout changes in the Polar local stack by driving the real UI with Playwright. Verifier Web is an agent skill from polarsource/polar. Evidence-capture protocol for verifying web/dashboard/backoffice/checkout changes in the Polar local stack by driving the real UI with Playwright.
Verifier Web fits situations like: tasks that involve DataFrames; tasks that involve Browser testing; tasks that involve End-to-end testing.
Run `npx skills add polarsource/polar --skill verifier-web -a claude-code`. Or copy the skill folder (.agents/skills/verifier-web in polarsource/polar) into .claude/skills/verifier-web in your project. Claude Code loads it when a task matches its description.
Run `npx skills add polarsource/polar --skill verifier-web -a codex`. Or copy the skill folder (.agents/skills/verifier-web in polarsource/polar) into .agents/skills/verifier-web in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add polarsource/polar --skill verifier-web -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/verifier-web, .gemini/skills/verifier-web, .github/skills/verifier-web and .opencode/skills/verifier-web in your project.
Going by SKILL.md and its folder, Verifier Web needs the command-line tools its instructions call (curl, docker, uv and stripe) and credentials named POLAR_STRIPE_SECRET_KEY, POLAR_STRIPE_PUBLISHABLE_KEY, NEXT_PUBLIC_STRIPE_KEY and POLAR_STRIPE_WEBHOOK_SECRET. Our summary lists: Python 3; Docker; A credential in POLAR_STRIPE_SECRET_KEY; A credential in POLAR_STRIPE_PUBLISHABLE_KEY.
SKILL.md names 2 domains. As links in the text: dashboard.stripe.com and docs.stripe.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Verifier Web is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Verifier Web: E2E (openathleteorg/openathlete, 100 stars), Acarshub Tool Additions (sdr-enthusiasts/docker-acarshub, 117 stars), Run Dashboard E2E Local Changes (BlackBeltTechnology/pi-agent-dashboard, 316 stars) and E2E Testing (OpenHands/OpenHands, 90k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
polarsource (a GitHub organization) maintains it in polarsource/polar, which has 10,336 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on October 7, 2026.
Source: polarsource/polar on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.