Changelog UI (go-upper)
Changelog UI (go-upper)
Dieser Verlauf dokumentiert ausschließlich die eigenständige Go-Upper UI. Änderungen am Upper-Kern stehen im separaten Go-Upper-Changelog.
v0.39.0
Live seit 17. August 2026 zusammen mit Go-Upper v2026.15.0.
- feature:
- Upload-Bearbeitung: TV-Felder SeasonEpisodes und Episodes (
general.tv.season_episodes,general.tv.episodes) - Template-Variablen-Picker enthält
General.TV.SeasonEpisodesundGeneral.TV.Episodes
- Upload-Bearbeitung: TV-Felder SeasonEpisodes und Episodes (
- bugfix:
- Publishing-Presets behalten nach Instanz- oder UI-Update die gewählten Templates. Import und Rebind erkennen dieselbe Datei auch bei relativen vs. absoluten Pfaden;
/presetsund der Upload-Editor lösen veraltetedb:-IDs über den normalisierten Pfad wieder auf.
- Publishing-Presets behalten nach Instanz- oder UI-Update die gewählten Templates. Import und Rebind erkennen dieselbe Datei auch bei relativen vs. absoluten Pfaden;
v0.38.0
Live seit 14. August 2026 zusammen mit Go-Upper v2026.13.0.
- feature:
- Upload-Bearbeitung: neue Section TV mit editierbaren Feldern Staffel, Episode und SeasonEpisode (
general.tv.*) - Template-Variablen-Picker enthält
General.TV.Season,General.TV.EpisodeundGeneral.TV.SeasonEpisode
- Upload-Bearbeitung: neue Section TV mit editierbaren Feldern Staffel, Episode und SeasonEpisode (
v0.37.0
Live seit 3. August 2026 zusammen mit Go-Upper v2026.12.0.
improvement:
- Die
boersecx-Warteschlange verwendet wiedarklight.toeinen angemeldeten Chrome über mehrere Einträge und Worker-Durchläufe hinweg wieder. Vor jedem Ziel wird die Session geprüft und nur bei abgelaufener Anmeldung neu eingeloggt; die Login-Seite wird bei transienten Fehlern mit begrenztem Backoff erneut geöffnet und nach dem Absenden per Polling auf Redirect/Fehler gewartet. - Dieselbe Session-Wiederverwendung und Login-Härte gelten jetzt auch für
myboerse.bzunddata-load.mein der Publishing-Warteschlange (LostConnection-Recreate, non-blocking Error-Text-Lookup, Session-Skip bei bestehender Anmeldung).
- Die
refactor:
- Das bisherige, mehr als 8.000 Zeilen grosse
app.jsist jetzt in native ES-Module fuer Navigation, UI-Helfer und die einzelnen Funktionsbereiche (uploads,upload-edit,instances,templates,remote-sources, …) aufgeteilt. Fachlicher Zustand und Event-Bindings bleiben dadurch lokal; ein Embed-Test prueft alle relativen Modulimporte.
- Das bisherige, mehr als 8.000 Zeilen grosse
bugfix:
- Die eingebetteten HTTP-, Hoster-, Crypter-, Content-, Download- und Zoom-Clients verwenden jetzt
reqv3.60.0 direkt; das internereqcompat-Paket wurde vollständig entfernt und Multipart-Dateien werden beim Upload gestreamt statt vollständig gepuffert.
- Die eingebetteten HTTP-, Hoster-, Crypter-, Content-, Download- und Zoom-Clients verwenden jetzt
v0.36.0
Live seit 30. Juli 2026 zusammen mit Go-Upper v2026.11.1.
- improvement:
- Das Dashboard prüft die aktuelle Go-Upper-Release automatisch und hebt den Update-Button direkt hinter jeder veralteten Instanzversion mit Zielversion, farbigem Neu-Hinweis und passendem Tooltip hervor. Laufende Instanzen zeigen den Hinweis ebenfalls, bleiben bis zum Stoppen aber geschützt; aktuelle, unbekannte und nicht prüfbare Versionen erhalten eigene kompakte Zustände.
- Die
darklight.to-Warteschlange verwendet einen angemeldeten Chrome über mehrere Einträge und Worker-Durchläufe hinweg wieder. Vor jedem Ziel wird die Session geprüft und nur bei abgelaufener Anmeldung neu eingeloggt; einzelne Publish-Vorgänge bleiben auf fünf Minuten begrenzt und laufen serialisiert im gemeinsamen Browser.
- bugfix:
- Der Upload-Import übernimmt identische Result-JSONs bei gemeinsam genutzten oder über Pfad-Aliase eingebundenen Result-Ordnern instanzübergreifend nur noch einmal. Ein unveränderlicher Quell-Hash wird für bestehende Daten automatisch nachgetragen; parallele Import-Anfragen werden serverseitig serialisiert.
v0.34.6
Live.
- feature:
- Upper-Instanzen lassen sich im Dashboard aktualisieren: kleines Download-Icon neben der Version öffnet den Update-Dialog (wie UI-Update: installierte/neue Version, Release-Text, Status, Force); Download von
latest.zip/latest.jsonaushttps://go-toolz.com/dl/upper/, Entpacken, Binaries/Tools/Templates/Mappings und*.dist.ymlüberschreiben; Nutzer-Configs (upper.config.yml,remote.sources.yml),files/,log/undupper-ui/bleiben unangetastet. Nur bei gestoppter Instanz; danach Temp-Archiv aufräumen. Binary-Spalte ist schmaler. - Auf der Config-Seite (global und pro Instanz) gibt es vor Config bearbeiten den Button Config .dist ansehen: öffnet
upper.config.dist.ymlread-only im YAML-Viewer (ohne Speichern).
- Upper-Instanzen lassen sich im Dashboard aktualisieren: kleines Download-Icon neben der Version öffnet den Update-Dialog (wie UI-Update: installierte/neue Version, Release-Text, Status, Force); Download von
- improvement:
- Uploads-Liste skaliert: Filter, Sortierung und Pagination laufen per SQL über
upper_uploads(inkl. denormalisiertempublish_status_key). Pro Request werden nur die sichtbaren Zeilen geladen; Result-Ordner werden für die Liste nicht mehr vollständig gescannt. Publish-Status wird bei Queue/Worker/Editor synchron gehalten und beim Start nachgezogen.
- Uploads-Liste skaliert: Filter, Sortierung und Pagination laufen per SQL über
- bugfix:
- Uploads-Filter (Suche, Typ, Hoster, Instanz, Veröffentlichung) und Sortierung laufen serverseitig über die gesamte Liste; Pagination zählt nur noch die gefilterten Treffer. Der Publish-Filter heißt Alles statt „Alle Veröffentlichungen“.
- Typ- und Hoster-Filteroptionen werden nicht mehr doppelt eingetragen; ein steckenbleibender Lade-Overlay (ausgegraute, nicht klickbare Uploads-Seite) nach Filterwechseln ist behoben.
- Filter-Hydrate aktualisiert die Browser-URL per
replaceState(vorher blieb die URL leer und lud die Seite endlos neu); Publish-Status und Autoimport-Pill flackern nicht mehr unnötig. - Kompakter Publish-Status: Teilweise veröffentlichte Uploads ohne offene Queue sind Ziel gewählt (nicht fälschlich Warteschlange); noch gequeuete Ziele bleiben unter Warteschlange, auch wenn andere Ziele bereits fehlgeschlagen sind.
- Publishing-Presets behalten ihre Template-Auswahl auch dann, wenn importierte Templates bei einem UI-Update eine neue Datenbank-ID erhalten; stabile Template-Metadaten werden für bestehende Presets automatisch nachgetragen.
- Auto-Publish verhindert doppelte Posts durch einen eindeutigen aktiven Ziel-Datensatz je Upload und Publishing-Service, bereinigt vorhandene Dubletten beim Datenbankstart, dedupliziert alte Preset-Einträge, hält lang laufende Publishing-Leases per Heartbeat aktiv und wiederholt fehlgeschlagene Board-Posts nur noch nach einer bewussten manuellen Freigabe.
- Antworten in vorhandenen XenForo-Threads prüfen bei
boersecx,darklight.to,data-load.meundmyboerse.bzvor dem Absenden die letzten Beiträge anhand der eingeloggten Benutzer-ID beziehungsweise des Benutzernamens sowie des normalisierten Inhalts inklusive Ziel-Links. Ein bereits vorhandener eigener Beitrag wird als erfolgreich behandelt; bei nicht zuverlässig lesbarer Threadseite bricht Publishing sicher mit Fehler ab. - Der Login bei
data-load.meöffnet die Login-Seite bei vorübergehenden Erreichbarkeitsproblemen mit begrenzten Timeouts und Backoff erneut, bevor Zugangsdaten eingegeben werden, und meldet aussagekräftigere Navigations- beziehungsweise HTTP-Fehler. - Der Login bei
darklight.toöffnet die Login-Seite bei vorübergehenden Erreichbarkeitsproblemen mit begrenzten Timeouts und Backoff erneut, wartet nach dem Absenden auf Redirect oder Fehlermeldung statt einer festen Wartezeit und nutzt den form-spezifischen Submit-Selektor.
v0.33.1
Live seit 19. Juli 2026.
- feature:
- Der KI-Modellkatalog bietet zusätzliche ressourcenschonende Qwen-, Granite-, Llama-, Phi- und Ministral-Varianten ab ca. 1,4 GB; bestehende Gemma-Modelle bleiben erhalten.
- Der Upload-Editor bietet KI prüfen: Regelprüfungen und das aktive lokale Ollama-Modell bewerten den aktuellen, noch ungespeicherten Formularstand inklusive vollständiger NFO, schlagen den Inhaltstyp vor und verlinken Auffälligkeiten direkt zum betroffenen Feld.
- neuer Einstellungsbereich KI Modelle für lokale Ollama-Modelle mit kuratierten Gemma-4-/Qwen-Varianten, Downloadfortschritt, Löschen, Aktivieren, strukturiertem Modelltest und persistenter aktiver Auswahl
- Upper-Instanzen können im Dashboard über Bearbeiten nachträglich umbenannt und auf eine andere Binary umgestellt werden; laufende Instanzen bleiben zum Schutz des Prozesses gesperrt.
- Uploads bietet getrennte, persistente und abgesicherte Movie-, TV- und Game-Auto-Publish-Modi: Nur neue oder danach bearbeitete Einträge mit vollständigen typspezifischen Metadaten, Links und einem instanzbezogenen Auto-Preset werden automatisch vorgemerkt; blockierte Einträge zeigen den fehlenden Wert und werden vor dem externen Publishing erneut validiert.
- improvement:
- Die Seiten Templates, Presets und Mappings erklären direkt unter der Überschrift, wofür sie gedacht sind und welche Aufgaben dort möglich sind.
- bugfix:
- Der Instanzfilter auf Uploads listet alle Instanzen mit vorhandenen Uploads und nicht mehr nur die Instanzen der aktuell sichtbaren, serverseitig paginierten Seite.
v0.32.0
Live seit 13. Juli 2026.
bugfix:
- Das Web-Terminal startet mit 80x24 als sicherem Fallback und passt Linux-PTY beziehungsweise Windows-ConPTY danach dynamisch an das skalierbare Browserfenster an; Terminal-Anwendungen wie Curl-Upload-Fortschrittsbalken nutzen dadurch die tatsächlich verfügbare Fläche.
- “Starten (mit Terminal)” startete unter Windows nichts, weil der WS-Handler
creack/pty’spty.Startnutzte (auf WindowsErrUnsupported). Der Terminal-Start läuft jetzt über das neue Packageinternal/pkg/termproc, das auf Windows die native ConPTY-API verwendet; Unix bleibt beicreack/pty - Windows-ConPTY-Start setzt
EXTENDED_STARTUPINFO_PRESENTjetzt korrekt alsCreateProcess-Flag; non-zero Exit-Codes werden vontermproc.Wait()auch unter Windows als Fehler gemeldet
feature:
- Das Instanz-Dashboard bezeichnet den Browser-Terminal-Start konsistent als Starten (Web) und bietet daneben den kontrastreichen Button Starten (CMD). Der neue Endpoint
GET /api/instance/:id/start-legacystartet Upper unter Windows über die bewährtecmd /k start /wait cmd.exe /k ...-Kette und übernimmt den Debug-Schalter. - Publishing-Tab und Warteschlange unterstützen
myboerse.bzmit automatischer Zielauswahl aus dem eingebetteten Forum-Mapping - neues aufklappbares Menü
ToolsmitNFO Suche; die Seite durchsucht SRRDB, PreDB und xREL parallel, zeigt Quelle, Section und Gruppe und bietet NFO-Ansicht im Layer sowie direkten Download -
Offene Uploadszeigt pro Release-Ordner den NFO-Status; bei fehlender Datei sucht ein Button über SRRDB, PreDB und xREL nach einem exakten Release-Treffer und speichert die NFO direkt im Ordner
- Das Instanz-Dashboard bezeichnet den Browser-Terminal-Start konsistent als Starten (Web) und bietet daneben den kontrastreichen Button Starten (CMD). Der neue Endpoint
improvement:
- Der Instanzbereich steht im Dashboard jetzt direkt unter dem Seitenkopf und damit vor Kennzahlen und Diagrammen, analog zur Reupper UI.
- die Lizenz-Kachel im Dashboard bietet einen kleinen externen Button zur Lizenzverlängerung
- die Uploads-Warteschlange zeigt pro Upload einen live aktualisierten Fortschrittsbalken in Prozent sowie den aktuellen Schritt und das aktive Publishing-Ziel
- laufende Publishing-Ziele verwenden einen persistenten
processing-Status, werden atomar vom Worker übernommen und nach einem abgebrochenen UI-Prozess automatisch wieder freigegeben - Uploads bietet
Veröffentlichen (alle mit Ziel), um alle datenbankweit im StatusZiel gewähltstehenden Uploads ohne vorherige Auswahl zur Publishing-Warteschlange hinzuzufügen -
Veröffentlichen (alle mit Ziel)ist als blauer Hauptbutton nur aktiv, wenn passende Uploads vorhanden sind - ausgewählte und einzelne Uploads können über das Drei-Punkte-Menü inklusive ihrer Publishing-Ziele auf
Unveröffentlichtzurückgesetzt werden - die Uploads-Tabelle blendet bei tatsächlichem horizontalem Überlauf gestaffelt zuerst
Importiert, dannCrypter,Hosterund zuletztGrößeaus; die Optionsspalte bleibt rechts sichtbar - Publish-Mappings werden als eingebettete UI-Standards mitgeliefert; die Mappings-Seite zeigt Standard/angepasst an, speichert lokale Overrides unter
config/mappingsund kann Anpassungen wieder auf den eingebetteten Standard zurücksetzen - Templates bietet
Text ersetzen (Replace), um finale Plain-Text-Ersetzungen nach dem Rendern global oder pro Instanz zu verwalten und in Vorschau sowie Publishing-Warteschlange anzuwenden
bugfix:
- SQLite-Schreibzugriffe der Upper-UI werden serialisiert und warten kurz auf parallele Leser, damit Speichern im Upload-Editor keine vergiftete Verbindung mit
cannot start a transaction within a transactionhinterlässt - der manuelle Cover-Upload zu pixelfox.cc berücksichtigt die erlaubten Thumbnail-Formate des Kontos und funktioniert mit Free-Konten ohne WebP-/AVIF-Berechtigung
- automatische Publishing-Zielauswahl erkennt starke Music-Marker wie
FLAC,Soundtrack,DiscographyundAlbumvor TV-/Video-Markern, damit Musik-Releases mitSeasonoderWEB-FLACnicht falsch als Serie oder Film einsortiert werden - browserbasierte XenForo-Ziele brechen nach fünf Minuten ab, damit ein hängender Login oder Seitenaufruf nicht die gesamte Publishing-Warteschlange blockiert
-
data-load.me-Publishing lädt eine unbestätigte leere Suchantwort einmal neu und wiederholt die Themensuche, bevor der Lauf weiterhin konservativ mit Fehler abbricht -
Veröffentlichen (alle mit Ziel)ignoriert verwaiste Publishing-Ziele bereits gelöschter Upload-Datensätze - Upload-Löschen entfernt den Upload, seine Publishing-Ziele und seine History jetzt dauerhaft und transaktional
- gespeicherte Publishing-Template-Auswahlen werden nach erneutem Import oder Ersetzen eines Templates anhand des Quellpfads auf die aktuelle Template-ID umgebunden und bleiben im Upload-Editor ausgewählt
- XenForo-Publishing in der UI-Warteschlange löst relative Mapping-Pfade anhand der jeweiligen Upper-Instanz auf, sodass UI und Upper-Instanzen in getrennten Ordnern liegen können
- SQLite-Schreibzugriffe der Upper-UI werden serialisiert und warten kurz auf parallele Leser, damit Speichern im Upload-Editor keine vergiftete Verbindung mit
v0.17.0
Veröffentlicht am 7. Juni 2026.
- feature:
- Upload-Edit-Autocomplete unterstützt PreDB und speichert Release-, Section-, Group-, Status- und NFO-Metadaten im Upload-JSON
- improvement:
- Einstellungen enthält jetzt eine System-Seite mit lokaler SQLite-DB-Info, Pfad, Download und VACUUM-Aktion
- System-Seite kann einzelne UI-Datenbanktabellen per Truncate-Aktion komplett leeren
-
Offene Uploadsbietet über den Scan-Kandidaten einen Terminal-Button, der alle bereiten hinterlegten Go-Upper-Instanzen wie im Dashboard startet - uploads page moves the bulk “Aus Warteschlange entfernen” action into the three-dot menu and adds “Alles als erledigt markieren” next to Import to mark unfinished uploads green
- upload edit Publishing tab adds “Alle Aktive wählen + Speichern” to enable every selectable publishing page, save the selection, and return to uploads
- imported templates now show a Sync action that reloads the source file and overwrites the stored UI database copy
- uploads now use server-side 50-row pagination, pending caps initial table rendering, heavy auto-refreshes are avoided, and imported upload rows skip unnecessary JSON parsing so large databases stay responsive
- uploads page removes the redundant four metric cards above the table to keep the workspace tighter
-
Offene Uploadskeeps its initial scan and adds an animated manual Scan button in the page header for explicit rescans - uploads filters now have a Clear button and persist search/filter selections in browser storage across Upload edit navigation and browser sessions
- byte.to default publishing line shows a bold
IMDb:label followed by the rating with/10suffix (linked to the IMDB title) instead of the previousIMDB-Score:label
- bugfix:
- automatische Forum-Zielauswahl behandelt fehlende oder als
-importierte Inhaltstypen korrekt, erkennt typische Film-/Serien-Releases aus dem Titel und verwendet bei unbekanntem Typ ein Mapping-Fallback statt der ersten Doku-/3D-Kategorie - template import skips the Global UI source when a registered Upper instance uses the same
upper.config.yml, avoiding duplicate Global/instance template rows - templates delete now removes the stored UI database row permanently, so a later config import can import the same source file again
- uploads publishing queue skips already published targets when a mixed-status upload is queued again, so only failed or open targets are retried
- byte.to publishing makes the upload template optional in the Upper UI, uses the upload description plus a linked IMDB score when no template is selected, and formats the visible title without release dots
- byte.to publishing uses the release title instead of the metadata title for the visible upload title and applies the same dot-removal formatting as boersecx
- byte.to publishing sends audio languages in byte.to-compatible values such as
GER,ENG,GER;ENG, and common multi-language combinations - XenForo queue publishing submits topic searches through the search field’s form instead of relying on Enter, so darklight.to no-result pages are detected correctly
- automatische Forum-Zielauswahl behandelt fehlende oder als
v0.8.0
- feature:
- new standalone
upper-uiweb app for managing go-upper instances - upper-ui self update downloads the latest release zip, installs it through a helper process, and restarts the UI
- modern Bootstrap/Lucide dashboard without frontend build step
- instance manager with start, stop, delete, optional debug start, and in-browser terminal
- config overview for paths, active hosters, linkcrypter, modules, and important switches
- YAML config editor with syntax highlighting and save validation
- per-instance config pages at
/instance/{id}/config - upload import page with DB status, manual import, publishing status filter, multi-select queue/unqueue actions, and complete raw JSON storage
- upload edit page for imported result JSONs with size, editable mirror/crypter links, movie/game metadata fields, cover preview, Contentgrabber autocomplete including NFO/SRRDB, conflict review, and persisted Publishing site/target/template selections
- upload edit page has a
History Logtab that records import time, field edits, direct JSON edits, Publishing target changes, queue actions, successful Publishing runs, manual published marks, and Publishing errors - upload edit cover panel can upload the entered cover URL to the configured Imagehoster and persist the hosted URL
- endpoint-based Publishing targets like
warezddlcan be selected without requiring a template -
publish.publishUican keep the upper-ui queue active whilepublish.publishClidisables automatic CLI publishing - publishing queue worker processes queued Upload targets automatically after a 30-second safety delay and writes published/failed state back to the UI database
- publishing queue supports the
darklight.toXenForo service, including mapping-driven mandatory thread prefixes - publishing queue supports the
data-load.meXenForo service and its writable leaf-forum mapping - new
Offene Uploadspage for not-yet-uploaded folders from all configured scan paths - new
Templatespage imports configured template files into SQLite, supports create/edit, type and format metadata, syntax-highlighted editing, previews, and export downloads - new
Mappingspage lists configured and available Publish mappings, deduplicates shared files across instances, supports YAML editing, and tests title-to-category matches with the standard resolver - new
Integrationenpage for Contentgrabber, Imagehoster, and Publishing service status across all discovered Upper configs - XenForo queue publishing runs headless by default and supports visible diagnostic runs with
publish.services[].headless: false - upload metadata and Template management now include
ebookandsoftwarecontent types
- new standalone
- improvement:
- update dialog reads
latest.jsonand shows target version plus release text before installation - header now shows separate Go-Upper and Upper-UI versions; update dialog uses the Upper-UI version as installed version
- update zip checksum is verified when
sha256is present in the manifest -
make release-upper-uinow creates update manifests and uploads the release ZIP pluslatest.zipvia FTP - update manifests now point to the versioned release ZIP to avoid stale
latest.zipcache mismatches - update dialog disables installation when installed and live Upper-UI versions are equal
- update dialog has a Force checkbox to reinstall the live release even when versions are equal
- topbar groups UI version/update before Go-Upper version/download/changelog/docs/login actions
- topbar has a red shutdown button to stop the detached upper-ui process after confirmation
- templates are now available from the normal sidebar and are imported idempotently from the active Upper config on UI startup
- templates can be removed from the Templates UI without removing the original import files
- left sidebar now groups
Templates,Integrationen, andRemote Sourcesunder an expandableEinstellungenmenu - dashboard replaces the low-value link count metric with open import and missing-file status
- dashboard, uploads, config, and logs are now separate routes
- internal page navigation keeps browser terminals and websocket sessions alive while changing pages
- active pages auto-refresh without reloading the whole browser window
- uploads auto-import scans the result folder every 10 seconds and imports only missing JSON files
- uploads table now stores compact crypter metadata in SQLite and shows grouped, numbered crypter links instead of result-changed and link-count columns
- uploads table now shows a
Veröffentlichtstatus column derived from saved per-target Publishing selections and can filter queued uploads - publishing errors are now shown as a dedicated failed status with visible error text on upload list and edit pages
- Publishing integrations now show configured type and endpoint URL in addition to mapping and credentials status
- new forum publishing selections use the mapping fallback target before special-case targets of the same content type
- imported upload names now link to the metadata edit page
- upload editing keeps long release titles on one compact line and separates metadata from Publishing in
ItemandPublishingtabs - uploads row menu can view or download the stored original JSON
- imported upload rows can be deleted from the UI database through the uploads row options menu
- uploads page now keeps search, filters, sort order, and pagination when switching away and returning during the same browser session
-
Offene Uploadshas search, status/instance filters, sortable columns, and 50-item pagination -
Offene Uploadscan reset interruptedin Arbeititems by deleting their progress marker and matching copied work folders after the Upper instance has stopped
- update dialog reads
- bugfix:
- Remote Sources liest und schreibt Remote-Konfigurationen jetzt für die ausgewählte Go-Upper-Instanz statt implizit für die erste gefundene Config
- boersecx queue publishing now respects the service-level
enabled: falseflag - saved boersecx publishing destinations remain selected by forum URL and content type after mapping categories are reordered
- XenForo queue publishing posts into exact-title existing threads even when the selected target forum differs from the thread’s current forum
- XenForo queue publishing renders the template content selected in the UI database, including edited imported and newly created templates
- XenForo queue publishing submits BBCode directly for
boersecx,darklight.to, anddata-load.meinstead of typing into the rich-text editor, avoiding extra rendered blank lines - UI publishing falls back to a matching stored template when the mapping template path is absent or unreadable, so UI-only setups are not blocked by mapping template files
- bundled forum/uCMS mapping presets use portable bundled-template paths instead of a developer workstation path
- upper-ui updater waits until the old UI process has exited before starting the new one, avoiding restart failures from an occupied listen port
- templates page is no longer auto-refreshed every 15 seconds, so preview selections are not reset
- uploads row option menus are positioned outside the responsive table scroll clipping area, so every action remains visible