Repository navigation
fix(acp): registry models keep their own option lists - #19575
Open
StiensWout wants to merge 8 commits into
Open
StiensWout wants to merge 8 commits into
StiensWout wants to merge 8 commits into
Conversation
ACP session config options describe only the session's current model, but the registry snapshot copied one session's options onto every model. The newest live session then overwrote all models until the instance restarted. Each probe and live session now records its options against its current model. The driver keeps probe observations with its probe cache, the runtime coordinator keeps live observations per instance, and both are cleared on auth loss, logout, and disposal. The provider registry no longer copies an older snapshot's options onto ACP Registry models, so polluted caches heal. Fixes pingdotgg#15177 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This PR narrowly fixes ACP Registry model-option propagation so each model retains only options observed for that model, while sanitizing stale cached snapshots and covering probe/live/cache paths with tests. The changes do not introduce a new capability, schema change, deployment change, or analysis override. You can add or adjust custom eligibility rules. Learn more. |
Contributor
Member
|
Taking over this one. I'll rebuild it to current main conventions, trim the tests to what proves the behavior, and push to this branch. |
macroscopeapp
Bot
dismissed
their stale review
October 19, 2026 03:08
Dismissing prior approval to re-evaluate 4036991
This branch has not been deployed
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.
ACP registry agents report options for the session’s current model. T3 copied those choices onto every advertised model and could restore them from saved snapshots after refresh.
Keep probe and live observations by model ID, with live observations taking precedence, including explicit empty lists. Unobserved/custom models use agent defaults. Sanitize saved ACP descriptors to an empty list so MCP rejects explicit options until the model is observed. Preserve current observations through partial snapshots and failed probes; ordinary status refreshes reuse the probe cache, while explicit model refreshes reprobe without discarding a pending same-identity probe.
Built on @StiensWout’s work in #19575, preserving the contributor commits. Fixes #15177. This stays focused on per-model options: #19567 handles selecting the first model-category field; #19754 depends on this behavior.
Verification:
Before the retention fix (e428219a14): pending refresh removes the wide model’s picker.
After (c30568509d), same thread and viewport: all five choices remain.
The final cache-hydration correction (403699172b) changes saved descriptors from null to empty and has separate red/green coverage; it does not change the captured client rendering. Captures use the real client with a font fallback for headless Linux. macOS, Windows, iOS, Android and Electron desktop were not verified.
Implementation: Codex gpt-6.1-sol (high); tests: Codex gpt-6-astra (high); adversarial reviews: Claude claude-opus-5-5 and Codex gpt-6-sol, through the T3 Code harness.