v0.1.69
0.1.69 - 2026-08-28
Features
- ui: enforce the DESIGN.md foundation contract (#3633)
- billing: add agency cost reporting (#3652)
- workflows: add timed talking-head scripts (#3692)
- scheduler: complete API surface parity (#3693)
- generation: persist categorized run references (#3694)
- clips: gate remaining clips on hook approval (#3698)
- agent: add cross-thread conversation transfers (#3700)
- add vision continuity QA (#3702)
- api: collect listening topic evidence (#3703)
- listening: add attributable theme signals (#3707)
- ci: add scheduled failure tracker contract (#3710)
- brand: add source-backed Brand OS preview (#3711)
- listening: add social intelligence inbox (#3718)
- add secure Brand OS preview funnel (#3726)
- listening: attribute content outcomes (#3727)
- studio: add brand-scoped saved looks (#3744)
- clips: replace Opus workflow end to end (#3792)
- studio: route Fastlane schedule through release groups (#3825)
- scheduler: posting sets UI and agent schedule card parity (#3831)
- billing: unify multi-organization billing accounts (#3833)
- scheduler: finish remaining post scheduler loop (#3834)
- e2e: prove isolated-DB publish path (#3842)
- generation: compile remaining briefs and unlock Strict fidelity
- generation: compile remaining briefs and unlock Strict fidelity (#3844)
Fixes
- auth: recover sessions and pin login callbacks (#3626)
- e2e: repair scheduled Playwright full tier (#3597)
- oauth: fail closed on social configuration (#3602)
- ui: correct OAuth connection catalog (#3593)
- ui: align button, badge, and global motion with the DESIGN.md contract (audit wave 1) (#3603)
- ui: repair alert foundation contract (#3622)
- auth: restore production app proxy (#3624)
- e2e: isolate nightly clip and API fixtures (#3594)
- x-ads: migrate connector to OAuth 1.0a (#3599)
- billing: resolve subscription credits from the Stripe price (#3627)
- agent: make production generation durable (#3628)
- website: sanitize public article bylines (#3636)
- billing: repair master after #3627 and wire browser checkout price IDs (#3638)
- agent: validate image generation results (#3639)
- api: harden Higgsfield billing and dispatch (#3640)
- instagram: return actionable OAuth verification failures (#3641)
- onboarding: recover fresh account setup (#3642)
- ci: let weekly dependency updates open one PR (#3644)
- ci: repair master contract and harness drift (#3643)
- api: carry sourceActionId through the ingredient write path (#3645)
- restore localization and package test boundaries (#3647)
- analytics: preserve cloud funnel telemetry (#3646)
- generation: preserve canonical brief contracts (#3648)
- app: synchronize routed organization context (#3649)
- billing: reconcile Stripe checkout and subscription state (#3650)
- cli: restore OAuth signal typecheck (#3651)
- cli: isolate Node runtime types (#3653)
- ci: repair remaining master typecheck contracts (#3654)
- ci: type recursive translation stub lookup (#3655)
- e2e: enforce full-tier Playwright contracts (#3656)
- config: remove deprecated TypeScript baseUrl (#3657)
- ci: restore master static and API spec contracts (#3658)
- e2e: scope Clip Factory routes to mocked brand (#3660)
- ci: restore remaining master contracts (#3661)
- e2e: hold logout feedback in pending state (#3662)
- ci: apply CI tracker labels authoritatively (#3663)
- ci: restore exact-master test contracts (#3666)
- api: align MusicDocument with the ingredient row shape (#3665)
- ci: make Tests Gate cover the spec typecheck ratchet (#3668)
- ci: remove stale music projection contract (#3670)
- release: wire Scale checkout price (#3673)
- app: scope cost usage value assertions (#3674)
- app: complete integrations icon mock (#3677)
- workspace: keep inspector closed during route cleanup (#3680)
- config: keep e2e alias compatible with TypeScript 7 (#3686)
- agent: restore package CI contracts (#3687)
- api: restore final CI contracts (#3689)
- studio: align saved look timestamps (#3782)
- workflows: preserve video QA URL narrowing (#3784)
- api: resolve continuity files client (#3785)
- services: normalize listening inbox queries (#3786)
- ci: reconcile master contracts and test drift (#3790)
- clips: guard submitted approval before status access (#3791)
- ci: reconcile master executable contracts (#3794)
- ci: repair final master gate failures (#3796)
- ci: resolve UI token aliases in package tests (#3797)
- ci: dedupe unlabeled master Tests Gate trackers (#3826)
- workflows: hydrate canvas edge style from the saved preference (#3828)
- posts: mint publish approval on every scheduled write (#3832)
- ci: map billing Prisma enums onto domain types (#3841)
- workers: keep rebased master crons off @api
- server: stop @genfeedai/server importing @api
- api: retarget master files onto moved server helpers
- server: move leftover siblings webpack could not resolve
- api: retarget remaining @api imports after sibling moves
- app: drop duplicate ReleaseGroupsService.create after rebase
- ci: give server type-check 6GB after the domain move
- generation: unshadow publish policy and add Schnell ablation
- generation: read REPLICATE_KEY for Schnell live ablation
- generation: run Schnell live ablation outside mocked fetch
- generation: poll Schnell predictions without Prefer wait
- generation: retry Schnell live predictions on empty output
- generation: align remaining-brief types and stale CI tests
- workflows: stop cloning daily trends digest on every deploy
- workflows: stop cloning the system catalog on every deploy
- workflows: stop cloning system workflows on every deploy (#3852)
- desktop: paste source-checkout sign-in codes into the app
- desktop: stop local mode from hanging with no feedback
- desktop: send local mode to /desktop/local instead of a blank brand step
- desktop: hide the titlebar strip on login
- desktop: do not quit on uncaught write EPIPE
- desktop: persist PKCE so pasted sign-in codes survive restarts
- auth: allow unauthenticated desktop PKCE exchange
- ci: map billing Prisma enums onto domain types
- ci: split duplicate agent publish policy bindings
- ci: drop duplicate ReleaseGroupsService.create
- ci: align scheduler merge types for workers type-check
- ci: parse engagement Prisma enums and prune stale spec baseline
- ci: accept Fastlane brandId and baseline remaining spec debt
- ci: allowlist new system sweeps and record inherited ratchet debt
- ci: expect reservation settlement in credit deduction jobs
- ci: typecheck remaining api specs instead of fingerprinting them
- ci: mock login i18n and align inherited scheduler tests
- desktop: paste source-checkout sign-in codes into the app (#3809)
- ci: repair type-check after batch merges
- e2e: repair isolated-publish imports and agent util export
- ci: unblock v0.1.69 release without a version bump (#3855)
- e2e: unblock v0.1.69 release gates (#3871)
- auth: provision signup member before billing account (#3875)
- workers: fail release smoke on Nest bootstrap errors (#3877)
- workers: restore release-proven Nest module graph (#3878)
- workers: import global cache graph (#3880)
- deploy: pass API URL into app build (#3883)
Refactoring
- api: split analytics admin transport (#3691)
- integrations: decompose platform runtimes (#3695)
- server: extract OpenRouter integration (#3696)
- server: extract Hedra integration (#3697)
- server: extract X Ads domain (#3699)
- server: add typed credential provider port (#3701)
- server: extract Beehiiv provider domain (#3704)
- server: extract Threads service domain (#3705)
- server: extract Reddit service domain (#3706)
- server: extract Pinterest service domain (#3709)
- server: extract Facebook service domain (#3713)
- server: move Google Ads into server domain (#3716)
- organizations: split controller operations (#3719)
- server: extract Mastodon service domain (#3722)
- server: extract Instagram service domain (#3728)
- tasks: split planning controller (#3729)
- api: split posts retry controller (#3731)
- server: extract TikTok service domain (#3732)
- api: split clip project highlights controller (#3734)
- server: extract TikTok Ads service domain (#3735)
- api: split outreach campaign target operations (#3736)
- server: extract Higgsfield service domain (#3738)
- api: split Brands setup controller (#3740)
- server: extract Fleet service domain (#3743)
- api: split Prompts transformation operations (#3747)
- server: extract LinkedIn service domain (#3749)
- api: split Assets ingestion operations (#3750)
- api: split Images resize operation (#3752)
- server: extract Twitter service domain (#3754)
- files: split audio overlay operation (#3755)
- api: split Ads Gateway write operations (#3758)
- api: split Credentials publishing operations (#3760)
- server: extract YouTube service domain (#3762)
- api: collapse Agent Workflow transitions (#3764)
- api: execute action runs via patch (#3766)
- server: extract publisher domain kernel (#3769)
- api: extract music generation orchestration (#3772)
- api: cancel agent runs via patch (#3773)
- api: split clip project ingestion controller (#3774)
- api: activate organizations via patch (#3776)
- images: extract reframe orchestration (#3778)
- api: patch credential health overrides (#3779)
- api: split images upscale controller (#3829)
- api: split videos merge controller (#3830)
- server: stop workers importing API integration modules
- server: move worker helper leaves out of API
- server: move worker kernel types, cache, and provenance
- server: empty worker @api import baseline
- server: delete leftover API extraction shims
- server: empty remaining worker @api imports (#3843)
Documentation
- infra: correct Redis eviction policy contract (#3675)
Tests
- playwright: repair full-tier route and mock regressions (#3667)
- playwright: repair remaining full-tier assertions (#3672)
- e2e: align remaining full-tier interactions (#3676)
- e2e: settle final shard interactions (#3678)
- contexts: hold organization transition state (#3679)
- ci: restore exact-master unit harness contracts (#3681)
- api: provide media cost service in image controller (#3683)
- agent: resolve shared status token aliases (#3684)
- workspace: mirror committed task query state (#3685)
- prisma: exercise first-party skill catalog migration (#3690)
Build and CI
- adopt fair PR validation budget contract (#3592)
Dependencies
- deps: weekly deps:update (#3637)
Maintenance
- memory: hold trend reminders until Trends is live
- memory: hold trend reminders until Trends is live (#3851)
- ci: update spec-typecheck baseline after batch merges
Other
- apply biome format to files CI format:check flagged