Skip to content

Build library rows from the track, and remove the Recent section - #683

Merged
thcp merged 2 commits into
mainfrom
fix/library-subline-656
Sep 23, 2026
Merged

thcp merged 2 commits into
mainfrom
fix/library-subline-656

Conversation

@thcp

@thcp thcp commented Sep 23, 2026

Copy link
Copy Markdown
Collaborator

Closes #656

Every row reads the same way

The line under a library title was channel · N stems, and channel was never a channel. Six code paths stored a status label in it, and they disagreed:

  • completion wrote "Extracted"
  • queued imports wrote "Processing" as hard-coded English
  • the startup sync, which adopts server jobs the local library does not know about, wrote nothing

That last path produced the " · 6 stems" row in #656, next to "Extracted · 6 stems" on the other copy. I reproduced it by starting with an empty library. The adopted row's count was also wrong: it came from the stems the job had asked for, not the ones it has, and read "0 stems".

The line is now built when the row is drawn:

  • a finished track shows its length and stem count;
  • a track still going shows "Processing", and a failed one "Import failed";
  • the re-import warning shows when its files are gone, and "Removed" in the Trash.

The count uses the stem files that exist, the same rule the track panel already used, now shared through one helper. Every writer of the label is gone, and search no longer matches it. It also follows the language now, where a stored label kept whatever language it was written in.

The Recent section is gone

It listed the three newest tracks, each of which is also in its folder, so the reporter's screenshot shows one song four times. New imports already land at the top of the first folder, and a processing track says so in its own row. The library's no-match search message was hard-coded English and is translated now.

Verification

  • library-rows.spec.mjs: 7 new tests, all failing against main.
  • 257 e2e tests pass; JS unit tests and i18n coverage are clean.

Thales added 2 commits September 23, 2026 17:06
It listed the three newest tracks above the folders, and every one of them is
also in its folder, where a new import already lands at the top. So each new
track appeared twice in one panel, and two imports of the same song four
times, which is what the #656 reporter's screenshot shows: Hallelujah four
times, and a library that has to scroll to get past it.

Nothing it offered is lost. Recent imports are at the top of the first folder,
and a track still being processed says so in its own row, which is the
inline, Moises-style handling the reporter asked for. The one thing it did
that a folder does not is reach across folders, which is a sort order rather
than a section if it turns out to matter.

The no-match message for a library search was hard-coded English and keyed
on the Recent list being empty. It is translated now, beside the Favorites and
Trash messages it mirrors, and library.recent has nothing left to label.
Two copies of the same song sat in the library reading "Extracted · 6 stems"
and " · 6 stems" (#656). The line under a title was `channel · N stems`, and
channel was never a channel. Six code paths stored a status label in it, and
they disagreed:

  foreground and background completion   "Extracted", translated
  queued imports                         "Processing", hard-coded English
  playlist imports                       "Processing", translated
  startup sync of a server job           nothing

The last is the empty one, and it is what the reporter saw: a job the local
library did not know about is adopted on startup with no label, so the line
began with a bare dot. Reproduced by starting with an empty library. Its count
was wrong too, taken from the stems the job had asked for, which an adopted
job may not have recorded, so it read "0 stems".

The label also froze in whatever language was active when it was written, so
switching language left old rows behind, and the key it borrowed is the
"Extracted" that precedes a date in the track panel: 抽出日時, "extraction
date", in Japanese.

Nothing is stored now. The line is built when the row is drawn: length and
stem count for a finished track, Processing or Import failed while it is not,
the re-import warning when its files are gone, Removed in the Trash. The count
is of the stem files that exist, the same rule the track panel already used,
now in one helper both share. Every writer of the label is gone, and search no
longer matches it, since tracks saved before this still carry it.

Seven tests, all failing against main: a track adopted from the server reads
like any other, an old stored label is neither shown nor searched, processing
and failed tracks say so, the line follows the language, each track is listed
once, and the empty search message is translated.
@thcp
thcp merged commit 5925d79 into main Sep 23, 2026
10 checks passed
@thcp
thcp deleted the fix/library-subline-656 branch September 23, 2026 16:19
@thcp thcp mentioned this pull request Sep 23, 2026
2 tasks done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: UI Issue with Library

1 participant