From 259da367719d6bf5351e8ad0ec4b4eaf09686d2e Mon Sep 17 00:00:00 2001 From: kennethcheng Date: Fri, 1 May 2026 14:53:51 +0800 Subject: [PATCH] =?UTF-8?q?fix(api):=20=E7=BA=A0=E6=AD=A3=20cron=20route.t?= =?UTF-8?q?s=20=E8=B7=AF=E5=BE=84=E4=B8=8E=E5=AF=BC=E5=87=BA=E8=A7=84?= =?UTF-8?q?=E8=8C=83=EF=BC=8C=E4=BF=AE=E5=A4=8D=20404=20=E8=B7=AF=E7=94=B1?= =?UTF-8?q?=E4=B8=A2=E5=A4=B1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Memory.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Memory.md b/Memory.md index 936ea0b..85529c8 100644 --- a/Memory.md +++ b/Memory.md @@ -227,6 +227,12 @@ - Dashboard 表格字段精确对齐:现價→`latestPrice`、市值→`metrics.marketValue`、攤薄/成本→`metrics.dilutedCost / metrics.averageCost`、浮動盈虧→`metrics.floatingPnl`、累計盈虧→`metrics.accumulatedPnl`。 - 累计盈亏验证公式:`accumulatedPnl = marketValue + 卖出/分红现金 - 总投入`,确保有卖出或分红记录的资产(如英特尔、分红ETF)数据精确。 +## 修复 Cron API 的 404 挂载丢失问题 (Task 61b) +- 验证并确认 Next.js App Router API 路由已严格遵循规范:文件精确位于 `src/app/api/cron/fetch-prices/route.ts`,后缀为 `.ts`(非 `.tsx`)。 +- 确认最外层正确导出 `export async function GET(request: Request)` 方法,包含 `Bearer ${process.env.CRON_SECRET}` 鉴权拦截与完整的 try/catch 错误处理。 +- 确认无旧版 `pages/api/cron/fetch-prices` 残留文件导致路由冲突。 +- 修复 Next.js App Router 规范下的 API 路由挂载问题,修正 route.ts 文件名与 GET 方法导出,解决 404 错误。 + ## 修复 getPortfolioPositions 中接入财务引擎时的变量作用域丢失与解构映射错误 (Task 56c) - 修复了 `src/actions/portfolio.ts` 中 `getPortfolioPositions` 函数的 ReferenceError:`avgCost is not defined` 和 `dilutedCost is not defined`。 - 根本原因:在将财务引擎 (`calculateAssetMetrics`) 接入 portfolio 引擎时,`avgCost` 和 `dilutedCost` 变量名在结果对象装配环节被直接引用,但它们从未在本作用域中声明——它们实际上是 `metrics` 对象的属性 (`metrics.averageCost`, `metrics.dilutedCost`)。