Store: real-source fixes found by running search against live repos

- F-Droid: percent-encode repo file names (a '#' in one screenshot name broke
  the whole main repo); a bad image name drops that image, not the app.
- Search: sources still fetching report 'loading' (UI says so and refreshes
  quietly); indexes warm up at server start; page-only SideQuest is not
  searched and appears as a 'Browse SideQuest' link instead of an error.
- Browse (empty query) ranks VR, artwork and recent updates first; the F-Droid
  archive is off by default (old versions only).
- Throttled sources fall back to their last cached copy; per-host message.
- Curated GitHub list gains Open Saber Plus (MIT) with icon and screenshots.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
saphidandClaude Opus 5.5 committed 2026-09-28 22:02:38 +10:00
1 parent f10b5fe159
commit 69f790b83a
12 files changed
+200 -111

No files matched your search

+1 -2
View File
@@ -26,8 +26,7 @@ class SideQuestTests(unittest.TestCase):
self.assertEqual(entry['images']['screenshots'], [])
with self.assertRaisesRegex(SourceError, 'page-only'):
sidequest.download(source, '123')
with self.assertRaisesRegex(SourceError, 'page-only'):
sidequest.search(source, 'open saber')
self.assertEqual(sidequest.search(source, 'open saber'), [])
self.assertEqual(sidequest.search(source, 'open saber', 0), [])
def test_invalid_ids(self):