MCPcopy Create free account
hub / github.com/experdot/pointer / getMessagePath

Function getMessagePath

src/renderer/src/services/messagesService.ts:158–175  ·  view source on GitHub ↗
(messages: ChatMessage[], leafId: string | undefined)

Source from the content-addressed store, hash-verified

156// ==================== 路径计算 ====================
157
158export function getMessagePath(messages: ChatMessage[], leafId: string | undefined): ChatMessage[] {
159 if (!leafId) return []
160
161 // 预构建 Map - O(N) 一次性
162 const messageMap = new Map(messages.map((m) => [m.id, m]))
163
164 const path: ChatMessage[] = []
165 let currentId: string | undefined = leafId
166
167 while (currentId) {
168 const message = messageMap.get(currentId) // O(1) 而非 O(N)
169 if (!message) break
170 path.push(message) // O(1) 而非 O(N) 的 unshift
171 currentId = message.parentMessageId
172 }
173
174 return path.reverse() // 一次 reverse O(N) 比多次 unshift O(N²) 快
175}
176
177export function getCurrentPath(pageId: string): ChatMessage[] {
178 const record = stores.message.get(pageId)

Callers 1

getCurrentPathFunction · 0.85

Calls 1

getMethod · 0.65

Tested by

no test coverage detected