Skip to content

Route Knowledge links to their owning apps - #78

Merged
artpi merged 1 commit into
mainfrom
artpi/route-knowledge-links
Oct 14, 2026
Merged

artpi merged 1 commit into
mainfrom
artpi/route-knowledge-links

Conversation

@artpi

@artpi artpi commented Sep 8, 2026

Copy link
Copy Markdown
Owner

Summary

  • let each split app independently claim native permalinks, shortlinks, and legacy ?p=<id> requests for its canonical Knowledge identity
  • deep-link TODO tasks and AI Chat conversations through URL-backed selection while preserving browser navigation
  • keep Notes on the native editor and retain normal WordPress responses for previews and unauthorized requests
  • normalize the AI Chat abilities response so a conversation deep link renders against the current Abilities API objects
  • document the link contracts and cover package ownership in backend tests

Validation

  • npm run lint:js -- packages/personal-todo/src/index.js packages/personal-ai-chat/src/index.js
  • focused PHPCS for all changed PHP files
  • npm run test:unit:backend (174 tests, 1070 assertions, 10 skipped)
  • focused routing tests (2 tests, 26 assertions)
  • npm run test:integration:backend (suite contains one skipped test)
  • npm run build
  • npm run package:plugins
  • npm run verify:split-packages
  • browser: authenticated ?p= requests for Notes, TODO, Stuff, and AI Chat opened the owning interface and selected the requested record
  • browser/curl: the same four requests remained 404 for an anonymous visitor

@artpi
artpi marked this pull request as ready for review October 14, 2026 08:43
@artpi
artpi requested a balanced review from Copilot October 14, 2026 08:44
@github-actions

Copy link
Copy Markdown

🚀 personal-todo build ready for testing

Artifact: Download from workflow run

Playground ZIP: http://pr.personalos.net/preview/78/personal-todo.zip

Launch in Playground: Open WordPress Playground

Paste the ZIP URL into a WordPress Playground blueprint to load this PR build.

@github-actions

Copy link
Copy Markdown

🚀 personal-stuff build ready for testing

Artifact: Download from workflow run

Playground ZIP: http://pr.personalos.net/preview/78/personal-stuff.zip

Launch in Playground: Open WordPress Playground

Paste the ZIP URL into a WordPress Playground blueprint to load this PR build.

@github-actions

Copy link
Copy Markdown

🚀 personal-ai-chat build ready for testing

Artifact: Download from workflow run

Playground ZIP: http://pr.personalos.net/preview/78/personal-ai-chat.zip

Launch in Playground: Open WordPress Playground

Paste the ZIP URL into a WordPress Playground blueprint to load this PR build.

@github-actions

Copy link
Copy Markdown

🚀 personal-readwise-sync build ready for testing

Artifact: Download from workflow run

Playground ZIP: http://pr.personalos.net/preview/78/personal-readwise-sync.zip

Launch in Playground: Open WordPress Playground

Paste the ZIP URL into a WordPress Playground blueprint to load this PR build.

@github-actions

Copy link
Copy Markdown

🚀 personal-notes build ready for testing

Artifact: Download from workflow run

Playground ZIP: http://pr.personalos.net/preview/78/personal-notes.zip

Launch in Playground: Open WordPress Playground

Paste the ZIP URL into a WordPress Playground blueprint to load this PR build.

@github-actions

Copy link
Copy Markdown

🚀 personal-evernote-sync build ready for testing

Artifact: Download from workflow run

Playground ZIP: http://pr.personalos.net/preview/78/personal-evernote-sync.zip

Launch in Playground: Open WordPress Playground

Paste the ZIP URL into a WordPress Playground blueprint to load this PR build.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

AI Chat deep links outside the first 20 conversations silently open the wrong conversation.

1 open finding
What changed in this PR

Routes Knowledge records to their owning split-plugin interfaces.

Changes:

  • Adds package-owned permalink, shortlink, and legacy-link routing.
  • Adds URL-backed TODO and AI Chat selection.
  • Documents and tests routing contracts and ability normalization.
File Description
tests/​unit/​SplitPackageKnowledgeTest.php Tests package link ownership and abilities output.
tests/​unit/​PersonalStuffTest.php Tests Stuff item links.
packages/​personal-todo/​TECHNICAL.md Documents TODO link routing.
packages/​personal-todo/​src/​index.js Synchronizes task editing with browser history.
packages/​personal-todo/​includes/​class-personal-todo-plugin.php Routes task links to TODO.
packages/​personal-stuff/​TECHNICAL.md Documents Stuff link routing.
packages/​personal-stuff/​includes/​class-personal-stuff-plugin.php Routes item links to Stuff.
packages/​personal-notes/​TECHNICAL.md Documents Notes link routing.
packages/​personal-notes/​includes/​class-personal-notes-plugin.php Routes note links to Gutenberg.
packages/​personal-ai-chat/​TECHNICAL.md Documents conversation routing.
packages/​personal-ai-chat/​src/​index.js Adds URL-backed conversation selection.
packages/​personal-ai-chat/​includes/​class-personal-ai-chat-plugin.php Routes conversations and normalizes abilities.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +77 to +80
const selected =
response.find( ( item ) => item.id === conversationId ) ||
response[ 0 ] ||
null;
@artpi artpi self-assigned this Oct 14, 2026
@artpi
artpi merged commit d0128be into main Oct 14, 2026
14 checks passed
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