Skip to content

Commit c1dfc21

Browse files
committed
Preserve zero relevance threshold in settings
1 parent 850efbb commit c1dfc21

2 files changed

Lines changed: 24 additions & 3 deletions

File tree

deployments/desktop/static/desktop.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2223,7 +2223,9 @@
22232223
parts.push(ui().papers.recommendations(papers.length));
22242224
if (metadata.daily_limit) parts.push(ui().papers.dailyLimit(metadata.daily_limit));
22252225
if (metadata.limit_per_source) parts.push(ui().papers.perSourceLimit(metadata.limit_per_source));
2226-
if (metadata.relevance_threshold) parts.push(ui().papers.threshold(metadata.relevance_threshold));
2226+
if (metadata.relevance_threshold !== undefined && metadata.relevance_threshold !== null && metadata.relevance_threshold !== "") {
2227+
parts.push(ui().papers.threshold(metadata.relevance_threshold));
2228+
}
22272229
const sourceParts = [
22282230
metadata.arxiv_categories?.length ? `arXiv ${metadata.arxiv_categories.length}` : "",
22292231
metadata.conferences?.length ? ui().papers.conferenceCount(metadata.conferences.length) : "",
@@ -5274,8 +5276,8 @@
52745276
$("directPdfWriteFeishu").checked = Boolean(reportPrefs.write_feishu);
52755277
$("wikiIngestSetting").checked = reportPrefs.wiki_ingest !== false;
52765278
if ($("notesGitLlmReviewSetting")) $("notesGitLlmReviewSetting").checked = paths.reading_notes_git_llm_review !== false;
5277-
$("dailyLimitInput").value = advanced.daily_limit || 30;
5278-
$("relevanceThreshold").value = advanced.relevance_threshold || 60;
5279+
$("dailyLimitInput").value = advanced.daily_limit ?? 30;
5280+
$("relevanceThreshold").value = advanced.relevance_threshold ?? 60;
52795281
$("relevanceValue").textContent = $("relevanceThreshold").value;
52805282
$("proxyInput").value = advanced.http_proxy || "";
52815283
$("envSettingsForm").className = "env-form";

tests/test_desktop_gui.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1289,6 +1289,25 @@ def test_desktop_save_settings_updates_env_file(tmp_path, monkeypatch: pytest.Mo
12891289
assert result["source_preferences"]["auth_status"]["semantic_scholar_api_key"] is True
12901290

12911291

1292+
def test_desktop_settings_preserves_zero_relevance_threshold(tmp_path, monkeypatch: pytest.MonkeyPatch) -> None:
1293+
env_path = tmp_path / ".env"
1294+
env_path.write_text("PAPERFLOW_RELEVANCE_THRESHOLD=60\n", encoding="utf-8")
1295+
monkeypatch.setattr(agents, "ENV_PATH", env_path)
1296+
1297+
result = agents.save_settings({"PAPERFLOW_RELEVANCE_THRESHOLD": "0"})
1298+
1299+
assert "PAPERFLOW_RELEVANCE_THRESHOLD=0" in env_path.read_text(encoding="utf-8")
1300+
assert result["advanced"]["relevance_threshold"] == 0
1301+
1302+
1303+
def test_desktop_settings_ui_does_not_fallback_zero_relevance_threshold() -> None:
1304+
script = (PROJECT_ROOT / "deployments/desktop/static/desktop.js").read_text(encoding="utf-8")
1305+
1306+
assert "$(\"relevanceThreshold\").value = advanced.relevance_threshold ?? 60;" in script
1307+
assert "$(\"relevanceThreshold\").value = advanced.relevance_threshold || 60;" not in script
1308+
assert "metadata.relevance_threshold !== undefined" in script
1309+
1310+
12921311
def test_desktop_github_sync_commits_notes_with_llm_review(tmp_path, monkeypatch: pytest.MonkeyPatch) -> None:
12931312
bare = tmp_path / "notes.git"
12941313
seed = tmp_path / "seed"

0 commit comments

Comments
 (0)