MCPcopy Create free account
hub / github.com/AnukarOP/claude-code-leaked / appendEntry

Method appendEntry

source code/utils/sessionStorage.ts:1130–1267  ·  view source on GitHub ↗
(entry: Entry, sessionId: UUID = getSessionId() as UUID)

Source from the content-addressed store, hash-verified

1128 }
1129
1130 async appendEntry(entry: Entry, sessionId: UUID = getSessionId() as UUID) {
1131 if (this.shouldSkipPersistence()) {
1132 return
1133 }
1134
1135 const currentSessionId = getSessionId() as UUID
1136 const isCurrentSession = sessionId === currentSessionId
1137
1138 let sessionFile: string
1139 if (isCurrentSession) {
1140 // Buffer until materializeSessionFile runs (first user/assistant message).
1141 if (this.sessionFile === null) {
1142 this.pendingEntries.push(entry)
1143 return
1144 }
1145 sessionFile = this.sessionFile
1146 } else {
1147 const existing = await this.getExistingSessionFile(sessionId)
1148 if (!existing) {
1149 logError(
1150 new Error(
1151 `appendEntry: session file not found for other session ${sessionId}`,
1152 ),
1153 )
1154 return
1155 }
1156 sessionFile = existing
1157 }
1158
1159 // Only load current session messages if needed
1160 if (entry.type === 'summary') {
1161 // Summaries can always be appended
1162 void this.enqueueWrite(sessionFile, entry)
1163 } else if (entry.type === 'custom-title') {
1164 // Custom titles can always be appended
1165 void this.enqueueWrite(sessionFile, entry)
1166 } else if (entry.type === 'ai-title') {
1167 // AI titles can always be appended
1168 void this.enqueueWrite(sessionFile, entry)
1169 } else if (entry.type === 'last-prompt') {
1170 void this.enqueueWrite(sessionFile, entry)
1171 } else if (entry.type === 'task-summary') {
1172 void this.enqueueWrite(sessionFile, entry)
1173 } else if (entry.type === 'tag') {
1174 // Tags can always be appended
1175 void this.enqueueWrite(sessionFile, entry)
1176 } else if (entry.type === 'agent-name') {
1177 // Agent names can always be appended
1178 void this.enqueueWrite(sessionFile, entry)
1179 } else if (entry.type === 'agent-color') {
1180 // Agent colors can always be appended
1181 void this.enqueueWrite(sessionFile, entry)
1182 } else if (entry.type === 'agent-setting') {
1183 // Agent settings can always be appended
1184 void this.enqueueWrite(sessionFile, entry)
1185 } else if (entry.type === 'pr-link') {
1186 // PR links can always be appended
1187 void this.enqueueWrite(sessionFile, entry)

Calls 12

shouldSkipPersistenceMethod · 0.95
enqueueWriteMethod · 0.95
persistToRemoteMethod · 0.95
getSessionIdFunction · 0.85
getAgentTranscriptPathFunction · 0.85
getSessionMessagesFunction · 0.85
asAgentIdFunction · 0.85
isTranscriptMessageFunction · 0.85
logErrorFunction · 0.70
hasMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected