diff --git a/bundles/media/manifest.json b/bundles/media/manifest.json
index e9bbd0e97..85f6b94c0 100644
--- a/bundles/media/manifest.json
+++ b/bundles/media/manifest.json
@@ -1,7 +1,7 @@
{
"id": "media",
"name": "Media Hub",
- "version": "1.1.2",
+ "version": "1.1.3",
"description": "News aggregation, RSS feeds, YouTube channels, podcasts, a daily spoken briefing read by the local voice, playlists, smart folders, email digests",
"type": "mcp-server",
"author": "Crow",
diff --git a/bundles/media/panel/media.js b/bundles/media/panel/media.js
index 531179728..99782cbd8 100644
--- a/bundles/media/panel/media.js
+++ b/bundles/media/panel/media.js
@@ -550,7 +550,7 @@ export default {
if (hasLibrary) tabs.push({ id: "library", label: "Library" });
if (hasIptv) tabs.push({ id: "live", label: "Live" });
if (hasKodi) tabs.push({ id: "remote", label: "Remote" });
- const tabNav = `
+ const tabNav = `
`;
diff --git a/registry/add-ons.json b/registry/add-ons.json
index d5c2557f0..29727c972 100644
--- a/registry/add-ons.json
+++ b/registry/add-ons.json
@@ -3310,7 +3310,7 @@
{
"id": "media",
"name": "Media Hub",
- "version": "1.1.2",
+ "version": "1.1.3",
"description": "News aggregation, RSS feeds, YouTube channels, podcasts, a daily spoken briefing read by the local voice, playlists, smart folders, email digests",
"type": "mcp-server",
"author": "Crow",
diff --git a/tests/media-panel.test.js b/tests/media-panel.test.js
index 9d1cc9fc5..77b901513 100644
--- a/tests/media-panel.test.js
+++ b/tests/media-panel.test.js
@@ -182,3 +182,11 @@ test("the page script is plain JavaScript inside a template literal: it parses,
assert.doesNotMatch(src.slice(tabStart, tabEnd), /onclick=/, "the Briefings tab has no inline handlers");
assert.doesNotMatch(src, /process\.env\.HOME \|\| "", "\.crow", "bundles"/, "the panel looks for its own instance's installed copy");
});
+
+test("the tab row wraps on a narrow screen instead of widening the page", async () => {
+ const { document } = await render({ tab: "briefings" });
+ const nav = document.querySelector(".media-tabs");
+ assert.ok(nav, "the tab row is there");
+ assert.match(nav.getAttribute("style"), /flex-wrap:\s*wrap/);
+ assert.ok(nav.querySelectorAll("a").length >= 7);
+});