mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-03-22 23:53:08 +00:00
Fix agent output summary for pipeline steps (#812)
* Changes from fix/agent-output-summary-for-pipeline-steps * feat: Optimize pipeline summary extraction and fix regex vulnerability * fix: Use fallback summary for pipeline steps when extraction fails * fix: Strip follow-up session scaffold from pipeline step fallback summaries
This commit is contained in:
@@ -101,12 +101,32 @@ export function detectTaskStartMarker(text: string): string | null {
|
||||
}
|
||||
|
||||
/**
|
||||
* Detect [TASK_COMPLETE] marker in text and extract task ID
|
||||
* Detect [TASK_COMPLETE] marker in text and extract task ID and summary
|
||||
* Format: [TASK_COMPLETE] T###: Brief summary
|
||||
*/
|
||||
export function detectTaskCompleteMarker(text: string): string | null {
|
||||
const match = text.match(/\[TASK_COMPLETE\]\s*(T\d{3})/);
|
||||
return match ? match[1] : null;
|
||||
export function detectTaskCompleteMarker(text: string): { id: string; summary?: string } | null {
|
||||
// Use a regex that captures the summary until newline or next task marker
|
||||
// Allow brackets in summary content (e.g., "supports array[index] access")
|
||||
// Pattern breakdown:
|
||||
// - \[TASK_COMPLETE\]\s* - Match the marker
|
||||
// - (T\d{3}) - Capture task ID
|
||||
// - (?::\s*([^\n\[]+))? - Optionally capture summary (stops at newline or bracket)
|
||||
// - But we want to allow brackets in summary, so we use a different approach:
|
||||
// - Match summary until newline, then trim any trailing markers in post-processing
|
||||
const match = text.match(/\[TASK_COMPLETE\]\s*(T\d{3})(?::\s*(.+?))?(?=\n|$)/i);
|
||||
if (!match) return null;
|
||||
|
||||
// Post-process: remove trailing task markers from summary if present
|
||||
let summary = match[2]?.trim();
|
||||
if (summary) {
|
||||
// Remove trailing content that looks like another marker
|
||||
summary = summary.replace(/\s*\[TASK_[A-Z_]+\].*$/i, '').trim();
|
||||
}
|
||||
|
||||
return {
|
||||
id: match[1],
|
||||
summary: summary || undefined,
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user