Architecture health bar #50

Closed
opened 2026-08-03 22:43:01 +00:00 by TheAnachronism · 1 comment

Part of #41

Question

What architecture / code-health cleanup is required versus acceptable debt before calling the codebase established for 1.0 beta (layering drift, dead code, naming, ADR conformance)?

Part of #41 ## Question What architecture / code-health cleanup is required versus acceptable debt before calling the codebase established for 1.0 beta (layering drift, dead code, naming, ADR conformance)?
Author
Owner

Resolution

Architecture / code-health bar for sideload-to-friends 1.0 beta (criteria only — implement later):

Must

  1. Sid-retry path consistency: List hub and Drawer browse paths must use AccountRepository.withActiveClient (or the one shared equivalent that already implements ADR-0001 transparent re-login + single retry). This is the eng framing of polish Blocker seed #3 from Beta-blocking known issues — outcome and seam, not “somehow recovers.”
  2. Analyze-clean + light hygiene sweep: flutter analyze clean (already a CI must from CI quality gates for beta) plus a light pass for unused files/symbols and glossary-hostile user-facing copy in lib/. No whole-tree identifier rename campaign.

Named acceptable debt (not blockers)

  • UI↔repository layering drift — e.g. AccountReaderApi living in reader_page.dart; UI/providers reaching AccountRepository directly where a thinner provider/use-case already exists.

Not must for beta

  • Introducing missing ADR-0001 seams such as FeedTreeSource
  • Collapsing dual Controller + StateNotifier pairs
  • Broader glossary renames across code identifiers
  • Formal architecture-review / zero-critical-findings audit
  • Framing Fresh (−3) Unread patching as an architecture must (remains polish Blocker seed #1 only)

Why

Friends beta needs the session-recovery contract applied on the broken browse paths plus a light hygiene floor — not a deepening/refactor campaign. Layout already largely matches ADR-0001 feature folders + Riverpod; remaining drift is documentable debt.

## Resolution **Architecture / code-health bar** for sideload-to-friends **1.0 beta** (criteria only — implement later): ### Must 1. **Sid-retry path consistency:** List hub and Drawer browse paths must use `AccountRepository.withActiveClient` (or the one shared equivalent that already implements ADR-0001 transparent re-login + single retry). This is the eng framing of polish Blocker seed #3 from [Beta-blocking known issues](https://git.anachronis.dev/TheAnachronism/tt-rss-viewer/issues/45) — outcome *and* seam, not “somehow recovers.” 2. **Analyze-clean + light hygiene sweep:** `flutter analyze` clean (already a CI must from [CI quality gates for beta](https://git.anachronis.dev/TheAnachronism/tt-rss-viewer/issues/47)) plus a light pass for unused files/symbols and glossary-hostile *user-facing* copy in `lib/`. No whole-tree identifier rename campaign. ### Named acceptable debt (not blockers) - **UI↔repository layering drift** — e.g. `AccountReaderApi` living in `reader_page.dart`; UI/providers reaching `AccountRepository` directly where a thinner provider/use-case already exists. ### Not must for beta - Introducing missing ADR-0001 seams such as `FeedTreeSource` - Collapsing dual Controller + StateNotifier pairs - Broader glossary renames across code identifiers - Formal architecture-review / zero-critical-findings audit - Framing Fresh (−3) Unread patching as an architecture must (remains polish Blocker seed #1 only) ### Why Friends beta needs the session-recovery contract applied on the broken browse paths plus a light hygiene floor — not a deepening/refactor campaign. Layout already largely matches ADR-0001 feature folders + Riverpod; remaining drift is documentable debt.
Sign in to join this conversation.
No description provided.