mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
Merge pull request #7 from ksyasuda/feature/add-anilist-tracking
Add AniList Tracking
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
---
|
||||
id: TASK-29
|
||||
title: Add Anilist integration for post-watch updates
|
||||
status: To Do
|
||||
status: In Progress
|
||||
assignee: []
|
||||
created_date: '2026-02-13 17:57'
|
||||
updated_date: '2026-02-17 04:19'
|
||||
labels:
|
||||
- anilist
|
||||
- anime
|
||||
@@ -40,6 +41,12 @@ Requirements:
|
||||
- [ ] #7 Error states and duplicate/duplicate-inconsistent updates are handled deterministically (idempotent where practical).
|
||||
<!-- AC:END -->
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
<!-- SECTION:NOTES:BEGIN -->
|
||||
Completed child tasks TASK-29.1 and TASK-29.2: secure token persistence/fallback and persistent retry queue with backoff/dead-letter are now implemented.
|
||||
<!-- SECTION:NOTES:END -->
|
||||
|
||||
## Definition of Done
|
||||
<!-- DOD:BEGIN -->
|
||||
- [ ] #1 Core Anilist service module exists and is wired into application flow for post-watch updates.
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
id: TASK-29.1
|
||||
title: Implement secure AniList token lifecycle and account management
|
||||
status: Done
|
||||
assignee: []
|
||||
created_date: '2026-02-17 04:12'
|
||||
updated_date: '2026-02-17 04:19'
|
||||
labels:
|
||||
- anilist
|
||||
- security
|
||||
- auth
|
||||
dependencies: []
|
||||
parent_task_id: TASK-29
|
||||
priority: medium
|
||||
---
|
||||
|
||||
## Acceptance Criteria
|
||||
<!-- AC:BEGIN -->
|
||||
- [ ] #1 Access token is stored in secure local storage rather than plain config.
|
||||
- [ ] #2 Token connect/disconnect UX supports revocation/logout and re-auth setup.
|
||||
- [ ] #3 Startup flow validates token presence/state and surfaces actionable errors.
|
||||
- [ ] #4 Docs describe token management and security expectations.
|
||||
<!-- AC:END -->
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
<!-- SECTION:NOTES:BEGIN -->
|
||||
Implemented secure AniList token lifecycle: config token persists to encrypted token store, stored token fallback is auto-resolved at runtime, and auth state source now distinguishes literal vs stored.
|
||||
<!-- SECTION:NOTES:END -->
|
||||
|
||||
## Definition of Done
|
||||
<!-- DOD:BEGIN -->
|
||||
- [ ] #1 Token lifecycle module wired into AniList update/auth flow.
|
||||
- [ ] #2 Unit/integration coverage added for token storage and logout paths.
|
||||
<!-- DOD:END -->
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
id: TASK-29.2
|
||||
title: Implement AniList retry/backoff queue for failed post-watch updates
|
||||
status: Done
|
||||
assignee: []
|
||||
created_date: '2026-02-17 04:13'
|
||||
updated_date: '2026-02-17 04:19'
|
||||
labels:
|
||||
- anilist
|
||||
- reliability
|
||||
- queue
|
||||
dependencies: []
|
||||
parent_task_id: TASK-29
|
||||
priority: medium
|
||||
---
|
||||
|
||||
## Acceptance Criteria
|
||||
<!-- AC:BEGIN -->
|
||||
- [ ] #1 Failed AniList mutations are enqueued with retry metadata and exponential backoff.
|
||||
- [ ] #2 Transient API/network failures retry automatically without blocking playback.
|
||||
- [ ] #3 Queue is idempotent per media+episode update key and survives app restarts.
|
||||
- [ ] #4 Permanent failures surface clear diagnostics and dead-letter state.
|
||||
<!-- AC:END -->
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
<!-- SECTION:NOTES:BEGIN -->
|
||||
Implemented persistent AniList retry queue with exponential backoff, dead-lettering after max attempts, queue snapshot state wiring, and retry processing integrated into playback-triggered AniList update flow.
|
||||
<!-- SECTION:NOTES:END -->
|
||||
|
||||
## Definition of Done
|
||||
<!-- DOD:BEGIN -->
|
||||
- [ ] #1 Queue service integrated into AniList post-watch update path.
|
||||
- [ ] #2 Backoff/retry behavior covered by unit tests.
|
||||
<!-- DOD:END -->
|
||||
Reference in New Issue
Block a user