Skip to content

Staging - #193

Open
XiuJie2 wants to merge 18 commits into
TradingGoose:mainfrom
XiuJie2:staging
Open

Staging#193
XiuJie2 wants to merge 18 commits into
TradingGoose:mainfrom
XiuJie2:staging

Conversation

@XiuJie2

@XiuJie2 XiuJie2 commented Aug 16, 2026

Copy link
Copy Markdown

Summary

Why

Affected Areas

  • apps/tradinggoose
  • apps/docs
  • packages/*
  • Workflows / execution
  • Realtime / sockets
  • Market data / charting
  • Dev tooling / CI / infra
  • Documentation only
  • Other:

Issue Links( if any )

Validation

# example
bun run test
bun run type-check

Risk / Rollout Notes

Config / Data Changes

  • Env vars added or changed:
  • Database schema or migration impact:
  • External services or provider behavior changed:

Screenshots / Video

Checklist

  • I kept the change focused and reviewed my own diff
  • I validated the change locally and documented the results above
  • I updated docs, examples, or copy if behavior/user-facing flows changed
  • I called out any env, schema, provider, or rollout impact
  • I did not include secrets, tokens, or private credentials in this PR

BruzWJ and others added 14 commits August 1, 2026 20:32
* build(ui): update TradingGoose UI dependencies

Co-authored-by: BWJ2310 <brucewj2310@gmail.com>
Co-authored-by: BWJ2310-backup <jun.1216.wei@gmail.com>

* refactor(app): modernize UI and failure-state handling

Co-authored-by: BWJ2310 <brucewj2310@gmail.com>
Co-authored-by: BWJ2310-backup <jun.1216.wei@gmail.com>

* docs: update project README

Co-authored-by: BWJ2310 <brucewj2310@gmail.com>
Co-authored-by: BWJ2310-backup <jun.1216.wei@gmail.com>

* changelog: add August 01, 2026 entry detailing migration to Base UI components and related updates

---------

Co-authored-by: BWJ2310 <brucewj2310@gmail.com>
* fix(folders): serialize folder parent validation

Co-authored-by: BWJ2310 <brucewj2310@gmail.com>
Co-authored-by: BWJ2310-backup <jun.1216.wei@gmail.com>

* fix(webhooks): harden external callback polling

Co-authored-by: BWJ2310 <brucewj2310@gmail.com>
Co-authored-by: BWJ2310-backup <jun.1216.wei@gmail.com>

* fix(wealthbox): gate dependent fields on credential

Co-authored-by: BWJ2310 <brucewj2310@gmail.com>
Co-authored-by: BWJ2310-backup <jun.1216.wei@gmail.com>

* docs(changelog): document copilot tool changes

Co-authored-by: BWJ2310 <brucewj2310@gmail.com>
Co-authored-by: BWJ2310-backup <jun.1216.wei@gmail.com>

* refactor(listing): separate identity from resolved display data

Co-authored-by: BWJ2310 <brucewj2310@gmail.com>
Co-authored-by: BWJ2310-backup <jun.1216.wei@gmail.com>

* refactor(webhooks): remove legacy webhook test endpoint

Co-authored-by: BWJ2310 <brucewj2310@gmail.com>

Co-authored-by: BWJ2310-backup <jun.1216.wei@gmail.com>

* fix(webhooks): validate Teams notification client state

Co-authored-by: BWJ2310 <brucewj2310@gmail.com>

Co-authored-by: BWJ2310-backup <jun.1216.wei@gmail.com>

---------

Co-authored-by: BWJ2310 <brucewj2310@gmail.com>
Adds a full NVIDIA NIM provider (OpenAI-compatible) alongside admin
service entries for DeepSeek, OpenRouter and NVIDIA, so a deployment can
supply model keys centrally instead of every request carrying its own.

getApiKey() previously threw before any provider code ran when a request
had no key, which would have made the new admin fields decorative. It now
falls back to the admin-configured key:

  request key -> rotation slots (per-minute) -> single API key -> throw

Rotation was reachable only when isHosted was true, which is a hardcoded
hostname allowlist, so the OpenAI and Anthropic rotation slots were never
read on self-hosted deployments. The fallback path is not gated on
isHosted, so rotation now works anywhere; the hosted branch keeps its
existing platform-key-wins behaviour. OpenAI's Default API Key stays
reserved for embeddings and is not repurposed for completions.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…mpose

The image workflow could not run here: it targeted Blacksmith runners this
fork has no access to, and hardcoded ghcr.io/tradinggoose, which the fork's
GITHUB_TOKEN cannot push to. Because every tag went to one build-push step,
that GHCR failure would have taken the Docker Hub push down with it.

- run on ubuntu-latest with the upstream docker/* actions, plus a GHA cache
  to replace the build cache Blacksmith provided
- derive the GHCR namespace from the repository owner, lowercased, since
  GHCR rejects uppercase paths
- push all three images to GHCR, and mirror only the app image to Docker
  Hub, so the schema-carrying migrations image stays private for free
- read DOCKERHUB_USERNAME from vars rather than secrets, and fail loudly
  when it is unset instead of pushing to an empty namespace
- drop arm64: QEMU emulation on a standard runner is prohibitively slow

docker-compose.prod.yml now resolves images through IMAGE_REGISTRY and
publishes Postgres on loopback by default, so a public host does not expose
the database. INTERNAL_SOCKET_URL is documented and wired through the
compose manifests.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copilot proxied every turn to the managed service at copilot.tradinggoose.ai,
which runs the models on TradingGoose's own accounts. A self-hosted deployment
therefore had to buy a Copilot API key even with its own OpenAI, Anthropic,
NVIDIA or OpenRouter keys already configured, and was limited to the four models
that service exposes.

Add a local runtime that serves the same endpoints from inside the deployment.
It returns byte-identical SSE, so the chat route, the mark-complete resume path,
the abort route and the browser store are untouched:

- lib/copilot/local-runtime/runtime.ts runs one model call per request, parks the
  turn on `awaiting_tools`, and resumes when the browser reports results. Tool
  execution stays in the browser exactly as before.
- llm.ts adapts two wire formats: OpenAI chat-completions (OpenAI, DeepSeek,
  OpenRouter, NVIDIA, Ollama, xAI, Mistral, Fireworks) and Anthropic messages.
- conversation-store.ts holds turn state in Redis, falling back to the in-process
  cache, with persisted chat history as a backstop when the cache has expired.
- prompt.ts carries the system prompt, which previously lived on the service and
  left lib/copilot/prompts.ts holding a one-line stub.

Admin > Services gains a Runtime Mode field (COPILOT_RUNTIME_MODE), defaulting to
`local`; `hosted` restores the previous behaviour. The Copilot API key is now
optional, since it is only used in hosted mode.

The four-model whitelist is replaced by /api/copilot/models, derived from
whichever providers have keys configured. OpenRouter models that cannot take
tools are filtered out rather than failing at the first tool call.

Also make the catalog's `envVar` fallbacks real: COPILOT_API_KEY, COPILOT_API_URL
and OLLAMA_URL were documented but read by nothing, so a manifest-configured
deployment silently had no Copilot credentials at all.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
# Conflicts:
#	apps/tradinggoose/widgets/widgets/copilot/components/user-input/components/model-selector.tsx
Tools like list_workflows and create_workflow take workspaceId as a
required argument, and none of the 113 registered tools can look one up.
The browser knows the id and sends it to /api/copilot/chat, but the chat
route never forwarded it and the local runtime's system prompt never
mentioned it, so the model had no source for the value and guessed —
typically reusing an id from an attached context, which comes back as
"Access denied: You do not have permission to read this workflow" and
reads like a permissions problem rather than a wrong id.

Forwards the incoming workspaceId through to the runtime, stores it on
the conversation so a tool-call resume keeps it, and states it in the
system prompt. When a chat has no workspace the prompt now says so
explicitly and tells the model to ask rather than invent one.

Also tells the model that ids are scoped to one entity kind, so an
access error on a borrowed id reads as the wrong id rather than as
missing permission.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
fix(copilot): tell the local runtime which workspace the chat is in
The browser appends a new content block for every output item id it has
not seen (`ensureStreamingTextBlock` / `ensureStreamingThinkingBlock` in
stores/copilot/streaming.ts). The runtime closed its open text item as
soon as a reasoning chunk arrived and vice versa, so it minted a fresh
id on every switch. Reasoning models interleave `reasoning_content` and
`content` throughout an answer rather than emitting all reasoning first,
which turned one reply into a long alternating run of thinking and text
boxes — visible as the answer flickering while the agent worked.

Keeps one item id per kind for the whole model call and finalizes both
at the end, so each kind lands in exactly one block.

Also sends max_tokens on the OpenAI-compatible path, which it never set.
Gateways apply their own default when it is absent and NVIDIA NIM's is
low enough to truncate an agent reply mid-sentence; the Anthropic path
was already passing it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
NVIDIA NIM and OpenRouter have both been timing out, leaving the local
Copilot runtime with no reliable key-backed provider. MiniMax's M-series
speaks the OpenAI chat-completions format, so it drops into the existing
adapter and gives the runtime a third option.

Registered the usual way: a provider in `providers/ai/minimax`, an entry
in `PROVIDER_DEFINITIONS`, and a service in Admin > Services with an
API key, three rotation slots and an editable base URL. The base URL is
a setting rather than a constant because mainland-China accounts are
issued keys for `api.minimaxi.com`, not the international host.

Two details that are not boilerplate:

Thinking cannot be turned off on the M2.x models, and by default it
comes back inside `content` wrapped in `<think>` tags, which would
render as literal markup in the chat. Both the workflow provider and the
Copilot stream now send `reasoning_split: true`, which moves it to
`reasoning_content` — the field the delta loop already reads.

The models are listed from the static catalog rather than a `/models`
round trip. MiniMax publishes a short, stable list, and a dynamically
discovered id carries no output ceiling, so it would fall back to the
shared 4096 cap and truncate replies. A test pins `max_tokens` at 65536
for `MiniMax-M2.7` to keep that from regressing.

`providers/ai/utils-server.test.ts` needed the new resolver in its mock
factory: the module destructures the runtime namespace, so a missing
export made every system-service key lookup fail.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
fix(copilot): stop the local runtime splitting a reply into extra blocks
@vercel

vercel Bot commented Aug 16, 2026

Copy link
Copy Markdown

@XiuJie2 is attempting to deploy a commit to the TradingGoose Team on Vercel.

A member of the Team first needs to authorize it.

@greptile-apps

greptile-apps Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Too many files changed for review (676 files, 500 file limit).

@coderabbitai

coderabbitai Bot commented Aug 16, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 680 files, which is 380 over the limit of 300.

To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 7896bc2e-5a7a-4003-bb29-fa828c4c5b90

📥 Commits

Reviewing files that changed from the base of the PR and between dfbe3d9 and 3967e4d.

⛔ Files ignored due to path filters (1)
  • bun.lock is excluded by !**/*.lock
📒 Files selected for processing (680)
  • .github/workflows/images.yml
  • README.md
  • apps/tradinggoose/.env.example.docker
  • apps/tradinggoose/app/(auth)/auth-locale-redirects.test.tsx
  • apps/tradinggoose/app/(auth)/auth-provider-callbacks.test.tsx
  • apps/tradinggoose/app/(auth)/components/social-login-buttons.tsx
  • apps/tradinggoose/app/(auth)/login/login-form.tsx
  • apps/tradinggoose/app/(auth)/reset-password/reset-password-form.tsx
  • apps/tradinggoose/app/(auth)/signup/signup-form.tsx
  • apps/tradinggoose/app/(auth)/sso/sso-form.tsx
  • apps/tradinggoose/app/(auth)/verify/use-verification.ts
  • apps/tradinggoose/app/(auth)/verify/verify-content.tsx
  • apps/tradinggoose/app/(auth)/waitlist/waitlist-form.tsx
  • apps/tradinggoose/app/(landing)/blog/components/ai-summarize.tsx
  • apps/tradinggoose/app/(landing)/blog/components/breadcrumb-nav.tsx
  • apps/tradinggoose/app/(landing)/blog/components/social-share.tsx
  • apps/tradinggoose/app/(landing)/careers/careers-form.tsx
  • apps/tradinggoose/app/(landing)/components/cta/cta.tsx
  • apps/tradinggoose/app/(landing)/components/feature/components/market-preview/landing-indicator-dropdown.tsx
  • apps/tradinggoose/app/(landing)/components/feature/components/market-preview/market-chart.tsx
  • apps/tradinggoose/app/(landing)/components/feature/components/market-preview/market-preview.tsx
  • apps/tradinggoose/app/(landing)/components/feature/components/workflow-preview/workflow-preview.tsx
  • apps/tradinggoose/app/(landing)/components/hero/hero.tsx
  • apps/tradinggoose/app/(landing)/components/monitor-preview/fetch-listings.ts
  • apps/tradinggoose/app/(landing)/components/monitor-preview/listing-preference.ts
  • apps/tradinggoose/app/(landing)/components/monitor-preview/monitor-preview.tsx
  • apps/tradinggoose/app/(landing)/components/nav/nav.tsx
  • apps/tradinggoose/app/(landing)/landing.tsx
  • apps/tradinggoose/app/[locale]/(auth)/auth-entry-pages.test.tsx
  • apps/tradinggoose/app/[locale]/(auth)/error/[[...callback]]/page.tsx
  • apps/tradinggoose/app/[locale]/(auth)/layout.tsx
  • apps/tradinggoose/app/[locale]/(auth)/mcp/authorize/page.tsx
  • apps/tradinggoose/app/[locale]/(auth)/reset-password/page.tsx
  • apps/tradinggoose/app/[locale]/(auth)/signup/page.tsx
  • apps/tradinggoose/app/[locale]/(auth)/waitlist/page.tsx
  • apps/tradinggoose/app/[locale]/admin/page.tsx
  • apps/tradinggoose/app/[locale]/layout.tsx
  • apps/tradinggoose/app/[locale]/workspace/[workspaceId]/error.tsx
  • apps/tradinggoose/app/admin/admin-inline-secret-field.tsx
  • apps/tradinggoose/app/admin/billing/billing-admin.tsx
  • apps/tradinggoose/app/admin/billing/billing-unavailable.tsx
  • apps/tradinggoose/app/admin/billing/tier-detail.tsx
  • apps/tradinggoose/app/admin/billing/tier-editor.tsx
  • apps/tradinggoose/app/admin/errors.ts
  • apps/tradinggoose/app/admin/integrations/integrations-admin.tsx
  • apps/tradinggoose/app/admin/registration/registration-admin.tsx
  • apps/tradinggoose/app/admin/services/services-admin.tsx
  • apps/tradinggoose/app/admin/system-settings-section.tsx
  • apps/tradinggoose/app/api/__test-utils__/utils.ts
  • apps/tradinggoose/app/api/auth/oauth/disconnect/route.test.ts
  • apps/tradinggoose/app/api/auth/oauth/disconnect/route.ts
  • apps/tradinggoose/app/api/auth/sso/register/route.ts
  • apps/tradinggoose/app/api/chat/[identifier]/route.test.ts
  • apps/tradinggoose/app/api/copilot/chat/abort/route.test.ts
  • apps/tradinggoose/app/api/copilot/chat/abort/route.ts
  • apps/tradinggoose/app/api/copilot/chat/route.ts
  • apps/tradinggoose/app/api/copilot/models/route.ts
  • apps/tradinggoose/app/api/copilot/proxy.ts
  • apps/tradinggoose/app/api/copilot/tools/mark-complete/route.test.ts
  • apps/tradinggoose/app/api/copilot/tools/mark-complete/route.ts
  • apps/tradinggoose/app/api/copilot/usage/route.ts
  • apps/tradinggoose/app/api/cron/renew-subscriptions/route.ts
  • apps/tradinggoose/app/api/environment/route.ts
  • apps/tradinggoose/app/api/folders/[id]/route.test.ts
  • apps/tradinggoose/app/api/folders/[id]/route.ts
  • apps/tradinggoose/app/api/folders/route.test.ts
  • apps/tradinggoose/app/api/folders/route.ts
  • apps/tradinggoose/app/api/folders/shared.ts
  • apps/tradinggoose/app/api/function/error-formatting.ts
  • apps/tradinggoose/app/api/jobs/[jobId]/route.ts
  • apps/tradinggoose/app/api/knowledge/[id]/documents/[documentId]/chunks/[chunkId]/route.ts
  • apps/tradinggoose/app/api/knowledge/[id]/documents/[documentId]/chunks/route.ts
  • apps/tradinggoose/app/api/knowledge/[id]/documents/route.ts
  • apps/tradinggoose/app/api/logs/log-utils.test.ts
  • apps/tradinggoose/app/api/logs/log-utils.ts
  • apps/tradinggoose/app/api/logs/route.test.ts
  • apps/tradinggoose/app/api/logs/route.ts
  • apps/tradinggoose/app/api/market/get/crypto/route.ts
  • apps/tradinggoose/app/api/market/get/currency/route.ts
  • apps/tradinggoose/app/api/market/get/listing/route.ts
  • apps/tradinggoose/app/api/monitors/shared.ts
  • apps/tradinggoose/app/api/providers/ai/nvidia/models/route.ts
  • apps/tradinggoose/app/api/providers/market/handler.ts
  • apps/tradinggoose/app/api/providers/trading/order/route.test.ts
  • apps/tradinggoose/app/api/providers/trading/order/route.ts
  • apps/tradinggoose/app/api/routes.test.ts
  • apps/tradinggoose/app/api/webhooks/[id]/route.ts
  • apps/tradinggoose/app/api/webhooks/route.ts
  • apps/tradinggoose/app/api/webhooks/test/[id]/route.ts
  • apps/tradinggoose/app/api/webhooks/test/route.ts
  • apps/tradinggoose/app/api/webhooks/trigger/[path]/route.test.ts
  • apps/tradinggoose/app/api/webhooks/trigger/[path]/route.ts
  • apps/tradinggoose/app/api/workflows/[id]/execute/route.test.ts
  • apps/tradinggoose/app/api/workflows/[id]/execute/route.ts
  • apps/tradinggoose/app/api/workflows/[id]/log-webhook/delivery-cancellation.ts
  • apps/tradinggoose/app/api/workspaces/[id]/environment/route.ts
  • apps/tradinggoose/app/app-command-menu.tsx
  • apps/tradinggoose/app/changelog/components/timeline-list.tsx
  • apps/tradinggoose/app/chat/[identifier]/chat.tsx
  • apps/tradinggoose/app/chat/components/auth/email/email-auth.tsx
  • apps/tradinggoose/app/chat/components/auth/password/password-auth.tsx
  • apps/tradinggoose/app/chat/components/auth/sso/sso-auth.tsx
  • apps/tradinggoose/app/chat/components/components/markdown-renderer/markdown-renderer.tsx
  • apps/tradinggoose/app/chat/components/error-state/error-state.tsx
  • apps/tradinggoose/app/chat/components/input/input.tsx
  • apps/tradinggoose/app/chat/components/message/components/markdown-renderer.tsx
  • apps/tradinggoose/app/chat/components/message/message.tsx
  • apps/tradinggoose/app/chat/components/voice-interface/voice-interface.tsx
  • apps/tradinggoose/app/chat/errors.ts
  • apps/tradinggoose/app/chat/hooks/use-chat-streaming.ts
  • apps/tradinggoose/app/global-error.tsx
  • apps/tradinggoose/app/globals.css
  • apps/tradinggoose/app/invite/[id]/invite.tsx
  • apps/tradinggoose/app/invite/components/status-card.tsx
  • apps/tradinggoose/app/layout.tsx
  • apps/tradinggoose/app/loading.tsx
  • apps/tradinggoose/app/unsubscribe/unsubscribe.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/api-keys/api-keys.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/api-keys/workspace-api-keys-card.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/dashboard/dashboard-client.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/dashboard/layout-tabs.test.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/dashboard/layout-tabs.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/environment/components/environment-variables.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/environment/environment.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/error.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/files/files.test.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/files/files.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/files/hooks/use-workspace-files.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/global-error.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/integrations/integrations.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/components/create-chunk-modal/create-chunk-modal.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/components/document-loading.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/components/edit-chunk-modal/edit-chunk-modal.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/[id]/[documentId]/document.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/[id]/base.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/[id]/components/action-bar/action-bar.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/[id]/components/upload-modal/upload-modal.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/components/base-overview/base-overview.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/components/copy-to-workspace/copy-to-workspace.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/components/create-modal/create-modal.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/components/document-tag-entry/document-tag-entry.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/components/empty-state-card/empty-state-card.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/components/index.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/components/knowledge-base-tags/components/document-list.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/components/knowledge-base-tags/knowledge-base-tags.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/components/knowledge-tags/knowledge-tags.test.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/components/knowledge-tags/knowledge-tags.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/components/primary-button/primary-button.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/components/search-input/search-input.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/components/tag-input/tag-input.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/knowledge.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/knowledge/loading.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/board/board-state.test.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/board/board-state.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/config/config-card-model.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/config/config-domain.test.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/config/config-draft.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/config/config-drop.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/config/config-filter-values.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/config/config-search.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/data/execution-ordering.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/data/use-monitor-reference-data.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/data/use-monitor-workspace-logs.test.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/data/use-monitor-workspace-logs.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/management/indicator-input-fields.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/management/monitor-editor-form.test.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/management/monitor-editor-form.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/management/monitor-editor-panel.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/management/portfolio-condition-builder.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/management/use-monitor-editor-state.test.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/management/use-monitor-editor-state.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/shared/monitor-ui.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/shared/searchable-dropdown.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/timeline/gantt.test.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/view/view-config.test.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/view/view-config.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/workspace/monitor-config-workspace.test.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/workspace/monitor-config-workspace.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/workspace/monitor-execution-workspace.test.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/components/workspace/monitor-execution-workspace.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/copy.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/monitor.test.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/monitor/monitor.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/providers/providers.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/providers/workspace-permissions-provider.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/log-details/components/execution-snapshot/frozen-canvas-modal.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/log-details/components/execution-snapshot/frozen-canvas.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/log-details/components/markdown-renderer/markdown-renderer.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/log-details/components/tool-calls/tool-calls-display.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/log-details/components/trace-spans/components/trace-span-item.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/log-details/log-details.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/logs-list/logs-list.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/logs-toolbar/components/filters/components/folder.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/logs-toolbar/components/filters/components/level.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/logs-toolbar/components/filters/components/timeline.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/logs-toolbar/components/filters/components/trigger.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/logs-toolbar/components/filters/components/workflow.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/logs-toolbar/components/search/search.test.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/logs-toolbar/components/search/search.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/orders/order-details.test.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/orders/order-details.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/orders/order-filters.test.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/orders/order-filters.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/orders/order-formatters.ts
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/orders/order-row-actions.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/orders/orders-table.test.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/orders/orders-table.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/stats/components/line-chart.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/stats/components/status-bar.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/stats/components/workflow-details.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/stats/components/workflows-list.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/components/stats/stats.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/records.test.tsx
  • apps/tradinggoose/app/workspace/[workspaceId]/records/records.tsx
  • apps/tradinggoose/background/indicator-monitor-execution.test.ts
  • apps/tradinggoose/background/indicator-monitor-execution.ts
  • apps/tradinggoose/background/logs-webhook-delivery.ts
  • apps/tradinggoose/background/pending-execution-drain.test.ts
  • apps/tradinggoose/background/pending-execution-drain.ts
  • apps/tradinggoose/background/portfolio-monitor-execution.ts
  • apps/tradinggoose/background/webhook-execution.ts
  • apps/tradinggoose/blocks/blocks/wealthbox.ts
  • apps/tradinggoose/components.json
  • apps/tradinggoose/components/emails/footer.tsx
  • apps/tradinggoose/components/emails/render-email.test.ts
  • apps/tradinggoose/components/icons/provider-icons.tsx
  • apps/tradinggoose/components/json-display/json-display.tsx
  • apps/tradinggoose/components/listing-selector/listing/rank-updates.ts
  • apps/tradinggoose/components/listing-selector/listing/row.tsx
  • apps/tradinggoose/components/listing-selector/search-utils.ts
  • apps/tradinggoose/components/listing-selector/selector/combo.tsx
  • apps/tradinggoose/components/listing-selector/selector/dropdown.test.tsx
  • apps/tradinggoose/components/listing-selector/selector/dropdown.tsx
  • apps/tradinggoose/components/listing-selector/selector/input.test.tsx
  • apps/tradinggoose/components/listing-selector/selector/input.tsx
  • apps/tradinggoose/components/listing-selector/selector/resolve-request.ts
  • apps/tradinggoose/components/listing-selector/selector/search-request.ts
  • apps/tradinggoose/components/listing-selector/selector/use-listing-search.test.tsx
  • apps/tradinggoose/components/listing-selector/selector/use-listing-search.ts
  • apps/tradinggoose/components/market-selector/provider-controls.tsx
  • apps/tradinggoose/components/market-selector/provider-settings-button.test.tsx
  • apps/tradinggoose/components/market-selector/provider-settings-button.tsx
  • apps/tradinggoose/components/provider-selector.tsx
  • apps/tradinggoose/components/trading-selector/account-selector.test.tsx
  • apps/tradinggoose/components/trading-selector/account-selector.tsx
  • apps/tradinggoose/components/ui/alert-dialog.tsx
  • apps/tradinggoose/components/ui/avatar.tsx
  • apps/tradinggoose/components/ui/background-ripple-effect.tsx
  • apps/tradinggoose/components/ui/breadcrumb.tsx
  • apps/tradinggoose/components/ui/button.tsx
  • apps/tradinggoose/components/ui/checkbox.tsx
  • apps/tradinggoose/components/ui/collapsible.tsx
  • apps/tradinggoose/components/ui/color-picker.tsx
  • apps/tradinggoose/components/ui/command.tsx
  • apps/tradinggoose/components/ui/copy-button.tsx
  • apps/tradinggoose/components/ui/datetime-input.tsx
  • apps/tradinggoose/components/ui/datetime-picker.tsx
  • apps/tradinggoose/components/ui/dialog.tsx
  • apps/tradinggoose/components/ui/dropdown-menu.tsx
  • apps/tradinggoose/components/ui/form.tsx
  • apps/tradinggoose/components/ui/image-upload.tsx
  • apps/tradinggoose/components/ui/index.ts
  • apps/tradinggoose/components/ui/input-otp-form.tsx
  • apps/tradinggoose/components/ui/input-tags.tsx
  • apps/tradinggoose/components/ui/label.tsx
  • apps/tradinggoose/components/ui/popover.tsx
  • apps/tradinggoose/components/ui/progress.tsx
  • apps/tradinggoose/components/ui/radio-group.tsx
  • apps/tradinggoose/components/ui/scroll-area.test.tsx
  • apps/tradinggoose/components/ui/scroll-area.tsx
  • apps/tradinggoose/components/ui/select.tsx
  • apps/tradinggoose/components/ui/separator.tsx
  • apps/tradinggoose/components/ui/sheet.tsx
  • apps/tradinggoose/components/ui/sidebar-dropdown-menu.tsx
  • apps/tradinggoose/components/ui/sidebar.tsx
  • apps/tradinggoose/components/ui/simple-time-picker.tsx
  • apps/tradinggoose/components/ui/slider.tsx
  • apps/tradinggoose/components/ui/sortable.tsx
  • apps/tradinggoose/components/ui/switch.tsx
  • apps/tradinggoose/components/ui/tabs.tsx
  • apps/tradinggoose/components/ui/toggle.tsx
  • apps/tradinggoose/components/ui/tooltip.tsx
  • apps/tradinggoose/components/widget-header-control.ts
  • apps/tradinggoose/global-navbar/components/resizable-dropdown.tsx
  • apps/tradinggoose/global-navbar/components/sidebar-nav.tsx
  • apps/tradinggoose/global-navbar/components/user-menu.test.tsx
  • apps/tradinggoose/global-navbar/components/user-menu.tsx
  • apps/tradinggoose/global-navbar/components/workspace-dialogs.tsx
  • apps/tradinggoose/global-navbar/components/workspace-switcher.tsx
  • apps/tradinggoose/global-navbar/settings-modal/components/account/account-settings.test.tsx
  • apps/tradinggoose/global-navbar/settings-modal/components/account/account-settings.tsx
  • apps/tradinggoose/global-navbar/settings-modal/components/help/help-modal.tsx
  • apps/tradinggoose/global-navbar/settings-modal/components/service/service.tsx
  • apps/tradinggoose/global-navbar/settings-modal/components/subscription/components/usage-limit/usage-limit.tsx
  • apps/tradinggoose/global-navbar/settings-modal/components/subscription/components/workspace-billing-owner.tsx
  • apps/tradinggoose/global-navbar/settings-modal/components/subscription/subscription.tsx
  • apps/tradinggoose/global-navbar/settings-modal/components/team-management/components/member-invitation-card/member-invitation-card.tsx
  • apps/tradinggoose/global-navbar/settings-modal/components/team-management/components/no-organization-view/no-organization-view.tsx
  • apps/tradinggoose/global-navbar/settings-modal/components/team-management/components/remove-member-dialog/remove-member-dialog.tsx
  • apps/tradinggoose/global-navbar/settings-modal/components/team-management/components/team-members/team-members.tsx
  • apps/tradinggoose/global-navbar/settings-modal/components/team-management/components/team-seats-overview/team-seats-overview.tsx
  • apps/tradinggoose/global-navbar/settings-modal/components/team-management/components/team-seats/team-seats.tsx
  • apps/tradinggoose/global-navbar/settings-modal/components/team-management/components/workspace-billing/workspace-billing.tsx
  • apps/tradinggoose/global-navbar/settings-modal/components/team-management/team-management.tsx
  • apps/tradinggoose/hooks/queries/admin-billing.ts
  • apps/tradinggoose/hooks/queries/admin-integrations.ts
  • apps/tradinggoose/hooks/queries/admin-registration.ts
  • apps/tradinggoose/hooks/queries/admin-services.ts
  • apps/tradinggoose/hooks/queries/admin-system-settings.ts
  • apps/tradinggoose/hooks/queries/api-keys.ts
  • apps/tradinggoose/hooks/queries/custom-tools.ts
  • apps/tradinggoose/hooks/queries/environment.ts
  • apps/tradinggoose/hooks/queries/folders.ts
  • apps/tradinggoose/hooks/queries/general-settings.ts
  • apps/tradinggoose/hooks/queries/indicators.ts
  • apps/tradinggoose/hooks/queries/knowledge.ts
  • apps/tradinggoose/hooks/queries/listing-resolution.ts
  • apps/tradinggoose/hooks/queries/logs.ts
  • apps/tradinggoose/hooks/queries/market-quote-snapshots.ts
  • apps/tradinggoose/hooks/queries/oauth-connections.ts
  • apps/tradinggoose/hooks/queries/organization.ts
  • apps/tradinggoose/hooks/queries/records-orders.ts
  • apps/tradinggoose/hooks/queries/service-keys.ts
  • apps/tradinggoose/hooks/queries/skills.ts
  • apps/tradinggoose/hooks/queries/subscription.ts
  • apps/tradinggoose/hooks/queries/trading-portfolio.ts
  • apps/tradinggoose/hooks/queries/user-profile.ts
  • apps/tradinggoose/hooks/queries/workflows.ts
  • apps/tradinggoose/hooks/queries/workspace-files.ts
  • apps/tradinggoose/hooks/queries/workspace.ts
  • apps/tradinggoose/hooks/use-knowledge-base-tag-definitions.ts
  • apps/tradinggoose/hooks/use-knowledge.ts
  • apps/tradinggoose/hooks/use-mcp-server-test.ts
  • apps/tradinggoose/hooks/use-mcp-tools.ts
  • apps/tradinggoose/hooks/use-next-available-slot.ts
  • apps/tradinggoose/hooks/use-tag-definitions.ts
  • apps/tradinggoose/hooks/use-webhook-management.ts
  • apps/tradinggoose/hooks/use-workspace-permissions.ts
  • apps/tradinggoose/hooks/workflow/use-wand.ts
  • apps/tradinggoose/hooks/workflow/use-workflow-execution.test.tsx
  • apps/tradinggoose/hooks/workflow/use-workflow-execution.ts
  • apps/tradinggoose/i18n/messages/en.json
  • apps/tradinggoose/i18n/messages/es.json
  • apps/tradinggoose/i18n/messages/zh.json
  • apps/tradinggoose/i18n/public-copy.test.ts
  • apps/tradinggoose/lib/admin/system-services.test.ts
  • apps/tradinggoose/lib/admin/system-services.ts
  • apps/tradinggoose/lib/auth.ts
  • apps/tradinggoose/lib/copilot/agent/constants.ts
  • apps/tradinggoose/lib/copilot/api.ts
  • apps/tradinggoose/lib/copilot/config.ts
  • apps/tradinggoose/lib/copilot/inline-tool-call.test.tsx
  • apps/tradinggoose/lib/copilot/inline-tool-call.tsx
  • apps/tradinggoose/lib/copilot/local-runtime/completion.test.ts
  • apps/tradinggoose/lib/copilot/local-runtime/completion.ts
  • apps/tradinggoose/lib/copilot/local-runtime/conversation-store.ts
  • apps/tradinggoose/lib/copilot/local-runtime/dispatch.ts
  • apps/tradinggoose/lib/copilot/local-runtime/events.ts
  • apps/tradinggoose/lib/copilot/local-runtime/llm.test.ts
  • apps/tradinggoose/lib/copilot/local-runtime/llm.ts
  • apps/tradinggoose/lib/copilot/local-runtime/model-catalog.test.ts
  • apps/tradinggoose/lib/copilot/local-runtime/model-catalog.ts
  • apps/tradinggoose/lib/copilot/local-runtime/prompt.ts
  • apps/tradinggoose/lib/copilot/local-runtime/providers.ts
  • apps/tradinggoose/lib/copilot/local-runtime/runtime.test.ts
  • apps/tradinggoose/lib/copilot/local-runtime/runtime.ts
  • apps/tradinggoose/lib/copilot/local-runtime/types.ts
  • apps/tradinggoose/lib/copilot/monitor/monitor-documents.ts
  • apps/tradinggoose/lib/copilot/registry.ts
  • apps/tradinggoose/lib/copilot/runtime-models.ts
  • apps/tradinggoose/lib/copilot/runtime-provider.server.ts
  • apps/tradinggoose/lib/copilot/runtime-provider.ts
  • apps/tradinggoose/lib/copilot/runtime-tool-manifest.test.ts
  • apps/tradinggoose/lib/copilot/server-tool-errors.test.ts
  • apps/tradinggoose/lib/copilot/server-tool-errors.ts
  • apps/tradinggoose/lib/copilot/tool-prompt-metadata.ts
  • apps/tradinggoose/lib/copilot/tools/client/server-tool-response.ts
  • apps/tradinggoose/lib/copilot/tools/server/entities/shared.ts
  • apps/tradinggoose/lib/copilot/tools/server/listing/search-listing.test.ts
  • apps/tradinggoose/lib/copilot/tools/server/listing/search-listing.ts
  • apps/tradinggoose/lib/copilot/tools/server/monitor/edit-monitor.ts
  • apps/tradinggoose/lib/copilot/tools/server/monitor/list-monitors.ts
  • apps/tradinggoose/lib/copilot/tools/server/monitor/monitor-tools.test.ts
  • apps/tradinggoose/lib/copilot/tools/server/monitor/read-monitor.ts
  • apps/tradinggoose/lib/copilot/tools/server/monitor/shared.ts
  • apps/tradinggoose/lib/copilot/tools/server/workflow/workflow-mutation-utils.ts
  • apps/tradinggoose/lib/environment/api.ts
  • apps/tradinggoose/lib/execution/e2b.ts
  • apps/tradinggoose/lib/execution/workflow-execution-events.ts
  • apps/tradinggoose/lib/execution/workflow-execution-stream.test.ts
  • apps/tradinggoose/lib/file-parsers/csv-parser.ts
  • apps/tradinggoose/lib/indicators/monitor-config.test.ts
  • apps/tradinggoose/lib/indicators/monitor-config.ts
  • apps/tradinggoose/lib/knowledge/chunks/service.ts
  • apps/tradinggoose/lib/knowledge/chunks/types.ts
  • apps/tradinggoose/lib/knowledge/tags/service.ts
  • apps/tradinggoose/lib/listing/hydrate-ui.test.ts
  • apps/tradinggoose/lib/listing/hydrate-ui.ts
  • apps/tradinggoose/lib/listing/identity.test.ts
  • apps/tradinggoose/lib/listing/identity.ts
  • apps/tradinggoose/lib/listing/resolve.test.ts
  • apps/tradinggoose/lib/listing/resolve.ts
  • apps/tradinggoose/lib/listing/search.ts
  • apps/tradinggoose/lib/logs/execution/logger.ts
  • apps/tradinggoose/lib/logs/execution/logging-session.ts
  • apps/tradinggoose/lib/logs/query-parser.ts
  • apps/tradinggoose/lib/logs/query-policy.ts
  • apps/tradinggoose/lib/logs/search-suggestions.test.ts
  • apps/tradinggoose/lib/market/client/constants.ts
  • apps/tradinggoose/lib/monitors/portfolio-conditions.ts
  • apps/tradinggoose/lib/monitors/portfolio-config.ts
  • apps/tradinggoose/lib/monitors/sources.ts
  • apps/tradinggoose/lib/naming.ts
  • apps/tradinggoose/lib/system-services/catalog.ts
  • apps/tradinggoose/lib/system-services/runtime.ts
  • apps/tradinggoose/lib/system-services/service.test.ts
  • apps/tradinggoose/lib/system-services/service.ts
  • apps/tradinggoose/lib/trading/order-history.ts
  • apps/tradinggoose/lib/trading/order-records.ts
  • apps/tradinggoose/lib/trading/order-types.ts
  • apps/tradinggoose/lib/trading/orders.ts
  • apps/tradinggoose/lib/utils-server.ts
  • apps/tradinggoose/lib/watchlists/document.ts
  • apps/tradinggoose/lib/watchlists/validation.ts
  • apps/tradinggoose/lib/webhooks/gmail-polling-service.ts
  • apps/tradinggoose/lib/webhooks/outlook-polling-service.ts
  • apps/tradinggoose/lib/webhooks/processor.ts
  • apps/tradinggoose/lib/webhooks/utils.ts
  • apps/tradinggoose/lib/webhooks/webhook-helpers.ts
  • apps/tradinggoose/lib/workflows/block-config-canonicalization.ts
  • apps/tradinggoose/lib/workflows/execution-runner.ts
  • apps/tradinggoose/lib/workflows/import-export.ts
  • apps/tradinggoose/lib/workflows/import.test.ts
  • apps/tradinggoose/lib/workflows/import.ts
  • apps/tradinggoose/lib/workflows/validation.test.ts
  • apps/tradinggoose/lib/workflows/validation.ts
  • apps/tradinggoose/lib/yjs/dashboard-layout-session.ts
  • apps/tradinggoose/lib/yjs/use-entity-fields.ts
  • apps/tradinggoose/next.config.ts
  • apps/tradinggoose/package.json
  • apps/tradinggoose/providers/ai/index.ts
  • apps/tradinggoose/providers/ai/minimax/constants.ts
  • apps/tradinggoose/providers/ai/minimax/index.ts
  • apps/tradinggoose/providers/ai/models.ts
  • apps/tradinggoose/providers/ai/nvidia/constants.ts
  • apps/tradinggoose/providers/ai/nvidia/index.ts
  • apps/tradinggoose/providers/ai/types.ts
  • apps/tradinggoose/providers/ai/utils-server.test.ts
  • apps/tradinggoose/providers/ai/utils-server.ts
  • apps/tradinggoose/providers/ai/utils.ts
  • apps/tradinggoose/providers/market/types/base.ts
  • apps/tradinggoose/providers/market/utils.ts
  • apps/tradinggoose/providers/trading/listing-resolution.test.ts
  • apps/tradinggoose/providers/trading/listing-resolution.ts
  • apps/tradinggoose/providers/trading/order-types.test.ts
  • apps/tradinggoose/providers/trading/portfolio-detail.ts
  • apps/tradinggoose/providers/trading/portfolio-selectors.ts
  • apps/tradinggoose/providers/trading/tradier/orders.test.ts
  • apps/tradinggoose/providers/trading/utils.test.ts
  • apps/tradinggoose/providers/trading/utils.ts
  • apps/tradinggoose/socket-server/handlers/trading.ts
  • apps/tradinggoose/socket-server/market/indicator-monitor-runtime.ts
  • apps/tradinggoose/socket-server/market/manager.test.ts
  • apps/tradinggoose/socket-server/market/manager.ts
  • apps/tradinggoose/socket-server/trading/portfolio-manager.test.ts
  • apps/tradinggoose/socket-server/trading/portfolio-manager.ts
  • apps/tradinggoose/stores/chat/types.ts
  • apps/tradinggoose/stores/copilot/store-messages.ts
  • apps/tradinggoose/stores/copilot/store.ts
  • apps/tradinggoose/stores/copilot/tool-registry.test.ts
  • apps/tradinggoose/stores/copilot/tool-registry.ts
  • apps/tradinggoose/stores/copilot/types.ts
  • apps/tradinggoose/stores/folders/store.ts
  • apps/tradinggoose/stores/market/selector/store.ts
  • apps/tradinggoose/stores/providers/store.ts
  • apps/tradinggoose/stores/providers/types.ts
  • apps/tradinggoose/stores/settings/general/store.ts
  • apps/tradinggoose/stores/settings/general/types.ts
  • apps/tradinggoose/stores/workflows/json/importer.ts
  • apps/tradinggoose/tailwind.config.ts
  • apps/tradinggoose/triggers/microsoftteams/chat_webhook.ts
  • apps/tradinggoose/triggers/microsoftteams/webhook.ts
  • apps/tradinggoose/vitest.setup.ts
  • apps/tradinggoose/widgets/color-pairs.test.ts
  • apps/tradinggoose/widgets/color-pairs.ts
  • apps/tradinggoose/widgets/layout.ts
  • apps/tradinggoose/widgets/utils/watchlist-yjs.ts
  • apps/tradinggoose/widgets/widget-config-runtime.tsx
  • apps/tradinggoose/widgets/widget-contract-types.ts
  • apps/tradinggoose/widgets/widget-mutations.test.ts
  • apps/tradinggoose/widgets/widget-surface.tsx
  • apps/tradinggoose/widgets/widgets/_shared/custom_tool/components/custom-tool-list-item.tsx
  • apps/tradinggoose/widgets/widgets/_shared/mcp/components/mcp-server-form.tsx
  • apps/tradinggoose/widgets/widgets/_shared/skill/components/skill-list-item.tsx
  • apps/tradinggoose/widgets/widgets/components/custom-tool-dropdown.tsx
  • apps/tradinggoose/widgets/widgets/components/entity-editor-buttons.tsx
  • apps/tradinggoose/widgets/widgets/components/mcp-dropdown.tsx
  • apps/tradinggoose/widgets/widgets/components/pair-color-dropdown.tsx
  • apps/tradinggoose/widgets/widgets/components/pine-indicator-dropdown.tsx
  • apps/tradinggoose/widgets/widgets/components/skill-dropdown.tsx
  • apps/tradinggoose/widgets/widgets/components/widget-action-menu.tsx
  • apps/tradinggoose/widgets/widgets/components/widget-header-refresh-button.tsx
  • apps/tradinggoose/widgets/widgets/components/widget-selector.test.tsx
  • apps/tradinggoose/widgets/widgets/components/widget-selector.tsx
  • apps/tradinggoose/widgets/widgets/components/workflow-dropdown.tsx
  • apps/tradinggoose/widgets/widgets/copilot/components/copilot-message/components/markdown-renderer.tsx
  • apps/tradinggoose/widgets/widgets/copilot/components/copilot-message/copilot-message.tsx
  • apps/tradinggoose/widgets/widgets/copilot/components/copilot/copilot-header.tsx
  • apps/tradinggoose/widgets/widgets/copilot/components/copilot/copilot.test.tsx
  • apps/tradinggoose/widgets/widgets/copilot/components/copilot/copilot.tsx
  • apps/tradinggoose/widgets/widgets/copilot/components/user-input/components/access-level-selector.tsx
  • apps/tradinggoose/widgets/widgets/copilot/components/user-input/components/copilot-slider.tsx
  • apps/tradinggoose/widgets/widgets/copilot/components/user-input/components/model-selector.tsx
  • apps/tradinggoose/widgets/widgets/copilot/components/user-input/hooks/use-user-input-mention-sources.ts
  • apps/tradinggoose/widgets/widgets/copilot/components/user-input/user-input.tsx
  • apps/tradinggoose/widgets/widgets/data_chart/components/chart-body.tsx
  • apps/tradinggoose/widgets/widgets/data_chart/components/chart-controls.tsx
  • apps/tradinggoose/widgets/widgets/data_chart/components/chart-copy-render.test.tsx
  • apps/tradinggoose/widgets/widgets/data_chart/components/chart-legend.tsx
  • apps/tradinggoose/widgets/widgets/data_chart/components/chart-pane-overlays.tsx
  • apps/tradinggoose/widgets/widgets/data_chart/components/custom-indicator-document-connections.tsx
  • apps/tradinggoose/widgets/widgets/data_chart/components/draw-control.tsx
  • apps/tradinggoose/widgets/widgets/data_chart/components/draw-tools-sidebar.tsx
  • apps/tradinggoose/widgets/widgets/data_chart/components/footer.tsx
  • apps/tradinggoose/widgets/widgets/data_chart/components/indicator-control.tsx
  • apps/tradinggoose/widgets/widgets/data_chart/components/listing-control.test.tsx
  • apps/tradinggoose/widgets/widgets/data_chart/components/listing-control.tsx
  • apps/tradinggoose/widgets/widgets/data_chart/components/listing-overlay.tsx
  • apps/tradinggoose/widgets/widgets/data_chart/components/pane-control.tsx
  • apps/tradinggoose/widgets/widgets/data_chart/drawings/adapter-attachment-controller.ts
  • apps/tradinggoose/widgets/widgets/data_chart/drawings/attachment-controller-targets.ts
  • apps/tradinggoose/widgets/widgets/data_chart/drawings/start-manual-tool-for-selection.ts
  • apps/tradinggoose/widgets/widgets/data_chart/hooks/use-indicator-controls.ts
  • apps/tradinggoose/widgets/widgets/data_chart/hooks/use-indicator-sync.ts
  • apps/tradinggoose/widgets/widgets/data_chart/hooks/use-listing-state.test.tsx
  • apps/tradinggoose/widgets/widgets/data_chart/hooks/use-listing-state.ts
  • apps/tradinggoose/widgets/widgets/data_chart/hooks/use-manual-draw-tools-controller.ts
  • apps/tradinggoose/widgets/widgets/data_chart/types.ts
  • apps/tradinggoose/widgets/widgets/data_chart/utils/listing-utils.ts
  • apps/tradinggoose/widgets/widgets/editor_custom_tool/custom-tool-editor.test.tsx
  • apps/tradinggoose/widgets/widgets/editor_custom_tool/custom-tool-editor.tsx
  • apps/tradinggoose/widgets/widgets/editor_custom_tool/index.test.tsx
  • apps/tradinggoose/widgets/widgets/editor_custom_tool/index.tsx
  • apps/tradinggoose/widgets/widgets/editor_indicator/components/pine-indicator-code-panel.test.tsx
  • apps/tradinggoose/widgets/widgets/editor_indicator/components/pine-indicator-code-panel.tsx
  • apps/tradinggoose/widgets/widgets/editor_indicator/components/widget-state-message.tsx
  • apps/tradinggoose/widgets/widgets/editor_indicator/editor-indicator-body.tsx
  • apps/tradinggoose/widgets/widgets/editor_indicator/index.test.tsx
  • apps/tradinggoose/widgets/widgets/editor_mcp/editor-mcp-body.tsx
  • apps/tradinggoose/widgets/widgets/editor_skill/editor-skill-body.tsx
  • apps/tradinggoose/widgets/widgets/editor_skill/index.test.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/control-bar/components/api-key-selector/api-key-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/control-bar/components/deploy-modal/components/chat-deploy/chat-deploy.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/control-bar/components/deploy-modal/components/deploy-form/deploy-form.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/control-bar/components/deploy-modal/deploy-modal.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/control-bar/components/deployment-controls/components/deployed-workflow-modal.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/control-bar/components/deployment-controls/deployment-controls.test.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/control-bar/components/deployment-controls/deployment-controls.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/control-bar/components/export-controls/export-controls.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/control-bar/components/index.ts
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/control-bar/components/user-avatar-stack/components/connection-status/connection-status.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/control-bar/components/user-avatar-stack/components/user-avatar/user-avatar.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/control-bar/components/webhook-settings/webhook-settings.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/control-bar/control-bar.test.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/control-bar/control-bar.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/error/index.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/floating-controls/floating-controls.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/toolbar/toolbar-block/toolbar-block.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/toolbar/toolbar-loop-block/toolbar-loop-block.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/toolbar/toolbar-parallel-block/toolbar-parallel-block.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/trigger-list/trigger-list.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/wand-prompt-bar/wand-prompt-bar.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/action-bar/action-bar.test.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/action-bar/action-bar.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/channel-selector/components/slack-channel-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/code.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/combobox.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/condition-input.test.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/condition-input.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/credential-selector/credential-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/document-selector/document-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/document-tag-entry/document-tag-entry.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/dropdown.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/eval-input.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/file-selector/components/confluence-file-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/file-selector/components/google-calendar-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/file-selector/components/google-drive-picker.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/file-selector/components/jira-issue-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/file-selector/components/microsoft-file-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/file-selector/components/teams-message-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/file-selector/components/wealthbox-file-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/file-selector/file-selector-input.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/file-upload.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/folder-selector/folder-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/folder-selector/folder-selector.ui.test.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/grouped-checkbox-list.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/input-format/input-format.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/knowledge-base-selector/knowledge-base-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/knowledge-tag-filters/knowledge-tag-filters.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/listing-selector/listing-selector.test.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/listing-selector/listing-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/long-input.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/mcp-dynamic-args/mcp-dynamic-args.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/mcp-server-modal/mcp-server-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/mcp-server-modal/mcp-tool-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/project-selector/components/jira-project-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/project-selector/components/linear-project-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/project-selector/components/linear-team-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/project-selector/project-selector-input.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/short-input.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/tool-input/components/tool-credential-selector.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/tool-input/tool-input.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/trigger-save/trigger-save.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/components/variables-input/variables-input.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/components/sub-block/sub-block.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/workflow-block.test.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-block/workflow-block.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-controlbar/controlbar.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-editor/panel/node-editor-panel.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-render/preview-summary.ts
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-render/sub-block-summary-rows.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-toolbar/workflow-toolbar.test.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow-toolbar/workflow-toolbar.tsx
  • apps/tradinggoose/widgets/widgets/editor_workflow/components/workflow.tsx
  • apps/tradinggoose/widgets/widgets/heatmap/components/body.test.tsx
  • apps/tradinggoose/widgets/widgets/heatmap/components/body.tsx
  • apps/tradinggoose/widgets/widgets/heatmap/components/header.test.tsx
  • apps/tradinggoose/widgets/widgets/heatmap/components/heatmap-treemap-chart.test.tsx
  • apps/tradinggoose/widgets/widgets/heatmap/components/heatmap-treemap-chart.tsx
  • apps/tradinggoose/widgets/widgets/heatmap/components/source-items.ts
  • apps/tradinggoose/widgets/widgets/heatmap/utils/treemap-layout.test.ts
  • apps/tradinggoose/widgets/widgets/list_custom_tool/index.test.tsx
  • apps/tradinggoose/widgets/widgets/list_custom_tool/index.tsx
  • apps/tradinggoose/widgets/widgets/list_indicator/components/indicator-create-menu.tsx
  • apps/tradinggoose/widgets/widgets/list_indicator/components/indicator-list/components/indicator-list-item.tsx
  • apps/tradinggoose/widgets/widgets/list_indicator/components/indicator-list/indicator-list.tsx
  • apps/tradinggoose/widgets/widgets/list_indicator/index.test.tsx
  • apps/tradinggoose/widgets/widgets/list_indicator/index.tsx
  • apps/tradinggoose/widgets/widgets/list_mcp/index.tsx
  • apps/tradinggoose/widgets/widgets/list_skill/components/skill-create-menu.tsx
  • apps/tradinggoose/widgets/widgets/list_skill/components/skill-list/skill-list.tsx
  • apps/tradinggoose/widgets/widgets/list_skill/index.test.tsx
  • apps/tradinggoose/widgets/widgets/list_skill/index.tsx
  • apps/tradinggoose/widgets/widgets/list_workflow/components/folder-tree/components/folder-item.tsx
  • apps/tradinggoose/widgets/widgets/list_workflow/components/folder-tree/components/workflow-item.tsx
  • apps/tradinggoose/widgets/widgets/list_workflow/components/folder-tree/folder-tree.tsx
  • apps/tradinggoose/widgets/widgets/list_workflow/components/workflow-create-menu.tsx
  • apps/tradinggoose/widgets/widgets/list_workflow/index.tsx
  • apps/tradinggoose/widgets/widgets/portfolio_snapshot/components/header.test.tsx
  • apps/tradinggoose/widgets/widgets/quick_order/components/body.test.tsx
  • apps/tradinggoose/widgets/widgets/quick_order/components/body.tsx
  • apps/tradinggoose/widgets/widgets/quick_order/components/header.test.tsx
  • apps/tradinggoose/widgets/widgets/quick_order/components/header.tsx
  • apps/tradinggoose/widgets/widgets/quick_order/components/shared.test.ts
  • apps/tradinggoose/widgets/widgets/quick_order/components/shared.ts
  • apps/tradinggoose/widgets/widgets/watchlist/components/watchlist-body.tsx
  • apps/tradinggoose/widgets/widgets/watchlist/components/watchlist-header-controls.tsx
  • apps/tradinggoose/widgets/widgets/watchlist/components/watchlist-header-controls.ui.test.tsx
  • apps/tradinggoose/widgets/widgets/watchlist/components/watchlist-list-actions-button.test.tsx
  • apps/tradinggoose/widgets/widgets/watchlist/components/watchlist-list-actions-button.tsx
  • apps/tradinggoose/widgets/widgets/watchlist/components/watchlist-table-utils.ts
  • apps/tradinggoose/widgets/widgets/watchlist/components/watchlist-table.tsx
  • apps/tradinggoose/widgets/widgets/watchlist/watchlist-table.sections.test.tsx
  • apps/tradinggoose/widgets/widgets/workflow_chat/components/chat-message/chat-message.tsx
  • apps/tradinggoose/widgets/widgets/workflow_chat/components/chat/chat.test.tsx
  • apps/tradinggoose/widgets/widgets/workflow_chat/components/chat/chat.tsx
  • apps/tradinggoose/widgets/widgets/workflow_chat/index.test.tsx
  • apps/tradinggoose/widgets/widgets/workflow_chat/index.tsx
  • apps/tradinggoose/widgets/widgets/workflow_console/components/terminal/components/filter-popover.tsx
  • apps/tradinggoose/widgets/widgets/workflow_console/components/terminal/components/output-panel/output-panel.tsx
  • apps/tradinggoose/widgets/widgets/workflow_console/index.tsx
  • apps/tradinggoose/widgets/widgets/workflow_variables/components/variables/variables.tsx
  • apps/tradinggoose/widgets/widgets/workflow_variables/index.test.tsx
  • apps/tradinggoose/widgets/widgets/workflow_variables/index.tsx
  • changelog/August-01-2026.md
  • changelog/August-02-2026.md
  • docker-compose.local.yml
  • docker-compose.ollama.yml
  • docker-compose.prod.yml
  • packages/db/schema/workflows.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Comment @coderabbitai help to get the list of available commands.

XiuJie2 and others added 4 commits August 16, 2026 13:47
feat(copilot): add MiniMax as a local Copilot provider
`create_workflow` writes its row, calls the socket server, and rolls the
row back when that call fails. The failure arrives as
`WorkflowRealtimeRequiredError` — a plain `Error` subclass — so
`buildCopilotServerToolErrorResponse` did not recognise it and fell
through to the catch-all payload: `Server tool execution failed` with
`retryable: false` and no cause.

That is the worst outcome for this error class. The mutation silently did
nothing, the operator got no reason, and the model was explicitly told not
to retry, so it stopped and guessed at quota and permission causes that
were never involved. Read-only tools were unaffected because they never
touch the bridge, which made the failure look tool-specific rather than
infrastructural.

Map the three realtime-bridge error classes onto structured payloads, and
split them by what the socket server actually did:

- unreachable or timed out -> 503, retryable, hint points at
  INTERNAL_SOCKET_URL
- answered with 4xx (almost always a mismatched internal secret) -> keep
  the status, not retryable, hint points at INTERNAL_API_SECRET. Retrying
  never clears a bad secret, so advertising it as retryable is wrong.

Unrecognised errors still collapse to the generic 500 — that redaction is
deliberate and remains asserted by the existing test.

Matching is by `name` rather than `instanceof`: `snapshot-bridge` and
`db-helpers` both import `StructuredServerToolError` from this module, so
importing the classes back would close an import cycle. The tests build
the real error classes, so a rename fails there instead of silently
reverting these to the generic 500.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
fix(copilot): surface realtime bridge failures instead of a generic 500
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants