Release v0.2.38
Publish Memby release / release (push) Canceled after 0s

This commit is contained in:
ponzischeme89
2026-08-09 16:04:40 +12:00
parent 0dffd59440
commit 52e167ea59
32 changed files with 442 additions and 472 deletions
+7
View File
@@ -24,6 +24,7 @@ const (
featureEndCredits = "end_credits"
featureSeasonalThemes = "seasonal_themes"
featureSeasonalDecorations = "seasonal_decorations"
featureGenreBrowser = "genre_browser"
)
type featureDefinition struct {
@@ -117,6 +118,12 @@ var featureCatalogue = []featureDefinition{
DefaultEnabled: true, MinimumProtocol: 1, Capability: "seasonal_decorations_v1",
Recovery: "Takes effect on the next status poll; the launcher simply stops drawing them.",
},
{
Key: featureGenreBrowser, Name: "Genre browser", Area: "Presentation",
Description: "Show the full genre browser at the top of Movies and TV Shows.",
DefaultEnabled: false, MinimumProtocol: 1, Capability: "genre_browser_v1",
Recovery: "Takes effect on the next status poll; the browser is hidden when off.",
},
{
Key: featureInstallPermission, Name: "Ask TVs for install permission", Area: "Setup",
Description: "Ask a signed-in TV that cannot install its own updates to grant the " +
+14
View File
@@ -47,6 +47,20 @@ func TestHEVCDirectPlayIsVisibleAndServerControllable(t *testing.T) {
}
}
func TestGenreBrowserIsServerControlledAndOffByDefault(t *testing.T) {
definition, ok := knownFeature(featureGenreBrowser)
if !ok || definition.Capability != "genre_browser_v1" {
t.Fatalf("genre browser feature definition = %+v, found=%v", definition, ok)
}
if got := evaluateFeature(store.DefaultFeaturePolicy(), definition, 1); got.Enabled {
t.Fatalf("genre browser default = %+v, want disabled", got)
}
enabled := store.FeaturePolicy{Overrides: map[string]bool{featureGenreBrowser: true}}
if got := evaluateFeature(enabled, definition, 1); !got.Enabled || got.Source != "override" {
t.Fatalf("genre browser override = %+v", got)
}
}
func TestClientCapabilitiesAreNormalizedAndBounded(t *testing.T) {
req := httptest.NewRequest(http.MethodGet, "/v1/status", nil)
req.Header.Set("X-Memby-Capabilities", " Sonarr_Preroll_V1,server_features_v1,sonarr_preroll_v1,"+
+2
View File
@@ -6,6 +6,7 @@ import (
"sync"
"time"
"github.com/ponzischeme89/memby/server/internal/buildinfo"
"github.com/ponzischeme89/memby/server/internal/store"
)
@@ -119,6 +120,7 @@ func (s *Server) handleServiceStatus(w http.ResponseWriter, r *http.Request, ses
"compatibilityMessage": compatibilityMessage,
"clientVersion": clientVersion(r),
"clientProtocol": clientProtocol(r),
"gatewayVersion": buildinfo.Version(),
"serverProtocol": ProtocolVersion,
"featureSchemaVersion": featureSchemaVersion,
"featureRevision": featurePolicy.Revision,
+1 -1
View File
@@ -1 +1 @@
0.1.29
0.1.29