07be9eadcc
Remove the temporary show=libs inspection view
...
The libs-section blacklist is confirmed safe; the review view has
served its purpose.
2026-08-23 14:13:53 +02:00
a98398f7a1
Limit show=libs inspection view to packages with screenshots
2026-08-23 12:33:28 +02:00
3a1de72efe
Add temporary show=libs inspection view
...
Lets you browse exactly the packages that the libs section blacklist
would remove on the next import, to review them visually before
running it.
2026-08-23 11:20:36 +02:00
323b7004ed
Expose which search strategy produced each result
...
query_packages now assigns @search_sources - a hash mapping package
ids to the matching strategy that put them into the results: :exact,
:name_prefix, :name_contains, :semantic or :fulltext. The grid and
list views render a small badge with a humanized label per result,
making the search tiers observable. semantic_results() was folded
into search_packages() so each branch tags its own source. Adds the
rails-controller-testing gem for assigns() in tests.
2026-08-23 10:39:50 +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
0669198233
safety check
2026-02-26 00:28:00 +01:00
19f85a27d6
logic made nicer
2025-06-26 23:33:32 +02:00
eb198a491b
fixing /screenshot/:name
2025-06-23 00:46:23 +02:00
5ca2920d9d
make sure that images are only delivered if the user has view permission
2025-06-18 01:36:17 +02:00
b601b2bbb6
move shrine files out of public. use x-sendfile to send files for security.
2025-06-16 00:24:11 +02:00
25672aabb0
Update to Rails 7.2
2025-02-25 21:57:16 +01:00
2ec80b4bde
Automatic rubocop cleanups
2025-02-03 01:08:08 +01:00
7fe26d471e
Do not return unapproved screenshots
2024-07-21 23:59:54 +02:00
9635b3968c
Added per-user counter of approved/rejected screenshots
2021-03-21 23:06:51 +01:00
a51e712925
Security fix. Prevent unauthorized deletion.
...
Legacy anonymous screenshot uploads could have been deleted by anonymous
users.
2021-03-21 16:24:35 +01:00
5d0e4a520e
Allow hiding and un-hiding of screenshot by moderators
2021-03-10 01:04:37 +01:00
330536cb7e
Link to packages and screenshots (highlighted) from logs view
2021-03-06 20:47:33 +01:00
2fef9c7043
Audit logging improved. References users, screenshots, packages
2021-03-03 23:21:24 +01:00
2b24083653
SQL optimisation rolled back. It lead to access problems.
2021-03-01 02:07:55 +01:00
7227f769c0
Avoid displaying unapproved screenshots in Any view
2021-03-01 01:23:52 +01:00
ce9e1d8877
Typo that prevented deleting images
2021-03-01 01:02:39 +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
1f9187e35c
Add ActionMailer to inform admins about new screenshots
...
This version only informs Christoph as a test
2021-02-25 02:43:14 +01:00
ff5643756e
Removed auto-approve
2021-02-21 19:41:20 +01:00
896cd533b4
minor improvement
2021-02-21 16:43:02 +01:00
1a21007068
Properly detect duplicate uploads
2021-02-21 11:38:53 +01:00
b6e4bd8a99
Work around Rails expectations that forbid dots in parameters
2021-02-21 11:12:16 +01:00
6542ffbc19
Add JSON response for paste-uploads
2021-02-20 21:19:15 +01:00
aaf22a34fb
Cruft
2021-02-20 21:18:29 +01:00
3116fb6b4d
Security fix: users must not approve their own uploads
2021-02-18 02:00:11 +01:00
2dedd924ee
Using correct variables for logging
2021-02-18 01:59:58 +01:00
107f2a8dbe
Cruft
2021-02-18 01:59:46 +01:00
1d364de8c8
Handle uploads using Ctrl-V
2021-02-18 01:59:40 +01:00
d78362e45f
Remove blank error message upon successful uploads
2021-02-18 01:59:04 +01:00
3f0737c614
Fix 404 for missing package
2021-02-14 16:51:55 +01:00
c636ee40a5
Simplified browsing view
2021-02-14 11:14:13 +01:00
456d9df8c0
Removed file exist check in old Paperclip-style
2021-02-13 23:22:16 +01:00
e9aea5325a
Missing images return images properly now
2021-02-13 22:33:02 +01:00
baaa419f00
/thumbnail and /screenshot redirect properly to Shrine file
2021-02-13 22:15:57 +01:00
169ad369e4
Error display handling fixed for uploads
2020-11-22 23:51:23 +01:00
2878dbfad6
Show proper filename in error messages after upload
2020-11-12 19:35:35 +01:00
dd6f5b73f1
Minor rewording
2020-11-03 00:06:43 +01:00
b6bfef2ea3
Missed a line when migrating to Shrine
2020-11-01 23:28:34 +01:00
5cb1454694
Create derivatives upon new upload
2020-11-01 23:26:48 +01:00
6ddf9ff48c
Pagination fixed
2020-11-01 23:26:04 +01:00
3ad1dc605b
Docs
2020-11-01 23:25:46 +01:00
2d53397dda
Bug hint added
...
Asked on Stackoverflow:
https://stackoverflow.com/questions/64615529/how-can-i-avoid-accepting-broken-images-in-activestorage
2020-10-30 21:53:26 +01:00
2c67e321ba
Bug hint
2020-10-30 15:03:11 +01:00