mirror of
https://github.com/booklore-app/booklore.git
synced 2026-02-18 00:17:53 +01:00
* feat: add comic metadata support to metadata picker and fix Comicvine parser * feat: lazy-load Comicvine issue details on selection * feat: lazy-load detail metadata for Amazon, GoodReads, and Audible parsers * fix: prevent spurious comic_metadata row creation for non-comic books * fix: extract rich previews from Audible search and reorder picker sections * feat: redesign metadata editor layout with collapsible sections and boolean selects * fix: implement per-field comic metadata locks replacing grouped locks * feat: add comic metadata filters and fix visibleFilters backend support * fix: use human-readable role labels in comic creator filter * fix: auto-populate comic metadata from ComicVine during metadata fetch * refactor: clean up ComicvineBookParser remove duplication and comments * fix: use ComicMetadata webLink for ComicVine favicon URL * fix: cache library options to prevent Set All dropdowns from resetting * fix: stream book content from disk instead of loading entire file into memory * fix: increase max visible filters from 15 to 20 * feat: replace filter multiselect with drag-and-drop reorderable list * fix: use audiobook-specific cover paths and cache busting for audiobook thumbnail updates * chore: enforce mandatory screenshots and stricter testing requirements in PR template * fix: update BookServiceTest to match Resource return type after streaming change --------- Co-authored-by: acx10 <acx10@users.noreply.github.com>
63 lines
2.8 KiB
Markdown
63 lines
2.8 KiB
Markdown
## 📝 Description
|
|
|
|
<!-- Why is this change needed? Link related issues (e.g. Fixes #123) -->
|
|
|
|
## 🏷️ Type of Change
|
|
|
|
- [ ] Bug fix
|
|
- [ ] New feature
|
|
- [ ] Enhancement to existing feature
|
|
- [ ] Refactor (no behavior change)
|
|
- [ ] Breaking change (existing functionality affected)
|
|
- [ ] Documentation update
|
|
|
|
## 🔧 Changes
|
|
|
|
<!-- List the specific modifications made -->
|
|
-
|
|
|
|
## 🧪 Testing
|
|
|
|
<!-- MANDATORY. PRs without this filled out will be closed.
|
|
- What exact steps did you follow to verify the fix or feature works?
|
|
- How did you manually regression test existing functionality?
|
|
- What edge cases did you cover?
|
|
-->
|
|
|
|
## 📸 Screenshots / Video (MANDATORY)
|
|
|
|
> Due to an increase in untested, AI-generated PRs, we have made this section mandatory for all submissions. Please include screenshots or a screen recording that demonstrates your change working end-to-end (e.g., the bug fix in action, the new feature working, API responses, or test output for backend changes). **PRs that do not include this will be closed without review.** Thank you for helping us keep the project stable.
|
|
|
|
<!-- Attach screenshots or screen recordings here -->
|
|
|
|
---
|
|
|
|
## ✅ Pre-Submission Checklist
|
|
|
|
> **All boxes must be checked before requesting review.** Incomplete PRs will be closed without review. No exceptions.
|
|
|
|
- [ ] Code follows project style guidelines and conventions
|
|
- [ ] Branch is up to date with `develop` (merge conflicts resolved)
|
|
- [ ] Automated tests added or updated to cover changes (backend **and** frontend)
|
|
- [ ] All tests pass locally (`./gradlew test` for backend, `ng test` for frontend)
|
|
- [ ] Changes manually verified in local dev environment (including related features)
|
|
- [ ] Screenshots or video proving the change works are attached above **(MANDATORY)**
|
|
- [ ] Flyway migration versioning is correct _(if schema was modified)_
|
|
- [ ] Documentation PR submitted to [booklore-docs](https://github.com/booklore-app/booklore-docs) _(if user-facing changes)_
|
|
- [ ] PR is reasonably scoped (PRs over 1000+ changed lines will be closed, split into smaller PRs)
|
|
|
|
### 🤖 AI-Assisted Contributions
|
|
|
|
> **If any part of this PR was generated or assisted by AI tools (Copilot, Claude, ChatGPT, etc.), all items below are mandatory.** AI-generated code that hasn't been thoroughly reviewed is the leading cause of reverted PRs. You are responsible for every line you submit. "The AI wrote it" is not an excuse.
|
|
|
|
- [ ] Every line has been read, understood, and can be explained by the author
|
|
- [ ] PR is scoped to a single logical change, not a dump of everything the AI suggested
|
|
- [ ] Tests validate actual behavior, not just coverage (AI-generated tests often assert nothing meaningful)
|
|
- [ ] No dead code, placeholder comments, `TODO`s, or unused scaffolding
|
|
|
|
---
|
|
|
|
## 💬 Additional Context _(optional)_
|
|
|
|
<!-- Any extra information or discussion points for reviewers -->
|