30 Commits

Author SHA1 Message Date
twosugar 279e2df147 chore(migrate): convert docs/*.md to *.mdx with autolink/brace escapes
Rename all 882 markdown files under docs/{en,zh-CN,zh-HK}/ from .md to
.mdx, escaping <email@host> autolinks and bare {ident} braces that mdx
would misinterpret as JSX. Frontmatter untouched.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-08-17 16:54:26 +08:00
Endless 37d8312c2c docs: update ChatGPT entry from Apps to Plugins for Longbridge install (#1146)
🤖 Auto-generated by Endless task
[#34](https://endless.longbridge-inc.com/projects/developers/tasks/34).

Initiated by: huacnlee@longbridge-inc.com

- Updated installation instructions across EN, zh-CN, and zh-HK docs to
reflect that the ChatGPT entry point has changed from **Apps** to
**Plugins**
- Modified `mcp.md`, `qa/general.md`, and `skill/install/index.md` in
all three locales (9 files total)
- Ensures users can correctly locate and install the Longbridge plugin
within the ChatGPT interface

Co-authored-by: Huacnlee Li Huashun <huacnlee@longbridge-inc.com>
2026-07-10 10:40:58 +08:00
Jason Lee 9a5804f3df docs: add ChatGPT app MCP guidance (#1138)
## Summary
- Add Longbridge ChatGPT App guidance across the home page, MCP docs,
Skill install docs, QA docs, and Longbridge Skill metadata.
- Update the Skill hero with a ChatGPT banner and third ChatGPT install
tab while keeping the generic Copy command flow intact.
- Replace the old ChatGPT Developer Mode flow with the official ChatGPT
Apps search, authorize, and @longbridge usage flow, including
screenshots.

## Test Plan
- git diff --check
- git diff --cached --check
- bun run build:release

Notes: build passes with the existing VitePress dynamic/static import
and chunk-size warnings.

---------

Co-authored-by: Codex <codex@openai.com>
2026-07-07 18:27:40 +08:00
Jason Lee 58b1ede27e docs: Release CLI v0.23.2 (#1096) 2026-06-16 21:24:34 +08:00
Endless 23141067f4 longbridge/skills 项目新增了 codex plugin,请修改 skills 页面,在 claude code plugin 相关的地方增加 codex plugin 的安装脚本。当 (#1090)
🤖 Auto-generated by Endless task
[#24](https://endless.longbridge-inc.com/projects/developers/tasks/24).

Initiated by: Huacnlee Li Huashun

## Background

The `longbridge/skills` repository recently added a Codex plugin
manifest (`.codex-plugin/plugin.json`), enabling OpenAI Codex users to
install Longbridge Skills via the native Codex plugin system — analogous
to the existing Claude Code plugin path.

The developer documentation site already documented how to install
Skills via the Claude Code plugin, npx/bunx, ZIP download, and OpenClaw.
However, there was no corresponding install block for Codex users who
want to use the plugin system. This left Codex users without a clear,
official install method in the docs.

## Summary

- Problem solved: Codex users had no documented plugin install path in
the Skill Installation Guide
- What was done: Added a "Via Codex plugin" block immediately after the
existing "Via Claude Code plugin" block in Step 2 of the Skill
Installation Guide, across all three locales (en, zh-CN, zh-HK)
- Why this approach: Mirrors the existing Claude Code plugin block in
structure and placement; uses the exact commands from
`code/skills/docs/install.md` Path D (`codex plugin marketplace add
longbridge/skills` + `codex plugin add longbridge@longbridge-skills`)
- How to verify: Open any of the three locale install pages
(`/skill/install`, `/zh-CN/skill/install`, `/zh-HK/skill/install`) and
confirm the new "Via Codex plugin" block appears between the Claude Code
plugin block and the npx/bunx block in Step 2

## Changes

| File | Change |
|---|---|
| `docs/en/skill/install/index.md` | Added "Via Codex plugin" install
block after the Claude Code plugin block in Step 2 |
| `docs/zh-CN/skill/install/index.md` | Added Simplified Chinese "通过
Codex 插件安装" block after the Claude Code plugin block in Step 2 |
| `docs/zh-HK/skill/install/index.md` | Added Traditional Chinese "通過
Codex 插件安裝" block after the Claude Code plugin block in Step 2 |

## Key Decisions

Placed the Codex plugin block immediately after Claude Code plugin
(before npx/bunx) because both are plugin-system install methods and
belong together; npx/bunx is a more general path that applies to all
tools regardless of plugin support.

---------

Co-authored-by: Huacnlee Li Huashun <huacnlee@longbridge-inc.com>
Co-authored-by: Jason Lee <huacnlee@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 20:52:07 +08:00
Jason Lee 644726b0b2 docs: add Agent Auth Code guide for browser-less authorization (#1072)
## Summary

- Add new **Agent Auth Code** doc page (en / zh-CN / zh-HK): generate a
one-time code at
[open.longbridge.com/connect](https://open.longbridge.com/connect),
redeem via CLI `auth login --auth-code` or the dedicated MCP endpoint
`https://mcp.longbridge.com/agent` (`authenticate` tool)
- CLI install docs: document the `--auth-code` fallback when no browser
is available (example code uses base58 format)
- MCP docs: add tip for clients with incomplete OAuth support or no
browser
- Skill references (`setup.md` / `mcp.md`): auth-code flow for headless
agents
- AppNav: add "Connect AI" entry to the avatar dropdown menu

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 15:32:47 +08:00
Jason Lee ecdc96a6b7 docs: update MCP host to mcp.longbridge.com / mcp.longbridge.cn (#1071)
## Summary

- 将 MCP Host 从 `https://openapi.longbridge.com/mcp` 改为
`https://mcp.longbridge.com`
- 中国大陆加速地址从 `https://openapi.longbridge.cn/mcp` 改为
`https://mcp.longbridge.cn`
- 更新范围:三语言 MCP 文档与 Skill
安装页、首页组件(`NewHomePage/index.vue`、`ProductMCP.vue`)、`README.md`、`skills/longbridge/references/`
- `config.mts` 构建端点同步改为
`https://mcp.longbridge.com/mcp/tools.json`(已验证返回 200)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 09:47:45 +08:00
mingxingmeng-ctrl deeed629ec 完善 Skill 安装指引,让 agent 自主跑通 Step 1 安装与鉴权 (#1059)
## 目的

让 AI agent 能完整、无偏差地执行 Step 1(安装 CLI → 鉴权 → 验证)。此前唯一的执行偏差在 `longbridge
auth login` 一步——agent 容易前台干等,或不知如何处理浏览器授权。

## 改动

仅 `docs/{en,zh-CN,zh-HK}/skill/install/index.md` 顶部 `<!-- AI INSTRUCTION
-->` 块,每份 3 行(正文及 Step 3/4 与 main 完全一致):

1. **前言**:要求 agent 为这些步骤建立 TodoList 并自己运行命令
2. **Step 1**:CLI 方式自己运行安装命令,再用 `longbridge --version` 确认
3. **Step 2(核心)**:在后台运行 `longbridge auth login`——它打印验证 URL + code 并轮询约 5
分钟;agent 把 URL/code 转交用户、等其在浏览器批准、待 exit 0(`Successfully
authenticated.`)后继续,并用 `longbridge auth status` 确认

## 范围

纯文档 · 3 文件 · 每份 3 行 · 不涉及 Homebrew、不改正文与 Step 3/4。

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 09:32:03 +08:00
Jason Lee 14779cce28 feat(design): unify nav, redesign homepage/pricing/skill pages (#1011)
## Summary

- Remove 1127 lines of dead CSS from `app-styles.css` — SKILL PAGE and
PRICING PAGE sections were fully overridden by scoped styles in
`Skill.vue` / `Pricing.vue`
- Delete 7 unused `HomePage/` components and `DashboardNavLink.vue` /
`vp-code.css` (no active references)
- Remove View Transition circle animation on light/dark mode toggle
- Center pricing matrix check icons (`display: block; margin: 0 auto`)
- Reduce dark mode card background contrast: `--lb-card` `#13182A` →
`#0E1222` (closer to page bg `#0A0E19`), strengthen card border to
compensate

## Test plan

- [ ] Home page — product cards visible, dark mode cards harmonize with
background
- [ ] Pricing page — matrix check icons centered, billing cycle toggle
works
- [ ] Skill page — styles unchanged (scoped styles still apply
correctly)
- [ ] Light/dark toggle — instant switch, no circle animation
- [ ] No build errors

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 21:13:15 +08:00
Jason Lee fc95f91c4d docs(skill): add Claude Code permission tip for Bash(longbridge *) in install guide (#990)
## Summary

- 在 Skill 安装指引(Method A CLI 章节)新增 Claude Code 专属提示
- 说明如何在 `.claude/settings.json` 中配置 `Bash(longbridge *)` 权限,避免 Claude
每次调用 `longbridge` 命令时弹出权限确认
- 三语言版本(en / zh-CN / zh-HK)同步更新

## Test plan

- [ ] 确认三语言页面渲染正常,JSON 代码块格式正确
- [ ] 确认提示位置在 `longbridge auth login` 步骤之后、CLI 文档链接之前

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 20:57:39 +08:00
Jason Lee 2d318616d5 docs(skill): add JSON config example for MCP server setup (#984)
## Summary

- Add JSON `mcpServers` config block to Method B (MCP) section of the
Skill install guide
- Clarifies that the JSON format works for Claude Desktop, Cursor, Zed,
Gemini CLI, and other JSON-config-based clients
- Updated all three language versions (en, zh-CN, zh-HK)

## Test plan

- [ ] Verify the JSON block renders correctly in the docs
- [ ] Check all three language versions display properly

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 14:47:57 +08:00
Jason Lee 3b8c6b3442 docs(skill): add AI step-order instruction and update en screenshots (#980)
## Summary

- Add hidden HTML comment at the top of all three locale files (`en` /
`zh-CN` / `zh-HK`) instructing the AI to follow a strict install order —
regardless of user prompts to skip steps:
  1. Install CLI or configure MCP
  2. Complete authentication (`longbridge auth login`)
  3. Verify with "Get the latest price for TSLA" and confirm live data
  4. Only then install the Skill (Step 2)
- Update English screenshots to latest versions for Claude Desktop and
Codex
- Clarify that both **Chat** and **Cowork** modes in Claude Desktop are
restricted (not just Chat)

## Test plan

- [ ] Verify HTML comments are not visible on the rendered page
- [ ] Confirm new screenshots render correctly in the en locale

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 15:23:46 +08:00
Jason Lee f40ca233fa docs(skill): restructure install guide — CLI/MCP first, add tool restrictions (#978)
## Summary

- Reorder steps: connect to Longbridge platform (CLI or MCP) first,
install Skill second — the old order had Skill as Step 1, which is
useless without data access
- Lead intro with terminal-based AI tools (Claude Code, Codex, opencode,
OpenClaw) as the recommended/quickest path
- Clarify CLI vs MCP framing: CLI = best experience but needs local
install; MCP = easier, just a URL
- Add **Known restrictions by tool** section with clear guidance and
screenshots:
- **Claude Desktop Chat mode**: network whitelist blocks CLI/MCP —
switch to Code tab instead (screenshot added)
- **Codex Cloud mode**: same network restrictions — must select "Work
locally" (screenshot added)
  - **Claude.ai / ChatGPT.com web**: redirect to Claude Desktop Code tab
- Add mainland China accelerated MCP endpoint
(`https://openapi.longbridge.cn/mcp`) to English version
- Rename section heading "Connect your Longbridge account" → "Connect to
the Longbridge platform"
- All changes synced across en / zh-CN / zh-HK

## Test plan

- [ ] Preview skill install page in all three locales
- [ ] Verify screenshots render correctly
- [ ] Check all links resolve (CLI reference, Claude Desktop download)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 14:55:10 +08:00
Hogan 0d241141d8 docs(skill): update install guide with correct repo and Claude Code plugin (#967)
## Summary

- Fix npx/bunx install address: `longbridge/developers` →
`longbridge/skills`(remove `-y` flag too)
- Add Claude Code plugin install as the first/recommended option for
Claude Code users:
  ```
  /plugin marketplace add longbridge/skills
  /plugin install longbridge@longbridge-skills
  ```
- Change "Two ways" → "Three ways" in all three locales (en / zh-CN /
zh-HK)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-05-08 22:00:10 +08:00
Hogan 11e9d004a3 ci(skill): pack longbridge.zip from longbridge/skills@main (#934)
## Summary

- Build now clones `longbridge/skills@main` and packs its `skills/`
contents into `longbridge.zip`, instead of zipping the local
`skills/longbridge/` folder.
- Fails the build if the clone fails or the upstream `skills/` directory
is missing — the published zip can no longer go silently stale.
- Each upstream skill (`longbridge-capital-flow`, `longbridge-depth`, …)
becomes a top-level entry in the zip, so unzip directly into
`.claude/skills/` keeps working.

## Test plan

- [ ] CI build passes and uploads `longbridge.zip`
- [ ] `unzip -l longbridge.zip` shows the upstream `longbridge-*` skill
folders at the top level
- [ ] Manually break the clone (e.g. wrong URL) locally and confirm the
build aborts with the new error message

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-05-08 20:04:34 +08:00
Jason Lee 718abf3d76 docs(cli): add v0.17.0 commands and release notes (#896)
## Summary

- **`auth` subcommand group** (`longbridge/longbridge-terminal#109`):
updated `install.md` in all 3 locales — `login`/`logout` → `auth
login`/`auth logout`, added `auth status` section
- **`alert enable/disable`** (`longbridge/longbridge-terminal#108`):
updated `alert.md` in all 3 locales with enable/disable subcommand
examples
- Added **v0.17.0** entry to `release-notes.md` and `changelog.md` in
all 3 locales

## Test plan

- [ ] Install page shows `auth login` / `auth logout` / `auth status`
correctly
- [ ] Alert page shows `enable` / `disable` examples
- [ ] Release notes and changelog show v0.17.0 at the top

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 09:56:42 +08:00
Jason Lee 91e46f9024 docs(skill): add Skill install step and CN mirror download link (#406)
## Summary

- Add **Step 1 — Install the Skill** section to the English install page
(was missing `npx skills add longbridge/developers` command and ZIP
download link), bringing it in line with zh-CN/zh-HK
- Add CN mirror download URL
(`https://open.longbridge.cn/skill/longbridge.zip`) for `longbridge.zip`
across all three locales
- Fix relative ZIP paths (`/skill/longbridge.zip`) to absolute URLs in
zh-CN/zh-HK
- Restructure English page sections: `Method 1/2` → `Step 2 Method A/B`

## Test plan

- [ ] Verify EN install page shows Step 1 with npx command and ZIP
download (with CN mirror link)
- [ ] Verify zh-CN and zh-HK pages show CN mirror link next to ZIP
download

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 22:12:23 +08:00
hold-baby 267a813a7d feat(region): add China region build with page whitelist, URL rewriti… (#405)
…ng and independent deployment

Co-authored-by: 袁昌瑞 <changrui.yuan@longbridge-inc.com>
2026-04-03 21:33:12 +08:00
Jason Lee ec6399fec0 docs: Update scoop install URL. 2026-04-02 10:53:15 +08:00
Jason Lee d8fe8f36f2 fix: Update Scoop install path to .scoop/longbridge.json (#402)
## Summary

- Rename `scoop.json` → `.scoop/longbridge.json` in
`longbridge-terminal` submodule — Scoop requires the manifest filename
to match the app name
- Update Scoop install command in docs (en / zh-CN / zh-HK) to point to
the new path

## Test plan

- [ ] Verify `scoop install
https://raw.githubusercontent.com/longbridge/longbridge-terminal/main/.scoop/longbridge.json`
installs successfully on Windows

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 10:40:49 +08:00
Jason Lee dc68e0caec docs: Add Windows Scoop install, Revoking Authorization, and skills.sh link (#401)
## Summary

- Add Windows [Scoop](https://scoop.sh) installation option across all
docs (`cli.md` en/zh-CN/zh-HK, `skill/install` en/zh-CN/zh-HK, skill
references)
- Add **Revoking Authorization** section to `skill/install`
troubleshooting and `references/setup.md`
- Add "Also available on skills.sh and GitHub." link below the ZIP
download button in `Skill.vue`

The Scoop manifest (`longbridge.json`) and auto-update workflow
(`update-scoop.yml`) are in a separate commit in the
`longbridge-terminal` submodule.

## Test plan

- [ ] Verify Scoop install command renders correctly in all 3 language
versions of `cli.md` and `skill/install`
- [ ] Verify Revoking Authorization appears in Troubleshooting section
(en) and 常见问题 (zh-CN/zh-HK)
- [ ] Verify "Also available on skills.sh and GitHub." appears below ZIP
download button on skill page
- [ ] Confirm `longbridge.json` is valid JSON and Scoop can parse it

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 20:43:39 +08:00
Jason Lee b99cfdf896 feat(skill): revamp install guide and add capability reference (#400)
## Summary

- Simplified install pages (en/zh-CN/zh-HK) to a clean two-step
structure: install Skill → connect account (CLI or MCP)
- Added npx/bunx install commands with Node.js/Bun environment notes
- Added Windows binary install instructions (download zip from GitHub
Releases)
- Added Homebrew install link for macOS, Linux-specific curl command
- Added mainland China MCP accelerated endpoint
(`openapi.longbridge.cn/mcp`)
- Added Claude Desktop, Gemini CLI, Warp to supported MCP clients table
- Added "Why Claude.ai and ChatGPT.com don't work" explanation section
- Added **Capability Reference** section to Skill.vue — 6-card 3×2 grid
covering all CLI/MCP capabilities
- Restored heroClients list to original five (OpenClaw, ChatGPT, Claude,
Claude Code, Codex)

## Test plan

- [ ] Build passes (`bun run build:canary`)
- [ ] Skill page renders capability reference section correctly across
en/zh-CN/zh-HK
- [ ] Install pages display correctly in all three languages
- [ ] MCP table and Windows install instructions render as expected

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 19:29:45 +08:00
Jason Lee 8f2d4689dd docs: add OAuth 2.0 auth flow to skill install guide, remove API Key references (#386)
## Summary

- Add OAuth 2.0 authorization section to all three locale Skill install
pages (en / zh-CN / zh-HK), covering: trigger flow, explicit `longbridge
login`, token cache location, and revocation
- Add "Updating the Skill" section noting that `longbridge.zip` is
updated periodically
- Update FAQ entries to point to OAuth 2.0 flow instead of mentioning
API Token
- Remove Legacy API Key sections from `skills/longbridge` references:
`setup.md`, `python-sdk/overview.md`, `rust-sdk/overview.md`, `mcp.md`
(Self-Hosted Binary section removed)
- Fix Rust SDK "Creating Contexts" example to use `Config::from_oauth`
instead of `Config::from_apikey_env`

## Test plan

- [ ] Verify install pages render correctly in all three locales
- [ ] Confirm no remaining references to API Key / API Token in skill
install docs
- [ ] Confirm OAuth 2.0 flow steps are accurate and complete

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 13:31:19 +08:00
Jason Lee 43b364794f docs: restructure Skill install guide with universal methods first
Reorganize the install page to lead with client-agnostic methods (ZIP
download and npx/bunx CLI) before client-specific setup guides. Adds
-g/-y flag explanations, bunx alternative, and replaces OpenClaw slash
command with a natural-language zip install instruction to prevent AI
misinterpretation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 14:54:47 +08:00
Jason Lee c4dd3714c4 Revert skill paths. 2026-03-23 22:07:48 +08:00
Jason Lee 7a07e916c0 docs: clarify manual-only install for Claude.ai and ChatGPT (#379)
## Summary

- Add blockquote notes to the Claude.ai and ChatGPT sections explaining
that automated installation is not possible due to sandboxed execution
environments
- Claude.ai restricts outbound access to a fixed domain whitelist;
ChatGPT similarly cannot auto-install Skills during a conversation
- Users are directed to the manual download/upload flow in both cases

## Test plan

- [ ] Verify blockquote notes render correctly in all three locales (en,
zh-CN, zh-HK)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 22:02:41 +08:00
Jason Lee 67e3857f58 docs: add skills.sh and GitHub links to OpenClaw install section
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 21:42:04 +08:00
Jason Lee e18f7061fc docs: Fix incorrect install skill command. 2026-03-23 21:31:45 +08:00
Jason Lee c032ae2e83 Fix skill path 404 (#377) 2026-03-23 20:53:05 +08:00
Jason Lee 0add508ae2 feat: add Skill page with interactive demo (#376)
## Summary

- **New `/skill` page** with full trilingual support (en / zh-CN /
zh-HK)
- **Interactive chat demo**: 4 scenarios (Live Quote, Portfolio,
Subscription, Earnings) × 5 AI clients (OpenClaw, ChatGPT, Claude,
Claude Code, Codex) with typewriter animation
- **Rich response rendering**: tables with Shadcn-style borders, mini
SVG sparkline charts, syntax-highlighted code blocks
- **Scenario cards section** below the demo describing use cases
- **Nav update**: Skill link added to all three locale nav configs

## Bug Fixes

- **Syntax highlighter**: replaced chained-regex approach with a
single-pass tokenizer. The old code ran number → keyword → string
regexes sequentially on the same string — the keyword regex matched
`class` inside generated `<span class="hl-n">` attributes, and the
string regex matched `"hl-n"` as a string literal, corrupting the HTML
structure entirely
- **v-html routing**: replaced `currentMessages[2]?.rich` template
condition with an explicit `isRichResponse` ref set in `runAnimation()`
to prevent incorrect branch selection when switching client tabs

## Test plan

- [ ] Visit `/skill`, `/zh-CN/skill`, `/zh-HK/skill` — page loads in all
locales
- [ ] Click through all 4 scenario tabs — animation plays correctly for
each
- [ ] Click through all 5 client tabs — correct message shown, Claude
Code tab shows syntax-highlighted code (not raw HTML)
- [ ] Verify sparkline charts render in the Live Quote / OpenClaw
scenario
- [ ] Verify table borders render correctly (outer border + row
dividers, no missing bottom border)
- [ ] Verify gain/loss values show green/red colors in tables

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 20:03:14 +08:00