Group original news into tagged fact packages, review each package with evidence and read-only research, and build complete 72-hour reading lists with independent model selections.
Add paused RSS/Atom subscriptions, news-scoped Skills, versioned analysis records, and locked deployment support for SearXNG. Preserve original news and keep live migration and legacy AI cleanup separately authorized.
Validate with 604 backend tests, 49 frontend tests, 19 CI control tests, lint, type checks, production build, and disposable PostgreSQL migration and three-stage smoke checks.
Organize domain APIs and types under common/apis, shared components under named folders, and private workspace logic alongside each page.
Use Bearer sessions, explicit response envelopes, session-aware routing and streams, and configurable login captcha presentation for the deployed backend contract.
Preserve news, economic calendar, crawler, market, chat, Skills, settings, and demo trading workflows with responsive layouts and explicit configuration saves.
Validate with frontend lint, type checking, 22 test groups, production builds, and deployed desktop/mobile page checks.
- News: show the list and the article detail side by side; the drawer
becomes a persistent detail panel with a revision picker and +/- line
counts.
- Crawler console: one card per source instead of tabs, plus a merged
live log panel filterable by source and level.
- Chat: segmented Chat / CONTEXT.md switch, message cards with times,
bordered tool-call rows and a context usage bar.
- Login, Skills and Settings move to the panel style; diff and highlight
colors follow the new palette. The market K-line area stays dark.
- Single palette (web/src/styles/palette.ts) taken from the Stitch
design, exposed as ap-* UnoCSS colors and --ap-* CSS variables and
used for Element Plus dark theme overrides, KLineChart and the news
iframe; zero radius, JetBrains Mono / Space Grotesk bundled locally
- New sidebar and header layout; trading page, plan card and analysis
drawer follow the design; other pages use the same panels
- Status API reports today's closed trades, wins and net PnL, shown as
today's PnL and win rate on the trading page
Let the crawler console set a backfill target per source. Each scheduled
run pages backwards from a checkpoint for at most 20s so real-time
crawling is not blocked. The checkpoint is saved only after a successful
run and is also kept in process memory, because the next trigger may be
queued before the database write lands. cls_depth is excluded since its
list API cannot page into history.