Update AniList docs

This commit is contained in:
2026-02-16 23:03:51 -08:00
parent 1d7406f3d4
commit 5602d751eb
9 changed files with 681 additions and 3 deletions

View File

@@ -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.

View File

@@ -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 -->

View File

@@ -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 -->