Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
eb5a81e
audit: fix 12 code-quality issues, extract 4 large components, lint-c…
tonythethompson Aug 7, 2026
9a1cbc2
fix(audit): address remaining review findings on PR 156
cursoragent Aug 7, 2026
1091cba
test(mcp): cover UTF-8 skip in docs_search KB loader
cursoragent Aug 7, 2026
cf8f5df
refactor: extract HardwareCompatibilityMatrix + useOliveStream, updat…
tonythethompson Aug 7, 2026
66f497e
📝 Add docstrings to `Freebuff_issue_triage`
coderabbitai[bot] Aug 7, 2026
d51d838
Potential fix for pull request finding
tonythethompson Aug 7, 2026
39832f4
Potential fix for pull request finding
tonythethompson Aug 7, 2026
b030368
Address Copilot review: break IHV circular import, clear SSE reconnec…
cursoragent Aug 7, 2026
bb18252
Extract IHV Interactive Cards tab and DRY provider card props
cursoragent Aug 7, 2026
6569cda
fix(a11y): keep batch job delete keyboard activation off the card han…
cursoragent Aug 7, 2026
00b441c
fix(owr): only mark copy success after clipboard write resolves
cursoragent Aug 7, 2026
4275cc5
test(oliveRecipeHub): cover EP, catalog device, passes, and model_pat…
cursoragent Aug 7, 2026
4e14d85
Fix TRT notes and UI accessibility
tonythethompson Aug 7, 2026
5f83b9f
Merge branch 'Freebuff_issue_triage' of https://github.com/tonythetho…
tonythethompson Aug 7, 2026
d2b30f4
Address remaining review findings across IHV, OWR, stream, and probe …
cursoragent Aug 7, 2026
04785d7
fix: gate CUDA hints, a11y siblings, and audit totals
cursoragent Aug 7, 2026
e6e95ff
test: exercise catalog helper via recipeWithExecutionProviders
cursoragent Aug 7, 2026
3141faa
fix: matrix a11y, olive-stream epochs, drop UI barrel tooltips
cursoragent Aug 7, 2026
df9ae1d
fix: use const for finalizeExecution exitCode
cursoragent Aug 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
176 changes: 153 additions & 23 deletions docs/Tech Debt & Issues.md

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion olive-mcp-server/olive_mcp_server/tools/docs_search.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,8 @@ def _load_kb_text() -> list[tuple[str, str]]:
data = json.load(f)
for path, text in _flatten(data, prefix=file.stem):
all_text.append((path, text))
except Exception:
except (OSError, UnicodeDecodeError, json.JSONDecodeError) as exc:
logger.debug("Failed to load KB file %s: %s", file.name, exc)
continue
return all_text

Expand Down
8 changes: 4 additions & 4 deletions olive-mcp-server/olive_mcp_server/tools/strategy_advisor.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,12 @@ def _normalize_model_type(model_type: str) -> str:


def _latency_rank(latency: str) -> int:
l = latency.lower()
if "<100" in l or "100ms" in l or "realtime" in l or "real-time" in l:
lat_lower = latency.lower()
if "<100" in lat_lower or "100ms" in lat_lower or "realtime" in lat_lower or "real-time" in lat_lower:
return 0
if "<500" in l or "500ms" in l:
if "<500" in lat_lower or "500ms" in lat_lower:
return 1
if "<1" in l and "s" in l:
if "<1" in lat_lower and "s" in lat_lower:
return 2
return 3

Expand Down
18 changes: 18 additions & 0 deletions olive-mcp-server/tests/test_docs_search_semantic.py
Original file line number Diff line number Diff line change
Expand Up @@ -315,3 +315,21 @@ def fake_build(texts):
docs_search._get_live_index()
assert docs_search._LIVE_EMBED_CACHE_TIME == 200.0
assert docs_search._LIVE_SNIPPETS[0][1] == "newer content"


def test_load_kb_text_skips_invalid_utf8_and_keeps_valid_files(
tmp_path, monkeypatch: pytest.MonkeyPatch
):
"""One undecodable KB file must not abort loading of sibling valid JSON."""
bad = tmp_path / "bad_utf8.json"
good = tmp_path / "good.json"
bad.write_bytes(b'{"oops": "\xff\xfe invalid"}')
good.write_text('{"pass": "OnnxQuantization works"}', encoding="utf-8")

monkeypatch.setattr(docs_search, "KB_DIR", tmp_path)
loaded = docs_search._load_kb_text()
sources = " ".join(path for path, _ in loaded)
snippets = " ".join(text for _, text in loaded)
assert "good" in sources
assert "OnnxQuantization" in snippets
assert "bad_utf8" not in sources
1 change: 1 addition & 0 deletions src/components/TitleBar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ export function TitleBar() {

useEffect(() => {
const tauri = typeof window !== "undefined" && ("__TAURI_INTERNALS__" in window || "__TAURI__" in window);
// eslint-disable-next-line react-hooks/set-state-in-effect
setIsTauri(Boolean(tauri));
if (!tauri) return;

Expand Down
1 change: 1 addition & 0 deletions src/components/features/ArenaConvenience.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ export function FromOliveOutputs({ slotLabel, onFile }: FromOliveOutputsProps) {
// Do not auto-retry after a failed list: error + null payload would re-fire
// forever. Refresh list (or re-open after clearing) is the recovery path.
if (open && !payload && !loading && !error) {
// eslint-disable-next-line react-hooks/set-state-in-effect
void loadList();
}
}, [open, payload, loading, error, loadList]);
Expand Down
Loading