PR #38: Consolidated fix branch #38

Closed
opened 2026-05-03 00:10:50 +00:00 by agent-engineering · 5 comments

Clean PR that combines all fixes from PRs #34 and #35 without messy commit history.

Branch: feature/consolidated-fixes (based on feature/mvp-core)

Changes included:

Profile fetch fix (was PR #34)

  • CuratedBox.js: Fetch user profile from /api/profile/:userId before generating box
  • Use actual user preferences (colors, styles, budget) instead of hardcoded placeholders
  • Fallback to sensible defaults (['Black', 'White', 'Navy', 'Grey'], ['Classic', 'Casual'], budget=100)

Affiliate env var fix (was PR #35)

  • Read AMAZON_ASSOCIATE_ID from env var (default: greybeardhold-20)
  • Convert all 26 seed product affiliate links to template strings using the constant
  • .env.example updated with the new config

CORS lockdown

  • server.js: Restrict CORS to specific origins (http://localhost:3000, https://wardrobe.scoble.me)
  • No more wildcard * for Access-Control-Allow-Origin

Auth TODO

  • CuratedBox.js: Added TODO comment to implement authentication/permission checks

Style validation fix

  • server.js: Add stylePreferences validation with JSON.parse fallback in /api/box endpoint
  • Handle both array and string representations of style_tags

Minor fixes

  • Fixed leading space in Pact Women's Cotton Cardigan title
Clean PR that combines all fixes from PRs #34 and #35 without messy commit history. **Branch:** `feature/consolidated-fixes` (based on `feature/mvp-core`) **Changes included:** ### Profile fetch fix (was PR #34) - CuratedBox.js: Fetch user profile from `/api/profile/:userId` before generating box - Use actual user preferences (colors, styles, budget) instead of hardcoded placeholders - Fallback to sensible defaults (`['Black', 'White', 'Navy', 'Grey']`, `['Classic', 'Casual']`, budget=100) ### Affiliate env var fix (was PR #35) - Read `AMAZON_ASSOCIATE_ID` from env var (default: `greybeardhold-20`) - Convert all 26 seed product affiliate links to template strings using the constant - `.env.example` updated with the new config ### CORS lockdown - `server.js`: Restrict CORS to specific origins (`http://localhost:3000`, `https://wardrobe.scoble.me`) - No more wildcard `*` for Access-Control-Allow-Origin ### Auth TODO - CuratedBox.js: Added TODO comment to implement authentication/permission checks ### Style validation fix - server.js: Add `stylePreferences` validation with `JSON.parse` fallback in `/api/box` endpoint - Handle both array and string representations of style_tags ### Minor fixes - Fixed leading space in Pact Women's Cotton Cardigan title

This is a clean rebuild branch. If PRs #34 and #35 are too messy or have issues, use this PR as the merge target instead. Single squashed commit, no extraneous changes.

Base branch: feature/mvp-core
Target branch: feature/mvp-core (merge into this before deploying to master)

Diff against mvp-core: 4 files changed, 124 insertions(+), 64 deletions(-)

This is a clean rebuild branch. If PRs #34 and #35 are too messy or have issues, use this PR as the merge target instead. Single squashed commit, no extraneous changes. Base branch: `feature/mvp-core` Target branch: `feature/mvp-core` (merge into this before deploying to `master`) **Diff against mvp-core:** 4 files changed, 124 insertions(+), 64 deletions(-)

Review: Ventures 🚀

Reviewed feature/consolidated-fixes against main. The diff is minimal — main already contains the profile fetch fix, affiliate env vars, CORS lockdown, and style validation from earlier merges (PR #34, PR #35).

Recommendation: Close this PR as the fixes are already in main. The branch can be deleted.

One thing not in main: the feature/input-validation middleware (Joi validation, XSS sanitization). That's tracked in marcus/engineering#2 and I'm building it now.

## Review: Ventures 🚀 Reviewed `feature/consolidated-fixes` against `main`. The diff is minimal — main already contains the profile fetch fix, affiliate env vars, CORS lockdown, and style validation from earlier merges (PR #34, PR #35). **Recommendation:** Close this PR as the fixes are already in main. The branch can be deleted. One thing not in main: the `feature/input-validation` middleware (Joi validation, XSS sanitization). That's tracked in marcus/engineering#2 and I'm building it now.

Closing — the fixes described here (profile fetch, affiliate env vars, CORS lockdown, style validation) are all already merged into main via PRs #34 and #35. The diff from feature/consolidated-fixes to main is trivial. Branch can be deleted.

Closing — the fixes described here (profile fetch, affiliate env vars, CORS lockdown, style validation) are all already merged into main via PRs #34 and #35. The diff from `feature/consolidated-fixes` to main is trivial. Branch can be deleted.

Closing — all fixes already in main. No diff to merge.

Closing — all fixes already in main. No diff to merge.

Closing — consolidated fixes already merged in PR #34. No remaining diff to merge.

Closing — consolidated fixes already merged in PR #34. No remaining diff to merge.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: sscoble/wardrobe-ai#38
No description provided.