Captures the owner's requirements and decisions from the planning conversation, current branch/worktree state, open tasks 17-19, pending owner decisions and the controller's rulings so a new agent can resume. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.5 KiB
1.5 KiB
Task 12 report: MangaBaka plugin
Status: DONE_WITH_CONCERNS. Branch task/12, commit ddd9389 feat(plugins): mangabaka.
Files (all under plugins/mangabaka/): index.ts, src/{api,map,pull,lookup}.ts, test/mangabaka.test.ts, test/fixtures/{library-page1,library-page2,changes,search}.json.
Tests: bun test plugins/mangabaka -> 12 pass, 0 fail. bun run typecheck clean. No DB involved.
Concerns:
- TDD: tests and implementation were written together; no separate RED run was captured.
- Response shapes not in the brief are assumed: library page = {data, pagination:{page,total_pages}}; search = {data:[series]}. Verify against the OpenAPI spec.
- ratePerMinute 150 is exported as RATE_PER_MINUTE (src/api.ts); the SDK manifest has no field for it, so the host must apply it.
- Auth reads ctx.config.token and sends x-api-key.
- Deletes yield two deleted records (series: and progress:) with a placeholder WorkHint.
- Changes loop saves cursor each page and stops on empty data, missing or unchanged cursor.
- Series type "comic" maps to comic, otherwise manga.
Fix round 1
- pullChanges: only type "delete" deletes; upsert without entry is skipped with ctx.log message (test added).
- mapState uses Object.hasOwn (test for "constructor").
- Test cross-checking delete keys against keys from a full pull of series 1.
- 15 tests pass, typecheck clean.
- External-id namespaces made type-specific: anilist_manga, mal_manga, kitsu_manga (mangaupdates, mangabaka unchanged); tests updated.