Skip to content

Releases: NotWizard/MACRO

v1.2.0:报错页面修复、数据刷到最新、更稳的构建

Choose a tag to compare

@NotWizard NotWizard released this 24 Aug 10:58

本次发布修复了多处页面报错与空图表,并把所有宏观指标刷新到当前最新。

🐛 问题修复

  • 「财政与外需」页不再整页报错:此前该页 5 张图全部显示错误卡,现在正常展示财政收支、货物进出口、ISM 制造业景气等数据。
  • 「债务周期」页「居民真实杠杆空间」不再空白:补齐派生数据后该图正常出线。
  • CPI 再也不会停更:此前 CPI 因一处内部校验设置过严,长期停在旧值刷不动;现已修复,正常更新到最新月份。
  • 社会融资规模补到最新:此前停在 4 月,现补齐到 7 月,与新增贷款、货币供应等同口径月份对齐。
  • 缺数据的表不再拖垮整页:某张表暂时无数据时,页面显示「暂无数据」而非整页错误卡。

✨ 体验改进

  • 全部 18 类宏观数据刷新到各自最新:月度指标到 2026 年 7 月,LPR 与 10 年期国债到 8 月,宏观杠杆率补到 2026 年二季度,季度与年度指标均为最新一期。
  • 更稳的发布构建:修复了持续集成长期失败的问题,让每次发布都完整跑过自动化测试后再交付。

This release fixes several page errors and empty charts, and brings every macro indicator up to the latest available period.

🐛 Bug fixes

  • The "Fiscal & External Demand" page no longer errors out: all five charts (fiscal revenue/expenditure, goods trade, ISM manufacturing, …) now render instead of showing an error card.
  • The "Household deleveraging headroom" chart on the Debt Cycle page is no longer blank: it plots correctly after the derived data was rebuilt.
  • CPI no longer gets stuck: an over-strict internal validation had frozen CPI at an old value; it now updates to the latest month.
  • Social financing is current again: it was stuck at April and is now through July, aligned with new loans and money supply.
  • A table with no data no longer breaks the whole page: it shows "No data" instead of a full-page error card.

✨ Improvements

  • All 18 macro series refreshed to their latest period: monthlies through July 2026, LPR and the 10-year bond yield through August, macro leverage through 2026 Q2, quarterly and annual series at their newest release.
  • More reliable release builds: fixed a long-standing CI failure so every release now ships only after passing the full automated test suite.

v1.1.0:相位纠错、本机安全、数据可信

Choose a tag to compare

@NotWizard NotWizard released this 24 Aug 02:00

本次更新集中修正经济周期判断的准确性、堵住本机安全隐患,并让数据失效不再被悄悄掩盖。

⚠️ 需要注意

1. 打开地址改为 http://localhost:8000

  • 为什么改:过去前端和接口跑在两个进程、两个端口,经常出现「页面是旧的、接口是新的」,刷新也不生效。
  • 新规则:双击「启动面板」后,界面和接口都在 8000 一个地址上,不再有 5173。
  • 你要做什么:更新收藏夹。旧链接不会自动跳转。
旧:http://localhost:5173
新:http://localhost:8000

2. 手动触发「刷新数据」「重新生成评述」的方式变了

  • 为什么改:过去只要你浏览的任意一个网页里藏了一张图片链接,就能在你不知情的情况下触发全量数据采集,甚至触发按次计费的模型调用。
  • 新规则:这些操作现在需要本机凭据,页面内点击按钮一切照常,凭据由本机自动下发。
  • 你要做什么:网页端无需任何操作。如果你写过脚本或收藏夹直接访问采集地址,需要改为先提交任务、再订阅进度。

🐛 问题修复

  • 经济相位不再把 5% 的增长判成「衰退」:过去趋势基准被 2021 年的异常低基数长期污染,导致时钟长期停在衰退象限、综合信号被压到 -2。现在改用抗异常值的趋势基准并加入防抖,同样的数据会正确落在「复苏」。
  • 数据源失效不再显示绿灯:过去某个数据源整体抓取失败时,健康指示灯依然是绿的,采集脚本也照样以「成功」退出。现在会真实报警并以非零状态退出。
  • 图表缩放不再被自动刷新重置:过去后台刷新一次,你手动拉的时间区间、隐藏的图例都会被清空。
  • 打开页面偶发 500 或全空白:修复了指标出现空值时接口直接报错、以及后端未启动时首页显示「暂无数据」而非提示连接失败的问题。
  • 利率与采购经理指数表的重复与陈旧数据:修复同一天存在多条互相矛盾记录(利率表由 1536 行去重为 154 行),以及库存信号被一个已停更的数据源拖在 10 个月前的问题。
  • 缺失数据不再被当作「强烈看空」:过去某个分项没有数据时会被当成最悲观的取值计入综合信号,现在会被剔除并重新归一,界面上也能看到各分项的数据截止时间。
  • 本次还修复了并发刷新可能损坏数据库、换库后页面长期显示旧数值等约 40 项问题。

✨ 体验改进

  • 所有页面的加载中、出错、无数据三种状态统一呈现,不再出现「看起来正常但其实是空的」页面。
  • 重新生成评述期间,旧评述会继续展示,不再空一大块。
  • 长序列图表(三千余个点)滚动与悬浮更顺滑。
  • 数据采集新增超时与整轮预算,单个数据源卡死不会再拖住整次刷新。

This release focuses on the accuracy of the economic-cycle read-out, closes a local security hole, and stops data failures from being silently hidden.

⚠️ Heads-up

1. The app now opens at http://localhost:8000

  • Why: the interface and the API used to run as two processes on two ports, which regularly served a stale page against a fresh API — and refreshing did not help.
  • What is new: after launching, both the interface and the API live at 8000. There is no 5173 any more.
  • What to do: update your bookmark. The old link does not redirect.
Old: http://localhost:5173
New: http://localhost:8000

2. Triggering "refresh data" and "regenerate commentary" works differently

  • Why: previously any web page you happened to visit could hide an image link that silently started a full data collection on your machine — and even a metered model call.
  • What is new: these actions now require a local credential. Clicking the buttons in the interface behaves exactly as before; the credential is issued locally and automatically.
  • What to do: nothing, if you use the interface. If you have a script or bookmark that hits the collection address directly, it must now submit the job first and then subscribe to progress.

🐛 Bug fixes

  • A 5% growth reading is no longer classified as "recession": the trend baseline had been polluted for years by the unusual 2021 base, pinning the clock in the recession quadrant and dragging the composite signal to -2. With an outlier-resistant baseline plus anti-flapping, the same data now correctly reads "recovery".
  • A failed data source no longer shows a green light: when a source failed to fetch entirely, the health indicator stayed green and the collection script still exited as "successful". It now reports the failure and exits non-zero.
  • Chart zoom is no longer reset by background refreshes: a single refresh used to wipe the time range you had dragged and the series you had hidden.
  • Occasional 500 errors or a blank page on open: fixed the API failing outright when an indicator contained empty values, and the home page claiming "no data yet" when the backend was simply unreachable.
  • Duplicate and stale rows in the rate and PMI tables: fixed contradictory records sharing one date (the rate table went from 1536 rows to 154 after de-duplication), and an inventory signal held 10 months in the past by a source that had stopped updating.
  • Missing data is no longer read as "strongly bearish": a sub-signal with no data used to enter the composite at its most pessimistic value; it is now excluded and the composite renormalised, and the interface shows each sub-signal's data cut-off.
  • Around 40 further issues are fixed in this release, including concurrent refreshes that could corrupt the database and pages that kept showing old values after the data was replaced.

✨ Improvements

  • Loading, error and empty states are presented consistently across every page, so a page can no longer look fine while actually being empty.
  • The previous commentary stays on screen while a new one is generated, instead of leaving a gap.
  • Long series (three thousand-plus points) scroll and hover more smoothly.
  • Data collection gained per-source timeouts and an overall run budget, so one stuck source no longer holds up the whole refresh.