Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 7 additions & 11 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -563,7 +563,7 @@ <h2 id="platform-title">LongBridge</h2>

<div class="run-area">
<button class="run-button" id="dispatch-button" type="button" disabled data-i18n="loginToRun">登录后切换</button>
<p class="action-note" id="action-note">公开页面只能查看;登录版校验账号权限后才会触发 workflow。</p>
<p class="action-note" id="action-note">登录后才可执行切换。</p>
<p class="toast" id="toast" aria-live="polite"></p>
</div>
</div>
Expand All @@ -576,7 +576,6 @@ <h2 data-i18n="summary">切换摘要</h2>
<dl class="summary-list" id="summary-list"></dl>
<div class="summary-actions">
<button class="btn" id="copy-button" type="button" data-i18n="copySummary">复制摘要</button>
<span class="quiet" id="config-source">default</span>
</div>
</aside>
</section>
Expand All @@ -599,13 +598,15 @@ <h2 data-i18n="summary">切换摘要</h2>

const strategyOptions = [
"tqqq_growth_income",
"soxl_soxx_trend_income",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Bind SOXL strategy to its matching account

When an IBKR user leaves the default account selected (u15998061) and chooses this newly exposed SOXL/SOXX profile, buildInputs() still combines strategy_profile: form.strategy with the currently selected account's deployment_selector/account_scope/service_name, so the workflow dispatches soxl_soxx_trend_income to the live-u1599-tqqq service instead of the existing live-u1660-soxl account option. Please either make this profile select/require the SOXL account or constrain strategies per account before enabling dispatch.

Useful? React with 👍 / 👎.

"global_etf_rotation",
"russell_1000_multi_factor_defensive",
"mega_cap_leader_rotation_top50_balanced",
];

const strategyLabels = {
tqqq_growth_income: "TQQQ Growth Income",
soxl_soxx_trend_income: "SOXL/SOXX Trend Income",
global_etf_rotation: "Global ETF Rotation",
russell_1000_multi_factor_defensive: "Russell 1000 Defensive",
mega_cap_leader_rotation_top50_balanced: "Mega Cap Top 50",
Expand Down Expand Up @@ -670,8 +671,8 @@ <h2 data-i18n="summary">切换摘要</h2>
loginToRun: "登录后切换",
configureAccounts: "配置账号后切换",
runSwitch: "一键切换",
readonlyNote: "公开页面只能查看;登录版校验账号权限后才会触发 workflow。",
missingConfigNote: "还没有加载私有账号配置,禁止执行,避免账号不匹配。",
readonlyNote: "登录后才可执行切换。",
missingConfigNote: "账号配置未加载,暂时不能执行。",
readyNote: "点击后会触发 workflow,并同步目标平台服务。",
noAccount: "没有账号选项",
repository: "平台仓库",
Expand All @@ -689,8 +690,6 @@ <h2 data-i18n="summary">切换摘要</h2>
dispatched: "已触发 workflow",
dispatchFailed: "触发失败",
targetMeta: "target {target} · service {service}",
defaultConfig: "公开示例",
privateConfig: "私有账号",
},
en: {
appTitle: "Strategy Switch",
Expand All @@ -707,8 +706,8 @@ <h2 data-i18n="summary">切换摘要</h2>
loginToRun: "Sign in to switch",
configureAccounts: "Configure accounts",
runSwitch: "Switch now",
readonlyNote: "Public page is read-only; the Worker checks login before dispatching the workflow.",
missingConfigNote: "Private account config is not loaded, so switching is disabled.",
readonlyNote: "Sign in to switch.",
missingConfigNote: "Account config is not loaded, so switching is disabled.",
readyNote: "This dispatches the workflow and syncs the target platform service.",
noAccount: "No accounts",
repository: "Repository",
Expand All @@ -726,8 +725,6 @@ <h2 data-i18n="summary">切换摘要</h2>
dispatched: "Workflow dispatched",
dispatchFailed: "Dispatch failed",
targetMeta: "target {target} · service {service}",
defaultConfig: "Public sample",
privateConfig: "Private accounts",
},
};

Expand Down Expand Up @@ -903,7 +900,6 @@ <h2 data-i18n="summary">切换摘要</h2>
`).join("");

el("mode-pill").textContent = inputs.execution_mode;
el("config-source").textContent = state.configSource === "private" ? t("privateConfig") : t("defaultConfig");
}

function renderAuth() {
Expand Down
Loading