Validation: fix: restore missing project_requests table in schema.rb

validation-103-2026-07-26 Doc

validation pass

Verdict: PASS

Ticket

ldraney/intelligentstaffingsystems#103 — Restore the project_requests table definition that was accidentally dropped from db/schema.rb. Merged via PR #104.

Environment

Production cluster, namespace intelligentstaffingsystems. Pod: intelligentstaffingsystems-69c4f699d6-vp89s. Image: harbor.tail5b443a.ts.net/intelligentstaffingsystems/app:b46c43399b520241eece48595c114501489fc7f7 (HEAD of main, includes fix commit d1097ba). ArgoCD: Synced / Healthy. URL: https://intelligentstaffingsystems.ai.

Checks

# Criterion How Verified Result Evidence
1 project_requests table present in schema.rb with correct columns (lead_id, business_name, description, target_audience, inspiration, status, timestamps) grep schema.rb for create_table "project_requests" PASS Table found with all expected columns, uuid primary key, indices on lead_id and status
2 Foreign key project_requests → leads exists in schema.rb grep schema.rb for foreign_key "project_requests" PASS <code>add_foreign_key "project_requests", "leads"</code> present at end of schema.rb
3 Migration file consistent with schema.rb Read migration 20260717200001_create_project_requests.rb, compared columns PASS Migration creates table with identical columns, indices, and foreign key
4 Tests and fixtures exist for project_requests Located test/models/project_request_test.rb, test/controllers/projects_controller_test.rb, test/fixtures/project_requests.yml PASS Model tests cover validations, associations, scopes, dependent destroy. 3 fixtures defined. Controller tests cover form rendering and submission.
5 Production pod running with fix deployed kubectl get pods -n intelligentstaffingsystems; checked image tag ancestry PASS Pod 1/1 Running, 0 restarts. Image tag b46c433 (HEAD) includes fix commit d1097ba in its git ancestry.
6 ArgoCD sync and health kubectl get application -n argocd intelligentstaffingsystems PASS Synced / Healthy
7 Production endpoints healthy curl -s -w "%{http_code}" for /, /about, /appointments/new PASS / → 200, /about → 200, /appointments/new → 302 (auth redirect to /login, expected)
8 Pod logs clean (no schema errors) kubectl logs --tail=30 PASS Logs show normal request processing. Only noise: /metrics 404 from monitoring probe (pre-existing), PaperTrail deprecation warning (pre-existing). No schema or migration errors.

Regression Check

Production root URL, /about, and /appointments/new all respond correctly. Pod has 0 restarts and no crash loops. ArgoCD healthy. No new errors in pod logs.

Discovered Issues

No new issues discovered. Two pre-existing notes:
  • /metrics endpoint returns 404 — monitoring probe hitting a non-existent route. Pre-existing, not related to this fix.
  • No Woodpecker pipeline visible for the PR #104 merge commit (d1097ba). Subsequent pipelines built images that include the fix. Related to the known push event gap (see memory: project_push_event_gap.md).

Tier Summary

Tiers executed: Tier 1 (local schema + migration + test file verification), Tier 3 (production pod, ArgoCD, endpoint health). Tier 1 test execution skipped per known Docker test hang issue (#65). Tier 2 skipped (no staging environment).