Skip to content

v5.2.18

Choose a tag to compare

@ianwieds ianwieds released this 29 May 07:18
· 26 commits to main since this release

Signup write deep-merges the full schema shape (BEM)buildUserRecord now layers the write deepest-first (Manager.User() full schema ← existing doc ← signup data) and writes the whole deep-merged document. Fixes a real data bug: Firestore's set({field:{...}}, {merge:true}) replaces a map field rather than deep-merging it, so the old partial attribution write flattened onCreate's full attribution object to {} (confirmed via PITR), and the OMEGA users migration re-added every leaf on every signup. The merge now preserves existing real values (api keys, subscription, roles, affiliate.code) and custom non-schema fields, fills every schema leaf, and applies signup data on top. The never-downgrade consent guard is unchanged.

Tests — added merge-preserves-existing-and-fills-schema + merge-fills-all-leaves-on-schema-complete-doc and a signup-merge account. Signup suite passes 17/17.

CLI — port-conflict prompt now auto-confirms in non-TTY shells (CI/agents/piped stdin) and on inquirer force-close, not just the 5s timeout, so unattended mgr test/emulator runs never hang or crash.

AI — OpenAI provider passes options.tools/options.toolChoice through to the Responses API (opt-in), enabling built-in web_search for real cited URLs.