Skip to content

docs(roadmap): add seven re-verified dogfooding gotchas to section 6 - #1069

Closed
wmadden-electric wants to merge 1 commit into
mainfrom
claude/roadmap-gotchas-verified-jul28
Closed

docs(roadmap): add seven re-verified dogfooding gotchas to section 6#1069
wmadden-electric wants to merge 1 commit into
mainfrom
claude/roadmap-gotchas-verified-jul28

Conversation

@wmadden-electric

@wmadden-electric wmadden-electric commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

What

Adds seven gotchas from the [PN] Gotchas Linear project to ROADMAP.md/ROADMAP.html section 6, each re-verified against main (e0e739c) on July 28.

Verification results

Still present (added to the roadmap):

  • TML-3097migration plan anchors origin on the refs index, not disk history; can auto-write a destructive baseline. Data-loss risk. Non-tip refs are accepted and test-pinned (plan-resolution.test.ts:186).
  • TML-2566 — no code path recomputes a loaded snapshot's storage hash; the content-addressed store reads with plain JSON.parse; tampered content yields noOp: true.
  • TML-3096migration new --from <hash> silently records from: null when the migrations dir is empty (the flag is only consulted when packages exist, migration-new.ts:135-155).
  • TML-3093.delete() with an .in() predicate deletes exactly one row; deliberate and test-pinned, but nothing in types or docs warns.
  • TML-3102 — PSL Json = Postgres json, Prisma 7 Json = jsonb; no emit-time warning, no porting-docs callout.
  • TML-2637init --no-skill still unconditionally deletes .agents/skills/prisma-next/SKILL.md (init.ts:191).
  • TML-2842 — folded into the existing TML-2655 item: neither url-binding pool construction site attaches a pg.Pool 'error' handler, and the init scaffold uses that path.

Verified as fixed (not added):

  • TML-2507 — collMod postcheck now compares $jsonSchema content (ed8aba1cb, regression-tested).
  • TML-3098prisma dev works on cli-dev 0.16.26; cold-cache repro run manually.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Clarified that the listed Requirement 6 items do not technically block release.
    • Added verification status and data-loss risk indicators for migration and database-related issues.
    • Documented known edge cases involving dropped database connections, migration baselines, empty migration histories, corrupted snapshots, multi-row deletes, PostgreSQL JSON mappings, and initialization cleanup behavior.
    • Expanded troubleshooting details for connection error handling and other rough edges encountered during initial use.

All nine correctness gotchas from the [PN] Gotchas Linear project were
re-verified against main (e0e739c) on July 28. Seven are still present
and now appear as roadmap items: TML-3097 (destructive auto-baseline,
data-loss risk), TML-2566 (snapshot storage hash never recomputed on
load), TML-3096 (--from silently ignored on an empty graph), TML-3093
(single-row delete on multi-row predicates), TML-3102 (Json vs jsonb
porting divergence), TML-2637 (--no-skill deletes an installed skill
file), and TML-2842 (folded into the existing TML-2655 pool-error item).
TML-2507 and TML-3098 verified as fixed and are not added.

Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
@wmadden-electric
wmadden-electric requested a review from a team as a code owner July 28, 2026 10:12
@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Requirement 6 documentation was updated in Markdown and HTML to clarify non-blocking status and record July 28 verification details for database connections, migration tooling, snapshots, deletion behavior, JSON mapping, and skill cleanup.

Changes

Requirement 6 roadmap updates

Layer / File(s) Summary
Status and database connection notes
ROADMAP.md, ROADMAP.html
The section now identifies the items as non-blocking and expands the dropped-connection entry with re-verification details.
Migration and snapshot edge cases
ROADMAP.md, ROADMAP.html
New entries document destructive migration baselines, empty-graph migration new --from behavior, and corrupted contract snapshot loading.
Runtime and schema edge cases
ROADMAP.md, ROADMAP.html
New entries document multi-row .delete() behavior, PostgreSQL JSON mapping, and init --no-skill cleanup behavior.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Possibly related PRs

Suggested reviewers: wmadden

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: adding re-verified dogfooding gotchas to section 6 of the roadmap docs.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/roadmap-gotchas-verified-jul28

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

size-limit report 📦

Path Size
postgres / no-emit 170.18 KB (0%)
postgres / emit 150.83 KB (0%)
mongo / no-emit 100.72 KB (0%)
mongo / emit 90.4 KB (0%)
cf-worker / no-emit 195.84 KB (0%)
cf-worker / emit 174.68 KB (0%)

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@ROADMAP.md`:
- Line 221: Replace the introductory status sentence in ROADMAP.md at lines
221-221 and ROADMAP.html at lines 544-544 with release-status wording such as
“None are currently release blockers,” preserving the documented runtime
severity and keeping both copies synchronized.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro Plus

Run ID: 9629f02b-e7dd-4d44-af09-6d3fc35c9659

📥 Commits

Reviewing files that changed from the base of the PR and between e0e739c and 880a81e.

📒 Files selected for processing (2)
  • ROADMAP.html
  • ROADMAP.md

Comment thread ROADMAP.md
## 6. The rough edges users hit on day one must be gone

None of these block anything technically. All of them are what a skeptical engineer meets in their first hour, under announcement-day attention.
None of these block anything technically. All of them are what a skeptical engineer meets in their first hour, under announcement-day attention. The items marked *verified July 28* are dogfooding gotchas that were re-checked against `main` on July 28 and confirmed still present — and the migration-tooling ones among them risk real data loss, not just embarrassment.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use release-status wording that preserves the documented severity.

Both copies say the items do not block anything technically, although the section explicitly records a host-process crash and real data-loss risk. Replace the sentence in both files with wording such as “None are currently release blockers” to distinguish roadmap status from runtime impact.

  • ROADMAP.md#L221-L221: update the introductory status sentence.
  • ROADMAP.html#L544-L544: apply the same wording to keep the Markdown and HTML copies synchronized.

As per coding guidelines, keep documentation wording current and unambiguous.

📍 Affects 2 files
  • ROADMAP.md#L221-L221 (this comment)
  • ROADMAP.html#L544-L544
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@ROADMAP.md` at line 221, Replace the introductory status sentence in
ROADMAP.md at lines 221-221 and ROADMAP.html at lines 544-544 with
release-status wording such as “None are currently release blockers,” preserving
the documented runtime severity and keeping both copies synchronized.

Source: Coding guidelines

@pkg-pr-new

pkg-pr-new Bot commented Jul 28, 2026

Copy link
Copy Markdown

Open in StackBlitz

@prisma-next/extension-author-tools

npm i https://pkg.pr.new/@prisma-next/extension-author-tools@1069

@prisma-next/mongo-runtime

npm i https://pkg.pr.new/@prisma-next/mongo-runtime@1069

@prisma-next/family-mongo

npm i https://pkg.pr.new/@prisma-next/family-mongo@1069

@prisma-next/sql-runtime

npm i https://pkg.pr.new/@prisma-next/sql-runtime@1069

@prisma-next/family-sql

npm i https://pkg.pr.new/@prisma-next/family-sql@1069

@prisma-next/extension-arktype-json

npm i https://pkg.pr.new/@prisma-next/extension-arktype-json@1069

@prisma-next/middleware-cache

npm i https://pkg.pr.new/@prisma-next/middleware-cache@1069

@prisma-next/mongo

npm i https://pkg.pr.new/@prisma-next/mongo@1069

@prisma-next/extension-paradedb

npm i https://pkg.pr.new/@prisma-next/extension-paradedb@1069

@prisma-next/extension-pgvector

npm i https://pkg.pr.new/@prisma-next/extension-pgvector@1069

@prisma-next/extension-postgis

npm i https://pkg.pr.new/@prisma-next/extension-postgis@1069

@prisma-next/postgres

npm i https://pkg.pr.new/@prisma-next/postgres@1069

@prisma-next/sql-orm-client

npm i https://pkg.pr.new/@prisma-next/sql-orm-client@1069

@prisma-next/sqlite

npm i https://pkg.pr.new/@prisma-next/sqlite@1069

@prisma-next/extension-supabase

npm i https://pkg.pr.new/@prisma-next/extension-supabase@1069

@prisma-next/target-mongo

npm i https://pkg.pr.new/@prisma-next/target-mongo@1069

@prisma-next/adapter-mongo

npm i https://pkg.pr.new/@prisma-next/adapter-mongo@1069

@prisma-next/driver-mongo

npm i https://pkg.pr.new/@prisma-next/driver-mongo@1069

@prisma-next/contract

npm i https://pkg.pr.new/@prisma-next/contract@1069

@prisma-next/utils

npm i https://pkg.pr.new/@prisma-next/utils@1069

@prisma-next/config

npm i https://pkg.pr.new/@prisma-next/config@1069

@prisma-next/errors

npm i https://pkg.pr.new/@prisma-next/errors@1069

@prisma-next/framework-components

npm i https://pkg.pr.new/@prisma-next/framework-components@1069

@prisma-next/operations

npm i https://pkg.pr.new/@prisma-next/operations@1069

@prisma-next/ts-render

npm i https://pkg.pr.new/@prisma-next/ts-render@1069

@prisma-next/contract-authoring

npm i https://pkg.pr.new/@prisma-next/contract-authoring@1069

@prisma-next/ids

npm i https://pkg.pr.new/@prisma-next/ids@1069

@prisma-next/psl-parser

npm i https://pkg.pr.new/@prisma-next/psl-parser@1069

@prisma-next/psl-printer

npm i https://pkg.pr.new/@prisma-next/psl-printer@1069

@prisma-next/cli

npm i https://pkg.pr.new/@prisma-next/cli@1069

@prisma-next/cli-telemetry

npm i https://pkg.pr.new/@prisma-next/cli-telemetry@1069

@prisma-next/config-loader

npm i https://pkg.pr.new/@prisma-next/config-loader@1069

@prisma-next/emitter

npm i https://pkg.pr.new/@prisma-next/emitter@1069

@prisma-next/language-server

npm i https://pkg.pr.new/@prisma-next/language-server@1069

@prisma-next/migration-tools

npm i https://pkg.pr.new/@prisma-next/migration-tools@1069

prisma-next

npm i https://pkg.pr.new/prisma-next@1069

@prisma-next/vite-plugin-contract-emit

npm i https://pkg.pr.new/@prisma-next/vite-plugin-contract-emit@1069

@prisma-next/mongo-codec

npm i https://pkg.pr.new/@prisma-next/mongo-codec@1069

@prisma-next/mongo-contract

npm i https://pkg.pr.new/@prisma-next/mongo-contract@1069

@prisma-next/mongo-value

npm i https://pkg.pr.new/@prisma-next/mongo-value@1069

@prisma-next/mongo-contract-psl

npm i https://pkg.pr.new/@prisma-next/mongo-contract-psl@1069

@prisma-next/mongo-contract-ts

npm i https://pkg.pr.new/@prisma-next/mongo-contract-ts@1069

@prisma-next/mongo-emitter

npm i https://pkg.pr.new/@prisma-next/mongo-emitter@1069

@prisma-next/mongo-schema-ir

npm i https://pkg.pr.new/@prisma-next/mongo-schema-ir@1069

@prisma-next/mongo-query-ast

npm i https://pkg.pr.new/@prisma-next/mongo-query-ast@1069

@prisma-next/mongo-orm

npm i https://pkg.pr.new/@prisma-next/mongo-orm@1069

@prisma-next/mongo-query-builder

npm i https://pkg.pr.new/@prisma-next/mongo-query-builder@1069

@prisma-next/mongo-lowering

npm i https://pkg.pr.new/@prisma-next/mongo-lowering@1069

@prisma-next/mongo-wire

npm i https://pkg.pr.new/@prisma-next/mongo-wire@1069

@prisma-next/sql-contract

npm i https://pkg.pr.new/@prisma-next/sql-contract@1069

@prisma-next/sql-errors

npm i https://pkg.pr.new/@prisma-next/sql-errors@1069

@prisma-next/sql-operations

npm i https://pkg.pr.new/@prisma-next/sql-operations@1069

@prisma-next/sql-schema-ir

npm i https://pkg.pr.new/@prisma-next/sql-schema-ir@1069

@prisma-next/sql-contract-psl

npm i https://pkg.pr.new/@prisma-next/sql-contract-psl@1069

@prisma-next/sql-contract-ts

npm i https://pkg.pr.new/@prisma-next/sql-contract-ts@1069

@prisma-next/sql-contract-emitter

npm i https://pkg.pr.new/@prisma-next/sql-contract-emitter@1069

@prisma-next/sql-lane-query-builder

npm i https://pkg.pr.new/@prisma-next/sql-lane-query-builder@1069

@prisma-next/sql-relational-core

npm i https://pkg.pr.new/@prisma-next/sql-relational-core@1069

@prisma-next/sql-builder

npm i https://pkg.pr.new/@prisma-next/sql-builder@1069

@prisma-next/target-postgres

npm i https://pkg.pr.new/@prisma-next/target-postgres@1069

@prisma-next/target-sqlite

npm i https://pkg.pr.new/@prisma-next/target-sqlite@1069

@prisma-next/adapter-postgres

npm i https://pkg.pr.new/@prisma-next/adapter-postgres@1069

@prisma-next/adapter-sqlite

npm i https://pkg.pr.new/@prisma-next/adapter-sqlite@1069

@prisma-next/driver-postgres

npm i https://pkg.pr.new/@prisma-next/driver-postgres@1069

@prisma-next/driver-sqlite

npm i https://pkg.pr.new/@prisma-next/driver-sqlite@1069

commit: 880a81e

@wmadden wmadden closed this Jul 28, 2026
Thegreatsura pushed a commit to Thegreatsura/prisma that referenced this pull request Jul 31, 2026
…risma#29809)

Supersedes prisma/prisma-next#1069 after the repository move.

## What

Adds seven gotchas from the [\[PN\] Gotchas Linear
project](https://linear.app/prisma-company/project/pn-gotchas-a6f6f5157a5c/issues)
to ROADMAP.md/ROADMAP.html section 6, each re-verified against Prisma
Next main (e0e739c) on July 28.

## Verification results

Still present (added to the roadmap):
- [TML-3097](https://linear.app/prisma-company/issue/TML-3097) —
`migration plan` anchors origin on the refs index, not disk history; can
auto-write a destructive baseline. **Data-loss risk.** Non-tip refs are
accepted and test-pinned (`plan-resolution.test.ts:186`).
- [TML-2566](https://linear.app/prisma-company/issue/TML-2566) — no code
path recomputes a loaded snapshot's storage hash; the content-addressed
store reads with plain `JSON.parse`; tampered content yields `noOp:
true`.
- [TML-3096](https://linear.app/prisma-company/issue/TML-3096) —
`migration new --from <hash>` silently records `from: null` when the
migrations dir is empty (the flag is only consulted when packages exist,
`migration-new.ts:135-155`).
- [TML-3093](https://linear.app/prisma-company/issue/TML-3093) —
`.delete()` with an `.in()` predicate deletes exactly one row;
deliberate and test-pinned, but nothing in types or docs warns.
- [TML-3102](https://linear.app/prisma-company/issue/TML-3102) — PSL
`Json` = Postgres `json`, Prisma 7 `Json` = `jsonb`; no emit-time
warning, no porting-docs callout.
- [TML-2637](https://linear.app/prisma-company/issue/TML-2637) — `init
--no-skill` still unconditionally deletes
`.agents/skills/prisma-next/SKILL.md` (`init.ts:191`).
- [TML-2842](https://linear.app/prisma-company/issue/TML-2842) — folded
into the existing TML-2655 item: neither `url`-binding pool construction
site attaches a pg.Pool `'error'` handler, and the init scaffold uses
that path.

Verified as fixed (not added):
- [TML-2507](https://linear.app/prisma-company/issue/TML-2507) — collMod
postcheck now compares `$jsonSchema` content (`ed8aba1cb`,
regression-tested).
- [TML-3098](https://linear.app/prisma-company/issue/TML-3098) — `prisma
dev` works on cli-dev 0.16.26; cold-cache repro run manually.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Updated the roadmap to clarify the revised npm packaging/namespacing
plan, including new `@prisma/*` facade packages, internal namespace
changes, and deprecating `@prisma-next/*`.
* Refreshed the “day-one reliability” section with “verified July 28”
notes and stronger warnings for migration tooling data-loss risk.
* Added/expanded checklists for known rough edges: migration plan
baselines when `--from` is omitted, `migration new` recording `from:
null` on empty graphs, corrupted snapshot handling, multi-row
`.delete()` deleting only one row, JSON portability, and `prisma-next
init --no-skill` removing an existing skill file.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
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.

2 participants