Skip to content

Modernize cloud and Ollama model settings - #10

Merged
dovvnloading merged 1 commit into
mainfrom
agent/sota-model-settings
Jul 15, 2026
Merged

dovvnloading merged 1 commit into
mainfrom
agent/sota-model-settings

Conversation

@dovvnloading

Copy link
Copy Markdown
Owner

What changed

  • remove hardcoded Ollama runtime defaults and migrate legacy sessions to explicit Auto/Inherit/Explicit assignments
  • add a provider-neutral model catalog and deterministic runtime resolver
  • discover installed Ollama models asynchronously with health and descriptor metadata
  • add searchable model pickers and clearer task routing controls
  • make cloud model discovery asynchronous with inline status and isolate saved model profiles by provider
  • commit API settings only after provider initialization succeeds
  • remove silent Gemini model fallbacks and preserve custom IDs as visible, unverified selections

Why

The previous settings flow treated model IDs as opaque strings, blocked the UI during discovery, and could activate models a user did not have installed. Cloud provider switches could also reuse incompatible saved model IDs. This PR makes readiness and selection state explicit while preserving compatibility adapters for existing runtime callers.

Validation

  • python -m compileall -q graphlink_app
  • git diff --check
  • headless Qt settings construction smoke test
  • python -m pytest -q — 414 passed, 1 warning

The internal proposal remains local-only under doc/ and is excluded from this PR.

@dovvnloading
dovvnloading merged commit a1dbaed into main Jul 15, 2026
6 checks passed
@dovvnloading
dovvnloading deleted the agent/sota-model-settings branch July 19, 2026 15:36
dovvnloading added a commit that referenced this pull request Jul 29, 2026
… (findings #10, #11) (#174)

Two dead settings from the R8a audit, both with real backend/UI wiring
already in place on one side only.

- Notification-type gating (finding #10): Settings' Info/Success/Warning/
  Error checkboxes persisted real preferences via SettingsManager.
  set_notification_preferences, and get_notification_type_enabled already
  existed to read them back - nothing ever called it. NotificationState.show()
  set visible=True unconditionally regardless of what the user had
  unchecked. register_notifications now takes an optional SettingsManager;
  show() early-returns (leaving the current banner, if any, untouched) when
  the message's type is disabled. Gating lives in the one method every call
  site already goes through, so every existing notifications.show(...) call
  across canvas.py, agents.py, chat_library.py, settings.py, plugins.py,
  autosave.py, and crash_recovery.py is covered without touching any of
  them.

- View popover FONT section (finding #11): the family/size/color controls
  already round-tripped real setFontFamily/setFontSize/setFontColor intents
  into scene state - nothing consumed scene.fontFamily/fontSizePt/fontColor
  as CSS. SceneCanvas now writes them as --gl-node-font-family/-size/-color
  custom properties on the canvas wrapper (fontSizePt is points, not
  pixels - the existing 8-16 range and 9pt default only make sense that
  way, and pt is a real CSS unit). .scene-node/.scene-node-title/
  .scene-node-body reference the tokens with their prior literal values as
  fallbacks, so every node's title and generic body text now responds to
  the FONT section live. Scoped to the shared base rules rather than each
  node kind's own content styling (markdown headings, code blocks) so
  typographic hierarchy and monospace code stay intact.

Live-verified end to end in a running instance: changing the font size
slider, family select, and color swatch each visibly restyled a real
canvas node's title and body text; toggling a notification type off
suppressed that type's banner while leaving others unaffected.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
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.

1 participant