Skip to content

feat(research): add project list presentation model#52

Merged
hubab1 merged 3 commits into
mainfrom
34b-research-project-list-model
Jul 26, 2026
Merged

feat(research): add project list presentation model#52
hubab1 merged 3 commits into
mainfrom
34b-research-project-list-model

Conversation

@hubab1

@hubab1 hubab1 commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Summary

  • add a closure-injected, explicitly @MainActor observable project-list presentation model
  • preserve prior rows across reload and pagination failures with exact continuation offsets and ID deduplication
  • add stable project and keyword draft UUIDs for idempotent persistence retries
  • map store, provider, and Apple Ads issues to fixed redacted user-facing messages and truthful accessibility descriptions
  • preserve the three-commit history covering the base model, load-state restoration, and detail-revision reconciliation

Correctness

  • stale or cancelled loads cannot overwrite a newer publication
  • mutations check cancellation before persistence but never report cancellation after a successful commit return
  • a mutation before the initial page, or one that supersedes an in-flight load, exposes requiresReload and blocks unsafe continuation paging until recovery succeeds
  • stale destructive mutations surface a conflict and are never retried automatically
  • creating and deleting rows preserve or adjust valid pagination offsets instead of hiding later pages

This progresses #3 but does not close it.

Validation

  • focused presentation-model tests passed
  • full OpenASO suite passed: 563 tests (567 parameterized test invocations)
  • project-file lint and whitespace checks passed

@hubab1
hubab1 force-pushed the 34a-research-project-ui-foundation branch from 85e9db0 to 1d588bb Compare July 26, 2026 09:58
@hubab1
hubab1 force-pushed the 34b-research-project-list-model branch from f03e416 to 2c241da Compare July 26, 2026 10:05
@hubab1
hubab1 changed the base branch from 34a-research-project-ui-foundation to main July 26, 2026 10:05
@hubab1
hubab1 marked this pull request as ready for review July 26, 2026 10:08
@hubab1
hubab1 merged commit 73509d5 into main Jul 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant