MCPcopy Create free account
hub / github.com/claude-code-best/claude-code / markMessageAsReadByIndex

Function markMessageAsReadByIndex

src/utils/teammateMailbox.ts:426–496  ·  view source on GitHub ↗
(
  agentName: string,
  teamName: string | undefined,
  messageIndex: number,
)

Source from the content-addressed store, hash-verified

424 * @param messageIndex - Index of the message to mark as read
425 */
426export async function markMessageAsReadByIndex(
427 agentName: string,
428 teamName: string | undefined,
429 messageIndex: number,
430): Promise<void> {
431 const inboxPath = getInboxPath(agentName, teamName)
432 logForDebugging(
433 `[TeammateMailbox] markMessageAsReadByIndex called: agentName=${agentName}, teamName=${teamName}, index=${messageIndex}, path=${inboxPath}`,
434 )
435
436 const lockFilePath = `${inboxPath}.lock`
437
438 let release: (() => Promise<void>) | undefined
439 try {
440 logForDebugging(
441 `[TeammateMailbox] markMessageAsReadByIndex: acquiring lock...`,
442 )
443 release = await lockfile.lock(inboxPath, {
444 lockfilePath: lockFilePath,
445 ...LOCK_OPTIONS,
446 })
447 logForDebugging(`[TeammateMailbox] markMessageAsReadByIndex: lock acquired`)
448
449 // Re-read messages after acquiring lock to get the latest state
450 const messages = await readMailboxForMutation(agentName, teamName)
451 logForDebugging(
452 `[TeammateMailbox] markMessageAsReadByIndex: read ${messages.length} messages after lock`,
453 )
454
455 if (messageIndex < 0 || messageIndex >= messages.length) {
456 logForDebugging(
457 `[TeammateMailbox] markMessageAsReadByIndex: index ${messageIndex} out of bounds (${messages.length} messages)`,
458 )
459 return
460 }
461
462 const message = messages[messageIndex]
463 if (!message || message.read) {
464 logForDebugging(
465 `[TeammateMailbox] markMessageAsReadByIndex: message already read or missing`,
466 )
467 return
468 }
469
470 messages[messageIndex] = { ...message, read: true }
471
472 await writeCompactedMailbox(inboxPath, messages, 'markMessageAsReadByIndex')
473 logForDebugging(
474 `[TeammateMailbox] markMessageAsReadByIndex: marked message at index ${messageIndex} as read`,
475 )
476 } catch (error) {
477 const code = getErrnoCode(error)
478 if (code === 'ENOENT') {
479 logForDebugging(
480 `[TeammateMailbox] markMessageAsReadByIndex: file does not exist at ${inboxPath}`,
481 )
482 return
483 }

Callers 1

Calls 7

getInboxPathFunction · 0.85
readMailboxForMutationFunction · 0.85
writeCompactedMailboxFunction · 0.85
getErrnoCodeFunction · 0.85
logForDebuggingFunction · 0.70
logErrorFunction · 0.70
releaseFunction · 0.50

Tested by

no test coverage detected