mirror of
https://github.com/Glitchy-Sheep/boosty-downloader.git
synced 2026-10-14 21:33:23 +00:00
[PR #224] [MERGED] feat(application): define library storage contracts #222
Labels
No labels
api-drift
bug
ci
documentation
enhancement
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Glitchy-Sheep/boosty-downloader#222
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Glitchy-Sheep/boosty-downloader/pull/224
Author: @Glitchy-Sheep
Created: 10/8/2026
Status: ✅ Merged
Merged: 10/8/2026
Merged by: @Glitchy-Sheep
Base:
main← Head:feat/define-library-storage-contracts📝 Commits (2)
e219389feat(application): define post store and library reader contracts042cfdetest(application): verify post store contract with memory adapter📊 Changes
6 files changed (+647 additions, -4 deletions)
View changed files
📝
boosty_downloader/application/ports.py(+103 -3)➕
boosty_downloader/domain/library.py(+74 -0)➕
boosty_downloader/domain/library_marks.py(+27 -0)📝
pyrightconfig.json(+3 -1)➕
test/support/memory_post_store.py(+73 -0)➕
test/unit/library/memory_post_store_test.py(+367 -0)📄 Description
📝 Summary
The stored-post pipeline needs a common way to load and save records before JSON and SQLite storage can be connected. This PR defines the downloader and viewer contracts and adds an in-memory post store for tests; current CLI behavior stays unchanged.
🔧 What changes
PostStoredefines post lookup, stable folder ownership, record saves, author details, and separate observations of lost access.LibraryReaderdefines author and post queries plus viewing marks; shared domain types describe its inputs and results.MemoryPostStoreowns independent copies of records and rejects folder conflicts before changing stored data.PostStore, and 19 tests cover its observable contract.🧪 Tests
task ci: 871 unit/e2e tests passed, along with Ruff, formatting, Pyright, import boundaries, and wheel/sdist builds..env; contracts and test support need no live download.⏭️ Next
post.jsonreads and atomic writes, followed by folder lookup and author records.✅ Checklist
--helpand README if needed - not needed: no CLI changes.docs/if the download flow or dev process changed - not needed: contracts are documented beside their types and methods.## Unreleasedin CHANGELOG.md (or theci/skip-changeloglabel if not user-facing) -ci/skip-changelog.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.