codex-to-im 1.0.47 → 1.0.48

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/daemon.mjs +14 -1
  2. package/package.json +1 -1
package/dist/daemon.mjs CHANGED
@@ -359,6 +359,10 @@ function getTerminalDrainTimeoutMs() {
359
359
  function isAbortError(error) {
360
360
  return error instanceof DOMException && error.name === "AbortError" || error instanceof Error && error.name === "AbortError";
361
361
  }
362
+ function isWindowsProcessTerminationParseNoise(message) {
363
+ const normalized = message.replace(/\s+/g, " ").trim().toLowerCase();
364
+ return normalized.startsWith("failed to parse item: success:") && normalized.includes("the process with pid") && normalized.includes("has been terminated");
365
+ }
362
366
  function normalizeTaskText(value) {
363
367
  return typeof value === "string" ? value.trim() : "";
364
368
  }
@@ -505,6 +509,7 @@ var init_codex_provider = __esm({
505
509
  }
506
510
  let sawAnyEvent = false;
507
511
  let sawTerminalEvent = false;
512
+ let sawCompletedAssistantContent = false;
508
513
  const runAbortController = new AbortController();
509
514
  let terminalDrainTimer = null;
510
515
  const clearTerminalDrainTimer = () => {
@@ -555,10 +560,14 @@ var init_codex_provider = __esm({
555
560
  case "item.updated":
556
561
  case "item.completed": {
557
562
  const item = event.item;
563
+ const phase = event.type === "item.started" ? "started" : event.type === "item.updated" ? "updated" : "completed";
564
+ if (phase === "completed" && item.type === "agent_message" && typeof item.text === "string" && item.text.trim()) {
565
+ sawCompletedAssistantContent = true;
566
+ }
558
567
  self.handleItemEvent(
559
568
  controller,
560
569
  item,
561
- event.type === "item.started" ? "started" : event.type === "item.updated" ? "updated" : "completed",
570
+ phase,
562
571
  params.sessionId,
563
572
  emittedToolStarts
564
573
  );
@@ -618,6 +627,10 @@ var init_codex_provider = __esm({
618
627
  if (sawTerminalEvent && (runAbortController.signal.aborted || isAbortError(err)) && !userAborted) {
619
628
  break;
620
629
  }
630
+ if ((sawTerminalEvent || sawCompletedAssistantContent) && isWindowsProcessTerminationParseNoise(message)) {
631
+ console.warn("[codex-provider] Suppressed Codex SDK Windows process cleanup parse noise:", message);
632
+ break;
633
+ }
621
634
  if (savedThreadId && !retryFresh && !sawAnyEvent && shouldRetryFreshThread(message)) {
622
635
  console.warn("[codex-provider] Resume failed, retrying with a fresh thread:", message);
623
636
  self.clearCachedThreadId(params.sessionId);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codex-to-im",
3
- "version": "1.0.47",
3
+ "version": "1.0.48",
4
4
  "description": "Installable Codex-to-IM bridge with local setup UI and background service",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/zhangle1987/codex-to-im#readme",