Whole file
SilentFleetKK/ai-market-pulse
The author described this change as “fix: move Score Changes above Portfolio Net Value in the dashboard”. It counts as a record because the check below fails on the code as it stood at d007a0fcf and passes on f518431cb, with nothing else changed between the two runs.
Fix saved2026-07-09
Sharing licenceMIT · LICENSE
Change size+5 −5
What the code was meant to do, written into the code itself as a save note
fix: move Score Changes above Portfolio Net Value in the dashboard
The change
| 146 | 146 | <p class="section-note">{lang("Filter by symbol, risk, relative strength, and history window. Click any card or table row for a focused drilldown.", "按代码、风险、相对强弱和历史窗口过滤。点击任意卡片或表格行查看单股详情。")}</p> | |
| 147 | 147 | {_controls_html()} | |
| 148 | 148 | {_detail_html()} | |
| 149 | - | <h2>{lang("Portfolio Net Value", "组合净值")}</h2> | |
| 150 | - | <p class="section-note">{lang("Grouped by currency so mixed portfolios remain readable without hiding currency risk.", "按币种分组展示,让多币种组合在可读的同时保留汇率风险提示。")}</p> | |
| 151 | - | <section class="wide-grid"> | |
| 152 | - | {portfolio_cards or f'<div class="panel muted">{lang("No portfolio market value history yet. Add quantity and cost_basis to assets, then run the report.", "暂无组合市值历史。给资产加入 quantity 和 cost_basis 后重新运行报告即可。")}</div>'} | |
| 153 | - | </section> | |
| 154 | 149 | <h2>{lang("Score Changes", "评分变化")}</h2> | |
| 155 | 150 | <p class="section-note">{lang("A compact view of signal momentum for each tracked symbol.", "快速观察每个标的的信号动量变化。")}</p> | |
| 156 | 151 | <div class="tool-row"><span class="muted" data-filter-count></span><button class="ghost-button" type="button" data-reset-filters>{lang("Reset filters", "重置筛选")}</button></div> | |
| 157 | 152 | <section class="grid" data-symbol-cards> | |
| 158 | 153 | {score_cards or f'<div class="panel muted">{lang("No score history yet.", "暂无评分历史。")}</div>'} | |
| 154 | + | </section> | |
| 155 | + | <h2>{lang("Portfolio Net Value", "组合净值")}</h2> | |
| 156 | + | <p class="section-note">{lang("Grouped by currency so mixed portfolios remain readable without hiding currency risk.", "按币种分组展示,让多币种组合在可读的同时保留汇率风险提示。")}</p> | |
| 157 | + | <section class="wide-grid"> | |
| 158 | + | {portfolio_cards or f'<div class="panel muted">{lang("No portfolio market value history yet. Add quantity and cost_basis to assets, then run the report.", "暂无组合市值历史。给资产加入 quantity 和 cost_basis 后重新运行报告即可。")}</div>'} | |
| 159 | 159 | </section> | |
| 160 | 160 | <h2>{lang("Risk Board", "风险榜")}</h2> | |
| 161 | 161 | <table class="dashboard-table" data-latest-table> |
The check that tells the two apart
fail→pass·tests/test_dashboard.py::test_render_dashboard_places_score_changes_before_portfolio_net_value
Check file tests/test_dashboard.py, taken without changes from the fix and copied onto the older code, so the exact same check runs against both versions.
Origin and history
The code before itd007a0fcf9b5d4fd4cb658ff5f652b52084e6c8b
Broken version dated2026-07-09
Moduleai_market_pulse.dashboard
Units changedrender_dashboard
Fingerprint3c275d98ada4385f
Checked2026-08-18 by goldset/0.1
Every field above is generated by our program. None of it is written by hand.