Changelog
Changelog
Every release of the CLI, the loader and the modules. Packages are versioned independently and follow semantic versioning.
loader2.3.0
- Stable release of the 2.3 loader, identical in behaviour to 2.3.0-beta.4 (only the embedded version string changes). Non-breaking minor release: the public
spAPI, attributes, events, session handling and URL swapping behave as in 2.2.0.@stagepass/cli(2.2.1) and@stagepass/modules(2.2.0) are unchanged; the published modules peer range>=2.0.0accepts 2.3.0 without--legacy-peer-deps. - Visitors without a session load only
loader.min.js, see nothing and get no extra listeners, no console wrapping and nocrossoriginchanges. Everything below appears only while a session (?stagepass=<project>.spor?stagepass=debug) is active. - Summary of 2.3.0-beta.0 to 2.3.0-beta.4:
- Changed
- New dev flag in three stages instead of the
STAGEPASS ACTIVE/STAGEPASS DEBUGbadge: a small pass-icon pill with a status dot at rest (amber for warnings, red for errors), expanded on hover or keyboard focus withLOCAL/DEBUGand the counters, and a session card on click. On touch devices the first tap expands and the second opens the card. - No glow, shadow, blur or filter in any state; dark ink text and icons on the gradient, 1px low-opacity border.
- Clicking the flag no longer ends the session. Only "End session" in the card disconnects (same as
?stagepass=off); Esc or a click outside closes the card and returns focus to the pill. - The flag UI moved out of the loader into
dist/flag.min.jsanddist/flag-card.min.js, fetched only during a session (the card on first expand). - The Chrome Local Network Access check runs once per page, and its hint is shown in the card only when a local file fails at the network level.
- "Script error." from another origin is shown as "Error in a cross-origin script (details only in DevTools console)" with source
external. - Added
- Session card: project, session domain, a collapsed list of swapped files (live → local,
js/css,ok/404/failed; only loaded files count as swapped) and the latest 50 message groups. Fixed header and footer with an inner scroll area that stays inside the viewport;max-width: calc(100vw - 24px)and 44px touch targets on mobile. - Inspector with error context: each message keeps its source (
local,live,external),file:line:coland a collapsible stack; repeats are grouped as×Nwith the last time. "Always expanded" (stored per origin), "Copy all" and per-message "Copy" as Markdown (page URL without query, project, loader version, messages; no cookies or storage). - Locally swapped files load with
crossorigin="anonymous"for full error details. Without a CORS header from the local server the file loads again without it and a warning says so. - Counters and messages from
sp.warn/sp.error/sp.log,console.warn/console.error(the original console still runs; arguments are serialized safely with limits), uncaught errors, failed resource loads and unhandled rejections (with stack). Failed local files report "Local file not found (404)" or "Local server not reachable … Run stagepass doctor". - Card footer: Reload, "Debug mode" / "Back to local" (works in both directions, also from a new tab or a restored session; disabled with a reason when there is no session to return to) and End session.
- Shadow DOM rendering with DOM APIs only (no
innerHTML, noeval), keyboard and screen reader support,prefers-reduced-motion. - Size budget tests in CI for
loader.min.js,flag.min.jsandflag-card.min.js. - Sizes:
loader.min.js13.1 KB minified / 5.9 KB gzip (2.2.0: 12.1 KB / 5.0 KB),flag.min.js2.7 KB gzip,flag-card.min.js4.8 KB gzip.
loader2.3.0-beta.4
- Prerelease of the loader only, on top of 2.3.0-beta.3. CLI and modules are unchanged. Visitors without a session see no change: no console wrapping, no
crossorigin, no extra requests. - Added
- Inspector details: every message keeps its source (
local,live,external),file:line:coland the stack. Rows are one-liners; a click shows the details. Repeats are grouped as×Nwith the last time. - Locally swapped files load with
crossorigin="anonymous", so their errors keep message, location and stack. If the local server sends no CORS header, the file loads again without it and a warning explains that details are limited. console.warnandconsole.erroron the page are captured during a session (the original still runs; arguments are serialized safely with depth and size limits). Unhandled rejections show the message and stack.- Failed local files report "Local file not found (404)" or "Local server not reachable … Run stagepass doctor". The Local Network Access hint is added only to that network-level failure.
- Collapsed list of swapped files (live → local,
js/css,ok/404/failed, full URLs in the tooltip). - "Always expanded" toggle (stored per origin), "Copy all" and per-message "Copy" as Markdown (page URL without query, project, loader version, messages; no cookies or storage).
- Changed
- "Script error." from another origin is shown as "Error in a cross-origin script (details only in DevTools console)" with source
external. - The swapped-files count only includes files that actually loaded.
- The Debug toggle is labelled by its action ("Debug mode" / "Back to local"). After the reload the pill expands briefly to show the new mode. The session to return to is stored in
localStorage, so it also works from a new tab or a restored session. Without one the button is visibly disabled and the card says why. - Card layout: fixed header and footer with an inner scroll area that never leaves the viewport;
max-width: calc(100vw - 24px)and 44px touch targets on mobile. - After a click outside the card, focus returns to the pill (unless the click focused something on the page).
- Sizes:
loader.min.js13.1 KB minified / 5.9 KB gzip (beta.3: 11.0 KB / 5.0 KB),flag.min.js2.7 KB gzip,flag-card.min.js4.8 KB gzip. Size budgets raised accordingly.
loader2.3.0-beta.3
- Prerelease of the loader only, on top of 2.3.0-beta.2. CLI and modules are unchanged. The public
spAPI, attributes, events and URL swapping behave as before. - Changed
- Dev flag v2, in three stages. At rest it is a small pass-icon pill with a status dot (amber for warnings, red for errors). On hover or keyboard focus it expands to the left and shows
LOCAL/DEBUGand the counters. A click opens a session card. On touch devices the first tap expands and the second opens the card. - Clicking the flag no longer ends the session. Only "End session" in the card disconnects (same as
?stagepass=off). Esc or a click outside closes the card. - The flag text, counters and icons are dark ink on the gradient. There is still no glow, shadow, blur or filter in any state, and the pill has a 1px low-opacity border.
- The Local Network Access hint is shown as a warning in the card instead of the tooltip.
- Added
- Session card (340px, opaque, follows a dark or light page): project, session domain, number of files swapped locally, and the latest 50 warnings and errors with time and
file:line. Messages are always rendered as text and long messages are truncated. Clicking a message copies it to the clipboard ("Copied"). - Card footer: Reload, a Debug on/off toggle (reloads with
?stagepass=debugand back to the previous session) and End session. - When the local dev server cannot be reached, the flag shows the error dot and the message "Local server not reachable … Run stagepass doctor".
- The card ships as a separate file,
dist/flag-card.min.js, fetched on first expand next toflag.min.js. - Accessibility: the pill is a button with
aria-expanded, the card is arole="dialog"with anaria-label. Focus moves into the card on open and back to the pill on close, there is a visible focus ring, and with reduced motion all changes are instant. - Size budget test for
flag-card.min.js. Sizes:loader.min.js11.3 KB minified / 5.1 KB gzip (beta.2: 10.5 KB / 4.7 KB),flag.min.js2.6 KB gzip,flag-card.min.js3.4 KB gzip.
loader2.3.0-beta.2
- Prerelease of the loader only, on top of 2.3.0-beta.1. CLI and modules are unchanged.
- Changed
- Dev flag: the glow is removed. The pill has no shadows, glow layers or filters in any state (rest, hover, focus, entry animation), which also removes the glow artefacts Chrome showed on hover. Hover now slightly lightens the red gradient; keyboard focus keeps the crisp 2px outline. Label, icons, counters and click behaviour are unchanged.
loader2.3.0-beta.1
- Prerelease of the loader only, on top of 2.3.0-beta.0. CLI and modules are unchanged.
- Fixed
- Dev flag: the glow could show a straight edge in Chrome (a hard horizontal line next to the pill, most visible on dark pages). The glow is now a radial gradient on its own layer that fades out completely inside its box instead of a large blurred
box-shadow, and the entry animation fades and scales in place instead of sliding in from above the viewport. The flag sits 12px from the top right corner (was 10px) so the glow fades out before the window edge at the top.
loader2.3.0-beta.0
- Non-breaking minor prerelease of the loader only.
@stagepass/cli(2.2.1) and@stagepass/modules(2.2.0) are unchanged; any 2.x CLI and modules work with it. The publicspAPI, attributes, events and URL swapping behave as in 2.2.0. - Changed
- New dev flag: a red
LOCALpill (orDEBUG) replaces the oldSTAGEPASS ACTIVE/STAGEPASS DEBUGbadge. The LNA hint moves from the badge text to the tooltip and the warning counter. - The flag UI moved to a separate file,
dist/flag.min.js, fetched only while a session is active. Visitors without a session load less code:loader.min.jsis 10.5 KB minified / 4.7 KB gzip (2.2.0: 12.1 KB / 5.0 KB). - The Chrome Local Network Access check runs once per page instead of twice.
- Added
- Warning and error counters on the flag:
sp.warn/sp.error/sp.log('warn' | 'error'), uncaught errors, failed resource loads and unhandled rejections (listeners are only added during a session). - The flag renders in a Shadow DOM, uses DOM APIs only and respects
prefers-reduced-motion. - Size budget test in CI for
loader.min.jsandflag.min.js.
cli2.2.1
- Patch release of the CLI only.
@stagepass/loaderand@stagepass/modulesstay at 2.2.0. - Fixed
stagepass newwith "Run npm install now?" = y failed withnpm error notarget No matching version found for @stagepass/loader@^2.2.0while 2.2.0 was not yet published. Generated projects now depend on@stagepass/loader/@stagepass/modules^2(the same major as the CDN pin@2), never on a range derived from the CLI or a staged version.stagepass upgradeonly writes ranges that a published version satisfies. It readsnpm view <pkg> dist-tags versionsand writes^<latest published 2.x>; offline it writes^2. An explicit--versionthat is not published (for example a staged release awaiting approval) is refused before any file is written.- Types follow what is actually available: per-module entries (
@stagepass/modules/cookies, …) are only written when a published or installed@stagepass/modulesships them (2.2.0 and later). Otherwise the umbrella@stagepass/modulesis used, sotsckeeps passing on 2.0.0. Afternpm install,newreconciles the types with the installed package. stagepass upgradewithout a TTY maps the legacy"modules": trueto["all"]instead of[], sosp.inject/sp.cookies/sp.maintenancedo not become type errors. A hint shows how to narrow the list (--site-modules cookies).- Generated JavaScript projects failed
tsc -p jsconfig.json(checkJs+strict) onwindow.Webflowinsrc/main.js. The entry now uses a JSDoc cast; runtime code is unchanged.
cli2.2.0
- Non-breaking minor release, together with
@stagepass/loaderand@stagepass/modules2.2.0. Includes the 2.1.0 packaging fix (2.1.0 and the planned 2.1.1 were never published aslatest). Existing commands, flags and defaults keep working. - Fixed
stagepass newfailed withENOENT … templates/project/.gitignorewhen installed from npm (for example after answering y to "Run npm install now?"): npm pack drops.gitignorefiles, so the template never shipped. Dotfile templates are now stored without the leading dot (templates/project/gitignore) and written as.gitignore.- A missing template now fails with a clear message ("reinstall the CLI") before anything is written.
- Generated projects no longer pin
@stagepass/loader/@stagepass/modulesto the CLI's own version. They use^<major>.<minor>.0of the loader/modules version this CLI targets (^2.2.0). stagepass upgradewithout--versionand thedata-stagepass-versionin printed snippets use the loader/modules version this CLI targets, not the CLI version.- Added
- Declared modules:
stagepass.jsonhas"modules": [],["cookies"](any ofinject,cookies,maintenance) or["all"].stagepass newasks for it (or takes--site-modules),stagepass upgradeinfers and confirms it. The legacy boolean"modules": true|falseis still read. - Live site detection:
stagepass new --site <host>andstagepass upgrade(using--siteor the project's linked origin) fetch the public page once (https only, no cookies or auth, about 5 s timeout, size cap, at most 3 redirects) and read<script src>tags of@stagepass/loader/@stagepass/moduleson jsDelivr or one other public npm CDN (any version). Nothing from the page is executed. When the site is unreachable the CLI asks; without a TTY it keeps the existing list (or[]) and prints a hint. - Agent guide: generated projects get
AGENTS.mdwith a fullspAPI reference between<!-- stagepass:begin -->and<!-- stagepass:end -->, plus an editor rule file (globssrc/**). Declared modules get full sections; undeclared ones get a "not available; enable by …" line and an explicit rule never to use them. stagepass upgradesyncs existing projects: addsAGENTS.mdif missing or refreshes only the managed block, adds the editor rule file if missing, updatestypesintsconfig.json/jsconfig.json(rest of the JSON preserved; files with comments or without atypesarray are skipped with a hint), and prints every change. New flags--dry-run(writes nothing),--site,--site-modules,--skip-site,-y, --yes.stagepass doctorchecks the project in the current directory:stagepass.jsonmodules list, the live site's loaded loader version, and a warning when the live site loads other modules than declared.--skip-siteskips the network check.tsconfig.json/jsconfig.jsonin new projects list per-module types (@stagepass/modules/cookies, …) for the declared modules only.- Changed
- CI and the release workflow run a packed-tarball smoke test (
scripts/test-cli-packed.mjs): packs cli, loader and modules, scaffolds ts and js projects with--installfrom the local tarballs, type checkssp, builds, and runsupgradeon an old-style project. - The release workflow stages every version (also stable) under the
nextdist-tag; promotion tolatestis an explicitnpm dist-tag addafter approval. Partial releases stage only the packages whose version matches the tag.
loader2.2.0
- Non-breaking minor release. No runtime behaviour change (only the embedded version string).
- Added
- Complete TypeScript declarations for
sp/window.stagepassinglobal.d.tswith JSDoc and examples, including typedsp.on(...)overloads for the built-in events. Verified by type check fixtures.
modules2.2.0
- Non-breaking minor release. Runtime files in
dist/are unchanged. - Added
- Per-module type entries:
@stagepass/modules/inject,@stagepass/modules/cookies,@stagepass/modules/maintenance(shipped asinject.d.ts,cookies.d.ts,maintenance.d.ts). Add only the modules your site loads tocompilerOptions.types, so undeclaredsp.<module>is a type error. - Full JSDoc with examples for
sp.inject,sp.cookiesandsp.maintenance. - Changed
@stagepass/modules(the package types entry,global.d.ts) still declares all modules, so existingtypes: ["@stagepass/modules"]setups keep working.
cli2.1.0
- Non-breaking minor release. Existing commands, flags, defaults, and output contracts from 2.0.0 keep working.
- Added
stagepass doctor [--json]: read-only local stack diagnostics (Homebrew, Caddy, PHP/php-fpm, dnsmasq, resolver, port 443, Caddyfile, projects, certs, LaunchAgent, Chrome LNA hint). Never uses sudo. Exit1when any check fails.stagepass certs check/stagepass certs trust: read-only Caddy local CA checks;trustrunscaddy trustafter confirmation or--yes.stagepass autostart on|off|statusandstagepass daemon: user Login LaunchAgent (io.github.arobertherz.stagepass) runningcaddy runwithout sudo.stagepass new [name]: lean Webflow project scaffold (TypeScript/SCSS defaults, optional modules, git, install). Flags for every option;--yes/--dry-run.stagepass build/stagepass watch: thin wrappers around projectnpm run build/npm run watch(exit code forwarded; no shell).stagepass upgrade: bump@stagepass/*in the currentpackage.jsonand print Webflow snippets (does not run install).- macOS platform guard for system commands (
setup,start,stop,reload,link,unlink).--version/--helpstill work everywhere. Escape hatchSTAGEPASS_SKIP_PLATFORM_CHECK=1for tests/CI only. - Manual macOS checklist
packages/cli/TESTING-macos.md. - Changed
- CI test matrix uses Node 22 and 24 (development tooling). Published
engines.noderemains>=18.0.0(no consumer impact). - Docs
- Documented doctor, certs, autostart/daemon, and project helpers (
new/build/watch/upgrade). - Default CDN / install recommendation is major pin
@2(exact pin optional). jsDelivr is the documented CDN; another public npm CDN is noted as an alternative. - Issue/PR templates and jsDelivr
@2purge notes.
loader2.1.0
- Non-breaking minor release. 2.0.0 behaviour is preserved (
vars.env, eagervars.client, session/swap contracts unchanged). - Added
- Flat helpers:
stagepass.env()/is()/can()/client()/on()/use()(module registry with major-version check). - Optional
data-stagepass-staging-hosts(comma-separated hostnames treated as staging in addition to*.webflow.io). - Optional
data-stagepass-alias(custom global name; assigned only when free). - Debug-mode warning when multiple tagged assets share the same local filename.
- Docs
- Documented Runtime API helpers, staging hosts, and alias.
- Prefer major CDN pin
@2(exact pin optional); jsDelivr purge notes for the@2alias.
modules2.1.0
- Non-breaking minor release. Existing
inject/cookiesAPIs keep working; new behaviour is additive or opt-in. Modules still register without the loader (inject/cookieswarn;maintenanceskips). - Added
maintenance.min.js: opt-in client-side maintenance overlay (data-stagepass-maintenance="true";sp.maintenance.enable/disable/isActive). Text viatextContentonly (not access protection; nonoindex).- Cookies: consent categories with queue,
jar/crumbs/throwAll, andsp.cookiealias. - Inject:
integrity,crossorigin,nonce, andallowedHostsoptions. - Security
- Cookie attribute values validated against cookie injection.
- Reserved inject attributes cannot bypass the host allowlist.
- Docs
- Documented maintenance module, consent helpers, and inject security options.
- Prefer major CDN pin
@2(exact pin optional); published files list includesmaintenance.min.js.
cli2.0.0-beta.1
- Security
- Caddy site blocks no longer serve hidden path segments (
.git,.env, …),node_modules, or common private key/cert/db/log extensions; blocked beforephp_fastcgi/file_server. - CORS no longer uses blanket
Access-Control-Allow-Origin: *by default. Allowed origins are reflected withVary: Origin(local.sp/ localhost / 127.0.0.1, plus per-project--origin/projects.json). NoAccess-Control-Allow-Credentials. - Breaking:
*.webflow.io/*.webflow.comare not in the default allowlist; add hosts via--origin(explicit*.webflow.ioallowed with a warning). - Domain and project-root inputs are validated to prevent Caddyfile injection; dangerous roots (
/, home,/Users,/System, …) are refused. - Added
- Origin allowlist CORS with OPTIONS preflight (
204),Access-Control-Allow-Private-Network, and configurable live domains (--origin,~/.stagepass/projects.json). --allow-all-origins/--no-allow-all-originsopt-in for the previous permissive CORS mode (with warnings).--remove-origin <host>(repeatable) to drop stored CORS hostnames.- Automatic legacy Caddyfile migration on
link/reload/start(timestamped backup, version marker# stagepass-block: v2; migrated blocks keepallowAllOriginsenabled for compatibility). - Shared pure helpers under
src/lib/(caddyfile,domain,origins,paths,projects,migrate) and expanded Vitest coverage; optional Docker/caddy adaptintegration test (skipped when unavailable). - Tag-triggered
npm stage publishrelease workflow (seeRELEASING.md). - Changed
stagepass --versionreads the version frompackages/cli/package.jsoninstead of a hard-coded value.- Generated site blocks include
# stagepass-block: v2/# stagepass-options: …markers. - Regenerating v2 blocks uses the tighter defaults and prints a tip to add
--originfor Webflow/staging hosts. - Fixed
- Invalid or injectable domain names are rejected before writing the Caddyfile; folder-derived domains are slugified when needed.
--no-allow-all-originsis a defined Commander option (three-state with--allow-all-origins; omitting both keeps stored settings).- Re-linking a v2 site when
projects.jsonlacks the domain restores CORS options from the Caddyfile marker instead of silently resetting them.
loader2.0.0-beta.1
- Breaking
- No global console mute in production by default; opt in with
data-stagepass-mute-console="true". ?stagepass=sessions expire (default 12 h;data-stagepass-session-hours); stored as JSON with expiry.data-stagepass-cachebust="true"no longer appends a timestamp on every production page view; usedata-stagepass-version/data-stagepass-v→?v=.- Injected scripts keep order (
script.async = false). - Removed deprecated globals
splog,spwarn,sperror. - Added
- Chrome Local Network Access permission hint (
loopback-network/local-network-access) before local swaps. - Build-time
__STAGEPASS_VERSION__frompackage.json. - Shipped
global.d.ts(typesfield) forWindow.stagepass/stagepass/sp. - Added package
LICENSE(MIT).
modules2.0.0-beta.1
- Breaking
- Injected scripts keep insertion order (
async = falseunlessasync: true). - Production
cacheBust: trueno longer appends per-view timestamps; useversion: '…'→?v=. - Added
- Declaration merging types (
global.d.ts) forstagepass.inject/stagepass.cookies. - JSDoc on public cookie helpers and
inject. - Earlier 1.1.1
- Documentation only relative to published 1.1.0: package
README.md,LICENSE, and version bump inpackage.json. Dist artifacts match npm 1.1.0.
cli2.0.0
- Security
- Caddy site blocks no longer serve hidden path segments (
.git,.env, …),node_modules, or common private key/cert/db/log extensions; blocked beforephp_fastcgi/file_server. - CORS no longer uses blanket
Access-Control-Allow-Origin: *by default. Allowed origins are reflected withVary: Origin(local.sp/ localhost / 127.0.0.1, plus per-project--origin/projects.json). NoAccess-Control-Allow-Credentials. - Breaking:
*.webflow.io/*.webflow.comare not in the default allowlist; add hosts via--origin(explicit*.webflow.ioallowed with a warning). - Domain and project-root inputs are validated to prevent Caddyfile injection; dangerous roots (
/, home,/Users,/System, …) are refused. - Added
- Origin allowlist CORS with OPTIONS preflight (
204),Access-Control-Allow-Private-Network, and configurable live domains (--origin,~/.stagepass/projects.json). --allow-all-origins/--no-allow-all-originsopt-in for the previous permissive CORS mode (with warnings).--remove-origin <host>(repeatable) to drop stored CORS hostnames.- Automatic legacy Caddyfile migration on
link/reload/start(timestamped backup, version marker# stagepass-block: v2; migrated blocks keepallowAllOriginsenabled for compatibility). - Shared pure helpers under
src/lib/and expanded Vitest coverage; optional Docker/caddy adaptintegration test (skipped when unavailable). - Tag-triggered
npm stage publishrelease workflow (seeRELEASING.md). - Changed
stagepass --versionreads the version frompackages/cli/package.jsoninstead of a hard-coded value.- Generated site blocks include
# stagepass-block: v2/# stagepass-options: …markers. - Regenerating v2 blocks uses the tighter defaults and prints a tip to add
--originfor Webflow/staging hosts. - Fixed
- Invalid or injectable domain names are rejected before writing the Caddyfile; folder-derived domains are slugified when needed.
--no-allow-all-originsis a defined Commander option (three-state with--allow-all-origins; omitting both keeps stored settings).- Re-linking a v2 site when
projects.jsonlacks the domain restores CORS options from the Caddyfile marker instead of silently resetting them.
loader2.0.0
- Breaking
- No global console mute in production by default; opt in with
data-stagepass-mute-console="true". ?stagepass=sessions expire (default 12 h;data-stagepass-session-hours); stored as JSON with expiry.data-stagepass-cachebust="true"no longer appends a timestamp on every production page view; usedata-stagepass-version/data-stagepass-v→?v=.- Injected scripts keep order (
script.async = false). - Removed deprecated globals
splog,spwarn,sperror. - Added
- Chrome Local Network Access permission hint (
loopback-network/local-network-access) before local swaps. - Build-time
__STAGEPASS_VERSION__frompackage.json. - Shipped
global.d.ts(typesfield) forWindow.stagepass/stagepass/sp. - Package
LICENSE(MIT).
modules2.0.0
- Breaking
- Injected scripts keep insertion order (
async = falseunlessasync: true). - Production
cacheBust: trueno longer appends per-view timestamps; useversion: '…'→?v=. - Added
- Declaration merging types (
global.d.ts) forstagepass.inject/stagepass.cookies. - JSDoc on public cookie helpers and
inject.
loader1.2.0
- Added
sp.vars.clientruntime info (theme,browser,os,device,viewport,locale,capabilities), with live updates for theme and viewport. - Added package
README.md.
modules1.1.0
- Added Cookies utility module (
sp.cookies.bake/eat/throw/has/list), bundled intoall.min.js.
loader1.1.4
- Added preferred logging API:
sp.log/sp.warn/sp.error(splog/spwarn/sperrordeprecated). - Added
sp.resolveLocalUrl(relativePath)for shared local URL building. - Added
data-stagepass-cachebustfor production cache busting. - Removed evaluation of loader script-tag query parameters
?modules/?silent(modules must be included as separate script tags).
modules1.0.6
- Injector uses loader
resolveLocalUrlwhen available; added productioncacheBustoption. - Declared
@stagepass/loaderpeer dependency; dist files committed for CDN use.
cli1.0.1
- CORS support for linked
.spsites:OPTIONSpreflight (204) plusAccess-Control-Allow-Methods/Access-Control-Allow-Headers(committed in the 2026-03-10 release work; published as 1.0.1).
loader1.1.3
- Published on npm. No separate feature commit for this patch bump remains in the current repository history (same-day publishes after 1.1.1).
loader1.1.2
- Published on npm. No separate feature commit for this patch bump remains in the current repository history (same-day publishes after 1.1.1).
loader1.1.1
- Module loading readiness / sequential module script loading fixes (while script-tag
?modulesstill existed in this line).
loader1.1.0
- Exposed global
stagepass(in addition towindow.stagepass).
modules1.0.5
- Published on npm. No separate feature commit for this patch bump remains in the current repository history.
modules1.0.3
- Published on npm. No separate feature commit for this patch bump remains in the current repository history.
modules1.0.2
- Published on npm. No separate feature commit for this patch bump remains in the current repository history.
modules1.0.1
- Published on npm. No separate feature commit for this patch bump remains in the current repository history.
modules1.0.0
- Initial public release: Injector module (
sp.inject/inject.min.js/all.min.js).
loader1.0.2
- Fixed console suppression so active Stagepass sessions are not silenced incorrectly.
- Added cache-bust query (
_cb) for locally swapped assets.
loader1.0.1
- Package
mainpoints at the minified build (dist/loader.min.js).
cli1.0.0
- Initial public release: local
.spSSL domains via Caddy/Dnsmasq/PHP,setup/start/stop/link/unlink/reload, verbose (-v) logging.
loader1.0.0
- Initial public release:
data-stagepassasset swapping, session vialocalStorage/?stagepass=, debug mode, production console suppression, visual active flag.
Generated from CHANGELOG.md in the repository. Upgrading from 1.x? Read Migrate from 1.x to 2.0.