Skip to content

Discover viewed settings and reuse the advertised session form - #1755

Merged
trissim merged 1 commit into
mainfrom
fix/object-settings-sources
Nov 13, 2026
Merged

trissim merged 1 commit into
mainfrom
fix/object-settings-sources

Conversation

@trissim

@trissim trissim commented Nov 13, 2026

Copy link
Copy Markdown

Viewed settings: discovery and original writers

The sidebar used local-override eligibility to decide which settings existed. Files therefore exposed four UI fields and hid every other settings group. Native session advertisements were also confined to the model popup.

The dropdown now uses FormBridge's visible parameter discovery. Each field keeps its original declaration. Local fields still use the same ObjectState parent and explicit override storage. Global fields write and save the original SavedSettings object; their controls say they apply to every view and do not offer a false local override button. Hidden declarations remain hidden through FormBridge.

Native session sources supply AgentProperties. Mailbox sources supply no ACP configuration; channel and file views do not borrow the last agent's state. AgentProperties renders SessionForm over the selected session's actual advertisements and listens to its original event stream, including binding changes. The existing model popup inherits the same form, adding only popup dismissal. All edits and provider-login requests return through the original prompt and its guarded backend writer.

Applied through retained NRA plans. No manual product edits or new agent.

Executed controls

  • Existing selected-view control extended for all discovered groups, global save, local inheritance/reset, source identity, selected view retention, sidebar and context editor: passed before the session extension.
  • Final same UI control plus original agent-configuration model file: 3 passed in 21.75s, exit 0.
  • The UI control receives an arbitrary Boolean advertisement and then a newly added advertisement; both appear without UI field declarations.
  • Cold app/import/MRO passed.
  • No broad suite or profiler.

Actual physical inspection and installation are recorded below after execution; these checks do not establish them.

Limits

This exposes the existing visible Toad settings declarations and the session's actual ACP advertisements. It does not invent advertisements for backend settings that the backend has not declared, or make app-owned operations into per-file overrides.

Copilot AI balanced review requested due to automatic review settings November 13, 2026 03:11

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@trissim
trissim merged commit 4639602 into main Nov 13, 2026
1 of 2 checks passed
@github-actions

Copy link
Copy Markdown

debt-src at a9965dc blocks on 15 lines:

grew BannedVocabulary:src/toad/object_configuration.py +1
grew StringIdentity:.verification/object-settings-sources/agent_author.py +3
grew StringIdentity:.verification/object-settings-sources/author.py +2
grew TypeErrors:src/toad/object_configuration.py +1
grew UnannotatedParameter:src/toad/configured_view.py +4
grew UnannotatedParameter:src/toad/object_configuration.py +1
grew UnannotatedParameter:src/toad/session_presentation.py +2
grew UnannotatedParameter:src/toad/widgets/model_switcher.py +4
found BannedVocabulary:src/toad/object_configuration.py at src/toad/object_configuration.py:39 src/toad/object_configuration.py:83 src/toad/object_configuration.py:85 src/toad/object_configuration.py:89
found TypeErrors:src/toad/object_configuration.py at src/toad/object_configuration.py:39 ("ObjectState" has no attribute "admits"  [attr-defined])
found UnannotatedParameter:src/toad/configured_view.py at src/toad/configured_view.py:33 src/toad/configured_view.py:52 src/toad/configured_view.py:58 src/toad/configured_view.py:68 src/toad/configured_view.py:68 src/toad/configured_view.py:87 src/toad/configured_view.py:135
found UnannotatedParameter:src/toad/object_configuration.py at src/toad/object_configuration.py:41
found UnannotatedParameter:src/toad/session_presentation.py at src/toad/session_presentation.py:188 src/toad/session_presentation.py:195 src/toad/session_presentation.py:195 src/toad/session_presentation.py:233 src/toad/session_presentation.py:280 src/toad/session_presentation.py:299 src/toad/session_presentation.py:299
found UnannotatedParameter:src/toad/widgets/model_switcher.py at src/toad/widgets/model_switcher.py:71 src/toad/widgets/model_switcher.py:71 src/toad/widgets/model_switcher.py:71 src/toad/widgets/model_switcher.py:76 src/toad/widgets/model_switcher.py:83
introduced BannedVocabulary:src/toad/object_configuration.py at lines [39]

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.

2 participants