@fireweaveai/sdk/posthog, do 2.0 → 2.1 first, then this page.
What breaks
Unchanged on purpose
flagKeyat the wire, Decision envelopes, conformance fixtures, andcapabilities.features.flags- The nine-method control-point shape (now including
*Detailson every language) registerTarget— and it now exists in all seven languages- The 15-kind error taxonomy and never-throw-on-evaluate
- The three wire paths:
/v1/flags/evaluate,/v1/capture,/v1/targets/register
1. Rename the Node package
npm:@fireweaveai/server-sdk.
2. Replace the OpenFeature provider
The provider was a thin delegation layer, not a second evaluation path. The peer dependency was mandatory by accident. Seven languages made a mature OpenFeature SDK per language untenable. OpenFeature compatibility is unbundled, not forbidden. A future optional bridge package is left open. Do not treat this as “OpenFeature is unsupported forever.”@openfeature/server-sdk / @openfeature/web-sdk / fireweave[openfeature] unless you use OpenFeature for something else.
Local-provider helpers are gone:
3. Require mode and pass credentials
FW_API_URL / FW_PROJECT_API_KEY. The SDK will not.
Remote without credentials throws Configuration at boot. That is the point: a mistyped production key must not silently become local evaluation, serving every default with a green boot log.
mode: 'local' with credentials supplied is also Configuration.
4. Delete the cut namespaces
UnsupportedCapability.
Releases, exposures, and signals remain platform concepts. See those pages for what the words still mean.
5. Per-language package moves
After snippets (from the SDK repo)
- Python
- Go
- Java
- Rust
- Web
registerTarget in v1. 2.1 docs that said those APIs were absent are stale.
6. What you do not have to rename
client.flags / Flags() / flags() is still the same object as controlPoints. Silent at runtime except in Python (one DeprecationWarning per process). Use controlPoints in new code.
Do not rename flagKey, flagMetadata, InMemoryAdapter({ flags }), or features.flags. Those four flag boundaries stay.
Do not run a repo-wide flags → controlPoints replace.
7. Browser keys
Web 2.1 documented a pendingfw_public_… family. That family has shipped. Scoped to flags:evaluate + events:write. The attest plane rejects it. See Configuration.
Verify
true with reason TARGETING_MATCH / SPLIT / STATIC. If it resolves the default with ERROR, the remote adapter was never wired — check mode, apiUrl, and apiKey.
Next
Control points
The nine-method surface
OpenFeature
Why the provider was unbundled
Node 2.0 → 2.1
PostHog adapter removal only
Configuration
Required mode and explicit credentials

