MCPcopy Create free account
hub / github.com/HELPMEEADICE/doge-code / appendEntry

Method appendEntry

src/utils/sessionStorage.ts:1174–1311  ·  view source on GitHub ↗
(entry: Entry, sessionId: UUID = getSessionId() as UUID)

Source from the content-addressed store, hash-verified

1172 }
1173
1174 async appendEntry(entry: Entry, sessionId: UUID = getSessionId() as UUID) {
1175 if (this.shouldSkipPersistence()) {
1176 return
1177 }
1178
1179 const currentSessionId = getSessionId() as UUID
1180 const isCurrentSession = sessionId === currentSessionId
1181
1182 let sessionFile: string
1183 if (isCurrentSession) {
1184 // Buffer until materializeSessionFile runs (first user/assistant message).
1185 if (this.sessionFile === null) {
1186 this.pendingEntries.push(entry)
1187 return
1188 }
1189 sessionFile = this.sessionFile
1190 } else {
1191 const existing = await this.getExistingSessionFile(sessionId)
1192 if (!existing) {
1193 logError(
1194 new Error(
1195 `appendEntry: session file not found for other session ${sessionId}`,
1196 ),
1197 )
1198 return
1199 }
1200 sessionFile = existing
1201 }
1202
1203 // Only load current session messages if needed
1204 if (entry.type === 'summary') {
1205 // Summaries can always be appended
1206 void this.enqueueWrite(sessionFile, entry)
1207 } else if (entry.type === 'custom-title') {
1208 // Custom titles can always be appended
1209 void this.enqueueWrite(sessionFile, entry)
1210 } else if (entry.type === 'ai-title') {
1211 // AI titles can always be appended
1212 void this.enqueueWrite(sessionFile, entry)
1213 } else if (entry.type === 'last-prompt') {
1214 void this.enqueueWrite(sessionFile, entry)
1215 } else if (entry.type === 'task-summary') {
1216 void this.enqueueWrite(sessionFile, entry)
1217 } else if (entry.type === 'tag') {
1218 // Tags can always be appended
1219 void this.enqueueWrite(sessionFile, entry)
1220 } else if (entry.type === 'agent-name') {
1221 // Agent names can always be appended
1222 void this.enqueueWrite(sessionFile, entry)
1223 } else if (entry.type === 'agent-color') {
1224 // Agent colors can always be appended
1225 void this.enqueueWrite(sessionFile, entry)
1226 } else if (entry.type === 'agent-setting') {
1227 // Agent settings can always be appended
1228 void this.enqueueWrite(sessionFile, entry)
1229 } else if (entry.type === 'pr-link') {
1230 // PR links can always be appended
1231 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