diff --git a/webui/static/docs.js b/webui/static/docs.js index a7d8ac32..6d9e6f27 100644 --- a/webui/static/docs.js +++ b/webui/static/docs.js @@ -485,6 +485,7 @@ const DOCS_SECTIONS = [ { id: 'auto-triggers', title: 'All Triggers' }, { id: 'auto-actions', title: 'All Actions' }, { id: 'auto-then', title: 'Then-Actions & Signals' }, + { id: 'auto-history', title: 'Execution History' }, { id: 'auto-system', title: 'System Automations' } ], content: () => ` @@ -569,6 +570,12 @@ const DOCS_SECTIONS = [

Test Notifications: Use the test button next to any notification then-action to send a test message before saving. This verifies your webhook URL, API key, or bot token is working correctly.

ℹ️
Signal chaining lets you build multi-step workflows. Safety features include cycle detection (DFS), a 5-level chain depth limit, and a 10-second cooldown between signal fires.
+
+

Execution History

+

Each automation card shows its last run time and run count. For scheduled automations, a countdown timer shows when the next run will occur.

+

Use the Run Now button on any automation card to execute it immediately, regardless of its schedule. The result (success/failure) updates in real-time on the card.

+

The Dashboard activity feed also logs every automation execution with timestamps, so you can review the full history of what ran and when.

+

System Automations

SoulSync ships with 10 built-in automations that handle routine maintenance. You can enable/disable them and modify their configs, but you can't delete them or rename them.

@@ -661,7 +668,8 @@ const DOCS_SECTIONS = [ { id: 'imp-setup', title: 'Staging Setup' }, { id: 'imp-workflow', title: 'Import Workflow' }, { id: 'imp-singles', title: 'Singles Import' }, - { id: 'imp-matching', title: 'Track Matching' } + { id: 'imp-matching', title: 'Track Matching' }, + { id: 'imp-textfile', title: 'Import from Text File' } ], content: () => `
@@ -693,6 +701,16 @@ const DOCS_SECTIONS = [

After matching, the import process tags files with the official metadata (title, artist, album, track number, cover art) and moves them to your transfer path following the standard file organization template.

+
+

Import from Text File

+

Import track lists from CSV, TSV, or TXT files. Upload a file with columns for artist, album, and track title:

+
    +
  1. Click Import from File and select your text file
  2. +
  3. Choose the separator (comma, tab, or pipe)
  4. +
  5. Map columns to the correct fields (Artist, Album, Track)
  6. +
  7. SoulSync searches for each track on Spotify/iTunes and adds matches to your wishlist for downloading
  8. +
+
` }, { @@ -701,6 +719,7 @@ const DOCS_SECTIONS = [ icon: '/static/library.png', children: [ { id: 'player-controls', title: 'Playback Controls' }, + { id: 'player-streaming', title: 'Streaming & Sources' }, { id: 'player-queue', title: 'Queue & Smart Radio' }, { id: 'player-shortcuts', title: 'Keyboard Shortcuts' } ], @@ -710,6 +729,16 @@ const DOCS_SECTIONS = [

The sidebar media player is always visible when a track is loaded. It shows album art, track info, a seekable progress bar, and playback controls (play/pause, previous, next, volume, repeat, shuffle).

Click the sidebar player to open the Now Playing modal — a full-screen experience with large album art, ambient glow (dominant color from cover art), a frequency-driven audio visualizer, and expanded controls.

+
+

Streaming & Sources

+

The media player streams audio directly from your connected media server — no local file access needed:

+ +

The browser auto-detects which audio formats it can play. Album art, track metadata, and ambient colors are all pulled from your server in real-time.

+

Queue & Smart Radio

Add tracks to the queue from the Enhanced Library Manager or download results. Manage the queue in the Now Playing modal: reorder, remove individual tracks, or clear all.

@@ -739,25 +768,39 @@ const DOCS_SECTIONS = [ icon: '/static/settings.png', children: [ { id: 'set-services', title: 'Service Credentials' }, + { id: 'set-media', title: 'Media Server Setup' }, { id: 'set-download', title: 'Download Settings' }, + { id: 'set-processing', title: 'Processing & Organization' }, { id: 'set-quality', title: 'Quality Profiles' }, { id: 'set-other', title: 'Other Settings' } ], content: () => `

Service Credentials

-

Configure credentials for each external service. All fields are saved to your local config — nothing is sent to external servers except during actual API calls.

+

Configure credentials for each external service. All fields are saved to your local config — nothing is sent to external servers except during actual API calls. Each service has a Test Connection button to verify your credentials are working.

+
+

Media Server Setup

+

Connect your media server so SoulSync can scan your library, trigger updates, stream audio, and sync metadata:

+ + + + + + + +
ServerCredentialsSetup Details
PlexURL + TokenAfter connecting, select which Music Library to use from the dropdown. SoulSync scans this library for your collection and triggers scans after downloads.
JellyfinURL + API KeySelect the User and Music Library to target. SoulSync uses the Jellyfin API for library scans and can stream audio directly.
NavidromeURL + Username + PasswordSelect the Music Folder to monitor. Navidrome auto-detects new files, so SoulSync doesn't need to trigger scans — just place files in the right folder.
+

The media player streams audio directly from your connected server — tracks play through your Plex, Jellyfin, or Navidrome instance without needing local file access.

+

Download Settings

+
+

Processing & Organization

+

Control how downloaded files are processed and organized:

+ +

Quality Profiles

Set your preferred audio quality with presets (Audiophile/Balanced/Space Saver) or custom configuration per format. Each format has a configurable bitrate range and priority order. Enable Fallback to accept any quality when nothing matches.

diff --git a/webui/static/help.png b/webui/static/help.png new file mode 100644 index 00000000..9c6c81e9 Binary files /dev/null and b/webui/static/help.png differ