// Copilot's OpenAI-compatible `/responses` endpoint can emit replay item IDs // that encode upstream connection state. Those IDs are rejected after the // connection changes, so normalize them at the provider boundary before send.
function looksLikeConnectionBoundId(id: string): boolean { if (id.length < 24) { returnfalse;
} if (/^(?:rs|msg|fc)_[A-Za-z0-9_-]+$/.test(id)) { returnfalse;
} if (!/^[A-Za-z0-9+/_-]+=*$/.test(id)) { returnfalse;
} return Buffer.from(id, "base64").length >= 16;
}
export function rewriteCopilotConnectionBoundResponseIds(input: unknown): boolean { if (!Array.isArray(input)) { returnfalse;
}
let rewrote = false; for (const item of input as InputItem[]) { const id = item.id; if (typeof id !== "string" || id.length === 0) { continue;
} if (looksLikeConnectionBoundId(id)) {
item.id = deriveReplacementId(typeof item.type === "string" ? item.type : undefined, id);
rewrote = true;
}
} return rewrote;
}
export function rewriteCopilotResponsePayloadConnectionBoundIds(payload: unknown): boolean { if (!payload || typeof payload !== "object") { returnfalse;
} return rewriteCopilotConnectionBoundResponseIds((payload as { input?: unknown }).input);
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.12Bemerkung:
(vorverarbeitet am 2026-06-06)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.