From d4640a578de36f9c0470612d15dcdd5eb398dca7 Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Mon, 18 May 2026 22:54:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E4=BD=93=E6=A3=80=E6=94=B6?= =?UTF-8?q?=E5=B0=BE=EF=BC=9A=E6=9B=B4=E6=96=B0=20CLAUDE.md=20=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=20EMOS/LGBM=20=E5=BC=95=E7=94=A8=EF=BC=8C=E6=B8=85?= =?UTF-8?q?=E7=90=86=E5=89=8D=E7=AB=AF=E6=AD=BB=E5=AD=97=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=E7=A7=BB=E9=99=A4=20git=20=E8=B7=9F=E8=B8=AA=E7=9A=84=E4=B8=B4?= =?UTF-8?q?=E6=97=B6=E6=96=87=E4=BB=B6=EF=BC=8CVPS=20=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E9=80=80=E5=BD=B9=E9=92=B1=E5=8C=85=E7=9B=91=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 6 + CLAUDE.md | 6 +- frontend-next-3002.log | 10 - .../ops/overview/OverviewPageClient.tsx | 8 +- .../ops/training/TrainingPageClient.tsx | 33 +- frontend/types/ops.ts | 6 +- playwright-home-check.png | Bin 217485 -> 0 bytes tmp_apikey.js | 3 - tmp_obs.js | 3098 ----------------- tmp_rctp.html | 1238 ------- 10 files changed, 14 insertions(+), 4394 deletions(-) delete mode 100644 frontend-next-3002.log delete mode 100644 playwright-home-check.png delete mode 100644 tmp_apikey.js delete mode 100644 tmp_obs.js delete mode 100644 tmp_rctp.html diff --git a/.gitignore b/.gitignore index 0570b122..93c06ff1 100644 --- a/.gitignore +++ b/.gitignore @@ -63,3 +63,9 @@ frontend/.next-start.log .codex/skills/.system/** !.codex/prompts/ !.codex/prompts/** +tmp_apikey.js +tmp_obs.js +tmp_rctp.html +playwright-home-check.png +.codex-backend-*.log +frontend-next-*.log diff --git a/CLAUDE.md b/CLAUDE.md index d06cefc5..6a5b040d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -103,13 +103,12 @@ curl http://127.0.0.1:8000/metrics | Directory | Purpose | |-----------|---------| -| `src/analysis/` | DEB algorithm, trend engine, probability calibration (EMOS/LGBM), market alert engine, settlement rounding | +| `src/analysis/` | DEB algorithm, trend engine, market alert engine, settlement rounding | | `src/auth/` | Supabase entitlement checks, Telegram group pricing | | `src/bot/` | Telegram bot handlers and orchestrator | | `src/database/` | SQLite-based runtime state, DB manager, daily/truth/training feature repositories | | `src/data_collection/` | Weather sources (METAR, TAF, Open-Meteo, JMA, KMA, MGM, NMC, Russia stations, settlement sources), city registry (52 cities), Polymarket readonly layer. Also: `madis_sources.py` (NOAA 5-min NetCDF), `amos_station_sources.py` (Korean runway sensors), `country_networks.py` (per-country provider routing + `_airport_primary_from_raw`) | | `src/data_mining/` | Historical data fetch utilities | -| `src/models/` | LightGBM daily-high model training and feature engineering | | `src/onchain/` | Polygon wallet watcher, Polymarket wallet activity watcher | | `src/payments/` | Onchain checkout, event listener, confirm loop, contract audit | | `src/strategy/` | Trading strategy modules | @@ -120,7 +119,7 @@ curl http://127.0.0.1:8000/metrics | `frontend/components/dashboard/` | Dashboard UI components (map, sidebar, detail panel, modals, charts, scan terminal). `scan-root-styles.ts` is the CSS Module barrel, combining 22 module roots into one pre-composed className. `monitoring/` subdirectory: `MonitorPanel`, `monitor-temperature.ts` (temp resolution chain), `monitor-refresh-policy.ts`. | | `frontend/lib/` | Shared client logic: types (`dashboard-types.ts`, including `AirportCurrentConditions`, `CityDetail`), API client, chart utils, i18n, `source-freshness.ts` (per-source freshness with `expected_next_update_at`), dashboard utils | | `frontend/hooks/` | React hooks: dashboard store (global state), Leaflet map, chart helper | -| `scripts/` | Operational scripts: probability calibration training, backfills, payment reconciliation. `supabase/` subdirectory: DB schema and migration SQL. | +| `scripts/` | Operational scripts: backfills, payment reconciliation. `supabase/` subdirectory: DB schema and migration SQL. | | `config/` | YAML config (city list, weather settings, logging) | | `docs/` | Bilingual product & technical docs | @@ -134,7 +133,6 @@ curl http://127.0.0.1:8000/metrics - **Configuration**: `.env.example` is the comprehensive reference (8 config sections: runtime, Telegram, weather cache, auth, ops, frontend, optional modules, Polygon monitor). Copy to `.env` and fill in secrets. - **Auth gating** (frontend middleware): Token-based (`POLYWEATHER_DASHBOARD_ACCESS_TOKEN`) or Supabase session-based (`POLYWEATHER_AUTH_ENABLED`). Local dev hosts bypass auth. - **CORS**: Allowed origins from `WEB_CORS_ORIGINS` env var (defaults: localhost:3000, polyweather-pro.vercel.app) -- **EMOS/CRPS calibration**: Trainable but production should use `legacy` or `emos_shadow` engine; `emos_primary` only after local evaluation + manual rollout - **API proxy**: Frontend uses Next.js rewrites to proxy `/api/*` to the FastAPI backend; see `frontend/lib/api-proxy.ts` and `frontend/lib/backend-api.ts` ## Commit Convention diff --git a/frontend-next-3002.log b/frontend-next-3002.log deleted file mode 100644 index d68292b1..00000000 --- a/frontend-next-3002.log +++ /dev/null @@ -1,10 +0,0 @@ - -> polyweather-frontend@1.5.4 start -> next start -p 3002 - - ▲ Next.js 15.5.12 - - Local: http://localhost:3002 - - Network: http://172.23.64.1:3002 - - ✓ Starting... - ✓ Ready in 541ms diff --git a/frontend/components/ops/overview/OverviewPageClient.tsx b/frontend/components/ops/overview/OverviewPageClient.tsx index 8d726780..da831e0d 100644 --- a/frontend/components/ops/overview/OverviewPageClient.tsx +++ b/frontend/components/ops/overview/OverviewPageClient.tsx @@ -309,12 +309,12 @@ export function OverviewPageClient() {
}i##@ Fq4$QOSDhE<=KV91V0#T0
z+}pf2Sv3UBwPV35ttY;^gC?G12e!kCIl`_wC`{zzHT22Awo_%c2_=pZwe8whNy#QH
z#-vbl*Noz(gm(E@0<;R@KWTsGjVmOr5+uNF5|7P4+K%J)l6QD$$|8n{$s{Rtuassf
zewYRl`3om03y7E^r>qhy+A_JC20su18NV1Yj-B|)qE-rUne=7=Ywt=Xsyscl1;R|5
zyawLJi!PCObg-On3oNdqPIlVRu*}9m{fSB&xB1I=p~C{pBC`7OtuAlx`C&8li@gX5
zl7nSR_Wi2l0ArT6aZDHKjM4|mPEMXyc=m_@i?+MAax2-C6K}O>o1=^|T{2w44WamV
zx@5HXYDLFE Jf!-$1d2*YEutOhB
z4qR9%OOrMi0`-;5&;?twGHm=&!{w^uc(cLZ5Jcm$WsJ2|IH@!1P&)sK?L~|2##_G6
zSS#xi2L6@h0Y>+oZ9ZYmiE)BcV@UyGUryD!5UHoWzBIV&ooFB6Z=A>_J3tJ~t5N7b
zigw(Fn<t7!Ff$gN8pOG(3DFnuR*p7!7f7M1&wHE8c#)2~`*h$x8gGfo6Te^$=PB*)-FQ;I
zqjZQJ)A(+fEd}#jCh4-bOJN|
j5qV<1@QPrc5H{3g0Ivqs;Ydm&P7kHj
zmyeu+B0fKvX6mXA3h$bJy%{b@W&Tv}nzi$&;UezvECniqSG>kOj!hvM&(OUY5aeZA
zMIG=rl>Q&mP~q${e<_t;|BZ!HuB}s3-7VNO3KOOE{mXd0%jCk;d{st;*?4XwB#aOI
z1P=+xP0P!A+iKAy!K6YQU6muS75>#gs=&rQPmtB?A=PM|q=IHfsgT^HkH1lq5vm*z
zEjh!~`sd?oY1yQL0p(r}O8>dKe;LA>a443j3g!^TU`X-;9~Qo2cIKGfQcy?xuYvfZ
z8M|fnk_xY61`~a7;kcpYlw`w_Y6`4ZU8(k^1u0|q^ane3+vwop9;aZqJb1lU=ZW)%
zHoBgYs%p3+kb`DKYiyxHe|;J|1MErahR>9Y(ll#rYTS6Ad{G9gVhiMNLSpyTk~yfo
zBI%|$e~r7qLS6(?%4}9_Wpk=;8kbqB4U%#AY{;lj2gHk709A2J9oAO|2=h?6r(r)O
z^qCfG*s5&HX*JOGu(z)!K*vNIyVDC7nbQWJUX*N(vIQE8giB
6+-2SlI+NQpJ(Lb_T`WfYB*$+e|(|I#RN?xg6^H@AO
zcTif?yTwT6267n}$kPk79=l$kHcqp|xlK9=I<%WD7A|TqBO9Xp-S7N))gFJdwT81(
zORgwG*`bCMJW7yn8_(e>_TrF6Ad@hAMgsVUa6I_DbVqxdLfG$)7FH=sw3A7G_t{Hb
z;A@DON-=#j68y~d$vuS{;2BzthT&3I00mGJc&d+KFz35}_!O+`_Ig_fIK!-Nv9!Q&
z{Rfg>i=m0^uz0sL5=IjK5oWWuU@vc+AW=9
za8%>hnQxLyraWOzx5}
js%roWbPd;jt`9avWl=(yDg|*)kLR-;TRvS{;^#a#ub^gQJA;uGZKS6wZennX|<&fQV#|d%O
zT4Z}PJXT{$vAi&Bo8lHUHQZv&@4yFF0iADBp}lZImW2qaYJ}pH>KFNk$^Ve~43ZBp
zn3S7N@=HjHtX{VWQjz?+wgXLKjdkoycI45TCLh;`YgWAU(`by(v|}U1kObE?N9ggq
zm*l)I%U!q*K47>u<-rvAnf1>S&-n_5%DMPcJ(mX1`@sOw{u^wm?m1S8@>w@i)fwQU
zhZ(qK&E<>MPr6)A7i!;M#w=yt7061$7!q@_S{H}SUYhWg46y$O$-YT7*I=rYa9{Ic
z|5v@yC~H^HQXtLmcD#zA;a!V$p#Yg(4Db7yc!SGbWtDDCldq8f=R(Gy+b<|xx;1G2
z