Skip to content

fix(generation): stop catalog fill spinning on placeholder tools - #72

Draft
cursor[bot] wants to merge 1 commit into
mainfrom
cursor/critical-bug-investigation-0df4
Draft

cursor[bot] wants to merge 1 commit into
mainfrom
cursor/critical-bug-investigation-0df4

Conversation

@cursor

@cursor cursor Bot commented Sep 7, 2026

Copy link
Copy Markdown

What changed

  • Catalog batch selection now treats placeholder the same as failed after 3 attempts, so Generate can finish when tools never become displayable.
  • faceReading always persists { placeholder: true } even with a photo on file. After PR feat(profile): persist every catalog report on Generate #68, that left faceReading in pendingToolSlugs forever and the client hit “Report generation timed out. Try Generate again.” after 80 batches.
  • Palmistry/Hellenistic/KP and similar fallbacks that return placeholders had the same retry loop.

Why this change is safe

Verification

  • pnpm exec eslint on lib/catalogBatchSelection.ts, tests/unit/fillCatalogReportsClient.test.ts, tests/integration/generate-catalog-batch.test.ts (0 errors)
  • pnpm run lint:security passed
  • pnpm test — 73 suites / 397 tests passed
  • Playwright smoke (not required; no UI/routing change)

Regression prevention

  • Unit tests: skip exhausted placeholders, keep retrying until the cap, empty batch when only placeholders remain.
  • Integration test: generate-catalog-batch returns catalogFillComplete: true without generating when faceReading is an exhausted placeholder.
  • Existing failed-slug skip behavior unchanged.

Release checklist (solo-friendly)

  • CI is green:
    • CI / Lint + Jest
    • CI / Playwright smoke
  • Ready to merge to main.
  • Post-merge: Generate Full Report with photos should complete instead of timing out after catalog fill; Face Reading can remain a non-ready placeholder without blocking /tools.
Open in Web View Automation 

faceReading always persists as placeholder:true, and other tools can too.
Catalog selection only exhausted failed slugs, so Generate retried those
tools until the client 80-batch timeout. Treat placeholders as exhausted
after the same attempt cap so fill can complete.

Co-authored-by: Andy Oliver Rozario <andyrozario7@gmail.com>
@vercel

vercel Bot commented Sep 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
future-seer Ready Ready Preview Sep 7, 2026 11:13am UTC

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