This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
ReleasePort's take
Light signalAmpache 7.9.4 introduces popularity-weighted search ranking for albums, artists, and songs. The release fixes catalog sync limits, permission validation timing, API function naming, and hardens mkdir permissions to 0775.
Why it matters: Search weighting improves result ranking across albums, artists, and songs. Bug fixes in catalog sync, permissions, and API address core gaps. Permission hardening reduces overpermissioning. Test new search features in dev.
Summary
AI summaryUpdates 7.9.4, https://ampache.org/docs/information/which-zip, and cleanup across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Medium |
Add popularity weight columns to media tables in database 794004. Add popularity weight columns to media tables in database 794004. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Introduce `weight_song`, `weight_album`, and `weight_artist` search rules for Album, Artist, Podcast, Podcast_Episode, and Song searches. Introduce `weight_song`, `weight_album`, and `weight_artist` search rules for Album, Artist, Podcast, Podcast_Episode, and Song searches. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Add `my_flagged_song`, `my_flagged_album`, and `my_flagged_artist` to Album, Artist, and Song searches. Add `my_flagged_song`, `my_flagged_album`, and `my_flagged_artist` to Album, Artist, and Song searches. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Include all rating rules in `podcast` and `podcast_episode` searches. Include all rating rules in `podcast` and `podcast_episode` searches. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Add `coverArt` for radio stations in Subsonic API. Add `coverArt` for radio stations in Subsonic API. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Add more information to move and rename command output in CLI. Add more information to move and rename command output in CLI. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Allow REST calls to block GET requests for sensitive API6 calls (e.g., `register`). Allow REST calls to block GET requests for sensitive API6 calls (e.g., `register`). Source: granite4.1:8b-q6_K@2026-05-21 Confidence: high |
— |
| Feature | Medium |
Provide translations updated to 2026-05-20. Provide translations updated to 2026-05-20. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: low |
— |
| Feature | Medium |
Sort header bar searches by popularity weights. Sort header bar searches by popularity weights. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: low |
— |
| Feature | Medium |
Fix orphan album disk objects to be unique and update from tags. Fix orphan album disk objects to be unique and update from tags. Source: granite4.1:30b@2026-05-21-audit Confidence: low |
— |
| Feature | Medium |
Prevent moving, renaming, or deleting upload folders when not owning all content. Prevent moving, renaming, or deleting upload folders when not owning all content. Source: granite4.1:30b@2026-05-21-audit Confidence: low |
— |
| Feature | Medium |
Add missing typing on Search class. Add missing typing on Search class. Source: granite4.1:30b@2026-05-21-audit Confidence: low |
— |
| Feature | Medium |
Update documentation for searches. Update documentation for searches. Source: granite4.1:30b@2026-05-21-audit Confidence: low |
— |
| Feature | Medium |
Add additional aliases to search rules for different rule names. Add additional aliases to search rules for different rule names. Source: granite4.1:30b@2026-05-21-audit Confidence: low |
— |
| Deprecation | Medium |
PHP-CS-Fixer v4.0 deprecations addressed. PHP-CS-Fixer v4.0 deprecations addressed. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Catalog sync now respects podcast download limits. Catalog sync now respects podcast download limits. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Enable folder creation when using default `.htaccess` (now public). Enable folder creation when using default `.htaccess` (now public). Source: granite4.1:8b-q6_K@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Include collaboration in Playlist browse functionality. Include collaboration in Playlist browse functionality. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Fix orphaned uploads to allow changes from tag updates. Fix orphaned uploads to allow changes from tag updates. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Correctly display orphaned albums with User catalog filters. Correctly display orphaned albums with User catalog filters. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Resolve PHP-CS-Fixer v4.0 deprecations. Resolve PHP-CS-Fixer v4.0 deprecations. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: high |
— |
| Bugfix | Medium |
Fix `podcast_update` function name in API6. Fix `podcast_update` function name in API6. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Decode HTML for Song lyrics on output in API5 and API6. Decode HTML for Song lyrics on output in API5 and API6. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Ajax FS validates current user earlier to fix permission issues. Ajax FS validates current user earlier to fix permission issues. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: low |
— |
| Bugfix | Medium |
Fail installation if `upload_subdir` enabled but folder creation fails. Fail installation if `upload_subdir` enabled but folder creation fails. Source: granite4.1:30b@2026-05-21-audit Confidence: low |
— |
| Bugfix | Medium |
Fix CLI `cleanup:sortSongs` to stop after processing a single folder. Fix CLI `cleanup:sortSongs` to stop after processing a single folder. Source: granite4.1:30b@2026-05-21-audit Confidence: low |
— |
| Bugfix | Medium |
Resolve search errors for `other_user` and `unrated` queries. Resolve search errors for `other_user` and `unrated` queries. Source: granite4.1:30b@2026-05-21-audit Confidence: low |
— |
| Bugfix | Medium |
Apply missing joins in certain searches. Apply missing joins in certain searches. Source: granite4.1:30b@2026-05-21-audit Confidence: low |
— |
| Bugfix | Medium |
Fix Playlist `owner` search functionality. Fix Playlist `owner` search functionality. Source: granite4.1:30b@2026-05-21-audit Confidence: low |
— |
| Bugfix | Medium |
Include collaboration data in Playlist search results. Include collaboration data in Playlist search results. Source: granite4.1:30b@2026-05-21-audit Confidence: low |
— |
| Bugfix | Low |
Strip HTML tags from item lyrics in Subsonic output. Strip HTML tags from item lyrics in Subsonic output. Source: granite4.1:30b@2026-05-21-audit Confidence: low |
— |
| Refactor | Medium |
Assign 0775 permissions on mkdir calls instead of PHP default 0777. Assign 0775 permissions on mkdir calls instead of PHP default 0777. Source: granite4.1:8b-q6_K@2026-05-21 Confidence: low |
— |
| Refactor | Low |
Remove path printing from FileSystem output. Remove path printing from FileSystem output. Source: granite4.1:30b@2026-05-21-audit Confidence: low |
— |
Full changelog
7.9.4
php8.5
149b956712fe2af77dd4fd3e8207cc02 ./ampache-7.9.4_all_php8.5.zip
454f529bc7f5792b3f8dbcdd04603e8b ./ampache-7.9.4_all_php8.5_squashed.zip
561ac49c32f567c6cf2f73a52d702b0d ./ampache-7.9.4_all_php8.5_client.zip
php8.4
19e567ca95b4a966ed1d62fa23252852 ./ampache-7.9.4_all_php8.4.zip
68662141997fae1830c58f2699fcc6c8 ./ampache-7.9.4_all_php8.4_squashed.zip
f6c7f399e85cdfb1bc63ea8e7a39f99a ./ampache-7.9.4_all_php8.4_client.zip
php8.3
e05befd3a1249b7fbbf57d4bbf1f37ef ./ampache-7.9.4_all_php8.3.zip
4ee9cf87c524c50ba2d2ff5de89dc589 ./ampache-7.9.4_all_php8.3_squashed.zip
a230b734662cc43648d4aa4defbbd7c1 ./ampache-7.9.4_all_php8.3_client.zip
php8.2
9a6e6fcc999cab8e983344af2bc8f2e7 ./ampache-7.9.4_all_php8.2.zip
761fee6e73f77ac91b52cce1d0305470 ./ampache-7.9.4_all_php8.2_squashed.zip
d79fa04c93742d932ef1aaf755bcf195 ./ampache-7.9.4_all_php8.2_client.zip
UNSUPPORTED Code only release. (Requires composer and npm install)
dcd4b30a0b06425f8214a9073a6a04da ./ampache-7.9.4_public.zip
eecb84096a713fc59007af3063700f62 ./ampache-7.9.4_squashed.zip
e1174ab8b62419f752669b49b709b2e9 ./ampache-7.9.4_client.zip
Zip Version information
If you aren't familiar which the project make sure you know which zip you need to download.
Ampache 7.9.4
Many new search enhancements, documentation updates and fixes.
Media weight is calculated based on ratings, flags, play and skip counts.
This allows you to order and search and sort by server popularity
Work on cleaning up API6 has started as I look to begin Ampache 8
Added (7.9.4)
- Translations 2026-05-20
- Database 794004
- Add popularity
weightcolumns to media tables - Fix up Orphan Album Disk objects to be unique and update from tags
- Add popularity
- Don't people move/rename/delete upload folders when you don't own all the content
- Missing typing on Search class
- Documentation updates for searches
- CLI
- Add more information to move and rename command output
- Search
- Add additional aliases to catch different rule names
- Add
my_flagged_song,my_flagged_albumandmy_flagged_artistto Album, Artist and Song searches - Add
weight_song,weight_albumandweight_artistto Album, Artist Podcast, Podcast_Episode and Song searches - Add all rating rules to
podcastandpodcast_episodesearches
- Subsonic
- Add
coverArtfor radio stations
- Add
Changed (7.9.4)
- Sort header bar searches by popularity weights
- Remove path printing from FileSystem output
- Fail if
upload_subdiris enabled but can't create the folder - Assign
0775permissions on mkdir calls (PHP default is0777)
Fixed (7.9.4)
- Catalog sync would not respect podcast download limits
- Ajax FS not looking for current user early enough to validate
- Could not create a folder when using default
.htaccess(not enabled by default) - Missing collaboration in Playlist browses
- Public
.htaccessfor creating folders in upload pages - PHP-CS-Fixer v4.0 deprecations
- Orphaned uploads would never be able to change from an orphan album object
- Display of Orphaned albums when using User catalog filters
- Tag updates for Orphaned albums would not change when updated from tags
- Checks for Catalog 0 with Album and AlbumDisk check functions
- CLI
- cleanup:sortSongs was not stopping after using single folder
- run:updateCatalogFile better file checks and error warnings
- Search
- Errors on
other_userunratedsearches - Joins on some searches not applied
- Playlist
ownersearch - Missing collaboration in Playlist search
- Errors on
- Subsonic
- Don't show HTML tags being for item lyrics
API 6.9.1 Build 14
This version is being released for Ampache7 only
To ensure that there are no issues with clients checking for single int versions
we will keep on 6.9.x and resume build number versioning until Ampache 8
Added (691014)
- API6
- Allow REST calls to block GET requests for sensitive calls (e.g.
register)
- Allow REST calls to block GET requests for sensitive calls (e.g.
Changed (691014)
- API6
- Make
filteroptional forpodcast_episodes - Add
songforidinplaylist_addto matchplaylist_add_song - Fallback to
bookmarkon emptytypeinbookmark_delete - Decode HTML for Song lyrics on output
- Make
- API5
- Decode HTML for Song lyrics on output
Fixed (691014)
- API6
- Bad
podcast_updatefunction name - REST rewrite rules
- Bad
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About ampache
A web based audio/video streaming application and file manager allowing you to access your music & videos from anywhere, using almost any internet enabled device.
Related context
Related tools
Beta — feedback welcome: [email protected]