Stay up-to-date with the latest features, improvements, and bug fixes in TradingGoose. All changes are documented here with detailed release notes.
Release date: 2026-07-26
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)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)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)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)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)Release date: 2026-06-05
feat(i18n): add next-intl localization for public, auth, admin, workspace, chat, invite, changelog, and unsubscribe routes with English, Spanish, and Chinese supportfeat(monitors): add source-aware portfolio monitors with portfolio conditions, socket runtime subscriptions, workflow dispatch, and trigger blocksfeat(watchlists): add watchlist workflow block and tools for reading lists/items plus adding and removing listings by structured listing identityfeat(listings): promote listingIdentity to a first-class workflow value type across tools, blocks, triggers, variables, selectors, and executor parsingfeat(execution): stream queued workflow executions directly from the queue route with terminal event reconstruction from durable logsfeat(copilot): move Copilot workflow and saved-entity document reads to canonical Yjs snapshots and shared workflow sessionsfeat(trading): resolve broker access through user OAuth connection accounts and introduce portfolio detail contracts for broker account datafeat(email): localize transactional emails and persist preferred locale for authenticated users and waitlist entriesimprovement(execution): simplify pending_execution into a lease-only queue while moving terminal workflow state to execution logsimprovement(runtime): harden queued execution drains, require Trigger.dev for queued drains, and add a root Trigger.dev dev workflowimprovement(console): centralize workflow execution event ingestion, stream buffering, cancellation, CSV export, and JSON output renderingimprovement(ai): centralize server-side AI provider execution, OpenAI-compatible stream conversion, token usage, and model cost calculationimprovement(trading): use OAuth connection accounts for broker discovery, order access, portfolio identity selection, and socket portfolio streamsimprovement(market): share provider-aware listing selectors across widgets, monitor forms, workflow fields, and watchlist controlsimprovement(records): preserve log and order detail controls during loading or unavailable states and enforce workspace access on execution metricsimprovement(dev): add i18n scripts, update Vitest/Vite test setup, and upgrade Turborepo schema handlingrefactor(routes): move visible app routes under [locale] while keeping API, callback, asset, sitemap, Monaco, and LLM routes canonicalrefactor(monitors): replace indicator-only monitor APIs and runtimes with source-aware monitor routes, reconciliation, locks, logs, and background dispatchrefactor(trading): rename holdings surfaces to portfolio detail across tools, blocks, API routes, provider capabilities, and broker contractsrefactor(execution): centralize workflow execution events, SSE formatting, stream replay, job state reconstruction, and access checksrefactor(stores): narrow the console store around entries, event ingestion, cancellation, clear, and export behaviorrefactor(components): move market, trading, provider, OAuth, and listing selector UI into shared component ownershiprefactor(email): replace standalone email templates with a localized email renderer and message-driven copyrefactor(workflows): centralize workflow value types, workflow editor localization, block copy, trigger copy, and variable parsing helpersdocs(changelog): add dated changelog entries for May 16, May 18, May 21, May 23, May 26, May 29, and June 5docs(readme): update README screenshot assets and refresh visual documentation referencesdocs(tools): refresh Hugging Face tool documentation and related copydocs(project): update changelog template conventions for the TradingGoose release workflowchore(deps): add next-intl, upgrade better-auth to 1.6.2, pin Vite/Vitest, and upgrade Turborepo to 2.9.16chore(db): add generated migrations for preferred locale fields and the pending execution queue schema simplificationchore(config): add i18n/Lingo configuration, update Turborepo schema, and adjust Helm chart metadatafix(knowledge): preserve knowledge document storage keys and streamline queued document processingfix(execution): stabilize queued drains, cancellation, durable terminal state, and workflow log reconstructionfix(auth): make auth redirects, callbacks, invitations, password reset, and verification flows locale-awareRelease date: 2026-05-15
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)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)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)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)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)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)test(workflow): update auto layout expectations (63f4b6e)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)test: align billing and proxy expectations (d9041ca)Release date: 2026-04-21
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)fix(realtime): standardize socket URL handling (ecf09e6)fix: discover internal realtime service in kubernetes (b3726a1)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)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)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)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)Release date: 2026-04-08
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)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)refactor(db): split schema exports into modules (d4df582)docs(geo): add audit reports (4b01b35)docs(landing): refresh contribution and project guidance (be7cafd)docs(readme): retitle google ai badge (0470247)chore: update repo guidance and setup docs (759af44)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)Release date: 2026-04-04
First public release of TradingGoose Studio, built on top of Sim Studio v0.4.25.
feat(branding): launch TradingGoose Studio as a trading-focused fork of Sim Studio v0.4.25feat(indicators): add PineTS execution, verification, monitor dispatch, and 87 built-in technical indicatorsfeat(trading): add Alpaca, Robinhood, and Tradier providers for orders, holdings, and order detailsfeat(market): add market search/get/update APIs, listing helpers, watchlists, and chart-driven workflowsfeat(widgets): add dashboard widgets for data chart, watchlist, workflow variables, workflow console, MCP, skills, and custom toolsfeat(api): add indicator monitor, custom indicator execute/verify, watchlist, workspace layout, and trading order APIsfeat(blocks): add human-in-the-loop, note, webhook request, historical data, trading action, trading holdings, and trading order history/detail blocksfeat(tools): expand the tool catalog from 71 to 126 integrations across trading, analytics, support, sales, storage, and communicationsfeat(triggers): expand the trigger catalog from 12 to 24 families with indicator, RSS, IMAP, Calendly, Circleback, Fireflies, Grain, HubSpot, and Twilio Voice supportimprovement(providers): consolidate model providers under providers/ai and add dedicated market and trading provider layersimprovement(runtime): upgrade the monorepo runtime to Bun 1.3 and Next.js 16improvement(dev): split root development workflows into dedicated app, docs, and sockets entry pointsimprovement(socket-server): add live market handlers and indicator monitor runtime supportimprovement(docs): expand reference coverage to 127 tool pages, 28 trigger pages, 20 block pages, 11 indicator pages, and 13 widget pagesimprovement(site): rework the public landing and docs experience around TradingGoose workflows, charting, and market analysisrefactor(app): rename apps/sim to apps/tradinggoose and rename deployment surfaces and Helm chart names from sim to tradinggooserefactor(stores): replace the older panel/sidebar-oriented layout with dedicated chat, console, dashboard, indicators, market, skills, and variables storesrefactor(scripts): replace generate-docs.ts with a modular doc-gen pipeline, docs audit tooling, and PineTS helper scriptsrefactor(api): reorganize provider routing into providers/ai and add separate provider and market handlersrefactor(routes): add workspace layout bootstrap flows and a new auth OAuth and Stripe webhook route structuredocs(indicators): add guides for syntax, inputs, plotting, data series, math, technical analysis, and trigger usagedocs(utilities): add custom tools, MCP, and skills documentationdocs(widgets): add widget reference pages for chart, watchlist, editor, chat, console, and variable panelsdocs(navigation): replace the Sim getting-started and top-level MCP sections with TradingGoose-first docs navigationchore(project): rename package, README, compose, devcontainer, and workflow assets from sim to tradinggoosechore(ci): add auto-release and reset-staging GitHub workflows for the TradingGoose project