Files
yellowjacket/frontend/wailsjs/go/library/Library.js
T
yonluandClaude Opus 5 01bc5f2094 feat(jobs): surface background jobs with progress, logs and controls
Add a central job registry that library scans and search index builds
report into, so background work is visible instead of buried in the
settings page.

- backend/jobs: registry with per-job ring-buffer logs, capability-driven
  controls, and one coalesced JobsChanged snapshot at 4Hz
- pause survives restart via a job_state table; a paused scan is adopted
  back on launch and skipped by the soft scan
- top-bar indicator, popover, details drawer and a Jobs page replacing
  the config page's scan UI; per-library start/stop retained
- scan timing breakdown moves into the job log, Full rescan to the Jobs
  page; delete the orphaned library-manager component

Also add cmd/indexbuild and cmd/indexexport so the explore index can be
built once centrally rather than by every install, which today streams
~205GB from the ListenBrainz spark dump on first run. indexbuild picks
build/refresh/rebuild from index state; the Gitea workflow runs it on
push, weekly, or manually and publishes only when content changed.

fresh-install no longer defaults YJ_HOME under /tmp: it is tmpfs on most
distros, and the import needs ~6GB of real disk.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-25 14:42:22 -04:00

176 lines
4.9 KiB
JavaScript
Executable File

// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
export function AcquirePipelineLock() {
return window['go']['library']['Library']['AcquirePipelineLock']();
}
export function AddLibrary(arg1) {
return window['go']['library']['Library']['AddLibrary'](arg1);
}
export function CancelAllScans() {
return window['go']['library']['Library']['CancelAllScans']();
}
export function CancelCurrentScan() {
return window['go']['library']['Library']['CancelCurrentScan']();
}
export function CancelScan() {
return window['go']['library']['Library']['CancelScan']();
}
export function FullRescan() {
return window['go']['library']['Library']['FullRescan']();
}
export function GetAlbumTracks(arg1) {
return window['go']['library']['Library']['GetAlbumTracks'](arg1);
}
export function GetAlbumTracksByLibrary(arg1, arg2) {
return window['go']['library']['Library']['GetAlbumTracksByLibrary'](arg1, arg2);
}
export function GetAlbumsByArtist(arg1) {
return window['go']['library']['Library']['GetAlbumsByArtist'](arg1);
}
export function GetAlbumsByArtistByLibrary(arg1, arg2) {
return window['go']['library']['Library']['GetAlbumsByArtistByLibrary'](arg1, arg2);
}
export function GetAllAlbums() {
return window['go']['library']['Library']['GetAllAlbums']();
}
export function GetAllAlbumsByLibrary(arg1) {
return window['go']['library']['Library']['GetAllAlbumsByLibrary'](arg1);
}
export function GetAllArtists() {
return window['go']['library']['Library']['GetAllArtists']();
}
export function GetAllArtistsByLibrary(arg1) {
return window['go']['library']['Library']['GetAllArtistsByLibrary'](arg1);
}
export function GetAllGenresWithCounts() {
return window['go']['library']['Library']['GetAllGenresWithCounts']();
}
export function GetAllGenresWithCountsByLibrary(arg1) {
return window['go']['library']['Library']['GetAllGenresWithCountsByLibrary'](arg1);
}
export function GetAllLibrariesWithTrackCounts() {
return window['go']['library']['Library']['GetAllLibrariesWithTrackCounts']();
}
export function GetAllTracks() {
return window['go']['library']['Library']['GetAllTracks']();
}
export function GetAllTracksByLibrary(arg1) {
return window['go']['library']['Library']['GetAllTracksByLibrary'](arg1);
}
export function GetRemovalImpact(arg1) {
return window['go']['library']['Library']['GetRemovalImpact'](arg1);
}
export function GetScanQueueLength() {
return window['go']['library']['Library']['GetScanQueueLength']();
}
export function GetTrackMBIDs(arg1) {
return window['go']['library']['Library']['GetTrackMBIDs'](arg1);
}
export function GetTracksByGenre(arg1) {
return window['go']['library']['Library']['GetTracksByGenre'](arg1);
}
export function GetTracksByGenreByLibrary(arg1, arg2) {
return window['go']['library']['Library']['GetTracksByGenreByLibrary'](arg1, arg2);
}
export function IsScanActive() {
return window['go']['library']['Library']['IsScanActive']();
}
export function IsScanPaused() {
return window['go']['library']['Library']['IsScanPaused']();
}
export function PauseScan() {
return window['go']['library']['Library']['PauseScan']();
}
export function QueuedLibraryNames() {
return window['go']['library']['Library']['QueuedLibraryNames']();
}
export function ReleasePipelineLock() {
return window['go']['library']['Library']['ReleasePipelineLock']();
}
export function RemoveLibrary(arg1) {
return window['go']['library']['Library']['RemoveLibrary'](arg1);
}
export function RenameLibrary(arg1, arg2) {
return window['go']['library']['Library']['RenameLibrary'](arg1, arg2);
}
export function RestorePausedScans() {
return window['go']['library']['Library']['RestorePausedScans']();
}
export function ResumeScan() {
return window['go']['library']['Library']['ResumeScan']();
}
export function ScanAllLibraries() {
return window['go']['library']['Library']['ScanAllLibraries']();
}
export function ScanLibrary(arg1) {
return window['go']['library']['Library']['ScanLibrary'](arg1);
}
export function SearchTracks(arg1) {
return window['go']['library']['Library']['SearchTracks'](arg1);
}
export function SearchTracksByLibrary(arg1, arg2) {
return window['go']['library']['Library']['SearchTracksByLibrary'](arg1, arg2);
}
export function SetContext(arg1) {
return window['go']['library']['Library']['SetContext'](arg1);
}
export function SetJobRegistry(arg1) {
return window['go']['library']['Library']['SetJobRegistry'](arg1);
}
export function SetRemovalHooks(arg1) {
return window['go']['library']['Library']['SetRemovalHooks'](arg1);
}
export function SetRescanHooks(arg1) {
return window['go']['library']['Library']['SetRescanHooks'](arg1);
}
export function SetScanHooks(arg1) {
return window['go']['library']['Library']['SetScanHooks'](arg1);
}
export function SoftScanAllLibraries() {
return window['go']['library']['Library']['SoftScanAllLibraries']();
}