Files
OmniRoute/electron/assets/remoteServerPrompt.html
Praveen K Palaniswamy 65e81158ab fix(ollama): route models by advertised capability (#11088)
Landed with the design call resolved per the owner's pick — **option 1**: the synced store is now endpoint-agnostic (persistDiscoveredModels and managedModelImport no longer drop non-chat models at write time), and chat selectability moved to read time (auto-pool expansion in autoStrategy applies filterChatSelectableModels; the models-route projection already had its chatOnly filter). Your discovery test now passes end-to-end (3/3): /api/show capabilities persist per connection and image/embedding requests route through the advertising host.

Reconciliation notes: conflicted areas merged onto the current tip (adobe discovery import, requestedModel preflight signature, resolvedProvider fast-path coexists with the synced-route override — explicit resolution wins); carried base-red drains (#10055 memoization, #11071 test variants) dropped as already-landed; the managed-model-import exclusion test was propagated to the new contract (image/video models persist; the read filter still hides them from chat pickers — pinned by a new assertion). Full battery: 205/206 focused (the one red is a confirmed periodic-timer timing flake on the loaded devbox — 20/20 isolated), autoCombo vitest 30/30, combo suites 46/46, gates + typecheck clean.

Thank you @yourspraveen — the capability probe + routing design was right; it just needed the store contract opened up. Fixes #11087.
2026-08-23 11:45:01 -03:00

87 lines
2.0 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta
http-equiv="Content-Security-Policy"
content="default-src 'none'; style-src 'unsafe-inline'; script-src 'self'"
/>
<title>Connect to Remote Server</title>
<style>
body {
margin: 0;
padding: 20px;
font-family:
-apple-system,
BlinkMacSystemFont,
"Segoe UI",
sans-serif;
background: #1a1a1a;
color: #e5e5e5;
user-select: none;
}
p {
margin: 0 0 12px;
font-size: 13px;
color: #a3a3a3;
}
input {
width: 100%;
box-sizing: border-box;
padding: 8px 10px;
font-size: 13px;
border-radius: 6px;
border: 1px solid #3f3f3f;
background: #262626;
color: #e5e5e5;
}
.error {
color: #f87171;
font-size: 12px;
min-height: 16px;
margin-top: 6px;
}
.actions {
margin-top: 16px;
display: flex;
justify-content: flex-end;
gap: 8px;
}
button {
padding: 7px 14px;
font-size: 13px;
border-radius: 6px;
border: 1px solid #3f3f3f;
background: #262626;
color: #e5e5e5;
cursor: pointer;
}
button.primary {
background: #ff586b;
border-color: #ff586b;
color: #fff;
}
</style>
</head>
<body>
<p>
Point this desktop app at an already-running OmniRoute server (e.g. a Docker/OrbStack
container) instead of spawning a local one. Leave blank and Save to disconnect.
</p>
<input
id="url-input"
type="text"
placeholder="http://localhost:20128"
autocomplete="off"
spellcheck="false"
/>
<div class="error" id="error"></div>
<div class="actions">
<button id="cancel-btn">Cancel</button>
<button id="save-btn" class="primary">Save</button>
</div>
<script src="../remoteServerPromptRenderer.js"></script>
</body>
</html>