feat(ids): serialize help-center articles as article_ - #533
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Generate and emit article_ TypeIDs from the same UUID; accept retired kb_article_ ids as an inbound alias. No database migration — prefixes are applied at the ORM boundary. Co-authored-by: Cursor <cursoragent@cursor.com>
f538b96 to
7012aa6
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7012aa6e43
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Keep the article_ catalogue stack on the latest widget open() tip.
Copilot citation joins and redirect-rule cleanup now treat kb_article_ and article_ as the same UUID, so pre-prefix-flip JSON and text targets are not dropped after emit changes. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b1a091d389
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
The Copilot report now rewrites retired prefixes in SQL so one article cited as both article_ and kb_article_ is ranked and capped as a single source. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 159bba74d3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…eat/article-typeid-prefix
typeIdSchema now rewrites kb_article_ to article_ so writers cannot persist the retired prefix, and redirect-rule lists load labels in two queries instead of one per row. Co-authored-by: Cursor <cursoragent@cursor.com>
isValidTypeId still accepts kb_article_ as an inbound article id; the TypeId<'article'> guard only matches the canonical prefix. Co-authored-by: Cursor <cursoragent@cursor.com>
…eat/article-typeid-prefix
typeIdSchema now validates and rewrites through isValidTypeId/ensureTypeId, and isTypeId composes those checks instead of re-parsing. Co-authored-by: Cursor <cursoragent@cursor.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ea909e90aa
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Bookmarked kb_article_ editor URLs now redirect to article_, and the detail query key is the same either way so publish/update cache the active editor instead of a stale alias key. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
article_…(same UUID as before).createId('kb_article')and Drizzle reads emit the new prefix; table names staykb_articles.kb_article_…ids are an inbound alias:isValidTypeId, Zod schemas,ensureTypeId, and API/MCP parsers accept them and rewrite toarticle_….open({ articleId })and this catalogue change land in order. Retarget tomainafter fix(widget): honour documented open() deep-links #531 merges.Test plan
open({ articleId: 'article_01h…' })andopen({ articleId: 'kb_article_01h…' })both load the same article (verified on the fix(widget): honour documented open() deep-links #531 widget; this PR keeps the inbound alias and emitsarticle_)parseTypeId/ensureTypeIdaccept both prefixes and rewrite toarticle_…(ids unit tests)get_detailsswitch handlesarticleandkb_articlecreateId('kb_article')emitsarticle_…(ids unit tests)kb_article_citations still join the live article rowkb_article_orarticle_Made with Cursor