fix: 改进滑动窗口保留最近消息 + 添加北京时间注释

Co-authored-by: qinfendebingshuo <207279273+qinfendebingshuo@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-03-08 13:52:16 +00:00
parent e7723e6444
commit 203ecee955
2 changed files with 4 additions and 4 deletions

View File

@ -8,8 +8,8 @@ name: Generate Session Summary for Notion
on: on:
schedule: schedule:
- cron: '50 23 * * *' - cron: '50 23 * * *' # 07:50 Beijing Time
- cron: '50 14 * * *' - cron: '50 14 * * *' # 22:50 Beijing Time
workflow_dispatch: workflow_dispatch:
permissions: permissions:

View File

@ -1579,14 +1579,14 @@ function trimMessagesForContext(sysMsgs, msgs, isGuest){
const reserve = CONTEXT_CONFIG.systemPromptReserve; const reserve = CONTEXT_CONFIG.systemPromptReserve;
const sysTokens = sysMsgs.reduce((n,m)=>n+estimateTokens(m.content),0); const sysTokens = sysMsgs.reduce((n,m)=>n+estimateTokens(m.content),0);
const budget = limit - Math.max(sysTokens, reserve); const budget = limit - Math.max(sysTokens, reserve);
if(budget<=0) return sysMsgs;
// 从最新消息向前累加,滑动窗口裁剪最早消息 // 从最新消息向前累加,滑动窗口裁剪最早消息
// 预算不足时至少保留最近一条用户消息
const kept=[]; const kept=[];
let used=0; let used=0;
for(let i=msgs.length-1;i>=0;i--){ for(let i=msgs.length-1;i>=0;i--){
const t=estimateTokens(msgs[i].content); const t=estimateTokens(msgs[i].content);
if(used+t>budget) break; if(used+t>budget && kept.length>0) break;
kept.unshift(msgs[i]); kept.unshift(msgs[i]);
used+=t; used+=t;
} }