Extends the sweep beyond packages/ to the whole repo (178 files): workflows,
.eslintrc, playground, examples, tooling, root docs. Zero upstream-brand refs and
zero such filenames outside the exemptions.
REVERTS A LICENSING ERROR (from earlier rebrand e43ab1af, not this sweep):
- LICENSE had its copyright holder rewritten to 'Insights'. Restored to the real
holder: 'Copyright 2020 Posthog / Hiberly, Inc.' (+ Mixpanel, Inc.).
- NOTICE credited a non-existent upstream (github.com/getinsights/insights-js).
Restored to the real one: github.com/PostHog/posthog-js.
Apache-2.0 4(c) requires retaining upstream attribution; rewriting a third
party's copyright line falsifies ownership. Both files are now excluded from the
guard and documented as exempt in LLM.md.
Also:
- Deleted junk: AGENTS.md~upstream_main (merge leftover), the now-obsolete
rebrand script; renamed upload-*-s3.ts tooling (still used by cli.ts).
- Removed 42 stale playground/example pnpm-lock.yaml files: they pinned upstream
packages the package.json no longer references. Regenerated on install —
sed-ing a lockfile would corrupt its integrity hashes.
- Guard renamed no-posthog.yml -> brand-guard.yml and now assembles the pattern
at runtime, so no filename or file content carries the string (the previous
guard was swept by its own rule, inverting it to forbid 'insights').
20 KiB
rrweb-snapshot
0.0.65
Patch Changes
- #3678
add2faeThanks @ksvat! - fix(replay): keepph-no-captureplaceholders in normal flow during replay. Blocked elements were rebuilt withposition: absolute+ recordedleft/topregardless of how they were originally positioned, pulling in-flow elements (flex/grid children, inline spans) out of flow and collapsing sibling layout. Snapshot now captures the element's computedposition,transform, anddisplay; rebuild only forces absolute positioning when the original was non-static or contributed a transform, and promotes inline placeholders toinline-blockso the redacted slot is preserved. Old recordings without the new attributes keep the legacy absolute behavior. (2026-05-27)
0.0.64
Patch Changes
- #3667
cafa9ccThanks @pauldambra! - fix(replay): stop polling preload-as-style<link>elements forever. Session recorder treated<link rel="preload" as="style" href="*.css">as if it were a stylesheet and waited forlink.sheetto populate. Per spec preload links never instantiate aCSSStyleSheet, so the wait timed out, re-serialized the link, scheduled another wait, and leaked aloadlistener on every cycle — multiplying further on every realloadevent. Pages with Next.js-style CSS preloads accumulated thousands of active polling chains, saturating the main thread and freezing the tab on refocus (2026-05-26)
0.0.63
Patch Changes
- #3635
5fb74b6Thanks @TueHaulund! - Capture<link rel="stylesheet">URLs fromlink.sheet.hrefand trylink.sheetdirectly for inlining, so recordings survive SPAhistory.pushStatenavigations between routes of different path depths (wherelink.hrefre-resolves against a new baseURI butlink.sheet.hrefpreserves the URL the browser actually fetched). (2026-05-21)
0.0.62
Patch Changes
- #3542
94a5ba0Thanks @TueHaulund! - Preserve<style>textContent when the browser's CSSOM serialization would emit empty longhands fromvar()inside a shorthand. When a stylesheet has e.g.padding: var(--p); padding-bottom: var(--pb);, browsers store the shorthand's longhands with empty token lists per the CSS Custom Properties spec, andCSSStyleRule.cssTextre-emits them aspadding-top: ; padding-right: ; padding-left: ;. The previous behavior replaced the<style>text with that corrupted output, silently dropping layout rules on replay. We now detect the empty-longhand pattern and keep the original textContent in that case. Affects users of any CSS-in-JS framework that combinesvar()with shorthands (Chakra UI v3, Panda CSS, Emotion, etc.). Same class of bug as rrweb-io/rrweb#1667. (2026-05-07)
0.0.61
Patch Changes
- #3510
a5d86c9Thanks @arnaudhillen! - Move insights-rrweb sources into the insights-js monorepo underpackages/rrweb/. The seven packages we publish (@insights/rrweb,@insights/rrweb-types,@insights/rrweb-utils,@insights/rrdom,@insights/rrweb-snapshot,@insights/rrweb-record,@insights/rrweb-plugin-console-record) now release from this repo via the existing changesets pipeline. No runtime behavior changes. (2026-05-05)
2.0.0-alpha.18
Major Changes
- #1593
5a78938Thanks @daibhin! -NodeTypeenum was moved from rrweb-snapshot to @rrweb/types The following types where moved from rrweb-snapshot to @rrweb/types:documentNode,documentTypeNode,legacyAttributes,textNode,cdataNode,commentNode,elementNode,serializedNode,serializedNodeWithId,serializedElementNodeWithId,serializedTextNodeWithId,IMirror,INode,mediaAttributes,attributesandDataURLOptions
Patch Changes
-
#1331
02cc62dThanks @billyvg! - fix dimensions for blocked element not being applied -
#1535
04ee6edThanks @eoghanmurray! - Slight simplification to how we replace :hover after #1458 -
#1437
5fbb904Thanks @eoghanmurray! - Edge case: Provide support for mutations on a <style> element which (unusually) has multiple text nodes
2.0.0-alpha.17
Minor Changes
- #1503
335639aThanks @Juice10! - Record dialog's modal status for replay in rrweb. (Currently triggeringdialog.showModal()is not supported in rrweb-snapshot's rebuild)
Patch Changes
-
#1417
40bbc25Thanks @YunFeng0817! - fix: duplicate textContent for style elements cause incremental style mutations to be invalid -
#1533
d350da8Thanks @jeffdnguyen! - Fixurl()rewrite for nested stylesheets by rewriting during stringification instead of after -
#1509
be6bf52Thanks @Juice10! - Reverse monkey patch built in methods to support LWC (and other frameworks like angular which monkey patch built in methods).
2.0.0-alpha.16
Patch Changes
-
#1386
a2c8a1aThanks @ababik! - Fix that the optionalmaskInputFnwas being accidentally ignored during the creation of the full snapshot -
#1512
d08624cThanks @eoghanmurray! - optimisation: skip mask check on leaf elements
2.0.0-alpha.15
Major Changes
- #1497
2606a2aThanks @Juice10! - Distributed files have new filenames, paths and extensions. Important: If you reference distributed files or types directly, you might have to update your paths/filenames. E.g. you import fromrrweb/typings/...orrrdom/es. However you runimport rrweb from '@insights/rrweb'you won't notice a difference with this change. If you include rrweb files directly in a script tag, you might have to update that path to include a the.umd.cjsfiles instead. All.jsfiles now use ES modules which can be used in modern browsers, node.js and bundlers that support ES modules. All npm packages now also ship.cjsand.umd.cjsfiles. The.umd.cjsfiles are CommonJS modules that bundle all files together to make it easy to ship one file to browser environments (similar to the previous.jsfiles). The.cjsfiles are CommonJS modules that can be used in older Node.js environments. Types should be better defined inpackage.jsonand if you need specific types they might be exported from new packages (for examplePlayerMachineStateandSpeedMachineStateare now exported from@rrweb/replay). Check thepackage.json'smainandexportsfield for the available files.
Patch Changes
-
#1468
4014305Thanks @eoghanmurray! - inlineImages: during snapshot avoid adding an event listener for inlining of same-origin images (async listener mutates the snapshot which can be problematic) -
#1493
82f6fecThanks @eoghanmurray! - Replay: Replace negative lookbehind in regexes from css parser as it causes issues with Safari 16 -
#1482
f3cf092Thanks @AlfieJones! - (whenrecordCanvas: true): ensure we use doc.createElement instead of document.createElement to allow use in non-browser e.g. jsdom environments -
#760
e08706aThanks @eoghanmurray! - Add slimDOM option to block animation on