Browse Source

Merge pull request #949 from mhenke/omos/fix-948-synthetic-log-noise

fix(board-injection): gate synthetic part log on task-status shape
Alvin 1 week ago
parent
commit
593547cf4a
1 changed files with 10 additions and 3 deletions
  1. 10 3
      src/hooks/task-session-manager/board-injection.ts

+ 10 - 3
src/hooks/task-session-manager/board-injection.ts

@@ -16,6 +16,8 @@ import type {
 } from '../../utils';
 } from '../../utils';
 import {
 import {
   isInternalInitiatorPart,
   isInternalInitiatorPart,
+  parseTaskIdFromTaskOutput,
+  parseTaskStateFromOutput,
   parseTaskStatusOutput,
   parseTaskStatusOutput,
   renderRunningTaskPlaceholder,
   renderRunningTaskPlaceholder,
 } from '../../utils';
 } from '../../utils';
@@ -261,9 +263,14 @@ export function updateFromInjectedCompletion(
 
 
   const status = parseTaskStatusOutput(part.text);
   const status = parseTaskStatusOutput(part.text);
   if (!status) {
   if (!status) {
-    log('[task-session-manager] synthetic part missing task status', {
-      textPreview: part.text.slice(0, 120),
-    });
+    // Only flag text shaped like task-status output that failed to parse.
+    // Native delegation prompts (e.g. OpenCode's "@agent" expansion) are
+    // synthetic but never task-status shaped — skip silently.
+    if (parseTaskIdFromTaskOutput(part.text) || parseTaskStateFromOutput(part.text)) {
+      log('[task-session-manager] synthetic part missing task status', {
+        textPreview: part.text.slice(0, 120),
+      });
+    }
     return undefined;
     return undefined;
   }
   }
   if (status.state !== 'completed' && status.state !== 'error') {
   if (status.state !== 'completed' && status.state !== 'error') {