perf(skill): avoid catalog event copy

This commit is contained in:
Yichen Jiang
2026-07-27 17:12:08 +08:00
parent 55d7b71de3
commit fcbf0f0952
4 changed files with 9 additions and 5 deletions

View File

@@ -269,7 +269,11 @@ function catalogDigest(toolVisible: boolean, skills: SkillSummary[], description
function latestVisibleCatalogDigest(agent: Agent): string | undefined {
const visible = new Set(agent.session.surface.nodes)
for (const event of [...agent.session.events].reverse()) {
const events = agent.session.events
for (let index = events.length - 1; index >= 0; index -= 1) {
// The loop bounds prove the read-only event view contains this index.
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
const event = events[index]!
if (!visible.has(event.seq)
|| event.type !== 'user/message'
|| event.data.source.kind !== 'plugin'