Merge pull request #631 from pbakaus/fix/488-strip-reserved-poll-fields

Fix: strip page-controlled poller fields before they reach the agent (#488)
This commit is contained in:
Abdul Wahab
2026-08-24 04:32:49 +05:00
committed by GitHub
4 changed files with 91 additions and 4 deletions
+9
View File
@@ -181,8 +181,16 @@ function chatAgentLikelyActive() {
// cap at 10 MB to guard against runaway writes from a misbehaving client.
const MAX_ANNOTATION_BYTES = 10 * 1024 * 1024;
const POLLER_OWNED_EVENT_FIELDS = ['_instructions', '_completionAck', '_acceptResult'];
function stripPollerOwnedEventFields(event) {
if (!event || typeof event !== 'object') return;
for (const key of POLLER_OWNED_EVENT_FIELDS) delete event[key];
}
function enqueueEvent(event) {
if (!event) return;
stripPollerOwnedEventFields(event);
// Dedupe by (session, type), except mount failures, which are per-variant:
// variant 2 failing must not be swallowed because variant 1's failure is
// still queued.
@@ -1034,6 +1042,7 @@ function createRequestHandler({ detectScript, liveScriptParts }) {
res.end(JSON.stringify({ error }));
return;
}
stripPollerOwnedEventFields(msg);
if (msg.type === 'agent_phase') {
recordAgentPhase(msg.id, msg.phase, {
...(Number.isFinite(msg.durationMs) ? { durationMs: msg.durationMs } : {}),