fix(atlas): tighten session reuse metadata parsing

This commit is contained in:
HaD0Yun
2026-03-17 18:14:17 +09:00
parent 5c6194372e
commit 8adf6a2c47
4 changed files with 84 additions and 8 deletions
+7 -4
View File
@@ -1,8 +1,11 @@
export function extractSessionIdFromOutput(output: string): string | undefined {
const taskMetadataMatches = [...output.matchAll(/<task_metadata>[\s\S]*?session_id:\s*(ses_[a-zA-Z0-9_]+)[\s\S]*?<\/task_metadata>/gi)]
const lastTaskMetadataMatch = taskMetadataMatches.at(-1)
if (lastTaskMetadataMatch) {
return lastTaskMetadataMatch[1]
const taskMetadataBlocks = [...output.matchAll(/<task_metadata>([\s\S]*?)<\/task_metadata>/gi)]
const lastTaskMetadataBlock = taskMetadataBlocks.at(-1)?.[1]
if (lastTaskMetadataBlock) {
const taskMetadataSessionMatch = lastTaskMetadataBlock.match(/session_id:\s*(ses_[a-zA-Z0-9_]+)/i)
if (taskMetadataSessionMatch) {
return taskMetadataSessionMatch[1]
}
}
const explicitSessionMatches = [...output.matchAll(/Session ID:\s*(ses_[a-zA-Z0-9_]+)/g)]