Changelog

Stay up-to-date with the latest features, improvements, and bug fixes in TradingGoose. All changes are documented here with detailed release notes.


Jul 26, 2026
v2026.07.26
Jul 26, 2026

TradingGoose Studio v2026.07.26

Release date: 2026-07-26

Features

  • feat(mcp): migrate Copilot endpoint to MCP SDK (ae7a545)
  • feat(mcp): expand local agent setup installer (34e9b56)
  • feat(watchlists): migrate watchlists to saved entity documents (1ef7151)
  • feat(watchlists): model lists as document containers (5ba2f2f)
  • feat(ui): use stable entity icon colors (4df9892)
  • feat(widgets): add contract-driven widget runtime (82e65de)
  • feat(dashboard): persist layouts as saved entities (edb0d42)
  • feat(copilot): add dashboard layout widget tools (390833d)
  • feat(dashboard): drive widgets from live layout documents (dae7850)
  • feat(dashboard): create default layout on demand (050e47d)
  • feat(widgets): respect read-only dashboard access (63c1ed0)
  • feat(copilot-tools): harden dashboard layout persistence (90f0440)
  • feat(widgets): handle unknown widget keys in copilot mutations (7346192)
  • feat(copilot-tools): support member dashboards and watchlists (0407da0)
  • feat(copilot): add watchlist create and rename tools (c3df801)
  • feat(copilot): accept full dashboard layout edit documents (8577504)
  • feat(copilot-tools): split dashboard layout editing into raw structures (90da628)
  • feat(copilot-tools): provision dashboard layouts on page load (95f5254)
  • feat(yjs): lock saved entity lists and redact MCP secrets (df39c6d)
  • feat(workspace): gate workflow variables by permissions (05a13e0)
  • feat(tradinggoose): hide data-chart drawings from Copilot (ee719d1)
  • feat(widget-contracts): tighten widget validation and error reporting (74cd92e)
  • feat(i18n): add catalog scanner for localization coverage (983c73e)
  • feat(i18n-catalog): expand scanner coverage and report controls (df937de)
  • feat(yjs): sync entity list widgets through realtime snapshots (887a63d)
  • feat(yjs): propagate workflow folder ids through list sessions (9ef293a)
  • feat(naming): generate available default names for new entities (a498eaf)
  • feat(indicators): sync color metadata through Yjs entity lists (f64a683)
  • feat(folders): promote direct children on folder delete (92404e1)
  • feat(workflows): hydrate workflow list from entity metadata (ec73297)
  • feat(editors): default unlinked editors to first entity (5823074)
  • feat(yjs): surface workflow descriptions in entity lists (54d2044)
  • feat(yjs): expose entity descriptions to dropdown search (fa159f0)
  • feat(yjs): sync MCP server metadata in entity lists (eecb620)
  • feat(workflow-list): sort workflows newest-first (70e7d10)
  • feat(skills): support live skill listings (e0aa357)
  • feat(copilot): stage mutation tools for review (4bb55c8)
  • feat(mcp): use personal API keys for device login (12d81b4)
  • feat(editors): back entity editors with Yjs sessions (d7f4850)
  • feat(workflows): export referenced skills from Yjs state (c39cd33)
  • feat(copilot): refresh state after server tool mutations (cce91db)
  • feat(mcp): issue device login keys from approval state (4ba4ee0)
  • feat(copilot): scope environment variable mutations (c2d5b9e)
  • feat(yjs): persist saved entity session edits (f73e357)
  • feat(copilot): support personal scoped credential reads (d812e46)
  • feat(yjs): persist workflow session state through the socket bridge (866dc2a)
  • feat(api-key): remove embedded ids from generated api keys (1fcbbff)
  • feat(auth): simplify MCP device login approval flow (1f4b72c)
  • feat(copilot): improve workflow editing and tool routing (dc709ab)
  • feat(workflows): persist workflow state to normalized tables (b0bb61a)
  • feat(workflows): preserve workflow variables during import and revert (1ee6511)
  • feat(workflow): rename workflow metadata without republishing state (2b2a14c)
  • feat(indicators): carry color through copilot entity documents (599ffd7)
  • feat(mcp-auth): rate-limit device login starts per requester (ef9edee)
  • feat(copilot-mcp): allowlist external server tools (5384643)
  • feat(api): add shared MCP rate limiting (c17de55)
  • feat(api-key): hash stored keys and simplify auth (546049e)
  • feat(auth): bind MCP approval to a user challenge (ecf2fc8)
  • feat(api-key): stop exposing raw API keys in lists (c7b7033)
  • feat(auth): sign MCP device login codes (74bd54e)
  • feat(workflows): load workflow state through the Yjs snapshot bridge (f422fdd)
  • feat(copilot): localize mention labels and mention search (0601a05)
  • feat(function): support workspace-scoped execution (95cce1c)
  • feat(copilot): localize implicit context labels (d5d5b19)
  • feat(navbar): portal header slots into targets (c090fa2)
  • feat(workspace): centralize current-user access checks and locale aut… (04d786b)
  • feat(workspaces): server-side workspace bootstrap (3ee0b85)
  • feat(auth): replace auth error cookie flow with callback route (656902d)
  • feat(global-navbar): add sidebar user menu trigger (ec7e755)
  • feat(i18n): canonicalize locale-prefixed routing (4de6406)
  • feat(nav): support authenticated public navigation (d35e854)
  • feat(workflow): allow editor run to select trigger variants (a958ea5)
  • feat(settings): bootstrap authenticated settings on app load (383d161)
  • feat(tradinggoose): apply preferred locale during bootstrap (6475649)
  • feat(oauth): normalize callback paths across auth flows (84e5d65)
  • feat(workflow): resolve editor trigger input from session snapshot (d6eedfb)
  • feat(workflow): run selected trigger blocks (36c9cd2)
  • feat(workflows): preserve trigger source in queued executions (2f9170c)
  • feat(workflow): unify workflow trigger resolution (d9f952e)
  • feat(workflows): require explicit trigger blocks for workflow runs (f1f1dde)
  • feat(copilot): record local completion usage (6ce007c)
  • feat(copilot): switch workflow edits to graph-only mermaid (ab2b3c1)
  • feat(import-export): bump TradingGoose export envelope to v2 (6ddbec7)
  • feat(copilot): clarify workflow edit topology semantics (5fa4e05)
  • feat(copilot): standardize entity-scoped tool contracts (cd10f30)
  • feat(copilot): persist staged tool review state (dcbde7d)
  • feat(copilot): enhance tool validation descriptions and auto-execute … (5a3debd)

Bug Fixes

  • fix(mcp): resolve TypeScript type conflicts and enhance API key handl… (0d45fe9)
  • fix: update environment variable schemas to enforce string values for… (8ee8626)
  • fix(mcp): enhance API key validation and preserve comments in JSONC c… (8fe6271)
  • fix(dashboard): converge layout list after mutations (da22694)
  • fix(dashboard): protect mutation endpoints (a5cac40)
  • fix(dashboard): project pending tab reorders (549d62b)
  • fix(dashboard): consume layout deep links (39cf927)
  • fix(dashboard): unlock acknowledged layout projections (352dc86)
  • fix(dashboard): enhance layout mutation tests with additional scenari… (748d198)
  • fix(yjs): pause raw socket during upgrade (f2fa7ec)
  • fix(yjs): defer websocket upgrade until session admission (a452ee2)
  • fix(yjs): buffer frames during session admission (a0a9d66)
  • fix(watchlist): refactor dropdown actions and improve accessibility (78f675f)
  • fix(watchlist): enhance table layout with fixed columns and improved … (b38184c)
  • fix(dashboard): route structure mutations through HTTP (9a48e17)
  • fix(dashboard): remove resize persistence error state (edffe95)
  • fix(data-chart): stabilize listing resolution (43f89f7)
  • fix(widget-lists): protect the final saved item (713478c)
  • fix(workflow): keep the node editor above floating controls (6413936)
  • fix(route): handle JSON parsing and add tests for dashboard structure (bf090d9)
  • fix(ws-handler): update message handling to support RawData and enfor… (1c9aa70)
  • fix(yjs): defer admission until websocket upgrade (320305e)
  • fix(yjs): preserve structured dashboard bridge errors (b9ea46d)
  • fix(yjs): preserve final saved entity (e21f0e7)
  • fix(tools): keep watchlist execution server side (484580e)
  • fix(copilot-tools): guard workspace entity deletes in transactions (3b9a348)
  • fix(watchlist): reject stale watchlist ids (bb338f1)
  • fix(watchlist): generate persisted item identities (2c824bb)
  • fix(widgets): preserve linked-field clear intent (0072ecd)
  • fix(widgets): respect entity editor access mode (caf545c)
  • fix(copilot): envelope listing search results (4aa039a)
  • fix(workflow): support reader Yjs sessions (3510750)
  • fix(indicators): stream live entity documents (62c4db9)
  • fix(sortable): derive announcements from item order (3b23e7b)
  • fix(watchlist): move nested listings to root boundary (634e9db)
  • fix(watchlist): persist imported names atomically (6aa90e1)
  • fix(copilot): harden collaborative editing boundaries (a704887)
  • fix(copilot): resolve layout tools by entity scope (2969966)
  • fix(mcp): align shared credential contract (f819e36)
  • fix(dashboard): track linked pair review fields (7571ea5)
  • fix(layout): enforce active layout invariant (9e10430)
  • fix(dashboard): preserve concurrent widget topology (75b5fc7)
  • fix(workspaces): merge invitation permissions atomically (e28760f)
  • fix(entities): make reviewed saves atomic (bdb85e9)
  • fix(watchlists): persist Yjs edits through realtime lifecycle (d5c9252)
  • fix(heatmap): aggregate all workspace watchlists (cd6ef8b)
  • fix(watchlists): allow deleting the final list (1f979f1)
  • fix(helm): enforce singleton realtime deployment (6b57063)
  • fix(yjs): restart disconnected sessions from fresh snapshots (32c7f55)
  • fix(copilot): stage reviewed dashboard edits before commit (21e0042)
  • fix(realtime): drain queued updates before shutdown (0a6dcc2)
  • fix(workflow): disable editing for reader sessions (93ea030)
  • fix(watchlist): persist selection in widget parameters (b30f13a)
  • fix(yjs): reject mutations on detached documents (112b235)
  • fix(dashboard): persist widget edits atomically (8f14b41)
  • fix(yjs): harden collaborative document ownership (f87c393)
  • fix(dashboard-layouts): validate create review base under lock (44af3e7)
  • fix(yjs): reconcile access and drain shutdown docs (10ddfd0)
  • fix(watchlists): remove replaced listing rows before persist (d60a26a)
  • fix(layout): reject invalid structure mutations (84df56d)
  • fix(yjs): preserve live document state during saves (1604c69)
  • fix(copilot): validate accepted creates in transactions (3df511b)
  • fix(dashboard): serialize layout lifecycle mutations (cba8727)
  • fix(watchlists): guard controls until documents are ready (3491a33)
  • fix(copilot): preserve owner scope for entity list reads (33f147c)
  • fix(watchlists): serialize root list mutations (24dffff)
  • fix(yjs): merge concurrent dashboard document updates (a3706bd)
  • fix(yjs): reject invalid dashboard widget updates (c5722e3)
  • fix(yjs): validate dashboard child updates at admission (140a0bb)
  • fix(yjs): flush persistence before document discard (57596ae)
  • fix(dashboard): consolidate layout structure mutations (56dd3fd)
  • fix(workflow-variables): gate variable editing by session permissions (5abd4a2)
  • fix(yjs): serialize forced reconciliation and watchlist validation (c77c179)
  • fix(i18n-catalog): align catalog reports with the default locale (0c647a1)
  • fix(workflows): make cleanup notifications best-effort (64d0f55)
  • fix(tradinggoose): use DB-backed custom tool and entity updates (1eeb288)
  • fix(workflows): decouple folder changes from metadata sync (3043893)
  • fix(yjs): refresh MCP servers after entity updates (b9dddec)
  • fix(list-mcp): select new servers after entity hydration (690a138)
  • fix(entity-list): keep entity list sessions aligned with db (df26f3e)
  • fix(widgets): remove stale selection reset effects (5f86c90)
  • fix(workflows): sync workflow list members through realtime helpers (6693fa4)
  • fix(yjs): keep workflow mutations durable on socket errors (0871bb1)
  • fix(widgets): validate requested editor entities (aa91d55)
  • fix(yjs): reseed live entity-list sessions on upgrade (e1d97b7)
  • fix(workflow-list): keep widget selection local (bdcb6c1)
  • fix(workflows): require realtime sync for list projections (6fed214)
  • fix(workflows): make live list sync best effort (a758f12)
  • fix(yjs): skip sync wait for read providers (36dabca)
  • fix(widgets): keep requested ids and selections in sync (0d88a3c)
  • fix(execution): respect deployed context for saved entities (517454d)
  • fix(workflows): hydrate and validate active workflow selection (7fbdb00)
  • fix(widgets): handle missing requested editor entities (d713e01)
  • fix(agent): pass deployed context through MCP tool discovery (291420d)
  • fix(workflow): tolerate missing workflow-linked entities (9b2cdcd)
  • fix(workflows): remove stale workflow cache (01538ed)
  • fix(workflows): persist folder metadata through yjs sync (cef60d3)
  • fix(widgets): clear stale selection after list updates (48c5370)
  • fix(mcp): default deployed discover context (fb52fc2)
  • fix(yjs): retry failed entity lists on reopen (441d3c8)
  • fix(folders): apply workflow metadata before delete (fbd0cc7)
  • fix(widgets): stop auto-selecting the first workflow (60dd078)
  • fix(yjs): drop rollback handling for entity publishes (432ece6)
  • fix(yjs): surface realtime-required errors for list refreshes (2ef7999)
  • fix(workflows): search descriptions and preserve duplicate source (d1503cd)
  • fix(workflow-widgets): resolve widget workflows through shared state (7988646)
  • fix(i18n): remove obsolete workflow auth copy (219c44d)
  • fix(ai): mark tool execution as deployed context (4fc63d2)
  • fix(ai): preserve deployed context flag (716946c)
  • fix(mcp): refresh tool list after server edits (92e0cf4)
  • fix(indicator-list): open source session read-only (ad9da06)
  • fix(mcp): invalidate discovery cache on refresh (02d0a99)
  • fix(yjs): enforce access mode on websocket sync (7dcca3c)
  • fix(workflow): preserve color-pair workflow selection default (36b544d)
  • fix(mcp): retry server list and keep selected status (9ef27b7)
  • fix(widgets): clear selection after deleting list items (e57a765)
  • fix(yjs): surface entity-list refresh failures (67376c1)
  • fix(yjs): discard stale entity-list projections (ce6acc3)
  • fix(workflow-list): use shared widget state for routing (8b9baa6)
  • fix(yjs): reopen disposable read sessions (a68e84e)
  • fix(tradinggoose): surface entity lookup failures (0511afe)
  • fix(tradinggoose): queue entity selections until listed (badc792)
  • fix(agent): fail agent blocks when tool hydration fails (94469e9)
  • fix(widgets): keep explicit entity ids exact (9732772)
  • fix(yjs): keep shared sessions retrying until live (a8e2fc6)
  • fix(workflow): stabilize workflow hydration on dashboard load (02ad9ba)
  • fix(yjs): ignore missing saved entities during bootstrap (fbd5b6a)
  • fix(yjs): serialize entity list reseeds (23143e3)
  • fix(workflow): remove registry-backed workflow activation (ef37afe)
  • fix(workflow): source workflow options from entity metadata (db2a179)
  • fix(workflow): sort workflows by newest createdAt (9da06b6)
  • fix(tradinggoose): stabilize MCP and workflow state (ca890fc)
  • fix(yjs): keep read sessions visible while reopening (b9527b0)
  • fix(entity-session): rename seedEntityListSession to replaceEntityLis… (3b9698d)
  • fix(yjs): keep shared session errors visible (d69e52e)
  • fix(mcp): reject reused device login approvals (fb8ff93)
  • fix(workflows): avoid loading deployed workflow variables (a3c4ea1)
  • fix(mcp): authenticate device login API keys (4ca9b51)
  • fix(copilot): apply reviewed tool changes atomically (0835d96)
  • fix(copilot): prevent stale server tool review acceptance (2b94ebe)
  • fix(copilot): handle malformed MCP batch entries (164ee90)
  • fix(copilot): prevent sensitive tool payload exposure (f34626b)
  • fix(copilot): reject empty JSON-RPC batches (3dcf4be)
  • fix(copilot): redact managed review secrets (6cbb24d)
  • fix(mcp): issue device login keys during approval polling (adb0dd4)
  • fix(workflows): preserve deployment metadata from saved state (bdf6e56)
  • fix(mcp): use shared personal api key auth (5a4b50b)
  • fix(workflows): preserve variables during direct yjs persistence (b87fc13)
  • fix(workflows): persist workflow names through Yjs state (4d0241d)
  • fix(copilot): read saved entities from bootstrapped Yjs state (fc436b4)
  • fix(mcp): consume device login approvals when issuing keys (e78ab77)
  • fix(yjs): fall back to direct state persistence on apply errors (d984f06)
  • fix(custom-tools): reject duplicate titles on update (ee6fd42)
  • fix(copilot): omit generated workflow ids from review staging (20ac127)
  • fix(copilot): require workflow variable ids in documents (8dfcd65)
  • fix(copilot): serialize server tool review acceptance (420d525)
  • fix(workflows): persist normalized workflow state (db6b07c)
  • fix(auth): preserve locale on invalid MCP authorization (62580b1)
  • fix(copilot): reject stale accepted server tool reviews (5c7c3c6)
  • fix(yjs): keep saved entity sessions noncanonical (b3f224c)
  • fix(workflows): preserve deployment metadata from live state (2813eda)
  • fix(yjs): separate saved entity draft persistence (ffebf07)
  • fix(workflows): handle missing normalized saved state (e60fe7c)
  • fix(copilot): scope environment variable writes to workspace (abf674f)
  • fix(api-key): require complete key format for lookup (abe9818)
  • fix(copilot): persist accepted reviewed entity updates (e9c16c0)
  • fix(api-keys): bind generated key material to stored id (935c221)
  • fix(copilot): pass workspace context to environment writes (e40590f)
  • fix(mcp): make device login delivery idempotent (f73a113)
  • fix(yjs): persist state before applying document updates (26809fb)
  • fix(yjs): refresh stale saved target snapshots (e8698a9)
  • fix(yjs): make saved entity persistence best effort (7ff5782)
  • fix(copilot): align contracts after staging rebase (127087c)
  • fix(copilot): align indicator runtime contracts (705863c)
  • fix(copilot): preserve MCP server secrets in documents (6d03e1a)
  • fix(yjs): apply snapshots before database persistence (10c32a2)
  • fix(copilot): normalize entity document fields (ce2b89a)
  • fix(mcp): require urls for URL transports (8f957ef)
  • fix(yjs): persist applied snapshots from live documents (24a6c27)
  • fix(api-key): reject malformed keys before lookup (aa089d3)
  • fix(copilot): keep review acceptance bound to the staged execution co… (138ca5b)
  • fix(yjs): stop deleting live sessions during cleanup (f273641)
  • fix(yjs): restore saved entity state from db on materialization failure (c98e8a6)
  • fix(copilot): deny inaccessible workspaces in server tools (2031c81)
  • fix(mcp): limit delivery retries when polling device login (5495906)
  • fix(yjs): restore workflow state after persistence failure (102ed5e)
  • fix(workflows): load normalized workflow state consistently (4bbe32f)
  • fix(yjs): preserve refresh error cause (02f9b0d)
  • fix(mcp): use configured base URLs in installer flows (c02534f)
  • fix(ui): clear help modal scroll timer (e549b39)
  • fix(auth): generate MCP api keys at approval time (26c0803)
  • fix(mcp): scope public MCP login starts to the deployment (421f7aa)
  • fix(mcp): harden device login approval challenge handling (8b9764c)
  • fix(copilot): stabilize mention submenu reload deps and add staging c… (a830a01)
  • fix(custom-tools): treat titles as canonical tool names (effdcaa)
  • fix(executor): resolve dynamic MCP tool ids at runtime (b5b16e6)
  • fix(agent): require exact skill ids for skill loading (1308d70)
  • fix(function): allow workspace-scoped function execution (19fa88c)
  • fix(copilot): resolve custom indicators by runtime id (b9f8653)
  • fix(custom-tools): separate runtime ids from entity ids (b806923)
  • fix(copilot): keep deleted mentions removed (eff1fb9)
  • fix(copilot): normalize final streamed messages (42db0b8)
  • fix(copilot): filter markdown renderer node props (809929e)
  • fix(agent): preserve custom tool display names (6d22b31)
  • fix(copilot): dedupe docs context mentions (ddc1ff7)
  • fix(function-execution): authorize requests by workflow workspace (1e52cbb)
  • fix(mcp): persist canonical tool identifiers (a842394)
  • fix(mcp): use explicit server and tool params for execution (c19d3b8)
  • fix(copilot): treat punctuation as mention boundaries (14add5b)
  • fix(mcp): preserve selected tool IDs for execution (1744f50)
  • fix(copilot): retain contexts for repeated mentions (978fc35)
  • fix(custom-tools): allow updates with existing titles (ffcf698)
  • fix(copilot): reuse mention boundary detection (4d54091)
  • fix(copilot): refresh selected mention contexts (76cd8c9)
  • fix(custom-tools): normalize function schemas (0225d41)
  • fix(custom-tools): normalize API custom tool titles (3a0d91d)
  • fix(copilot): include log triggers in mention search (a2c69bf)
  • fix(agent): preserve custom tool ids with display names (aeaa099)
  • fix(copilot): preserve duplicate mention insertion order (72f9efa)
  • fix(trace-spans): type tool call ids in trace output (2f69886)
  • fix(workflows): reject invalid custom tool runtime ids (8da6e55)
  • fix(function-execute): require write access for workspace execution (2f67321)
  • fix(auth): pass server user into workspace socket provider (446bf56)
  • fix(socket): improve logging for socket authentication errors (033ef6f)
  • fix(workspace): simplify user prop handling in WorkspaceLayoutClient (78406f6)
  • fix(auth): thread authenticated user id through navbar (28a4fc6)
  • fix(auth): use authenticated user id for workspace dialogs (74428e3)
  • fix(workspace-invite): prevent self-invites (a994211)
  • fix(auth): propagate authenticated email through navbar (0bacd78)
  • fix(auth): preserve auth recovery during workspace permissions fetch (7ac3a5f)
  • fix(workspace-permissions): restore current user row in invite modal (01e3acb)
  • fix(auth): wait for client auth before loading workspaces (cda6e54)
  • fix(auth): reset workspace redirect state per user access key (8433541)
  • fix(auth): avoid refetching session-recovery permissions (e699d94)
  • fix(auth): gate auth-dependent queries until session matches user (b338d17)
  • fix(workspace): gate permissions UI on matching session user (c3deb6b)
  • fix(workspace): gate workspace data on client auth (86b9d93)
  • fix(auth): guard workspace data on stable session state (f66e7df)
  • fix(navbar): keep the latest header owner active (5337db1)
  • fix(auth): scope cached billing queries by user id (c6449e6)
  • fix(workspace): use workspace user identity in invite dialogs (e8c66ca)
  • fix(auth): pass workspace user to global navbar (6914ca9)
  • fix(workspace-auth): require inherited workspace sessions in nested p… (0ff8d2c)
  • fix(workspaces): include workspace owners in access flows (6af2500)
  • fix(workspaces): allow same-origin callback URLs (153fa81)
  • fix(auth): scope workspace permissions to the active user (a38c8ec)
  • fix(workspace): derive callback origin from request headers (dd5a3dc)
  • fix(workspaces): require admin access before member deletion (d578cb9)
  • fix(permissions): treat workspace owners as admins (2c44f3f)
  • fix(auth): standardize reauth callbacks and permission state checks (aff9f34)
  • fix(workspaces): roll back failed default workflow seeding (ae08aed)
  • fix(workspaces): align admin access with workspace ownership (036b893)
  • fix(auth): reuse workspace access checks (f58311e)
  • fix(workflows): centralize workflow permission validation (c3c1d75)
  • fix(workspace-permissions): route missing sessions into auth recovery (684e8e3)
  • fix(workspace): redirect workspace roots without bootstrapping (7cecb3a)
  • fix(copilot): treat workspace owners as workflow admins (cc609d1)
  • fix(workspace): bootstrap root workspace on the server (1b73042)
  • fix(auth): normalize login callback URLs from request headers (8670675)
  • fix(auth): add reauth redirect handling for stale session cookies (f13cf41)
  • fix(workspaces): normalize created workspace payloads (b016ba3)
  • fix(workspaces): clean up seeded workflow on create failure (208f27d)
  • fix(workspaces): handle Yjs seeding failures during workspace creation (21b1597)
  • fix(auth): use canonical app session for socket token route (8b4f5ba)
  • fix(auth): simplify unauthorized session handling (9f140d3)
  • fix(auth): block login form until reauth cleanup finishes (e43730b)
  • fix(auth): remove session cookie cache (4bea925)
  • fix(auth): handle failed session creation by forcing reauth cleanup (31ac45c)
  • fix(auth): remove reauth redirect flag and guard cleanup retries (b450439)
  • fix(auth): route session errors through reauth cleanup (1eeb731)
  • fix(auth): route auth provider failures through error flow (98314ea)
  • fix(auth): preserve callback through auth error flows (1c0c60c)
  • fix(auth): handle reauth cleanup and error callback cookies (b0eb4ee)
  • fix(auth): unify session recovery and SSO error handling (4bcd797)
  • fix(auth): route workspace permissions auth failures through recovery (6316b53)
  • fix(auth): handle login reauth cleanup (e3b2790)
  • fix(auth): remove forced uncached session reads (87493a2)
  • fix(auth): use deployment-aware Better Auth cookies (4aa2996)
  • fix(auth): centralize auth cookie cleanup (3508637)
  • fix(auth): route login-page sign-out failures through reauth cleanup (b2d9497)
  • fix(auth): redirect authenticated users from auth entry pages (14a84ea)
  • fix(proxy): let auth entry routes reach their pages (843bc9a)
  • fix(auth): persist locale through signup verification (6239f95)
  • fix(urls): normalize configured app URL helpers (c72eb31)
  • fix(email): preserve transactional text in fallback delivery (85858af)
  • fix: handle proxy auth cleanup and preview base URL fallback (db26952)
  • fix(tradinggoose): remove preview-only base URL fallback (015422a)
  • fix(auth): log fallback sign-out failures (abda5e7)
  • fix(auth): use browser origin for auth client (ed45d06)
  • fix(i18n): add localized not-found route (5cd9085)
  • fix(billing): settle deleted Stripe subscriptions in webhook flow (06ff221)
  • fix(billing): avoid resetting onboarding usage for entitled subscript… (8d8ebad)
  • fix(billing): ignore orphaned deleted stripe subscription events (118f936)
  • fix(db): enforce unique stripe subscription ids (4b9991c)
  • fix(billing): sync usage limits on subscription deletion (4aa8800)
  • fix(db): enforce unique stripe subscription ids (ead4cd1)
  • fix(billing): reject missing and duplicate deleted subscriptions (83263b1)
  • fix(billing): skip deleted subscriptions without local rows (d677b2a)
  • fix(billing): allow duplicate Stripe subscription rows (7be7d2c)
  • fix(billing): settle subscription webhooks by Stripe id (63bf9f4)
  • fix(billing): sync usage limits from settled subscription (620602f)
  • fix(billing): enforce unique Stripe subscription lookup (5a03c10)
  • fix(billing): use atomic upsert for enterprise subscriptions (3205733)
  • fix(subscription): use stripe subscription id for personal upgrades (1918137)
  • fix(workflow): improve workflow summary tooltip rendering (e90271a)
  • fix(workflows): resolve triggers from workflow graph edges (7d29dc8)
  • fix(settings): keep general settings loading state in sync (80bcf4e)
  • fix(i18n): honor stored locale for authenticated locale-prefixed routes (303916a)
  • fix(workflows): ignore chat-only triggers in editor Run (cd5f668)
  • fix(tradinggoose): scope locale and settings state by user (8fb44b9)
  • fix(tradinggoose): keep locale routing aligned with auth state (103027e)
  • fix(workflows): resolve selected trigger configuration errors (7d08dca)
  • fix(auth): preserve callback pathname during recovery flows (f695823)
  • fix(auth): redirect authed users to their preferred locale (83b0a18)
  • fix(socket): keep auth error handling on the latest pathname (8c48579)
  • fix(workflows): preserve input trigger snapshot values (a6c9724)
  • fix(workflow): stabilize workflow test execution (bde5790)
  • fix(workflows): preserve queued trigger types (6b16362)
  • fix(workflows): require live start block for queued webhook and sched… (2084b76)
  • fix(workflows): remove test-input Yjs special case (14d62ec)
  • fix(workflow): block chat-only workflows from editor run (18ca19d)
  • fix(workflows): select trigger branch for editor Run (13cd70f)
  • fix(workflows): resolve queued trigger identity from workflow state (6697e15)
  • fix(workflows): reject chat triggers in editor runs (eacc094)
  • fix(workflows): relax manual queue trigger matching (95520c1)
  • fix(workflows): use editor test trigger for client workflow execution (6e16466)
  • fix(workflow): preserve trigger identity and live run input (74e98db)
  • fix(workflows): align trigger selection with trigger-mode blocks (7f5b2b0)
  • fix(workflows): align run_workflow trigger handling (196ec1a)
  • fix(workflows): handle missing trigger blocks consistently (123de2a)
  • fix(workflows): preserve resolved trigger input for copilot runs (1247ccc)
  • fix(schedules): delete orphaned schedule rows (cb2d7c8)
  • fix(copilot): update context usage handling and remove unnecessary bi… (1313e33)
  • fix(copilot): refactor tool approval logic and update related tests (bb07e1e)
  • fix(copilot): remove local completion billing logic and update contex… (f276f41)
  • fix(copilot): remove color field from indicator and workflow schemas,… (9575a4c)
  • fix(copilot): update copilot usage handling and improve test coverage… (829a404)
  • fix(copilot): introduce workflow graph document format and update rel… (a048520)
  • fix(copilot): enhance edit_workflow tool with semantic validators and… (0aa0573)
  • fix(copilot): update editWorkflowServerTool tests to reflect changes … (00a9286)
  • fix(copilot): enhance editWorkflowServerTool with block position pres… (d6042ce)
  • fix(copilot): update inline tool call tests and logic for review cont… (055e979)
  • fix(copilot): improve subgraph node handling in parseVisibleWorkflowE… (45e35ae)
  • fix(copilot): remove unused color properties from entity types and up… (3b8b321)
  • fix(copilot): update edit_workflow description for clarity on block d… (2901b71)
  • fix(copilot): remove color property from indicators and workflows; up… (c47905b)
  • fix(copilot): remove color property from indicators and workflows; up… (39ae658)
  • fix(copilot): update workflow document formats and descriptions; adju… (879fc59)
  • fix(copilot): enhance workflow validation and update document format … (ff73078)
  • fix(import-export): update export version from 2 to 1 across various … (0f51f24)
  • fix(export): update export version from 2 to 1 in various components (86dc211)
  • fix(copilot): enhance workflow documentation and validation; update t… (ceadc8e)
  • fix(copilot): implement billing completion usage reporting and update… (b9ec108)
  • fix(copilot): enhance completion usage reporting with validation for … (7e0e3ed)
  • fix(import-export): update tests to ignore generated fields in transf… (8389863)
  • fix(copilot): refine workflow graph handling and improve Mermaid docu… (a791d79)
  • fix(copilot): improve error handling in completion usage reporting an… (8a02389)
  • fix(copilot): rename commitLocalCopilotCompletionUsageReports to mirr… (55610d1)
  • fix(copilot): consolidate usage reservation commits (867ac61)
  • fix(workflows): allow condition source handles (32cd19a)
  • fix(copilot): forward workspace id in context usage (c4b707d)
  • fix(copilot): refine tool parameter handling and enhance error messages (e13fdc1)
  • fix(copilot): remove obsolete custom tool schema tests and update str… (1e28ba7)
  • fix(copilot): propagate workspace context through server tools (921f770)
  • fix(copilot): update streaming logic and refine tool execution handling (f44b341)
  • fix(copilot): standardize tool argument handling and remove legacy to… (973b169)
  • fix(copilot): enhance tool argument handling and implement workspace … (3c65932)
  • fix(copilot): update todo execution state handling in tests and state… (3202eb0)
  • fix(copilot): update showPlanTodos logic to reflect only incomplete t… (c5e515c)
  • fix(i18n): update waitlist text and format JSON for consistency (0790dbc)
  • fix(copilot): enhance tool validation and auto-execution logic for ac… (54e77de)
  • fix(copilot): streamline plan todos hydration by filtering for succes… (73da07a)
  • fix(copilot): refactor tool execution logic and enhance message handl… (d1b3edb)
  • fix(copilot): enhance tool call handling by ensuring unique tool call… (3d2a5d3)

Refactors

  • refactor(dashboard): route layout mutations through API (565d357)
  • refactor(dashboard): clarify equal size fallback (fc82229)
  • refactor(watchlists): move document validation contracts (8044cc4)
  • refactor(watchlist): localize params persistence (ceea440)
  • refactor(copilot): pass verified create context to entity creators (7b4ae01)
  • refactor(widgets): remove legacy widget validation layers (386c14e)
  • refactor(copilot-tools): move effective dashboard layout resolution i… (1e694cb)
  • refactor(copilot): canonicalize entity and layout ownership (7f0918f)
  • refactor(layout): normalize dashboard persistence boundaries (da95b43)
  • refactor(copilot): unify dashboard layout tool results (42efd96)
  • refactor(entities): remove obsolete REST save paths (4c6f78b)
  • refactor(watchlists): remove obsolete quote proxy (180f068)
  • refactor(copilot): enforce canonical entity document boundaries (23c8bb3)
  • refactor(listing): remove dashboard hydration helpers (a25b2d1)
  • refactor(layout): remove obsolete inline layout normalizer (cc3b0a7)
  • refactor(dashboard): simplify layout client state (17ef71d)
  • refactor(copilot): scope dashboard mentions to owner list (3ff78c0)
  • refactor(yjs): route workflow edits through session transactions (555e77b)
  • refactor(yjs): centralize saved-entity deletion flows (b70547d)
  • refactor(tradinggoose): simplify entity and copilot access flows (07c0abb)
  • refactor(i18n-catalog): split scanner internals into focused modules … (2d83d1e)
  • refactor(workflow-tree): remove unused folder tree props (1d7e8f4)
  • refactor(mcp): route server renames through saved entity fields (7702e61)
  • refactor(yjs): share entity sessions and simplify editor selection (fcc1bef)
  • refactor(widgets): source editor selectors from yjs entity lists (b165c90)
  • refactor: rename persisted helper APIs (827c9f5)
  • refactor(widgets): simplify workflow list hydration (36f54e6)
  • refactor(workflows): decouple list-member sync from yjs snapshots (aabe204)
  • refactor(yjs): reseed entity lists from db snapshots (d70bc4f)
  • refactor(workflow): simplify workflow session fallback handling (aa0d277)
  • refactor(workflows): remove marketplace publishing state (a997a76)
  • refactor(workflow-selection): remove widget-scoped selection syncing (d7e9aca)
  • refactor(tradinggoose): replace MCP server store with entity list state (292d628)
  • refactor(ui): remove redundant delete selection resets (e529849)
  • refactor(tools): move async tool lookup to package entrypoint (4e5186e)
  • refactor(workflows): resolve workflow state from routed session (0fb4299)
  • refactor(workflows): remove active-workflow coupling (301bc73)
  • refactor(workflows): remove template handling from deletions (b26acc6)
  • refactor(skills): remove the redundant skills store (8c5e816)
  • refactor(tradinggoose): read entity lists from the database (4956a4e)
  • refactor(tradinggoose): remove template subsystem (10dc79c)
  • refactor(yjs): simplify saved entity state sync (321e6c6)
  • refactor(copilot): make MCP tool exposure explicit (6d91300)
  • refactor(operations): prefetch existing workspace entities during upsert (17cff32)
  • refactor(workspace): split entity writes and clean up Yjs sessions (f668a29)
  • refactor(copilot): reuse centralized mention empty states (8afafe8)
  • refactor(mcp): use hyphenated dynamic tool ids (beedc33)
  • refactor(indicators): remove runtime indicator names (7d1b849)
  • refactor(workspace-permissions): thread authenticated user id through… (ff69df9)
  • refactor(workspace-permissions): simplify initial loading fallback (e91f977)
  • refactor(auth): use server-authenticated workspace context (15a4236)
  • refactor(auth): stabilize login reauth callbacks (ea05100)
  • refactor(proxy): use Better Auth session cookies (c11bc64)
  • refactor(tradinggoose): resolve canonical URLs at runtime (301b40d)
  • refactor(billing): centralize Stripe subscription lookup (2620ba0)
  • refactor(environment): simplify environment store state (fc412f0)
  • refactor(workflow): derive run target from awareness (128ce47)
  • refactor(workflows): simplify trigger helpers (94544e4)
  • refactor(workflows): rename workflow start target to trigger target (1c38d7c)
  • refactor(workflow): centralize executable workflow data (504ca5d)
  • refactor(copilot): extract completion billing helpers (94ce3e7)
  • refactor(copilot): remove legacy assistant toolCalls state (068ce4f)
  • refactor(copilot): simplify workflow document validators (bbad92a)

Documentation

  • docs(changelog): document July 24 changes (28ec5c9)
  • docs(changelog): add feat/copilot-tools staging review (16046d5)
  • docs(changelog): document independent layout document owners (c01ac3e)
  • docs(changelog): add staging entry for i18n tooling (536e0f7)
  • docs(changelog): add July 1 branch summary (e5846de)
  • docs(changelog): document entity selection validation (36cad27)
  • docs(changelog): note shared Yjs and workflow retry behavior (a70c23f)
  • docs(changelog): note workflow list newest-first ordering (24d9788)
  • docs(yjs): clarify live list snapshot freshness (3cfb320)
  • docs(changelog): refresh July 1 entry (15b20fb)
  • docs: update project agent testing guidance (82adab9)
  • docs(mcp): clarify device grant retry window (9d332c6)
  • docs(changelog): add June 24 Copilot MCP branch summary (e5bc23e)
  • docs(api-key): remove API_ENCRYPTION_KEY references (980388e)
  • docs(changelog): add June 23 changelog (73cedfa)
  • docs(changelog): add June 11 2026 branch summary (3f755b0)

Other Changes

  • style(ui): widen API key dialogs (3f43381)
  • test(dashboard): cover layout activation convergence (53aadda)
  • style(watchlist): format list actions trigger (5a40d12)
  • style(widgets): trim legacy test wording and formatting (a934a5b)
  • style(workflow): format identifier validation deps (1b5dbf8)
  • perf(watchlists): bootstrap identities from root rows (65940e0)
  • style(helm): normalize yaml whitespace (c6d830c)
  • test(copilot): align saved entity mutation expectations (95e0f30)
  • test(yjs): consolidate entity apply-state coverage (8390188)
  • test(widgets): consolidate layout widget coverage (5342e57)
  • build(helm): require internal API secret for realtime (9e92671)
  • build(helm): require longer internal api secret (b1049fc)
  • style(i18n): align catalog tooling with biome (9455388)
  • test(yjs): update snapshot bridge failure coverage (8bf246b)
  • style(copilot): wrap copilot registry assertions (560b549)
  • style(mcp): reorder authorize page imports (15af5d3)
  • style(copilot): wrap credential prompt metadata (6bc4146)
  • test(copilot): update test files (8fedcb9)
  • test(copilot): cover entity document normalization (479e585)
  • test(trading): cache the order route handler in the test (52b081a)
  • style(yjs): reformat snapshot bridge import (477e278)
  • build(config): remove API_ENCRYPTION_KEY from deployment samples (893d6a2)
  • style(ui): normalize tool call and copilot route formatting (c5949b4)
  • chore: restore recovered local changes (91d60d0)
  • test(agent): remove stale MCP agent handler coverage (b0c1156)
  • test(custom-tools): reject function names in imported schemas (1554689)
  • test(copilot): align custom tool schema fixture (57bf4b6)
  • test(generic-handler): remove stale mcp id resolution coverage (9268e89)
  • style(custom-tools): format entity state import (360aa97)
  • style(tools): sort utility imports (80ffffa)
  • style: normalize formatting in agent and indicator files (f012aa9)
  • style(indicators): format runtime imports (cb97136)
  • test(custom-tools): align export schema fixture with canonical shape (b78c5de)
  • test(auth): adjust auth error handler workspace permission case (c6dafaa)
  • style(workflow): format edit-workflow-block test (d897f30)
  • test(copilot): stabilize workflow tool suites (1f342d9)
  • test(tradinggoose): update workflow test setup (390bf58)
  • style(sidebar): normalize sidebar formatting (5fea951)
  • test(global-navbar): cover compact avatar trigger outside sidebar (4c6424f)
  • style(tradinggoose): wrap proxy route test case (4c5fa9e)
  • test(tradinggoose): cover authenticated locale routing fallback (44df2e4)
  • style(workspace): format integrations oauth helpers (8c91269)
  • perf(control-bar): memoize workflow run trigger derivation (e74ef77)
  • test(workflows): add coverage for editor trigger resolution (0e55bd8)
  • test(yjs): cover shared workflow session bootstrap loading (c8dc570)
  • style(workflows): reorder accessible reference imports (3f3095a)
  • test(resolver): clarify trigger block alias expectation (17843af)
v2026.06.05
Jun 5, 2026

TradingGoose Studio v2026.06.05

Release date: 2026-06-05

Features

  • feat(i18n): add next-intl localization for public, auth, admin, workspace, chat, invite, changelog, and unsubscribe routes with English, Spanish, and Chinese support
  • feat(monitors): add source-aware portfolio monitors with portfolio conditions, socket runtime subscriptions, workflow dispatch, and trigger blocks
  • feat(watchlists): add watchlist workflow block and tools for reading lists/items plus adding and removing listings by structured listing identity
  • feat(listings): promote listingIdentity to a first-class workflow value type across tools, blocks, triggers, variables, selectors, and executor parsing
  • feat(execution): stream queued workflow executions directly from the queue route with terminal event reconstruction from durable logs
  • feat(copilot): move Copilot workflow and saved-entity document reads to canonical Yjs snapshots and shared workflow sessions
  • feat(trading): resolve broker access through user OAuth connection accounts and introduce portfolio detail contracts for broker account data
  • feat(email): localize transactional emails and persist preferred locale for authenticated users and waitlist entries

Improvements

  • improvement(execution): simplify pending_execution into a lease-only queue while moving terminal workflow state to execution logs
  • improvement(runtime): harden queued execution drains, require Trigger.dev for queued drains, and add a root Trigger.dev dev workflow
  • improvement(console): centralize workflow execution event ingestion, stream buffering, cancellation, CSV export, and JSON output rendering
  • improvement(ai): centralize server-side AI provider execution, OpenAI-compatible stream conversion, token usage, and model cost calculation
  • improvement(trading): use OAuth connection accounts for broker discovery, order access, portfolio identity selection, and socket portfolio streams
  • improvement(market): share provider-aware listing selectors across widgets, monitor forms, workflow fields, and watchlist controls
  • improvement(records): preserve log and order detail controls during loading or unavailable states and enforce workspace access on execution metrics
  • improvement(dev): add i18n scripts, update Vitest/Vite test setup, and upgrade Turborepo schema handling

Refactors

  • refactor(routes): move visible app routes under [locale] while keeping API, callback, asset, sitemap, Monaco, and LLM routes canonical
  • refactor(monitors): replace indicator-only monitor APIs and runtimes with source-aware monitor routes, reconciliation, locks, logs, and background dispatch
  • refactor(trading): rename holdings surfaces to portfolio detail across tools, blocks, API routes, provider capabilities, and broker contracts
  • refactor(execution): centralize workflow execution events, SSE formatting, stream replay, job state reconstruction, and access checks
  • refactor(stores): narrow the console store around entries, event ingestion, cancellation, clear, and export behavior
  • refactor(components): move market, trading, provider, OAuth, and listing selector UI into shared component ownership
  • refactor(email): replace standalone email templates with a localized email renderer and message-driven copy
  • refactor(workflows): centralize workflow value types, workflow editor localization, block copy, trigger copy, and variable parsing helpers

Documentation

  • docs(changelog): add dated changelog entries for May 16, May 18, May 21, May 23, May 26, May 29, and June 5
  • docs(readme): update README screenshot assets and refresh visual documentation references
  • docs(tools): refresh Hugging Face tool documentation and related copy
  • docs(project): update changelog template conventions for the TradingGoose release workflow

Other Changes

  • chore(deps): add next-intl, upgrade better-auth to 1.6.2, pin Vite/Vitest, and upgrade Turborepo to 2.9.16
  • chore(db): add generated migrations for preferred locale fields and the pending execution queue schema simplification
  • chore(config): add i18n/Lingo configuration, update Turborepo schema, and adjust Helm chart metadata
  • fix(knowledge): preserve knowledge document storage keys and streamline queued document processing
  • fix(execution): stabilize queued drains, cancellation, durable terminal state, and workflow log reconstruction
  • fix(auth): make auth redirects, callbacks, invitations, password reset, and verification flows locale-aware
May 15, 2026
v2026.05.15
May 15, 2026

TradingGoose Studio v2026.05.15

Release date: 2026-05-15

Features

  • feat(billing): refine pricing and plan chooser display (3031915)
  • feat(nav): add documentation link to sidebar (f46ca9c)
  • feat(knowledge): support context-aware uploads and embeddings (fcc2447)
  • feat(knowledge): scope knowledge bases to workspaces (ae71f02)
  • feat(trading): resolve holdings from portfolio identity (cca0bcf)
  • feat(serializer): support canonical param ids and user-only inputs (41e202f)
  • feat(copilot): include workflow parent ids in summaries (8d8eca6)
  • feat(workflows): stream workflow chat output and normalize file inputs (3e32845)
  • feat(access): add workspace credential access controls (6f45bce)
  • feat(oauth): support account-level connection management (7b34a91)
  • feat(workflows): stream execution results through queued API (f6fc123)
  • feat(trading): support richer order and review-target context (351a636)
  • feat(logs): add structured workflow log filtering (9d44f96)
  • feat(records): add order records and logs workspace (24ac935)
  • feat(migrations): update journal and add lethal ikaris migration (57dea34)
  • feat: add Gantt chart component for execution monitoring timeline (6f91703)
  • feat(monitor): add dedicated monitor workspace (b76a4c0)
  • feat(monitor): add execution workspace views (31c59e7)
  • feat(monitor): unify execution and config workspaces (4a33640)
  • feat(widgets): add portfolio snapshot widget (cdad1cf)
  • feat(widgets): add quick order widget (f8b1dd0)
  • feat(widgets): add heatmap market APIs (a59c4a7)
  • feat(widgets): add heatmap widget (066ab27)
  • feat(widgets): stream shared trading portfolio data (b41998a)
  • feat(widgets): refine portfolio widgets and workflow layout (7258814)
  • feat(portfolio): enhance trading performance window support and widge… (64cbd35)
  • feat(ai): expand provider support and normalize hosted model handling (1ce9f9a)
  • feat(copilot): standardize workflow references and indicator tooling (58b0588)
  • feat(copilot): align webhook request prompt with exact tags (ce446eb)
  • feat(markdown): add public markdown rendering and discovery (49b9e0a)
  • feat(seo): refresh public metadata and canonicals (58001ce)
  • feat(copilot): overhaul mention input and context rendering (f6705e0)
  • feat(copilot): simplify workflow review summaries (ef5561a)
  • feat(markdown): support HEAD responses (c68da79)
  • feat(link-headers): add catalog item links and enhance API catalog do… (f882d8f)
  • feat(copilot&SEO): enhance public markdown delivery and SEO metadata,… (76039da)
  • feat(copilot): unify workspace entity context handling (cd5d01a)
  • feat(markdown): authenticate changelog release fetch (b32b11e)
  • feat: update workspace routing to use '/dashboard' instead of '/w' an… (1024419)
  • feat(landing): add pressure cross triggers (10f9824)
  • feat(copilot): propagate streamed turn state (a137f78)
  • feat(billing): add personal PAYG backend (99a6c21)
  • feat(subscription): add personal PAYG management UI (92dd03a)
  • feat(billing): consolidate billing portal and allowance flows (0292f5d)
  • feat(billing): reconcile PAYG activation idempotently (a2e2d19)
  • feat(admin-billing): require Stripe monthly price IDs for new tiers (c24db18)
  • feat(billing): implement personal PAYG lifecycle and enhance admin bi… (d0d8b5d)
  • feat(billing): enhance PAYG subscription handling and improve test co… (f51e373)
  • feat(billing): update resetUsageForSubscription to accept dbClient pa… (6369964)

Bug Fixes

  • fix(billing): simplify public price labels (ff72e95)
  • fix(knowledge): return structured tag filter validation errors (0d39855)
  • fix(workflows): tighten visible mermaid edge validation (d469b1d)
  • fix(tests): update expectations for user ID and request parameters in… (8be1990)
  • fix(trading): tolerate portfolio identity lookup failures (8ef0a6e)
  • fix(copilot): gate approval and skip handling by tool registry (b9dc82c)
  • fix(chat): preserve queued selected outputs (0737d7d)
  • fix(orders): neutralize csv formula exports (20a1d87)
  • fix(workflow-editor): require edit access to run (98ef037)
  • fix(trading): key portfolio identities by credential and resolve orde… (2997e86)
  • fix(copilot): preserve conditional blocks and forward tool execution … (48bc4ba)
  • fix(chat): stop queued chat polling after cancellation (a05d124)
  • fix(copilot): enforce workspace scope for trading detail tools (3122618)
  • fix(trading): resolve order detail from stored credential context (99cd661)
  • fix(logs): enforce workspace access scope (28ad7b2)
  • fix(workflow): evaluate advanced sub-block conditions (78ca12c)
  • fix(copilot): scope workflow log reads by workspace (cb13bbb)
  • fix(workflow): reset streamed block output per run (66855fa)
  • fix(copilot): preserve review state and text blocks (93e2df6)
  • fix(workflow): normalize tool ids and sub-block rendering (e3978a7)
  • fix(trading): require workspace-scoped holdings access (b3d64c7)
  • fix(trading): improve account labels and search matches (9f04aa5)
  • fix(trading): tighten order submission inputs and capabilities (56794ce)
  • fix(copilot): enforce session and workflow access (8313315)
  • fix(trading): harden broker request handling (09ec564)
  • fix(workflow-editor): render preview rows from stored values (fff1629)
  • fix(workflows): harden workflow execution api handling (8918580)
  • fix(copilot): gate live review context on resolved entity sessions (e089220)
  • fix(trading): refresh order type options on listing changes (55c363f)
  • fix(trading): persist broker results and refresh order views (c4f7c2f)
  • fix(execution): cancel timed out queued workflows (6e5d68d)
  • fix(auth): scope workflow credential lookups to workflow owner (64a0a60)
  • fix(workflows): stop cancelling queued api executions on http timeout (ab78a37)
  • fix(workflows): route child api executions through input triggers (3265c18)
  • fix(copilot): enforce access checks for entity and workflow contexts (e62235c)
  • fix(trading): normalize provider-specific order payload handling (91a6861)
  • fix(editor): reset stale trading selections and surface account fetch… (4ac0c6c)
  • fix(execution): dispatch local pending execution drain asynchronously (cdb726a)
  • fix(copilot): ignore empty block mention contexts (522a791)
  • fix(trading): support workspace-shared broker credentials (101c0ff)
  • fix(copilot): match draft entity sessions by review target (7752e9f)
  • fix(workflows): harden queued execution responses (3ef7498)
  • fix(copilot): route workflow edits into review flow (b2701cd)
  • fix(review): enable writable entity sessions (3111f2c)
  • fix(trading): add idempotent order submissions (a6bec23)
  • fix(workflow): scope child workflow job output (551ac5a)
  • fix(auth): scope google drive credential access (237dd86)
  • fix(executor): propagate tool execution identity (3548933)
  • fix(market): scope quote snapshot cache (fdafac2)
  • fix(yjs): wait for writable workflow session sync (37fcfad)
  • fix(quick-order): reset idempotency key on failed attempts (d31b13e)
  • fix(workflows): treat empty selections as streamable content (ae9d356)
  • fix(copilot): gate input on active review target (31cbb5a)
  • fix(copilot): hide stale review target while resolving (602100a)
  • fix(widget): correct short position day change (19018eb)
  • fix(records): use unified trading account selector (0ef3efd)
  • fix(logs): restore filter type checks (6511860)
  • fix(records): keep monitor logs integration compatible (165fd0b)
  • fix(records): tolerate legacy workflow log shape (b202b54)
  • fix(logs): accept monitor asset type export alias (2061d63)
  • fix(monitor): sanitize public execution data (83439e3)
  • fix(tradinggoose): preserve falsy finalOutput values (fa6a233)
  • fix(admin): restore registration snapshot table layout (e6871b1)
  • fix(logs): treat date-only filters as full-day ranges (4e31c79)
  • fix(records): handle empty trace spans safely (a0e621a)
  • fix(webhooks): use transformed execution payload in log deliveries (a9df99d)
  • fix(copilot): allow workspace-scoped trading tools (cab40fc)
  • fix(tools): preserve workflow provenance in post-processing (633169a)
  • fix(webhooks): cancel active log deliveries (6e8c2de)
  • fix(logs): scope workflow completion to the active log (caa3003)
  • fix(tools): require explicit trading order context (cfe5c45)
  • fix(ai): preserve workflow context for tool-enabled provider requests (9451679)
  • fix(monitor): stretch config workspace shell (d6b203c)
  • fix(monitor): pad board shell consistently (426adeb)
  • fix(monitor): align toolbar control styling (1210574)
  • fix(monitor): open config detail on selection (a699333)
  • fix(monitor): compact config search suggestions (cb5e5f2)
  • fix(monitor): use tabs for mode switcher (f5b4d07)
  • fix(monitor): align toolbar controls (e4712db)
  • fix(monitor): normalize toolbar dropdowns (e417dd5)
  • fix(monitor): create monitors from config board (5c0d5f8)
  • fix(monitor): unify kanban board styling (f297ede)
  • fix(monitor): prevent toolbar control truncation (f774f8a)
  • fix(monitor): simplify config board group headers (8c5af37)
  • fix(monitor): align tab active styling (8af4dc0)
  • fix(monitor): avoid kanban group title prop collision (750d183)
  • fix(monitor): soften control bar corners (9fbda21)
  • fix(monitor): point execution logs to logs components (0ad37bd)
  • fix(monitor): align standalone log types (ae7f747)
  • fix(monitor): request full execution log details (c463bc8)
  • fix(monitor): align execution export filters (57b6614)
  • fix(monitor): enforce kanban column limits (a797a93)
  • fix(monitor): preserve execution context (fad5e0a)
  • fix(monitor): avoid workflow inputs in config form (f15792b)
  • fix(monitor): align tab list surface (274f981)
  • fix(monitor): tune tab control sizing (cff31c7)
  • fix(monitor): guard saved views by workspace permission (5b04d07)
  • fix(monitor): enforce view write permission (2be61e6)
  • fix(monitor): load workflow targets from list (59a1ea7)
  • fix(monitor): allow deleting stale view rows (e953ccc)
  • fix(monitor): preserve indicator input overrides (025627a)
  • fix(monitor): omit decrypted auth from responses (9329b3b)
  • fix(monitor): tighten saved view writes (2311046)
  • fix(monitor): preserve stored config auth (f2a2b1c)
  • fix(monitor): scope saved view updates (349c0f2)
  • fix(monitor): sanitize public execution data (611c1b4)
  • fix(monitor): stabilize saved view filters (b67a5a3)
  • fix(monitor): handle secret replacement safely (35628c5)
  • fix(widgets): keep quote snapshot contract client safe (c49e5b4)
  • fix(widgets): simplify trading account selection (e13c2e9)
  • fix(workflow): clarify output select icon state (4c17fb5)
  • fix(trading): align Alpaca crypto availability (330112a)
  • fix(copilot): normalize reasoning envelopes (ea305c7)
  • fix(copilot): hide unknown thought duration (25f268d)
  • fix(copilot): clarify finished thinking label (9b18fc2)
  • fix(copilot): render thinking markdown (4e4e512)
  • fix(copilot): preserve reasoning with content blocks (7506fe2)
  • fix(copilot): stabilize reasoning block timestamps (9a29943)
  • fix(docker): align compose defaults and guardrails stage (6d7a0fd)
  • fix(docker): use browser-accessible socket URLs in compose (1b05299)
  • fix(docker): slim runtime copies and create realtime build dir (88fb820)
  • fix(docker-compose): restore GPU device reservation for ollama (b7b6ce0)
  • fix(billing): refresh subscription allowance state (6c61d90)
  • fix(widgets): align header selector sizing (4fe14f4)
  • fix: preserve billing backfill overrides and use service config (194289a)
  • fix(billing): improve logging for subscription handling and refactor … (13247ed)
  • fix(billing): update onboarding allowance logic and improve subscript… (d1b3818)
  • fix(billing): require included usage limits for overage billing (5b6b0cf)
  • fix(billing): log missing Stripe subscription IDs (cc766dc)
  • fix(posthog): remove bundled fallback key (62fbce7)
  • fix(ui): reduce hydration noise and escape structured data (98f9d96)

Refactors

  • refactor(workflow): remove legacy webhook trigger block (c3bfa96)
  • refactor(workflow): simplify edge management in useWorkflowMutations (7e767c9)
  • refactor(editor-workflow): consolidate subflow config and deploy modal (f924edf)
  • refactor(ui): streamline records and listing presentation (92ab2ae)
  • refactor(landing): remove integrations JSON-LD (0e5c643)
  • refactor(trading): unify portfolio identity across provider flow (156ce42)
  • refactor(tradinggoose): streamline copilot and trading account detail (b828f28)
  • refactor(tradinggoose): simplify trigger resolution and remove deprec… (42db042)
  • refactor(runtime): resolve skills and trading credentials server-side (78e38d3)
  • refactor(workflows): queue execution and normalize workflow readers (415bb82)
  • refactor(copilot): align read-only tools and reader helpers (5a8d5cf)
  • refactor(trading): unify canonical order submission (eac6001)
  • refactor(workflow): canonicalize output selection (fc78c56)
  • refactor(tests): enhance mock implementations and streamline test cases (870bffc)
  • refactor(trading): enhance trading account workflows and unify data c… (f4e2c6c)
  • refactor(trading): use recorded order detail metadata (64616ac)
  • refactor(dashboard): persist canonical review targets (352ccc1)
  • refactor(oauth): move token helpers into lib (f292139)
  • refactor(trading): extract shared trading services (b332311)
  • refactor(workflows): share execution stream handling (8996fac)
  • refactor(executor): streamline deferred and streamed output handling (5e19060)
  • refactor(copilot): simplify linked entity review state (a05c215)
  • refactor(trading): rename credential service state to service ids (fb05cc8)
  • refactor(workflows): drop legacy execution and import paths (ab687d6)
  • refactor(access): use workspace access helpers consistently (107a4ea)
  • refactor(trading): share provider credentials by workspace (1be4c5b)
  • refactor(trading): centralize order history search (89a63ab)
  • refactor(copilot): remove legacy integration execution (11d5406)
  • refactor(widgets): simplify entity review resolution and editor flows (f14ad0b)
  • refactor(copilot): align app shell with shared review target helpers (739d76a)
  • refactor(trading): simplify credential access and failure handling (0da95c0)
  • refactor(trading): centralize order capabilities and quick-order vali… (177c752)
  • refactor(auth): tighten oauth workspace scoping (06dc14a)
  • refactor(trading): remove legacy option order plumbing (b0b3e18)
  • refactor(auth): add owner-aware oauth credential resolution (2ee8bb7)
  • refactor(records): consolidate order routes (a3fb2fb)
  • refactor(records): use shared trading provider connection (fc75404)
  • refactor(records): use shared tabs in header (c35212d)
  • refactor(records): normalize order sort keys (9991818)
  • refactor(logs): remove legacy fallback paths (ee8acf1)
  • refactor(executor): remove legacy workflow fallbacks (0ec245b)
  • refactor(variables): remove deprecated string variable type (dfc8c71)
  • refactor(logs): simplify selection resolution logic in useMonitorWork… (98e8708)
  • refactor(logs): enhance pagination and parameter validation in logs e… (88b4cc1)
  • refactor(logs): enhance log level filtering and test coverage (c2c63f7)
  • refactor: change exported types to local types for better encapsulation (7c3cdb2)
  • refactor(order-records): cast order record IDs to text for search mat… (3f144dc)
  • refactor(monitor-preview): streamline entry creation and remove unuse… (00de0a0)
  • refactor: enhance variable type handling and validation across the co… (9ebd871)
  • refactor: improve workspace access checks and enhance loading state m… (b351ab9)
  • refactor(order-history): enhance search functionality for UUIDs and i… (f218541)
  • refactor: enhance order filtering and logging with workspace context … (2223fc3)
  • refactor(logs): enhance SQL handling for trace span statuses and impr… (1fb8a8f)
  • refactor: enhance context handling in API and generic block tests wit… (98f14ed)
  • refactor(logs): enhance ordering and filtering logic in log queries a… (f626d9d)
  • refactor(logs): improve listing filter handling and enhance error res… (047c73a)
  • refactor(logs): enhance permission checks and SQL handling in workflo… (e3a29f6)
  • refactor(logs): improve handling of workflow and folder filters in lo… (417b901)
  • refactor(logs): simplify workflowId retrieval in emitWorkflowExecutio… (fb2479b)
  • refactor(records): remove legacy logs workspace (e98253c)
  • refactor(widgets): remove explicit dropdown alignment (04bc348)
  • refactor(biome): add exclusion for migration metadata in package dire… (2cf2250)
  • refactor(orders): drop workflow provenance from order history (a903522)
  • refactor(logging): split workflow log start and completion (5dd2488)
  • refactor(order-id-selector): replace workflowId with workspaceId in f… (a840510)
  • refactor(order-logs): update submission source logic and enhance work… (996f9c5)
  • refactor(monitor): compact workspace toolbars (656e5e5)
  • refactor(monitor): make workspace controls searchable (16a1964)
  • refactor(monitor): share saved view activation helper (48787dc)
  • refactor(widgets): unify provider header controls (26f3898)
  • refactor(widgets): consolidate provider APIs and portfolio UI (72d6221)
  • refactor(widgets): stream market quote snapshots (2aed601)
  • refactor(widgets): require explicit market providers (ae3ecd2)
  • refactor(market): centralize TradingGoose Market requests (cdf7d40)
  • refactor(auth): normalize credential service resolution (49b701e)
  • refactor(trading): route portfolio requests by credential service (5d576be)
  • refactor(widgets): persist trading credential services (93f7a92)
  • refactor(indicators): run chart indicators in browser (6a1ba23)
  • refactor(widgets): simplify shared widget context (f184f1a)
  • refactor(editor-workflow): simplify controls and action bar interactions (dc5d10f)
  • refactor(data-chart): remove market depth tool (332154d)
  • refactor(stores): switch Zustand consumers to equality helpers (159938f)
  • refactor(billing): simplify validation and enhance customer creation … (7dd40d1)

Documentation

  • docs(changelog): update May 10 and May 15 entries (734c0f1)
  • docs(changelog): remove stale May 15 changelog (d4336ea)
  • docs(changelog): clarify subscription UI branch scope (a6582f8)
  • docs(copilot): clarify review-session mapping comment (86484a5)
  • docs(changelog): add May 10 branch summary (ba20ad4)
  • docs(readme): refresh footer artwork (84ef712)
  • docs(tools): update trading order history reference (2bcf7af)
  • docs(monitor): document kanban branch (b56f3fa)
  • docs(changelog): update April feature notes (1c3d199)
  • docs(changelog): document portfolio widgets branch (b0408eb)
  • docs(blocks): update loop and parallel guidance (4f705ba)
  • docs: add design system spec (ab44931)

Other Changes

  • build(tradinggoose): upgrade trigger.dev and pdf parsing deps (8e976b4)
  • chore(changelog): add detailed entry for subscription UI improvements… (729366b)
  • style: format subscription UI branch files (638a512)
  • Refactor code structure for improved readability and maintainability (cf8953f)
  • test(tradinggoose): align rebased validation tests (0f07c6a)
  • test(runtime): cover server-side skill and token resolution (9f19725)
  • style(ui): polish provider labels and spacing (833204d)
  • style(workflows): format queue route (650b240)
  • perf(executor): extract stream chunk flush thresholds (bb7b6a5)
  • style(cleanup): clarify local names and comments (3c162cf)
  • build(deps): bump Next.js to 16.2.6 (dba3cc7)
  • test(widgets): cover entity selection and review target refactor (942f66b)
  • test(logs): align route timing fields (e36a487)
  • style(tradinggoose): format logs and records modules (a25ad8a)
  • build(db): regenerate migration 0031 (b7d7f9d)
  • Update apps/tradinggoose/lib/indicators/monitor-config.ts (1387376)
  • Update apps/tradinggoose/app/workspace/[workspaceId]/monitor/componen… (9f33716)
  • Update apps/tradinggoose/app/api/indicator-monitors/[id]/route.ts (b6234c7)
  • test(workflow): update auto layout expectations (63f4b6e)
  • build(docker)!: modernize image builds and compose deployment config (4be9e9c)
  • chore(docker): trim env template whitespace (f2bc833)
  • chore(docker): clarify env template comments (307ff2c)
  • test(cost): add test for resolving dotted Claude model IDs through pr… (3cb09e2)
  • chore: trim review fix diff (6a60cc1)
  • chore: add changelog for copilot billing enhancements and AI provider… (793a477)
  • chore(ai): include Google in hosted models (018f8ae)
  • style(fonts): disable Soehne preload (bfb17d5)
  • build(vitest): exclude Next build artifacts (779ddb3)
  • test(copilot): cover workflow provenance from explicit contexts (e1d74a7)
  • test: stabilize workflow and API harnesses (c2efe5e)
  • build(next): harden monaco asset tracing (0ddad7f)
  • Refactor billing portal API to streamline Stripe customer management (d101833)
  • test: align billing and proxy expectations (d9041ca)
Apr 21, 2026
v2026.04.21
Apr 21, 2026

TradingGoose Studio v2026.04.21

Release date: 2026-04-21

Features

  • feat(auth): migrate Trello OAuth callback flow to API routes (65cf324)
  • feat(trello): wrap TrelloCallbackContent in Suspense for improved loa… (36f9c42)
  • feat(theme): implement useXYFlowColorMode hook and integrate color mo… (72893bd)
  • feat: add landing section skeleton fallbacks (0bb60da)
  • feat(uploads): add Azure and Vercel storage providers (668d221)
  • feat(billing): rename tier multipliers and refresh admin editor (5ea4d7f)
  • feat(copilot): add channelId to client tool context (a3021b2)
  • feat: update background colors for various tool blocks (856697f)
  • feat(workflow): migrate to @xyflow/react (2321812)
  • feat(copilot): migrate to document-based tool contracts (4e035c8)
  • feat(tradinggoose): refresh branding assets (64f6ae7)
  • feat(auth): add auth error recovery flow (1d662bd)
  • feat(tradinggoose): modernize copilot, workflow, and access flows (ab0d77a)
  • feat(organization): gate team access by billing state (b1daed2)
  • feat(workflows): preserve Mermaid direction in live state (7df626d)
  • feat(copilot): unify usage billing and reservations (432092e)
  • feat(copilot): rework streaming persistence and tool routing (48166de)
  • feat(copilot): require explicit tool targets (65952ed)
  • feat(billing): add tier execution limit controls (d5debcb)
  • feat(execution): queue background work through pending executions (ffff574)
  • feat(market): require explicit provider auth for quote snapshots (0a7a427)
  • feat(workflows): centralize execution runner (8b70b5e)
  • feat(copilot): stabilize tool state transitions (25bee37)
  • feat(copilot): persist reasoning blocks in chat streams (c879382)
  • feat(execution): centralize queued workflow dispatch (ed607ed)
  • feat(copilot): scope generic chat history by workspace (9babad6)
  • feat(copilot): add indicator catalog and entity mutation tools (c2e6278)
  • feat(copilot): add workflow block editing and Monaco diagnostics (a09bef1)
  • feat: update blog metadata and structured data for improved SEO and u… (07df18a)
  • feat: specify target branch for release creation in workflow (a3af074)
  • feat: update release workflow to generate notes from merged PRs since… (ad7516d)
  • feat(release): add contributors section to release notes (b2f26b8)
  • feat: enhance release workflow to categorize and deduplicate commits … (c457c00)
  • feat(oauth): support system-managed OAuth credentials (3e4469e)
  • feat(admin): add system integration admin console (220caff)
  • feat(workspace): move navbar into workspace layout (47feaa4)
  • feat(registration): add waitlist signup and approval flow (6d6f340)
  • feat(billing): add tiered billing and admin surfaces (397462c)
  • feat(changelog): add detailed changelog for user waitlist feature and… (850f509)
  • feat(auth): hydrate system-managed social OAuth credentials (11f9db4)
  • feat(registration): use live registration mode across auth and landing (3b9c2cc)
  • feat(admin): scope SSO and admin routes to organizations (50dcf06)
  • feat(billing): gate billing on runtime enablement (1deb993)
  • feat(execution): gate billing work on runtime enablement (153537e)
  • feat(admin-billing): enforce default tier rules (73af8bc)
  • feat(auth): require issuer discovery for SSO registration (c14ef14)
  • feat(changelog): add detailed entry for admin panel enhancements (c658810)
  • feat(admin-registration): enhance error handling and logging for unau… (54e3879)
  • feat(admin-registration): implement bootstrap admin claim logic and e… (ad09561)
  • feat(import-export): add unified TradingGoose resource import/export … (e89b26c)

Bug Fixes

  • fix(realtime): standardize socket URL handling (ecf09e6)
  • fix: discover internal realtime service in kubernetes (b3726a1)
  • fix auth integrations (d3a7ef2)
  • fix: prevent xyflow dark mode flash (5640c1a)
  • fix: make xyflow theme hydration-safe (d99094a)
  • fix: scope theme classes to root (7cd5199)
  • fix: remove xyflow theme class from workflow components (c38bfa5)
  • fix: remove landing page loading fallbacks (b2eca83)
  • fix: scope landing tooltips to lazy feature section (a356123)
  • fix: reorder imports and handle billing settings error in catalog (c756048)
  • fix: remove landing skeleton fallbacks (749cfe2)
  • fix(stores): preserve copilot error state on reset (8cfff67)
  • fix: tighten vercel blob upload contract (9cc96f0)
  • fix: guard subscribed tier execution multipliers (52f12cb)
  • fix: align vercel upload token expiry (3004c12)
  • fix: strip query params from delete keys (3059503)
  • fix(monaco-editor): serve workers and map diagnostics locally (5809c27)
  • fix(billing): avoid build-time plan resolution (023b287)
  • fix(stores): use equality-aware zustand hook (c4ee408)
  • fix(changelog): add detailed entry for better auth error handling and… (b5def39)
  • fix(auth): reorganize imports and improve session error handling (f6cede5)
  • fix(monaco-editor): update Cache-Control header for .js.map files; ch… (463916d)
  • fix(workflow-preview): allow preview nodes to drag locally (dfc92e9)
  • fix(copilot): stabilize chat history and tool approvals (6964122)
  • fix(security): tighten CSP and rate-limit failures (4333f53)
  • fix(ui): polish auth hydration and block branding (8319912)
  • fix(organization): keep SSO access when billing is disabled (6763b38)
  • fix(copilot-widget): keep chat mounted during workflow hydration (5132705)
  • fix(data-chart): preserve listing query while syncing selection (3aaf396)
  • fix(data-chart): prevent dropdown update loop (4816ce6)
  • fix(billing): count pending invitations toward seat limits (bd1bd33)
  • fix(admin): accept partial system settings updates (fabe781)
  • fix(workflows): reject non-canonical workflow sub-blocks (ff3d244)
  • fix(copilot): bypass usage billing when disabled (9da5c29)
  • fix(api): guard missing chat workspace id (5aae8de)
  • fix(dashboard): ignore stale layout switch responses (7839a7f)
  • fix(workflows): reuse normalized persisted state (300f752)
  • fix(system-integrations): handle missing lineage roots (0f7f593)
  • fix(auth): preserve protected-route callback redirects (e08fd50)
  • fix(release): use individual PR commits for release notes (5161f01)
  • fix(ui): enable horizontal table scrolling (c1af28b)
  • fix(billing): keep personal billing context isolated (f91e21d)
  • fix(function-execute): require workflow access before execution (fe34134)
  • fix(workspaces): surface billing owner validation errors (7e3e223)
  • fix(workflow-diff): use conversationId for checkpoint creation (f2e4a60)

Refactors

  • refactor(db): remove workflow checkpoints (1210ed1)
  • refactor(db): remove retired workflow checkpoints and cleanup script (e35825a)
  • refactor(platform): centralize runtime services and normalization (9a8a48d)
  • refactor(settings): centralize trigger execution and remove legacy tr… (546204c)
  • refactor(admin-services): streamline secret editing and required-fiel… (bb611f4)
  • refactor(landing): centralize public navigation (f9b639b)
  • refactor(workflow-editor): share trigger editing layout (7b1708b)
  • refactor(auth): simplify auth error flow (361b613)
  • refactor(studio): consolidate access, copilot, and workflow plumbing (c57779b)
  • refactor(copilot): centralize server tool contracts (d6d1661)
  • refactor(watchlist): share header renderer (a05593b)
  • refactor: extract shared workflow row builder (e46d072)
  • refactor: update vitest configuration to use ES modules and add suppo… (82f469c)
  • refactor(config): remove legacy runtime customization hooks (2ae82bc)
  • refactor(copilot): propagate workflow context and review targets (c0f2537)
  • refactor(ai): simplify hosted model list (486aa94)
  • refactor(execution): remove async execution surfaces (89c1503)
  • refactor(app): inline public env snapshot (8f0dd9b)
  • refactor(landing): extract careers form and use direct layouts (cc6488b)
  • refactor(copilot): improve options rendering logic and enhance auto-s… (b06815f)
  • refactor(copilot): update chat handling to be workspace-scoped and im… (74cc11c)
  • refactor(execution): enhance pending execution handling with local dr… (5fd0de3)
  • refactor(copilot): remove feedback endpoint (3e86d44)
  • refactor(copilot): simplify tool metadata and block catalog (d0857bc)
  • refactor(copilot): split streaming store and message UI (ac597b6)
  • refactor(redis): implement lock renewal mechanism and improve connect… (19f86cd)
  • refactor(workflow): update authentication checks and enhance child ex… (45be8bc)
  • refactor(copilot): improve chat persistence handling and update test … (3649a04)
  • refactor(trading): remove Robinhood brokerage support (b2d030e)
  • refactor(workflows): align trigger metadata with webhook providers (fd841d0)
  • refactor(ai): centralize provider catalog (d338dc4)
  • refactor(executor): share context extension types (89f7e3b)
  • refactor(branding): derive footer copy from brand config (f7c0937)
  • refactor(sso): remove legacy SSO query hook and scripts (b7f4b48)
  • refactor: update admin integrations and system settings to handle sec… (31d5a46)
  • refactor(workflows): remove workflow-diff and use Yjs snapshots for e… (38ef7b9)

Documentation

  • docs(tradinggoose): expand env example (bdf40e7)
  • docs(licenses): refresh upstream attribution (213a72c)
  • docs(changelog): update April 11 branch notes (de7ff55)
  • docs(changelog): update April 11 branch notes (b94ae87)

Other Changes

  • test(security): update CSP socket default coverage (4f13495)
  • build(deploy): remove legacy socket server env config (c150214)
  • chore(routing): remove hosted-mode route restrictions (ec046ad)
  • test: refresh copilot and market suites (fa1b5ba)
  • chore(changelog): add changelog template for consistent entry structure (f3cfa26)
  • test: cover vercel pathname deletes (85ef11a)
  • test(workflow-preview): cover trigger preview rendering (0d9aba9)
  • test(auth): cover auth error copy (0eb1c20)
  • build(billing): move Stripe config to deployment env (b061677)
  • test(workflows): cover live state apply route (28e8680)
  • build(deps): refresh workspace dependency versions (d2f15d6)
  • style(auth): soften social login hover state (49ea4bd)
  • chore(git): preserve recovered local commit c57779b5 (21b9cc9)
  • chore(git): preserve recovered local commit ab0d77a6 (148c30b)
  • test(copilot): enhance reservation release tests and add new scenarios (dd4ae36)
  • build(tradinggoose): simplify dev script (7b878e6)
  • chore(providers): stop fetching vllm models (94c62dc)
  • build(db): refresh migration 0026 metadata (bc07ec5)
  • chore(ci): simplify release tag title (3cce8a3)
  • build(db): add registration and waitlist schema (b299b1d)
  • style(admin): reformat integration secret editor (653aca8)
  • ci(images): add image publishing workflow (e279d3b)
  • build(env): remove obsolete SSO env schema (afc59db)
  • test(sso): update org-scoped SSO and admin coverage (3a46c94)
  • chore(changelog): remove April 11, 2026 changelog entry (dd2b081)
Apr 8, 2026
v2026.04.08
Apr 8, 2026

TradingGoose Studio v2026.04.08

Release date: 2026-04-08

Features

  • feat(blog): improve post rendering and image delivery (8c30cbb)
  • feat(yjs): add collaborative workflow editing and review sessions (7d3a9d9)
  • feat(yjs): add collaborative workflow editing and review sessions (b19f350)
  • feat(copilot): unify runtime, review, and service keys (e02e28a)
  • feat(landing): simplify preview canvas and add SEO metadata (6fe3341)
  • feat(workflow): filter unavailable tool blocks (7d42fec)
  • feat(blog): add blog pages and navigation (9337711)
  • feat(landing): always render footer on legal pages (5d1c120)
  • feat(tradinggoose): rebrand metadata and AI reference content (0c6f237)
  • feat(tradinggoose): clarify llms reference canonical repo (002ae49)
  • feat(landing): refresh hero ai prompt copy (bbcff62)

Bug Fixes

  • fix(tests): resolve js/call-to-non-callable code scanning alerts (62db4ab)
  • fix(blog): update image alt attributes and improve image URL resolution (f07ae92)
  • fix: finish post-rebase cleanup (0cab170)
  • fix: address post-rebase typecheck regressions (aae271c)
  • fix(db): restore workspace type-check (6b184c3)
  • fix(workflows): use authoritative yjs workflow state (4f1219c)
  • fix(yjs): observe shared text block updates (1683b77)
  • fix(copilot): resolve workflow snapshots from active channels (fcf1b69)
  • fix(copilot): persist non-streaming tool calls (063e2a0)
  • fix(workflow): harden Yjs session persistence (caa0a81)
  • fix(workflow): use measured layout dimensions (2cb1a08)
  • fix(yjs): preserve rename and variable values (b52ce7c)
  • fix(landing): tighten responsive layout and preview hydration (1883cc8)

Refactors

  • refactor(db): split schema exports into modules (d4df582)

Documentation

  • docs(geo): add audit reports (4b01b35)
  • docs(landing): refresh contribution and project guidance (be7cafd)
  • docs(readme): retitle google ai badge (0470247)

Other Changes

  • chore: update repo guidance and setup docs (759af44)
  • TradingGoose branding and runtime updates (0002408)
  • refresh landing/docs surfaces and hosted-mode access (5ac9ca5)
  • build(blog): add blog dependency and route config (afab8c2)
  • ci(github): replace legacy workflows with manual release (742e7d3)
  • build(tradinggoose): adjust dev and image settings (1d7a3d2)
  • chore(public): remove obsolete assets (ce1a6d9)
v2026.04.04
Apr 4, 2026

TradingGoose Studio v2026.04.04

Release date: 2026-04-04

First public release of TradingGoose Studio, built on top of Sim Studio v0.4.25.

Features

  • feat(branding): launch TradingGoose Studio as a trading-focused fork of Sim Studio v0.4.25
  • feat(indicators): add PineTS execution, verification, monitor dispatch, and 87 built-in technical indicators
  • feat(trading): add Alpaca, Robinhood, and Tradier providers for orders, holdings, and order details
  • feat(market): add market search/get/update APIs, listing helpers, watchlists, and chart-driven workflows
  • feat(widgets): add dashboard widgets for data chart, watchlist, workflow variables, workflow console, MCP, skills, and custom tools
  • feat(api): add indicator monitor, custom indicator execute/verify, watchlist, workspace layout, and trading order APIs
  • feat(blocks): add human-in-the-loop, note, webhook request, historical data, trading action, trading holdings, and trading order history/detail blocks
  • feat(tools): expand the tool catalog from 71 to 126 integrations across trading, analytics, support, sales, storage, and communications
  • feat(triggers): expand the trigger catalog from 12 to 24 families with indicator, RSS, IMAP, Calendly, Circleback, Fireflies, Grain, HubSpot, and Twilio Voice support

Improvements

  • improvement(providers): consolidate model providers under providers/ai and add dedicated market and trading provider layers
  • improvement(runtime): upgrade the monorepo runtime to Bun 1.3 and Next.js 16
  • improvement(dev): split root development workflows into dedicated app, docs, and sockets entry points
  • improvement(socket-server): add live market handlers and indicator monitor runtime support
  • improvement(docs): expand reference coverage to 127 tool pages, 28 trigger pages, 20 block pages, 11 indicator pages, and 13 widget pages
  • improvement(site): rework the public landing and docs experience around TradingGoose workflows, charting, and market analysis

Refactors

  • refactor(app): rename apps/sim to apps/tradinggoose and rename deployment surfaces and Helm chart names from sim to tradinggoose
  • refactor(stores): replace the older panel/sidebar-oriented layout with dedicated chat, console, dashboard, indicators, market, skills, and variables stores
  • refactor(scripts): replace generate-docs.ts with a modular doc-gen pipeline, docs audit tooling, and PineTS helper scripts
  • refactor(api): reorganize provider routing into providers/ai and add separate provider and market handlers
  • refactor(routes): add workspace layout bootstrap flows and a new auth OAuth and Stripe webhook route structure

Documentation

  • docs(indicators): add guides for syntax, inputs, plotting, data series, math, technical analysis, and trigger usage
  • docs(utilities): add custom tools, MCP, and skills documentation
  • docs(widgets): add widget reference pages for chart, watchlist, editor, chat, console, and variable panels
  • docs(navigation): replace the Sim getting-started and top-level MCP sections with TradingGoose-first docs navigation

Other Changes

  • chore(project): rename package, README, compose, devcontainer, and workflow assets from sim to tradinggoose
  • chore(ci): add auto-release and reset-staging GitHub workflows for the TradingGoose project