Changelog
lit.onl product and API release notes — what shipped in each api-vX.Y.Z and web-vX.Y.Z build, including dashboard, redirects, documents, and MCP changes.
API and web version independently. Recent releases (newest first):
api-v0.1.83 — 2026-10-13
Fixed
- Short links whose slug starts with
mcp(e.g./mcp-test) no longer hit the MCP transport (wasAuthorization required)
web-v0.1.138 — 2026-10-13
Fixed
- Ahrefs SEO: SSR
<html lang>/dirfrom locale path; locale/pricingself-canonical (was English vialocalPathon SSR) - Meta descriptions under ~120 chars on legal and docs pages (Ahrefs “too short”)
- Bitly-alternative meta description trimmed to ≤160 chars;
/pricinguses anh1
web-v0.1.137 — 2026-10-13
Added
- Ahrefs Web Analytics (
PUBLIC_AHREFS_KEY) — loads only after Analytics cookie consent
web-v0.1.136 — 2026-10-13
Added
- Google Analytics 4 (
G-PJ7TVJFP9D/PUBLIC_GA_MEASUREMENT_ID) via gtag — loads only after Analytics cookie consent; SPA pageviews
api-v0.1.82 — 2026-10-06
Fixed
- App Store 1.2.1:
lit_shopify_shopcookie from OAuth forces Shopify-managed billing before claim; Paddle checkout/portal blocked when Shopify-managed
web-v0.1.135 — 2026-10-06
Added
- Pricing page: Web / Shopify tabs — Shopify tab shows App Pricing and links to the App Store (
?channel=shopify)
web-v0.1.134 — 2026-10-06
Fixed
- Sidebar Upgrade opens Shopify App Pricing when the workspace is Shopify-managed (no Paddle Billing page for App Store merchants)
api-v0.1.81 — 2026-10-06
Changed
- Active Shopify install sets
billing_managed_by: shopifyeven on the free App Pricing plan (plan changes only via Shopify Admin)
web-v0.1.133 — 2026-10-06
Changed
- Shopify Integrations: remove manual store-domain install (App Store shop-first only)
- Billing: Shopify-connected workspaces always use Shopify plan CTAs (including Free)
web-v0.1.132 — 2026-10-06
Changed
- Billing: Shopify-managed workspaces send every plan CTA to Shopify Admin; hide Paddle portal, address, invoices, and interval toggle (Paddle-only chrome stays for Paddle-billed orgs)
api-v0.1.80 — 2026-10-06
Fixed
- Public
/v1Bearer auth and public branding logo usemax(Paddle, Shopify App Pricing)(was Paddle-only overlay, so Shopify Growth did not unlock API)
api-v0.1.79 — 2026-10-06
Changed
- Org entitlement is
max(Paddle, Shopify App Pricing)for dashboard/MCP; billing returnsbilling_managed_by+ Shopify plan fields
web-v0.1.131 — 2026-10-06
Added
- Billing: show Managed by Shopify when App Pricing grants the workspace tier; Change plan opens Shopify Admin
web-v0.1.130 — 2026-10-06
Added
- Shopify embed: Change plan control on the Plan card (Shopify hosted plan page) for every tier
api-v0.1.78 — 2026-10-06
Changed
- Release bump with web embed Change plan control
api-v0.1.77 — 2026-10-06
Added
- Shopify
app_subscriptions/updatewebhook handler persists App Pricingplan_handle/ status (cancel clears paid entitlement)
api-v0.1.76 — 2026-10-06
Fixed
- Shopify embed status syncs App Pricing plan from Admin GraphQL after hosted plan upgrades (not only welcome
plan_handle)
web-v0.1.129 — 2026-10-06
Fixed
- Shopify embed forwards welcome
plan_handleinto admin status so upgrades persist
api-v0.1.75 — 2026-10-06
Added
- Shopify App Store: shop-first OAuth (
/auth/shopify/begin), pending installs,POST …/shopify/claim, Shopify App Pricing entitlement layer (shopifybilling) - Migration
000027—shopify_pending_installs+ plan columns onorg_integrations
Changed
- Shopify OAuth callback redirects to the embed; org-bound installs still require a matching lit.onl session
web-v0.1.128 — 2026-10-06
Changed
- Shopify dashboard: claim pending install / App Store path without primary shop typing; advanced domain optional
- Shopify embed: pending-claim UX, Upgrade in Shopify plan link, cap errors surface Shopify upgrade URL
api-v0.1.74 — 2026-10-06
Added
- Dashboard links list includes plan-window
clickson each row
web-v0.1.127 — 2026-10-06
Changed
- Links table: truncated destination (expand on click), Clicks column, compact actions / ⋮ menu so buttons no longer crowd the row
web-v0.1.126 — 2026-10-06
Changed
- Shopify Admin embed product list: search + Linked/Needs link filters, denser table rows, compact icon actions
api-v0.1.73 — 2026-10-06
Added
- Shopify embed:
PATCH /internal/v1/integrations/shopify/admin/links/{id}(destination + UTM) andGET …/links/{id}/analytics
web-v0.1.125 — 2026-10-06
Added
- Shopify Admin embed: Edit, Tracking, and Analytics modals on products that already have a short link
api-v0.1.72 — 2026-10-06
Fixed
- Shopify Admin action: reopen shows the existing short link; Done closes the modal reliably
Added
GET /internal/v1/integrations/shopify/admin/links?product_id=— lookup without creating
web-v0.1.124 — 2026-10-06
Fixed
- Shopify dashboard create: after success show product URL + short link (not an empty form); embed lists product URL with short link beside it
api-v0.1.71 — 2026-10-05
Fixed
- Shopify Admin product list: use expiring offline Admin API tokens (
expiring=1+ refresh); migrate legacy non-expiring tokens so GraphQL no longer returns 403
Added
- Migration
000026:org_integrations.refresh_token_encrypted+ access/refresh expiry columns
api-v0.1.70 — 2026-10-05
Fixed
- Shopify Admin product action: CORS on
/internal/v1/integrations/shopify/admin/*so the UI extension can call create-link; extension sends session JWT +product_id(no Growth+ messaging)
web-v0.1.123 — 2026-10-05
Changed
- Shopify Admin embed: product list with create/copy short link (replaces manual URL paste); stats cards for monthly links, plan, and products with links
api-v0.1.69 — 2026-10-05
Added
GET /internal/v1/integrations/shopify/admin/products— paginated Shopify catalog + existing short links- Admin status quota fields (
links_used/links_limit/products_with_links/ …) - Admin create accepts
product_idand returns an existing product short link when present
web-v0.1.122 — 2026-10-05
Changed
- Integrations hub, Zapier/Make recipes, dashboard webhooks, and Shopify postbacks are available on every plan (REST/MCP stay Growth+)
- Pricing compare: outbound webhooks Yes on Free/Core
api-v0.1.68 — 2026-10-05
Changed
- Ungate dashboard webhooks and Shopify postbacks on every plan; plan limits stay on link create and similar internals
web-v0.1.121 — 2026-10-05
Changed
- Shopify connect + short-link create are available on any plan; only click postbacks stay Growth+
api-v0.1.67 — 2026-10-05
Changed
- Remove Growth+ gate from Shopify install/status/admin create; keep it for postbacks only (link caps still apply)
web-v0.1.120 — 2026-10-05
Changed
- Shopify install-from-Admin: dashboard prefills
?shop=and auto-starts OAuth (connect=1) so merchants do not re-type the store domain
api-v0.1.66 — 2026-10-05
Changed
- Shopify admin status
connect_urlincludesshop+connect=1from the session JWT
web-v0.1.119 — 2026-10-05
Fixed
- Shopify embed: inject App Bridge
shopify-api-keyinto the initial HTML (SSR + hooks) soshopify.idToken()works inside Admin
web-v0.1.118 — 2026-10-05
Added
- Shopify embedded Admin panel at
/integrations/shopify/embed(App Bridge session JWT — no lit.onl login iframe)
Fixed
- Opening lit.onl from Shopify Apps no longer traps merchants in a cookie login loop inside the iframe
api-v0.1.65 — 2026-10-05
Added
GET /internal/v1/integrations/shopify/admin/statusfor the embedded Admin panel (Shopify session JWT)
Changed
- Default
SHOPIFY_APP_URLishttps://litonl.com/integrations/shopify/embed
web-v0.1.117 — 2026-10-05
Changed
- Shopify integrations page copy mentions the Admin product action (More actions → Create lit.onl short link)
api-v0.1.64 — 2026-10-05
Added
- Shopify Admin short-link create (t29.3a):
POST /internal/v1/integrations/shopify/admin/linksauthenticated with Shopify session JWT; maps shop →org_integrations, Growth+ - Admin UI extension scaffold
marketing/shopify/extensions/product-short-link(admin.product-details.action.render)
web-v0.1.116 — 2026-10-05
Added
- Shopify native page (
/integrations/shopify): connect store domain (OAuth), create tracked short link, click postback URL, disconnect; Growth+ gate - i18n keys for the Shopify page (English; other locales fall back)
Changed
- Integrations catalog: Shopify is Live (Built-in group) and opens
/integrations/shopify; public/docs/integrationslists Shopify - Shopify OAuth redirect URL is
https://litonl.com/auth/shopify/callback(docs +marketing/shopify/shopify.app.toml)
api-v0.1.63 — 2026-10-05
Added
- Shopify native (t29.3, Growth+):
GET/DELETE /internal/v1/integrations/shopify,GET …/install,PUT/DELETE …/postback,GET /auth/shopify/callback,POST /webhooks/shopify(HMAC-verifiedapp/uninstalled+ GDPR stubs) - Table
org_integrations(migration000025); access tokens AES-GCM encrypted (internal/tokencrypt, key fromSESSION_SECRET) - Click postback reuses org webhook endpoints (create by URL or attach existing)
- Optional env
SHOPIFY_API_KEY,SHOPIFY_API_SECRET,SHOPIFY_APP_URL,SHOPIFY_SCOPES,SHOPIFY_REDIRECT_URI(not required in production; unset = install returns 503)
web-v0.1.115 — 2026-10-05
Added
- Integrations hub (
/integrations): catalog for API, webhooks, MCP, Zapier/Make recipes, Soon natives (Shopify create-short-link + postbacks, HubSpot, Klaviyo, postbacks), and Via Zapier logo wall - Public docs
/docs/integrations+docs/integrations.mdrecipes
web-v0.1.114 — 2026-10-05
Fixed
- Ops Settings password change shows the API validation message (e.g. too short) instead of a wrong “current password” error
api-v0.1.62 — 2026-10-05
Fixed
- Platform user memberships include
entitlement_tier(effective access), not only Paddle billed tier
web-v0.1.113 — 2026-10-05
Fixed
- Ops user detail org line shows access tier vs billed (so awarded premium is not shown as free)
web-v0.1.112 — 2026-10-05
Changed
- Ops console content uses the full main column width (removed 1200px cap)
api-v0.1.61 — 2026-10-05
Fixed
- Empty short-link path uses branded unavailable page instead of stock Go 404