Repository navigation
fix(application): retain unread SDK tool-list candidates - #1010
Merged
Merged
Conversation
pengfei-threemoonslab
marked this pull request as ready for review
October 10, 2026 18:12
This was referenced Oct 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
When constructor or returned-handle ownership is unread, the SDK reader can discard an inspectable tools initializer. This retains readable function references as explicitly unestablished candidates, with the original constructor/list refusal attached to each tool. Constructor identity, list mutation, handle escape, and release control checks remain in force.
Refs #1001. This is a diagnostic increment accepted by the owner on 2026-10-10; it does not close the issue or claim restored Q2 eligibility. Continue #915 after this increment's review.
Reproduction and remaining acceptance
At the frozen CRM#5 and MIS_TALENT#7 refs:
0e58e6ffand the parent of feat(readers): follow caller-supplied agent lists #963,86ed18ef, produce the four Wycena changes and three Finance/Preflight changes.7c160cfb(feat(readers): follow caller-supplied agent lists #963) drops all Wycena rows and the Finance row, confirming the introducing change.68517566additionally withholds constructor identities; the readable Preflight rows are also unestablished.The four Wycena changes (
policz_wycene,policz_wysylke,wyslij_obraz,znajdz_klienta) share a current caller-census refusal: dynamic import machinery in_smoke.py:5,14leaves constructor identity unproved. Finance'sload_and_validateadditionally has an escaped returned handle and a retained namespace consumed as a value inapp/api.py:25/26. These are evidence limitations, not proof that the application is unsafe.The full 49-case remeasurement, scoring ledger, and released-build evaluation are deferred to the separate baseline implementation requested by the owner. #1001's established-row restoration and full-corpus acceptance remain open.
Type
Authorship
Verification
ready: true), and source contract v42 passed.not_established.complete, release decisionpassed.095c5e59724d14148b7cd903c4da45df2b4e2551: all 14 applicable checks passed, including all six suite shards and aggregate coverage. The release-tag consistency check was skipped by its pull-request condition.CI for final head
d142c7decdf771af7b0a5df5679b26d0b684d3bf: all 14 applicable checks passed, including all six suite shards and aggregate coverage. The release-tag consistency check was skipped by its pull-request condition.The extended nightly matrix was not completed. Local Git fixture checks use a test-process-only override of the user's ignore file; user configuration was not changed.
Review and fixes
Author review retained existing definition limitations alongside the new candidate explanation. It also bounded total candidate allocation across repeated list spreads/concatenations, with a regression case. Initial CI found two old empty-row assertions and a missing measured weight for the new test file. The assertions now require unestablished rows with uncertainty and preserve both original refusal checks. The measured weight was added with its JUnit provenance; no test was excluded or marked xfail.
Independent review round 1 (head
095c5e5): one P2 finding. Recovered candidates omitted caller invocation conditions, so a changed caller condition was absent from the review. The fix applies those conditions with the same order and deduplication as normal list resolution, retaining initializer conditions and uncertainty. An end-to-end condition-change regression test was added.Independent review round 2 (the final SDK/test patch, committed as
d142c7d): the reviewer reran the original reproduction and all 13 focused tests. The P2 is addressed; no new actionable findings. Constructor, mutation, escaped-handle and uncertainty refusals remain. Both reviews were read-only; the coding agent implemented the fix.Sequential combination validation
The six increments are stacked in the approved order through #1019 at
a4ea56e5987bf. Against that unchanged source, 1,546 combination tests passed with 1 skip. Independent combination review passed another 383 tests and found no actionable P1/P2; candidate uncertainty, inherited conditions and refusal routes were preserved. These checks did not score a corpus or complete #1001's established-row acceptance.Release-readiness notes
Post-merge main verification
Squash-merged as
cd1433be1b12; the resulting tree equals the independently reviewed PR head. On that main commit, 210 targeted regressions passed and local check/verifier control completed with release decisionpassed. Main CI run 38090003419 passed all 13 jobs, including six suite shards, aggregate coverage and release-tag consistency, before proceeding to the next merge. Baseline implementation and full established-row acceptance remain deferred/open as described above.