Repository navigation
Conversation
|
The following comment was made by an LLM, it may be inaccurate: |
There was a problem hiding this comment.
The change looks correct. I reproduced #54736 on the base with the bot's script, running the CLI from source: the migration died with the Session.Message.ID validation error and nothing was imported. With this PR the migration completes, and the legacy msg000000000002… row is imported as msg_000000000002…, keeping the leading part of the ID so the order is unchanged. The existing v1-migration.test.ts tests pass and packages/core type-checks.
I also checked that no references are left pointing at old IDs. Parent, compaction and tail_start_id links are resolved on the original V1 IDs before the new IDs are assigned, and the migrated message data doesn't contain message IDs. New IDs come out the same on every run and can't collide, because they share the existing used set with the synthetic messages. importNextDatabase only copies rows that are already V2, so it doesn't need the same handling.
Public API: unchanged.
Related: #53971
|
Automated PR Cleanup Thank you for contributing to opencode. Due to the high volume of PRs from users and AI agents, we periodically close older PRs using automated criteria so maintainers can focus review time on the most active and community-supported contributions. This PR was closed because it matched the following cleanup criteria:
PRs created within the last month are not affected by this cleanup. If you believe this PR was closed incorrectly, or if you are still actively working on it, please leave a comment explaining why it should be reopened. A maintainer can review and reopen it if appropriate. Thanks again for taking the time to contribute. |
Issue for this PR
Closes #54736
Type of change
What does this PR do?
V1 accepts message IDs beginning with
msg, but V2 requiresmsg_. Preserve the original IDs while matching parts and compaction relationships, then remap incompatible IDs using the existing deterministic, collision-safe ID helper. Derived synthetic messages also receive valid V2 prefixes. The V1 source tables remain unchanged.How did you verify your code works?
bun test test/v1-migration.test.ts --timeout 30000). The first run had two 5-second timeouts.git diff --checkpassed. Canonicalbun run checkcompleted lint with zero errors, then failed in unrelatedservices/wwwbecause Astro cannot create its preferences directory in this environment.services/wwwtypecheck also passed withASTRO_TELEMETRY_DISABLED=1(31 files, zero errors); the full monorepo check was not rerun. The reporter's database has not been tested locally.Screenshots / recordings
Not applicable.
Checklist