Skip to content

[pull] main from vavallee:main - #18

Merged
pull[bot] merged 3 commits into
magrhino:mainfrom
vavallee:main
Sep 29, 2026
Merged

pull[bot] merged 3 commits into
magrhino:mainfrom
vavallee:main

Conversation

@pull

@pull pull Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

vavallee and others added 3 commits September 29, 2026 16:14
…release is rejected (#2863) (#2872)

conflictingTitleAuthor only read an attribution directly after the title
("<title> by <author>") or after a spaced dash. A series label in between,
as in "Heart of Glass, Skye Druids (03) by Donna Grant EPUB", hid it, so the
release was accepted on its title alone and grabbed for Jennifer Hillier's
"Heart of Glass".

When the release starts with the requested title and neither existing form
applies, look for the first "by" in the part after the title, within a short
series label, and read the words after it (up to a format, release marker or
year) as the attribution for the existing author comparison. A "by" after a
narrator, translator or uploader word is ignored, and a release with no
parsable attribution is accepted as before.

filterRelevantDebug, which both production search paths run
(SearchBookWithOutcomes for automatic search, SearchBookWithDebug for the
interactive panel), never called conflictingTitleAuthor, so the fix would
not have reached a real search. It now runs the same guard and records the
drop reason. Draft #2812 folds both filters into one implementation; this
is the minimal slice of that needed for #2863.



Claude-Session: https://claude.ai/code/session_016fJcCVbNnKsmj2MAAMwWj9

Signed-off-by: vavallee <vavallee@protonmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…fix gosec G115 (#2868) (#2873)

On macOS t.TempDir() sits under /var, a symlink to /private/var. Scan
reports units under the symlink-resolved folder, so seven
TestManualImportScan tests built expectations from a path form the scan
never returns. They now take their root from resolvedTempDir.

The same mismatch is a real production gap on any platform: book_files
stores paths under the library root as configured, while Scan walks the
resolved folder, so a symlinked library root never matched by exact path
and only the inode fallback hid tracked files. That fallback cannot see a
tracked file that was missing when the index was built or was rewritten
in place since, and both surfaced as importable. trackedFileIndex now
also indexes each tracked path with its directory components resolved,
memoised per directory so a cold rebuild costs one extra lstat per
distinct library directory rather than one EvalSymlinks per row.

samedevice_unix.go: Stat_t.Dev is int32 on darwin and openbsd, which
gosec G115 flags. The value is only compared for equality and the
conversion is injective, so it carries a targeted nolint with the reason.



Claude-Session: https://claude.ai/code/session_016fJcCVbNnKsmj2MAAMwWj9

Signed-off-by: vavallee <vavallee@protonmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016fJcCVbNnKsmj2MAAMwWj9

Signed-off-by: vavallee <vavallee@protonmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@pull pull Bot locked and limited conversation to collaborators Sep 29, 2026
@pull pull Bot added the ⤵️ pull label Sep 29, 2026
@pull
pull Bot merged commit 692376c into magrhino:main Sep 29, 2026
31 of 34 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant