Review: App Store rejection: Register button error on iPad (Guideline 2.1(a))

review-1684-2026-07-03-r2 Review

review approved

Verdict: APPROVED

Re-review of board item #1684. Previous review (review-1684-2026-07-03) returned NEEDS_REFINEMENT with 6 issues. All have been addressed.

Template Completeness

  • [x] Type (Bug)
  • [x] Lineage
  • [x] Repo
  • [x] What Broke
  • [x] Repro Steps
  • [x] Expected Behavior
  • [x] Environment
  • [x] Acceptance Criteria
  • [x] Related
All required sections for the template-issue-bug template are present and complete.

Traceability

  • [x] story:app-store-submission label -- "Submit and maintain iOS App Store listing (privacy declarations, review compliance, metadata)"
  • [x] story note verified -- found in project-landscaping-assistant user-stories section
  • [x] arch:keycloak label -- Keycloak infrastructure component
  • [x] arch note verified -- arch-keycloak note exists in pal-e-docs (project: pal-enterprises)
  • [x] Forgejo issue -- ldraney/landscaping-assistant#290, open

File Targets

  • [x] keycloak-theme/landscaping/login/resources/css/login.css -- verified: exists (341 lines), #kc-register-form::before at line 122 (matches "line ~122"), #kc-registration selectors at lines 261, 273, 280
  • [x] docs/keycloak-setup.md -- verified: exists, contains registration_allowed = true at line 74 with documentation at line 84
  • [x] docs/app-store-review/2026-07-02-rejection-v1.0.md -- verified: exists in docs/app-store-review/ directory

Repo Placement

OK. Issue filed on ldraney/landscaping-assistant, all file targets are in this repo. Fix approach is CSS hide -- no Terraform changes needed in pal-e-services. Previous review flagged a repo placement mismatch; this has been corrected.

Dependencies

  • #1683 (issue #289, backlog): App Store rejection -- privacy declarations (Guideline 5.1.2(i)). Same story:app-store-submission but different arch component (arch:ios-pipeline). Independent -- can be worked in parallel.
  • #1685 (issue #291, backlog): Another app-store-submission feature item. Independent.
  • No blocking dependencies. All three App Store rejection items (#1683, #1684, #1685) are independent and can be worked in any order.

Acceptance Criteria

5 criteria -- all agent-verifiable:
  • [x] "No Register link/button visible" -- verifiable by CSS inspection of login.css
  • [x] "Login flow works correctly on iPad" -- verifiable by testing login flow (iPad simulator or device)
  • [x] "Existing login with demo credentials still works" -- verifiable by functional test
  • [x] "docs/keycloak-setup.md updated" -- verifiable by reading doc content
  • [x] "#kc-register-form::before styling cleaned up" -- verifiable by CSS inspection
All criteria are clear, testable, and complete. The doc update AC was added in response to previous review feedback.

Blast Radius

Low. #kc-registration and #kc-register-form selectors appear only in keycloak-theme/landscaping/login/resources/css/login.css. No other files reference them. The fix is purely visual CSS hiding -- no server-side changes, no Terraform modifications. Self-registration remains enabled at the realm level (registration_allowed = true), so the change is trivially reversible by removing the CSS rule.

Decomposition Assessment

No decomposition needed.
  • File targets: 2 files to modify (login.css, keycloak-setup.md) in 1 repo
  • AC count: 5 (within limit)
  • Estimated agent work: <5 minutes (add one CSS rule, clean up another, update one doc section)

Previous Review Issues -- Resolution

  • Architectural conflict (self-registration vs disabling) -- RESOLVED: Fix changed from Terraform realm-level disable to CSS hide, keeping registration_allowed = true
  • Repo placement mismatch -- RESOLVED: All work now stays in landscaping-assistant repo, no pal-e-services changes
  • Missing ACs for doc updates -- RESOLVED: AC added for keycloak-setup.md update
  • Missing AC for CSS cleanup -- RESOLVED: AC added for #kc-register-form::before cleanup
  • story:app-store-submission user story -- RESOLVED: Entry exists in project-landscaping-assistant user-stories section
  • arch-keycloak note -- RESOLVED: arch-keycloak note exists in pal-e-docs

Recommendation

No action needed.