Skip to content

fix(coding-agent): omit native search replay from /btw - #3523

Open
MoerAI wants to merge 3 commits into
code-yeongyu:mainfrom
MoerAI:fix/3506-isolate-native-side-query-history
Open

MoerAI wants to merge 3 commits into
code-yeongyu:mainfrom
MoerAI:fix/3506-isolate-native-side-query-history

Conversation

@MoerAI

@MoerAI MoerAI commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #3506.

/btw replays a copied conversation without main-turn provider hooks and declares
no tools. A completed native search therefore became an undeclared
web_search_call on the next side request.

Filter only native web-search replay blocks before budgeting that copied history.
Keep visible assistant content, stored conversation, and normal main-turn replay
unchanged. Side queries do not gain search tools.

CI dependency correction

The static job on d888ee7 exposed an undeclared test-only OpenAI SDK type import.
The regression now captures the inspected payload as Record<string, unknown>.
No assertion, fixture, runtime behavior, dependency manifest or lint configuration
changed.

The same npm run knip:check proof fails before this correction and exits 0
afterward. It retains one pre-existing configuration hint about
./dist/bedrock-provider.js. The owner file passes 27/27, full-output
npm run check passes, and standalone LSP syntax, semantic and suggestion
diagnostics are all empty. Fresh RPC and mock tool-loop QA each pass 4/4,
with sandbox teardown and real authentication unchanged.

Verification

  • The four regression scenarios failed on original main: the actual
    Responses/Codex request carried web_search_call without a tool declaration.
    The original source-CLI RPC proof then passed all four native-only/mixed-text
    scenarios on both APIs. Each side query made one local fake-model request,
    preserved visible context and main messages, and omitted native replay.
  • After integrating fe079b4, the owning btw-side-query.test.ts passes 27/27.
    npm run build and the full npm run check both pass.
  • Fresh RPC self-test and deterministic mock tool loop pass 4/4 each. The isolated
    CLI sandboxes are removed and real authentication is unchanged.
  • The prior integration increment changed documentation only: the original runtime
    filter is unchanged. Its tracker entry now lives in
    changes/unreleased/3523.md, including the package release block. The actual
    HEAD changelog gate passes.

Fresh CLI QA commands:

node .agents/skills/senpi-qa/scripts/rpc-drive.mjs --self-test
node .agents/skills/senpi-qa/scripts/mock-loop.mjs --with-tool

The earlier full suite at 2fc890f passed all script tests and 12 of 13
workspaces. Its coding-agent compaction failure was reproduced on unmodified
9aaf1722f. That historical run is not claimed as a green full suite or as a
fresh full-suite run after this integration.

Evidence receipts

Original targeted source-CLI output:

RPC_NATIVE_ALL_PASS 4
COMMAND_EXIT 0
AUTH_UNCHANGED true
SANDBOX_REMOVED true

SHA-256 receipts for retained local evidence:

28d773686ccdb4d52937fba70d2b206daa81ab2049c893e28cd2672ab917e94e  original-red-native.txt
1e17c96749925918905a83ea878a627c247dd071c03a06bd2ae8ae4680b2ca70  targeted-rpc.txt
a616db9de5f4baed80570588920cf3b3079bd649ec67e08625c2e5ffcfc4a801  base-compaction-control.txt

SHA-256 receipts for the test-only CI correction:

d5efeb38ae788350767c3187eef511ea67105af4e81393053e903e58ad4e1cc2 original-red.txt
e06442d08bdc82ed3c4edfb203c032019ba1275d6f8a830ff6ee33323c26aa95 green.txt
96fc27fe00a9dbae38c08827886cdf1c8354645f53f2fb989ec39a427a8f0789 owner-tests.txt
8513f5661e6dfc17cede71bfc4556e2d64814196405bc770318eb96e3d824f48 lsp.txt
6816878970b8eb461558ad79af7ccc7fcf870a57b3a18a8f9160c80b48f2f13e check.txt
c86a8c9902cd93a740d1063d776ad17ad38f1852c989cc6cd63bd54c0fe0400a rpc.txt
92c82992eb80eea623bb4f6bccf203360f390283a5787ca1b96edabd6e46c9bd mock-tool.txt

CI

On corrected HEAD 56c4e83affc364051322e2cf3da45477604f8f48, Static checks now
succeed, clearing the undeclared SDK import failure. The Changelog gate also
succeeds. The final PR rollup has 36 terminal records: fifteen successful,
fifteen skipped, two failed, three cancelled and one neutral.

Workspaces/scripts
passes 656/658 script tests; it and the aggregate Check and test fail. The two
assertions are the generated dist/bun/cli.js knip entry gap and the stale
chatgpt-usage-limit.ts#describeChatGptUsageLimit pre-existing-export exception.
Both reproduce independently on unmodified main
4d9961eef1c24895f312a074870d8d8143ba81ba after a successful build, with each
focused owner command exiting 1 and no tracked source changes.

No checker, exception list, assertion or generated file was changed to hide
those failures. The three cancelled jobs remain unverified, and CI is not green.
Upstream READ permission does not permit a rerun.

Independent main control receipts:

b123bd6f9f8d02329397c46d78ac2ddd76d44383c0742de8beedc69356cc4f81 build.txt
ba3adacb7efd7bd7a97a9cdcc18bd153c57d41b25769f6891eb9023846692093 owner-main.txt
f8ed88cbcd6a37a043071dc3a18061c1f1c1ff77b1a2796ac72ab8b1f3d81cb4 main-build.txt
328daa18f3091514529410ffa7f81eae6d85e8655b37fd61b1490791b677d4b6 main-preexisting-exports-confirmed.txt

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-17T12:32:21.696985Z 2fc890f PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@code-yeongyu code-yeongyu added the review-queued Queued for batched Opus review label Oct 17, 2026
@code-yeongyu code-yeongyu removed the review-queued Queued for batched Opus review label Oct 26, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

/btw fails after native web search: replays web_search_call without declaring web_search

2 participants