Tags: mixpanel/mixpanel-node
Tags
fix(analytics): keep polling when a flag-definition refresh fails (#289) #278 made a failed scheduled poll tear down the interval via stopPollingForDefinitions(). The reasoning was that a caller who sees the error can restart, and that silent retries hide permanent failures (revoked token, deleted project). In practice the common caller starts polling once at boot and never re-checks. A single transient blip — a 500, a DNS hiccup — then freezes flag definitions at their last-fetched values for the life of the process, with nothing but one error line to show for it. That trades a loud recoverable condition for a silent unrecoverable one. It was also a deliberate divergence from every other server SDK: Go, Python, Ruby, and Java all log and continue. Ruby's provider even carries a comment explaining why a transient failure must not stop polling. Node was the only outlier. Restore log-and-continue. The interval survives a failed tick and the next one recovers on its own. Permanent failures still log on every tick, which is the signal callers actually watch for. Retitles the pinning test to "keeps polling when a refresh fails" and extends it: after the failing tick, clearInterval is not called, pollingInterval and _startPromise are intact, and a subsequent successful tick confirms recovery. The SDK-81 concurrent-start guard from #278 is unchanged. Linear: SDK-81
release: prepare openfeature 0.2.0 (#290) * release: prepare openfeature 0.2.0 * release: correct openfeature 0.2.0 changelog scope The generated changelog listed two analytics-only changes and omitted the one user-visible provider change in this release. Dropped: - "add service account support" (#275) — 17 files, all under packages/mixpanel; already listed in mixpanel's own 0.23.0 changelog - "add missing config.secret to types" (146eb63) — one file, lib/mixpanel-node.d.ts, from before the monorepo split Added: - #277, which added fallback_reason dispatch to MixpanelProvider.ts (+45 lines) and 81 lines of provider tests. Verified absent from the published 0.1.0 tarball, so it belongs in this release. Both root causes are in .github/scripts/generate-changelog.sh and are left for a follow-up: the scope group is optional for feat/fix, so bare commits match every module, and no openfeature/v* tag exists, so the scan range falls back to the entire repo history. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Tyler Roach <tyler.roach@mixpanel.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
PreviousNext