From bac39fd7d19690f95840fea041dcc62873a99d82 Mon Sep 17 00:00:00 2001 From: Codex Date: Wed, 20 May 2026 20:08:39 +0800 Subject: [PATCH] Polish Session Focus Chinese labels --- SESSION.md | 1 + TASKS.md | 1 + .../i18n-session-focus-zh-1366x768.png | Bin 0 -> 63578 bytes src/web/i18n.js | 38 ++++++++++++++++++ tests/unit/test_api_static_server.py | 4 ++ 5 files changed, 44 insertions(+) create mode 100644 output/playwright/i18n-session-focus-zh-1366x768.png diff --git a/SESSION.md b/SESSION.md index 8b3a85a..ae74fe8 100644 --- a/SESSION.md +++ b/SESSION.md @@ -807,6 +807,7 @@ Automation execution-layer PXX remains closed and its known scope stays frozen. - Frontend i18n regression follow-up passed on 2026-05-20: fixed whitespace-preserving text-node translation so Chinese mode now translates top controls such as `Instrument ID`, `Timeframe`, `Limit`, `Auto Refresh`, `Execution Status`, `Session Focus`, `Trust Class`, and `Search` on `/trader-mode#overview`. The workbench active-section marker moved from `body[data-workbench-section]` to `body[data-active-workbench-section]` to avoid selector collisions with real content sections during browser automation and Trader Mode visibility checks. Added missing Chinese button labels for dynamic workbench actions including `Generate Active Plan`, `Run Watch`, `Risk Check`, `Cleanup Old Captures`, `Reconcile Real Trades`, `Cancel`, `Close`, `Sync`, note/review-packet buttons, and visual feedback buttons. Local validation passed `node --check src/web/app.js`, `node --check src/web/i18n.js`, 27 focused static/read-only/operator tests, secret static checks, script static checks, full unit discovery (`789` tests), and `git diff --check` with only LF/CRLF warnings. Live deploy completed with 11 deploy smoke endpoints; `run_remote_ops_smoke.py` and `run_readonly_live_analysis_smoke.py` passed, with `ready_for_readonly_live_analysis=true`, `must_not_trade=true`, and `submit_cancel_or_live_execution_called=false`. gstack browser automation cold-started `http://192.168.3.90:8000/trader-mode?verify=20260520b#overview`, confirmed `lang=zh-CN`, no old body selector collision, Chinese top controls, 17 left-menu pages navigable, no console errors, and clicked only safe `刷新` while skipping write/record/reconcile buttons to avoid polluting live state. Evidence screenshot saved at `output/playwright/i18n-overview-controls-zh-final-1366x768.png`. No change was made to `execution_allowed`, `decision_support_ready`, `real_live_ready`, risk governor, trust bucket, or operator confirmation protocol. - Existing-UI i18n polish passed on 2026-05-20 without adding product features: hardened phrase replacement so short words like `no` no longer corrupt larger English words such as `not` / `enough`, then optimized Chinese labels for existing Trader Mode / duty / chart bridge / R2 evidence / runtime workbench surfaces. Remote browser audit on `/trader-mode?audit=20260520e#trader-mode` confirmed no `否t` / `e否ugh` corruption, no old English labels such as `Bridge Status`, `Exact Candle Source`, `Use Today`, `Paper Tickets`, or `Decision Support Ready`, and reduced visible English-remnant audit count from `3396` before the fix to `881` after the fix; the remaining items are mostly symbols/session names/ICT tokens/internal status keys. Validation passed `node --check src/web/i18n.js`, 27 focused static/read-only/operator tests, secret static checks, script static checks, full unit discovery (`789` tests), `git diff --check` with only LF/CRLF warnings, deploy smoke over 11 endpoints, `run_remote_ops_smoke.py`, `run_readonly_live_analysis_smoke.py`, and gstack browser console check with no errors. Evidence screenshot saved at `output/playwright/i18n-existing-ui-polish-zh-1366x768.png`. No change was made to `execution_allowed`, `decision_support_ready`, `real_live_ready`, risk governor, trust bucket, or operator confirmation protocol. - Existing-UI i18n/R2 gate polish follow-up passed on 2026-05-20 without adding product features: expanded the existing Chinese translation map for live-readiness, launch-readiness, shadow/paper validation, runtime states, OKX sandbox preflight labels, and Trader Mode first-screen wording. Remote browser audit on `/trader-mode?audit=20260520k#trader-mode` confirmed `lang=zh-CN`, no `为什么不交易不交易`, no `下一步观察观察候选`, no `操作员反馈 count`, and no old English labels such as `Auto refresh`, `All Trust`, `Incident Journal`, `Maintenance Rollup`, `Plan Context`, `Model Trust`, `Live Readiness`, or `Launch Readiness`; the remaining English-token count in the active Trader Mode view is `13`, mostly `English`, `ai-ict`, timezone/profile names, strategy codes, and feedback enum values. Trader Mode R2 evidence display now follows `shadow_paper_validation_summary.failed_criteria`, so the evidence window no longer says operator feedback is complete while the canonical shadow validation gate still requires more samples. Current live evidence is still collecting: `operator_feedback_count=3/5`, `paper_ticket_count=0`, `paper_execution_count=0`, and `weekly_review_entry_count=0`. Validation passed focused i18n/operator/static tests, secret static checks, script static checks, full unit discovery (`790` tests), deploy smoke over 11 endpoints, `run_remote_ops_smoke.py`, `run_readonly_live_analysis_smoke.py`, and gstack browser console check with no errors. Evidence screenshot saved at `output/playwright/i18n-existing-ui-polish-zh-followup-1366x768.png`. No change was made to `execution_allowed`, `decision_support_ready`, `real_live_ready`, risk governor, trust bucket, or operator confirmation protocol. +- Session Focus Chinese dynamic-label follow-up passed on 2026-05-20 without adding product features: fixed the existing i18n layer for dynamic session-focus cards so session names and lower-case backend labels now render in Chinese (`ASIA`, `LONDON`, `NY_AM`, `NY_LUNCH`, `NY_PM`, `status`, `window`, `candidates`, `executable`, `open executions`, `alerts`, `recommendation`, `action hint`, `incomplete`, `closed`, `observe`, `avoid`, `review_alerts`, `avoid_new_risk`). Remote browser audit on `/trader-mode?i18n=20260520-session#session-focus` confirmed `lang=zh-CN`, `active=session-focus`, no English leftovers from the reported list, and visible Chinese replacements such as `亚洲盘`, `纽约下午盘`, `状态`, `时间窗口`, `候选数`, `可执行数`, `未平仓执行`, `提醒数`, `建议`, `动作提示`, `观察 @ 无`, `回避 @ 30.0`, `回避新增风险`, and `复核提醒`; console errors were empty. Validation passed `node --check src/web/i18n.js`, focused static/operator/read-only tests, secret static checks, script static checks, full unit discovery (`790` tests), deploy smoke over 11 endpoints, `run_remote_ops_smoke.py`, and `run_readonly_live_analysis_smoke.py`. Evidence screenshot saved at `output/playwright/i18n-session-focus-zh-1366x768.png`. No change was made to `execution_allowed`, `decision_support_ready`, `real_live_ready`, risk governor, trust bucket, or operator confirmation protocol. - Current assisted-analysis next gate: keep R1/R2 focused on `decision_support_ready` trust/sample/quality evidence and shadow/paper/operator feedback collection. OKX trade-permission sandbox smoke is deferred until the project explicitly re-enters execution adapter or real-trading preparation. ## Exact Next Step diff --git a/TASKS.md b/TASKS.md index 48bdcf4..b3d891d 100644 --- a/TASKS.md +++ b/TASKS.md @@ -924,6 +924,7 @@ - [x] Frontend i18n regression follow-up: Chinese mode now translates whitespace-padded top controls on `/trader-mode#overview`, dynamic workbench buttons such as `Run Watch` / `Risk Check` / `Reconcile Real Trades`, and active-section automation no longer collides with body attributes; deploy smoke, remote ops smoke, read-only live smoke, and 17-page gstack browser click audit passed - [x] Existing UI i18n polish: phrase replacement no longer corrupts `not` / `enough`, existing Trader Mode/duty/chart/R2/runtime labels are more readable in Chinese, browser audit dropped visible English remnants from 3396 to 881, and deploy smoke / remote ops / readonly live smoke / gstack console check passed - [x] Existing UI i18n/R2 gate polish follow-up: existing Trader Mode/readiness/shadow-paper labels now translate runtime/gate jargon such as `Auto refresh`, `All Trust`, `Incident Journal`, `Live Readiness`, `paper_ticket_sample_gate`, and `operator_feedback_count`; R2 evidence window now follows canonical `failed_criteria`, remote browser audit has no repeated first-screen Chinese phrases and only 13 active-view English tokens left; deploy smoke, remote ops smoke, read-only live smoke, focused tests, static checks, and full unit (`790`) passed +- [x] Session Focus dynamic Chinese label follow-up: existing i18n now translates reported dynamic session-focus labels/values (`ASIA`, `NY_PM`, `status`, `window`, `candidates`, `executable`, `open executions`, `alerts`, `recommendation`, `action hint`, `incomplete`, `observe @ n/a`, `avoid_new_risk`, `review_alerts`); remote browser audit on `/trader-mode#session-focus` passed with no reported English leftovers and no console errors - [ ] R2 paper-ticket sample gate is waiting on a real executable candidate; do not fabricate paper tickets from blocked candidates - [ ] R2 operator feedback sample gate still needs 2 more real feedback samples (`operator_feedback_count=3/5`) - [ ] R2 weekly review visible gate still needs a real execution-derived journal/weekly review entry (`weekly_review_entry_count=0`) diff --git a/output/playwright/i18n-session-focus-zh-1366x768.png b/output/playwright/i18n-session-focus-zh-1366x768.png new file mode 100644 index 0000000000000000000000000000000000000000..8535b44651adf881266eb553ae81d161961d94fc GIT binary patch literal 63578 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%0Dq)3qSG8;&q#t(L-YCLdiZF zCZLu&>Q8RypPh=XCk{kw>-^sm%j5%bR65ZB*q`j2?E1>lET4DG+h}|LxYH(^*NFf8 zs?in0N<$-C?)*m`D1(!{VeuK&7IECJTq&rqZrHjw&;-5sN5vEZhZ^wxxpfrEM z6&)<4?R3PixfGN}e4upV@fcmS(`pT^^BI*p7Cb1rM5VL@;~($J#p_E>Lt`8{?`-!x zv~~x1Cs-BFSMJ{z#m5VIzAi4JzjYrLTKjrFg@)huD+JFl5qTQD_66bxVX7d->6ij# zsy^gplh(GH)#N1g{?lpQJ+bK}f*poFF_$b1uwxa!kP@&9SL@^|jz%rR&^M;p(=N>N#v?mPP zu4*%P(RDLYh+G7kBAgRGrPat{E(=%k(CrTDY7<)KY4z9bjbN?I=q+8QKr-X%^@fM+ zg?~6TmZ-5X4wciC);+I18dBaP_>0uY?kdfbAiV1o#>(;=n*E5cMTxGTGN;sfF$z@j zhi6(BQFuN5k>J|MHnB4O0hplu8si62?-7-KtnvAkS*Pcbvs3LW?lP|N>*a9828Ez@^QOC3d$8#E<0n0q`V_yO{Bx3+ z_Tuv8kYXdU-LDF9)t~hOf&Eedu~^iCRfD%Y-~@@-(nGNjPK#f~PEex1();LS6Va&a1b9%-$Y?>tyg( zy-(G7bw3z-g|{3Kd#>7?5U7~13^~{bm0jC95WdCAjJ4`_mGQ@s@_z0ip9>>^pDxer zQ$5-<0KjJT2z8Olx>HD^LPTEToZ2u`$IBk&+zjthZu{WAX1f+GKvJ%`fgz1zPTYNKZygy_Z!4QxV_Mh>J=R>`2}h; zLOuQ&D8OTIxneobSK!Jg;@6Y^kU$c{uU-UY2(Oc9K~hw^`z*&pcw%3u3T`MxL>R$xe#_z$l1YH@jaUXe9C^NJd+M72v_ za@q9O`d?;mo*0PSFD<2p!1QyOr21SrIhs%BI+OkzDLGvZV|^;uFjrh8CXRGc)67hY zjz*P}$~~6se^Rn?o@6F$GyHQP6Ms^%XP|e}Gd4E2)*16Z7C~(TlYMjb8t|Z(JskjL z;%%$PW>VTG|B3c|;z~)%`h1i96SGvR#ITlDe52=C-m8}mIe$0DV~U`$(RV3Q+7RYI zA7ZNxC@da|bT~d1ZABc|7L${c|A*`eIA2&4@$&I3X6IsI^Ow-?>zggXu;Dfk@#R_v z_+k__H!u0XGz|=Nm~8ANsQ$xlAr=;<-j)oEb$*cr`uc|IE4bUJJ4%5lZMZklOfoat z!YoZ<;?e>K7LB)p?9l%cxc%VJMyBo&mBsLjv!bM|ydv%e9k-=yL5U3b5tQ&hae^gd zNd8s8|BL9d|4(o=lM#UZBgW~4&?8=nvXS~R*h4i@I5@PmW6-)P`i^WUEN(Y`uTPCI zTo4fqPhV+N3w?y7jS2r<4BmoAJeaD6O7t?r?6!N|?6teBh-1TJ_DxcMWNxgpyCtnG z!$?KT8|2_1B}HdY8-;^XNgoyEHf~>AS0KW!l2?8ecwKudY4)gMN)Hd*OtIBtX;ogY z>2Y+#%G~TMKR@q_ze<}J>zkWfTl=CNyXP#@CdqR)-F1(1U6o4 zJw<|m`n;-~u{Noq;)p+r&iLH?I?<}-RFu7HSmgQ~CVv-9_lbyzZv$>SaREB9g_`_u z?HjakhK5Q=N_~AE76QrbbfAAD+vqck2q=OeWGMrydrX|rISctcJ_Y<#dXLZ(DUKo zL{U)+>m-trr;9s;=LoxDma?-|RaMae9MYqr910raGbd;`cBY#=-DSLu%2-0?|L(9# zR`)u-*#zSD3}1YySGp)3=VxVQIia`A@b@B;N}bp4b+k;o`U=F{@g;Iht7h_t7#9vas(CigOsmOxN&T<7 z0%Wg#EYH^DMM;{yAtwkB1vP6$L_U{j(WK$LIhsg#+4FzJ+Uch>-i9YR0VcE7P!`6F zd-zCY=7H9sd*4;Y=@+Xr48^ZpO;3M^u~GfCo@9wfkpctr$}*lz#y!3ux%G|n`^0yJ zVm1nj^sr0{X-;={*~T{le=T4yx4eAJcuV;z-xE++p&tDNWDVInQJH3+j0?M`0U`A|r7L(B9xWe)(nNrCBy2L{qTN<}BPyeP7;@ERc1(kts#GvC6~mXRUKiT&4M zn7oaO!g)&3K<+iD`S0Eis7L?*4n(@toK$F^E_K5p=rw(IhtYqWvZQHIzY@Qor8Bd8 z+F;(Bn>})D%hg{P8c&g$<`z*ar_LP?0>?YPAb8Pc#<m#QI>w11M7QNYAFBC#dnpFxy-)ni10rdPKO{*J?GsYvYOe3>Dl;tz0KX`y!svlS_4O@)nBuTeg5f8o-le{QD`2Kfm^4 zrm(lUeEd~=fhs=97x1VXpCFXJqWwl~d7pR*ytjR8z>Z^`YBN+H34S373w}V^o}}qk z9?tpT)ag%*DKlxX3Q$kqQ|XR0`)q>$e&*)S2CH7KAcs1OKQpdEa48+n6*-l1HLf+% zs~BEpa}bzb5O1^y4Pb|zB&ZVlF=6Y~T0MhureA+gXivCmi_D0W@`D+X8Mk^qSsf4{ z?Kz%0{G}4ww$YhMAFZ3QV&u!^^o>#^#9Hh~UDW)K^F4>!K3>WhS`bV#KZ^(^875K? zTb>{$7)U3jICj_(nNF$!l_K<=%J{uc>quIv;D$)kf8} zLHW6W94Dw|7$OdX`^>L{1*80AoS4UjUSG5=nw~5rY9`blX3Q+3Wk*e1$&65TpD$3q z_vny=ca9deAM(Y?6pt74 z(uZH#$;${7%sqKCtgme6u9v)80YwA=qd{B)vqi^go*<+ZzUcRLxv!#6LI$Fj&~dP4 z|Bw{%O5OR-EL3(;+q~k?cSru=-H+--Jdqy{xRp7ozxt5eK7{iLrxmPRq^Tr%Py{eqk-aRS6%I;Q$1?wh`5hj zt4nhs6JKF<@I*tmOs3hs)rJ@J^=U3vu~MOvfCyX8N<8Ig+A`6w9qQ`t^#Zq{h_+MnuJxm6Knu?)g=+I~wms zbvmsQ^XybXz5-XcmH;p{H@RG}f-HVOOUy=}d9=|m-_J1@q|@A28cCy1$BcMp|Jq(B zYfR6=TUgih{ z=IJd{rMbVB31STnil-3Pdh7jd=sfKc<<{=)42%hDp71#9F-ME~dH#!Nt71D?o^jN> z;IPf=Cm&cCUH@2{ z=|P*oGij5GkwyosSOc-d;Zsr`+9YP)CKV=6z3prZGH0)Fw%dhyzcbDFV}B&v!&t1f6wzpt?*rt7BlFKLtT?R(tCO@1lC(V7aj@X&QsS?JPDiDlQ8b3a$ z&2!le=Ur2=bU`)m|<~h6m z0){OgsMJg{lPxiN(C3)GMeu_SxVt59R7O)%&Ug0%6_n^7l0_N)29&lKRfY9w9CelM zMD@;?RYek5k`<)TUrJa_twmSazhLhodok7RrjIG6_14x4fYTxMRi1m;h?Q7=oA%pp z4+z7RxXpP{A7eSWpRE?vO*y>|8;_LYTwh&+`&5(oB7)?ch(Z7(UQUZ zbtS9FU1gk-*7RcjyxKiEHHN)vWmrb(ZJ`CnohVy3EXMFoUTNhQE&pr6b%W%LPr3rh z{=$tlDOc(+XX~tB>A8{Q&(GtKLotD#pnfn-5OhS89CAHm(Hyhr`Sl2nrNcTgmGwSV zJOKt^VxrV1r6zTk=?>?SB;2e0hHE;ssl*nAMLFSz{*pbx0^KClcQ9I9{F)I@9K1`n zC|$8@RpD=}k88%a;i{l|H0c^2gT97-J*ks5FmK)K#<@PB)A0#{sO_>nc(gg2m}ZOch}(V?!jSj9Uu(u z?%am=cg}aeQ>X5!y0_}~KT|c`vwP3(-FrW>)_MjQN~!d7qoNHtAEfe747y-09DtkY z*h?U_rKaI(M`>{?dnJLwB1bqilis`zO*THjAuDKl5g4|*8^#|S&2l!hl(yMd-eI%- zaBbuxP8inu&rm{x)CpGFWRfuEG0nd2DV}~{E7JPjg7HAF07O)yjhR$h2KE;=;^V$0^igr)xa1COuwW8u&#kUoEq_{g8 zK6IeN9≤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 IN*MV42We-ZlmGw# literal 0 HcmV?d00001 diff --git a/src/web/i18n.js b/src/web/i18n.js index d22c907..014bdbd 100644 --- a/src/web/i18n.js +++ b/src/web/i18n.js @@ -223,6 +223,28 @@ 'Submit attempt': '提交尝试', 'Start selected attempt': '开始所选尝试', 'No active attempt.': '没有进行中的尝试。', + 'ASIA': '亚洲盘', + 'LONDON': '伦敦盘', + 'NY_AM': '纽约上午盘', + 'NY_LUNCH': '纽约午间盘', + 'NY_PM': '纽约下午盘', + 'OFF_HOURS': '非主要时段', + 'status': '状态', + 'window': '时间窗口', + 'candidates': '候选数', + 'executable': '可执行数', + 'open executions': '未平仓执行', + 'alerts': '提醒数', + 'recommendation': '建议', + 'action hint': '动作提示', + 'incomplete': '未完成', + 'closed': '已结束', + 'observe': '观察', + 'avoid': '回避', + 'review_alerts': '复核提醒', + 'avoid_new_risk': '回避新增风险', + 'n/a': '无', + 'db ready': '数据库就绪', }; const zhPhrases = [ @@ -230,6 +252,22 @@ ['Trust gate keeps this in observe-only review.', '信任门禁仍要求仅观察复核。'], ['No trade:', '先不交易:'], ['Watch Candidate', '关注候选'], + ['observe @ n/a', '观察 @ 无'], + ['avoid @', '回避 @'], + ['review_alerts', '复核提醒'], + ['avoid_new_risk', '回避新增风险'], + ['incomplete', '未完成'], + ['open executions', '未平仓执行'], + ['action hint', '动作提示'], + ['executable', '可执行'], + ['recommendation', '建议'], + ['candidates', '候选数'], + ['alerts', '提醒'], + ['closed', '已结束'], + ['observe', '观察'], + ['avoid', '回避'], + ['status', '状态'], + ['window', '时间窗口'], ['Watch for the next clean setup', '等待下一个干净形态'], ['Structure is', '结构是'], ['liquidity sweep', '扫流动性'], diff --git a/tests/unit/test_api_static_server.py b/tests/unit/test_api_static_server.py index 7e06429..3e6bd97 100644 --- a/tests/unit/test_api_static_server.py +++ b/tests/unit/test_api_static_server.py @@ -201,6 +201,10 @@ class ApiStaticServerTests(unittest.TestCase): "All Trust", "Auto refresh active", "No clean execution signal is available yet.", + "NY_LUNCH", + "open executions", + "avoid_new_risk", + "review_alerts", "market_data_fresh", "operator_feedback_count", "paper_ticket_sample_gate",