Commit graph

51 commits

Author SHA1 Message Date
3550a4e2e2 Harden vectorization task against per-package failures
A single failing package used to kill its whole worker thread silently
because only Vectorizer::Error was rescued per package. Now every
StandardError is caught and logged with class and backtrace, and the
embedding write is narrowed to update_column(:embedding) so the task
only ever issues a minimal UPDATE - it cannot touch any other column
or fire model callbacks. Progress stats no longer serialize database
writes through the mutex.
2026-08-23 00:11:52 +02:00
4d07f43a2e Show related packages based on description embeddings
Package pages get a "Related packages" section: a nearest neighbor
query against the package's own stored embedding (no external service
call), excluding the package itself. Packages without an embedding
render no section.
2026-08-22 23:47:42 +02:00
4948fe50e3 Add semantic package search via pgvector embeddings
Package text search now combines several strategies: exact name match,
name prefix promotion, compound word splitting ("sqlite browser" finds
"sqlitebrowser") and semantic nearest neighbor search over description
embeddings computed by an external embedding service (all-MiniLM-L6-v2,
384 dims) stored with the pgvector extension. Classic PostgreSQL
full-text search remains as fallback when the vector service is
unreachable. Gibberish queries without lexical overlap with the package
data return empty results instead of random matches.

Embeddings can be backfilled with bin/rails debshots:compute_vectors.

Also drops the unused lograge gem from the Gemfile.
2026-08-22 22:07:56 +02:00
9d0009b129 return approved screenshots only in public json. fixes #96 2026-02-04 00:10:26 +01:00
36984ff1d4 lab 2025-04-11 09:39:33 +02:00
25672aabb0 Update to Rails 7.2 2025-02-25 21:57:16 +01:00
7fe26d471e Do not return unapproved screenshots 2024-07-21 23:59:54 +02:00
f9130c6972 Cruft 2021-03-10 01:04:43 +01:00
2b24083653 SQL optimisation rolled back. It lead to access problems. 2021-03-01 02:07:55 +01:00
b36a49a6cd Avoid N+1 SQL queries with CanCanCan accessibility checks 2021-03-01 00:49:25 +01:00
7a3b65fe50 Authorisation management using CanCanCan added 2021-02-28 21:36:46 +01:00
ec43f47f92 Show Moderate link in topbar. Add menu icons. 2021-02-24 19:18:19 +01:00
24718c14b7 Added missing dependency 2021-02-21 17:08:35 +01:00
09fc6e0113 Added to_param to refer to packages by /:name 2021-02-18 01:57:33 +01:00
cdb4772145 Forward deprecation 2020-08-17 00:43:50 +02:00
Christoph Haas
0207cb194b Cope with new installation without screenshots 2018-08-22 13:10:22 +02:00
Christoph Haas
8e668603fc Fixed sort order of packages and screenshots
Packages are sorted by most visits
Screenshots are sorted by newness
2018-08-06 18:41:05 +02:00
24a27e3a0e List layout made less cluttered 2018-05-29 16:49:14 +02:00
0bfacbee30 Anonymous uploads replaced by creation of ad-hoc users 2017-08-17 09:31:06 +02:00
Christoph Haas
193d44f89a Stuff 2017-08-14 08:09:23 +02:00
8e2ebe3cf6 Loading of Ubuntu reviews slightly refactored 2017-04-05 16:27:14 +02:00
48840f6254 Upgrade to Rails 5.0.1 2016-10-29 17:41:47 +02:00
dbca1e0a19 Package.without_screenshots_most_visits added 2016-08-17 09:28:06 +02:00
339bb0427f Showing reviews on package's details page from Ubuntu 2016-08-16 12:50:03 +02:00
e2671d2545 Text search now properly weighted and ranked
Default order by 'name' removed so that ranking can actually work.
2016-08-12 16:40:12 +02:00
8137dc788d Making version comparison more error-resilient 2016-07-13 23:46:27 +02:00
e864415a03 Docs added 2016-06-27 15:59:51 +02:00
bac90cbd2f Do not crash when sorting screenshots by version if the version is empty 2016-06-24 16:19:05 +02:00
6feaa53920 Added Package.best_screenshot_for_version 2016-06-23 00:17:27 +02:00
197c0a8b10 Screenshots were not sorted correctly by version - fixed 2016-06-21 17:55:34 +02:00
3be1846688 Added Package.screenshots_sorted_by_version 2016-06-21 16:54:10 +02:00
9db16ab357 Consider reported screenshots for pending for moderation 2016-06-13 17:56:50 +02:00
c9469709d6 Fixed class and instance methods for pending screenshots/packages 2016-04-14 16:49:46 +02:00
f12f61b23c Show progressbar on moderation screen 2016-04-08 18:25:53 +02:00
16999260ca Dropdown on details page allows image management for users and admins 2016-04-07 17:01:00 +02:00
ba5a89a26a Moved screenshots_visible_to_user to model 2016-04-06 16:41:52 +02:00
6192e1bc3b Creating query to get screenshots visible to a user 2016-03-05 15:55:24 +01:00
53b297da1e Working on query to only display moderated or own uploads 2016-03-04 18:23:12 +01:00
6c9607ffa8 Old PostgreSQL full-text search removed 2015-05-08 17:32:17 +02:00
3f1ec0b202 Full text search set to english 2014-12-29 20:14:41 +01:00
dc17ff1e3e Added callback that removes images files when a screenshot gets destroyed 2014-12-07 22:32:13 +01:00
f3a8b7c3a5 Search feature repaired 2014-11-30 23:20:26 +01:00
87f545414f Getting the project working again
Replace Twitter Bootstrap by Zurb Foundation
Used @import in SCSS instad of require_tree for proper order and use of variables like $debian_color
Moved old files out of the way (renamed them to xx*)
Welcome controller (/) works
Moved templates from ERB to SLIM format
Fixed database settings
Reduced routes to working ones
Tidied up Gemfile
Checked in experimental lab files

Tried to find a good description for this massive commit :)
2014-11-16 18:26:03 +01:00
0b71665dd0 Indentation fixed 2013-11-13 23:24:23 +01:00
520d29e629 Explicitly defined default order of packages by name. 2013-08-25 23:39:05 +02:00
d6c5508fdd Fixed use of default scope for Rails 4.x 2013-08-21 22:56:22 +02:00
d1d4cea63a Using proper SQL query to search for multiple search words. 2013-08-08 22:32:20 +02:00
ee530072eb Added package.text_search for full-text searching the Package model 2013-08-08 21:50:03 +02:00
78b8f594af Enforce eager loading of backreferencing to avoid wasteful SQL queries 2013-08-07 21:37:14 +02:00
5559fbecd3 Added one-to-many relation between packages and screenshots 2013-08-06 22:35:05 +02:00