docs: Flutter implementation plan (Phase 10a-10j) #24

Closed
matikane wants to merge 2 commits from docs/flutter-phase-plan into main
Member

Flutter Implementation Plan — Phase 10 detailed breakdown

Expands the single-line Phase 10 in PROJECT_PLAN.md into 10 detailed sub-phases with specific deliverables for each:

Phase Scope Status
10a Project scaffold, deps, linting, smoke test Complete (PR #22)
10b Folder structure, Gallery theme, Redux store skeleton, go_router Next
10c Settings page, SecureStorage, dio ApiClient, connection test
10d Freezed DTOs, domain models, repository interfaces + implementations
10e Library grid, search panel, pagination, browse UX
10f Doujin detail screen (metadata + thumbnails)
10g Metadata editor (titles, tags, people, circles, rating)
10h Variant/page/chapter management, upload flow
10i Full-screen reader with keyboard navigation
10j Polish: CI, error handling, loading/empty states, keyboard shortcuts

Each phase has specific deliverables, epics, and test requirements listed.

## Flutter Implementation Plan — Phase 10 detailed breakdown Expands the single-line Phase 10 in PROJECT_PLAN.md into 10 detailed sub-phases with specific deliverables for each: | Phase | Scope | Status | |-------|-------|--------| | **10a** | Project scaffold, deps, linting, smoke test | ✅ Complete (PR #22) | | **10b** | Folder structure, Gallery theme, Redux store skeleton, go_router | Next | | **10c** | Settings page, SecureStorage, dio ApiClient, connection test | | | **10d** | Freezed DTOs, domain models, repository interfaces + implementations | | | **10e** | Library grid, search panel, pagination, browse UX | | | **10f** | Doujin detail screen (metadata + thumbnails) | | | **10g** | Metadata editor (titles, tags, people, circles, rating) | | | **10h** | Variant/page/chapter management, upload flow | | | **10i** | Full-screen reader with keyboard navigation | | | **10j** | Polish: CI, error handling, loading/empty states, keyboard shortcuts | | Each phase has specific deliverables, epics, and test requirements listed.
Replaces the single-line Phase 10 with 10 detailed sub-phases:
- 10a: Project scaffold  (already complete)
- 10b: Architecture skeleton + Gallery theme
- 10c: Settings and connection
- 10d: Data layer and API models
- 10e: Library browse and search
- 10f: Doujin detail
- 10g: Metadata editor
- 10h: Variant and page management
- 10i: Reader
- 10j: Polish and CI
- CI pipeline is now Phase 10c (right after architecture skeleton)
- Settings → 10d, Data layer → 10e, Library → 10f, etc.
- Polish → 10k (CI removed from polish, it's its own phase now)
bjoern closed this pull request 2026-06-29 20:18:45 +02:00
Author
Member

🤖 Hermes automated review: no blocking issues found

Reviewed diff 7907427...1a34793 (+97/-7, 1 file: docs/PROJECT_PLAN.md). Docs-only change expanding Phase 10 (Flutter desktop/web app) into 10 detailed sub-phases (10a–10j), each with concrete deliverables, epics, and test requirements.

Assessment

  • No code changes — single Markdown file, no executable surface. Static scan clean (no secrets, no code-injection patterns; n/a for shell/eval/SQL).
  • ADR references are valid: phases 10a/10b/10c cite ADRs 0017 (technology stack), 0018 (clean architecture), 0019 (Gallery theme). I confirmed all three ADR files exist on this branch (docs/adr/0017-…, 0018-…, 0019-…).
  • Internal consistency: Phase 10a is correctly marked Complete (matches merged PR #22 — scaffold, deps, very_good_analysis, CI path filters). Phase 10b is marked "Next", consistent with #22 being merged.
  • Scope/sequencing is sound: 10b (architecture + theme + Redux + routing) → 10c (settings/connection) → 10d (data layer) → 10e (browse) → 10f (detail) → 10g (editor) → 10h (variant/page/upload) → 10i (reader) → 10j (polish/CI) follows a sensible dependency order (data layer before UI that consumes it; reader last).

Minor (non-blocking) observations

  • 10d ↔ 10e ordering nuance: The data-layer DTOs in 10d are modeled on "backend JSON envelopes (ResourceResponse, CollectionResponse, HypermediaLink, HypermediaAction, PageMeta)". These names should match the actual DoujinManager.RestAdapter.Envelopes.* types — worth a quick cross-check when 10d is implemented so the Dart freezed DTOs align with the C# envelope shapes (and with the POST-link style introduced in PR #18).
  • 10j "Flutter CI job in ci.yml": Note that ci.yml currently has no Flutter job (PR #22 added path filters only). The plan correctly calls out adding it in 10j; just flagging that until 10j lands, Flutter changes (10b–10i) won't be gated by backend CI. This is acknowledged by the plan, not a defect.

Verification

  • CI/CD: This is a docs-only change to PROJECT_PLAN.md; no build/test applies. No forgejo-actions coverage comment expected or needed for this PR. Local build/test intentionally skipped (no code surface).
  • Diff computed locally via git diff 7907427...1a34793.
  • Static security scan: clean (Markdown only).

Verdict

No blocking or minor actionable issues. The plan is well-structured and its references resolve. Safe to merge from a review standpoint.

Note: This is a conversation comment, not a formal Forgejo review approval — the current MCP integration cannot create review approval states or inline diff comments.

Automated daily review. I never merge PRs.

## 🤖 Hermes automated review: no blocking issues found Reviewed diff `7907427...1a34793` (+97/-7, 1 file: `docs/PROJECT_PLAN.md`). Docs-only change expanding Phase 10 (Flutter desktop/web app) into 10 detailed sub-phases (10a–10j), each with concrete deliverables, epics, and test requirements. ### Assessment - **No code changes** — single Markdown file, no executable surface. Static scan clean (no secrets, no code-injection patterns; n/a for shell/eval/SQL). - **ADR references are valid**: phases 10a/10b/10c cite ADRs 0017 (technology stack), 0018 (clean architecture), 0019 (Gallery theme). I confirmed all three ADR files exist on this branch (`docs/adr/0017-…`, `0018-…`, `0019-…`). - **Internal consistency**: Phase 10a is correctly marked ✅ Complete (matches merged PR #22 — scaffold, deps, very_good_analysis, CI path filters). Phase 10b is marked "Next", consistent with #22 being merged. - **Scope/sequencing is sound**: 10b (architecture + theme + Redux + routing) → 10c (settings/connection) → 10d (data layer) → 10e (browse) → 10f (detail) → 10g (editor) → 10h (variant/page/upload) → 10i (reader) → 10j (polish/CI) follows a sensible dependency order (data layer before UI that consumes it; reader last). ### Minor (non-blocking) observations - **10d ↔ 10e ordering nuance:** The data-layer DTOs in 10d are modeled on "backend JSON envelopes (ResourceResponse, CollectionResponse, HypermediaLink, HypermediaAction, PageMeta)". These names should match the actual `DoujinManager.RestAdapter.Envelopes.*` types — worth a quick cross-check when 10d is implemented so the Dart freezed DTOs align with the C# envelope shapes (and with the POST-link style introduced in PR #18). - **10j "Flutter CI job in ci.yml":** Note that `ci.yml` currently has no Flutter job (PR #22 added path filters only). The plan correctly calls out adding it in 10j; just flagging that until 10j lands, Flutter changes (10b–10i) won't be gated by backend CI. This is acknowledged by the plan, not a defect. ### Verification - **CI/CD:** This is a docs-only change to `PROJECT_PLAN.md`; no build/test applies. No forgejo-actions coverage comment expected or needed for this PR. Local build/test intentionally skipped (no code surface). - Diff computed locally via `git diff 7907427...1a34793`. - Static security scan: clean (Markdown only). ### Verdict No blocking or minor actionable issues. The plan is well-structured and its references resolve. Safe to merge from a review standpoint. *Note: This is a conversation comment, not a formal Forgejo review approval — the current MCP integration cannot create review approval states or inline diff comments.* *Automated daily review. I never merge PRs.*

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
TeamAI/doujin-manager!24
No description provided.