Skip to content

fix(generation): do not overwrite real tool reports with placeholders - #73

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

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

Conversation

@cursor

@cursor cursor Bot commented Sep 8, 2026

Copy link
Copy Markdown

What changed

  • Catalog fill, ensure-tool-report extraInputs, and overlapping Generate/tool-visit persists no longer replace a stored real reading with a placeholder: true payload.
  • Stage B already had this keep-existing guard; persistOnDemandToolReports now matches it. First-time placeholders still persist when nothing real is stored, and sibling tools in the same batch still write.
  • Automated critical-bug hunt (2026-09-08); not a user-filed issue.

Why this change is safe

Verification

  • pnpm exec eslint lib/onDemandToolReports.ts tests/unit/onDemandPlaceholderOverwrite.test.ts
  • pnpm test — 74 suites / 400 tests passed
  • pnpm run lint:security passed
  • Playwright smoke run (persist-layer only; covered by unit + generate/ensure/catalog integration tests)
    • onboarding/profile/auth
    • special-user quota behavior (if relevant)

Regression prevention

  • Added tests/unit/onDemandPlaceholderOverwrite.test.ts (would fail before this change: placeholder persist wrote palmistry onto the profile patch).
  • Confirmed profile-generate, ensure-tool-report, generate-catalog-batch, report-readiness, and tool-visit tests remain green. Placeholders still write when no real report exists.

Release checklist (solo-friendly)

  • CI is green:
    • CI / Lint + Jest
    • CI / Playwright smoke
  • Ready to merge to main.
  • Post-merge: during catalog fill, open Palmistry in another tab after a real reading is stored and confirm a later placeholder persist does not clear it.
Open in Web View Automation 

Catalog fill, ensure-tool-report extraInputs, and overlapping generate/visit
races all persist through persistOnDemandToolReports. A later success+placeholder
payload could replace a stored palmistry (or other) reading. Match Stage B's
keep-existing guard so a failed refresh cannot destroy a real report.

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

vercel Bot commented Sep 8, 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 8, 2026 11:14am 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