docs/plans/4591-custom-isurl-must-override-internal-links.md
#4591don't want insert internal links starting with /https://github.com/udecode/plate/issues/4591isUrl option can veto autolinking for internal paths like /aaa and anchor links like #top, while the default link behavior still accepts those shortcuts when no custom override is providedpackages/link URL validation and paste/autolink testspackages/link/src/lib/utils/validateUrl.tspackages/link/src/lib/utils/validateUrl.spec.tspackages/link/src/lib/BaseLinkPlugin.tsmain still returns early for /... and #... before consulting isUrl, so the issue is still realplatejs default isUrl returns false for /aaa and #top, so a naive reorder would break the plugin's intended internal-link and anchor-link shortcuts/ handling to exclude //; this fix should stay minimal and avoid reopening that regressionisUrl cannot currently veto /... and #....isUrl, not the default platejs validator.packages/link.docs/solutions and read the recent link-validation learning about // internal-path regressions.validateUrl still bypasses custom isUrl for /... and #....#4591.main, pulled latest, and branched to codex/4591-custom-isurl-internal-links.validateUrl.spec.ts and upsertLink.spec.tsx, then confirmed current main failed those expectations.validateUrl so only custom isUrl overrides can veto /... and #..., while the default platejs validator still preserves existing internal-link and anchor-link behavior.bun test packages/link/src/lib/utils/validateUrl.spec.ts packages/link/src/lib/transforms/upsertLink.spec.tsx packages/link/src/lib/withLink.spec.tsxpnpm installpnpm turbo build --filter=./packages/linkpnpm turbo typecheck --filter=./packages/linkpnpm lint:fix.changeset/link-custom-isurl-internal-links.md.planning-with-files session catchup script path from the generated skill is missing locally, so catchup could not run in this repo.