Review: Fix HostAuthorization blocking all RSpec request specs

review-1315-2026-06-04 Review

review ready

Verdict: READY

Template Completeness

  • [x] Type — Bug
  • [x] Lineage — Standalone, discovered during PR #102
  • [x] Repo — ldraney/landscaping-assistant
  • [x] What Broke — clear description with error message
  • [x] Repro Steps — 3 concrete steps
  • [x] Expected Behavior — clear and specific
  • [x] Environment — local Docker dev, Rails 8.1.3, Ruby 3.4.0
  • [x] Acceptance Criteria — 3 criteria, all verifiable
  • [x] Related — PR #102, file target with line number

Traceability

  • [x] story:testing label — testing infrastructure story
  • [ ] story note MISSING — [SCOPE] "testing" is not listed in project-landscaping-assistant user-stories section. Create user story entry for "testing" on the project page. Note: two completed items (#1288, #1289) also use story:testing, so this is an established label — the project page just needs updating.
  • [x] arch:rails-app label — Rails application component
  • [ ] arch note MISSING — [SCOPE] No arch-rails-app note found in pal-e-docs. Create architecture note arch-rails-app for the Rails application component. Note: this label is used by 20+ board items across the project, so the note is well overdue.
  • [x] Forgejo issue — ldraney/landscaping-assistant#103, open

File Targets

  • [x] config/environments/test.rb:32 — verified: line 32 contains config.hosts.clear with comment "Allow any host in test (RSpec default is www.example.com)." This is exactly what the ticket describes.

Repo Placement

Correct. Issue is filed on ldraney/landscaping-assistant and the fix is in the same repo. Single-repo fix — no cross-repo concerns.

Dependencies

No blocking dependencies. Related board items:
  • #1288 (done) — "Request specs for properties CRUD + resolve" — same story:testing label, this ticket created the request specs that are now broken
  • #1289 (done) — "System test infra + critical path browser specs" — same story:testing label, sister testing infrastructure work
  • PR #102 mentioned in Lineage — where the bug was discovered
No items in in_progress or next_up that block or are blocked by this ticket.

Acceptance Criteria

All 3 criteria are agent-verifiable:
  • "Bug no longer reproduces — bundle exec rspec passes request specs" — verifiable by running docker compose exec web bundle exec rspec spec/requests/
  • "No regression in development or production host config" — verifiable by inspecting that development.rb and production.rb host configs are unchanged
  • "Fix is minimal (1-2 lines in test.rb)" — verifiable by checking diff size

Blast Radius

Low. The fix is isolated to config/environments/test.rb — a test-only configuration file. Development host config (config.hosts << "landscaping-dev.tail5b443a.ts.net") and production config (hosts commented out) are not affected. The fix will unblock all 7 request spec files (664 lines total) covering properties, work queue, weeks, uploads, health, metrics, and client errors.
No sibling services to check — this is a single-app project. The pattern (config.hosts.clear not working in Rails 8.1) could affect other rails-base-derived apps if they upgrade to Rails 8.1, but that is out of scope for this ticket.

Decomposition Assessment

No decomposition needed. Single file target, 3 acceptance criteria, estimated agent work well under 5 minutes. This is a 1-point bug fix — change 1-2 lines in test.rb.

Recommendations

  • [SCOPE] Create user story entry "testing" on project-landscaping-assistant user-stories section (pre-existing gap — 3 completed items already use this label)
  • [SCOPE] Create architecture note arch-rails-app for the Rails application component (pre-existing gap — 20+ board items use this label)
Neither of these blocks the ticket — they are documentation debt items that predate this issue. The ticket itself is well-scoped and ready for implementation.