docs(changelog): mark the v0.3.0 behaviour and session-API changes as breaking (weekly review) - #46
Open
flashduty[bot] wants to merge 1 commit into
Open
flashduty[bot] wants to merge 1 commit into
flashduty[bot] wants to merge 1 commit into
Conversation
… breaking
The v0.3.0 entry describes two changes that alter existing installations
rather than only adding to them, and neither carries the 💥 marker the
legend defines for a breaking change:
- `startSessionReplayRecordingManually` now defaults to false whenever
`remoteConfigurationEnabled` is on, so a site that gates recording on
consent by calling `startSessionReplayRecording()` itself starts
recording — and has replays uploaded and billed — without changing
anything on its side. It is currently logged as 🐛 only.
- `SessionManager.updateSessionState`, exported from
`@flashcatcloud/browser-core`, changed shape in this release: it takes
an updater function where it used to take a `Partial<SessionState>`.
That is the case v0.2.0 already covers with a 💥 line of its own
("Breaking for TypeScript code that implements our interfaces"), and
this release does not mention it.
Docs only: no source file is touched.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Weekly review (cat-fe SDK / component libraries, 2026-09-14 → 2026-09-21) of what shipped in v0.3.0.
Two of the changes in the
v0.3.0section alter the behaviour or the types an existing installationalready depends on, and neither carries the 💥 marker that this file's legend (
CHANGELOG.md:5) definesfor a breaking change. The convention already exists in this file:
v0.2.0has a💥 **Breaking**linefor a removed init option and a
💥 **Breaking for TypeScript code that implements our interfaces**linefor interface members gaining members.
What this PR changes
Documentation only —
CHANGELOG.md, no source file.startSessionReplayRecordingManuallydefault flip.configuration.ts:482-488now defaults it tofalsewheneverremoteConfigurationEnabledis set, where it used to default tosessionReplaySampleRate === 0. An existing site with remote configuration on and an init replay rateof 0 — that is, a site that never passed the new options — starts recording on its own, and a console
delivered rate now uploads and bills replays it previously only stored. The site has to change nothing
to get that. It is currently logged as 🐛 alone, so a reader scanning for the breaking marker misses it.
SessionManager.updateSessionStatechanged shape. In@flashcatcloud/browser-core, v0.2.3packages/core/src/domain/session/sessionManager.ts:23was(state: Partial<SessionState>) => void; v0.3.0 is(update: (state: SessionState) => Partial<SessionState> | undefined) => void.SessionManagerandSessionStateare both exported from that package's entry point (packages/core/src/index.ts:61,:133), so a consumer callingupdateSessionState({ ... })compiles under v0.2.x and throwsupdate is not a functionat runtime under v0.3.0.Blast radius is small: every in-repo caller was migrated (
packages/rum-core/src/domain/rumSessionManager.ts:427,:448,:519), and the entry points a page bundle actually uses are unaffected. It is only thepublished
@flashcatcloud/browser-coresurface that moved.Alternative to (2), for the owner to decide
If the object form is worth keeping for callers outside this repository, the change can be made
backward-compatible rather than documented as breaking:
with
sessionStore.ts:224-229narrowing ontypeof update === 'function'. It also moves the signatureback towards upstream's, which is what the surrounding comments in that file say they want to preserve for
the next upstream merge. I have not opened that as a PR — it changes an exported signature in a published
package, and I could not run
yarn typecheck/yarn test:unithere to verify it, so it is a call forwhoever owns the API.
Verification
Docs only, so nothing to run beyond CI's formatting check.
prettieris not installed in the environmentthis review ran in, so
yarn formaton CI is the check that matters; the added lines are ≤ 110 charactersand markdown
proseWrapdefaults topreserve, so no rewrapping is expected.