Enforce deprecated host-module policy for official plugin releases #227
Labels
No labels
abandoned
active
audit
blocked
data-safety
difficulty:easy
difficulty:hard
difficulty:high
difficulty:medium
docs
done
duplicate
notebook-v0
open
priority:high
ready
release-critical
safe-mode
spec
spec-backlog
subsystem:api
subsystem:backlog
subsystem:bases
subsystem:ci
subsystem:command
subsystem:configuration
subsystem:consolidate
subsystem:dependencies
subsystem:desktop-electron
subsystem:diffmerge
subsystem:docker
subsystem:docs
subsystem:fuzzy
subsystem:graph
subsystem:hotkeys
subsystem:lapis
subsystem:maint
subsystem:maintenance
subsystem:markdown
subsystem:markdown-lint
subsystem:md018
subsystem:notebook
subsystem:notifications
subsystem:opfs
subsystem:package
subsystem:plugin-markdown
subsystem:plugin-tasks
subsystem:plugins
subsystem:registry
subsystem:release
subsystem:renovate
subsystem:restore
subsystem:scripts
subsystem:search
subsystem:settings
subsystem:spec
subsystem:tasks
subsystem:testing
subsystem:ui
subsystem:web
subsystem:workspace
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lapis-notes/lapis#227
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The original dual ESM/CJS loader plan said official release validation should
fail when a plugin declares deprecated or private host modules unless an
explicit compatibility override is present. The current runtime validation
already treats private host modules as errors for official plugins, but
deprecated host modules are always warnings. The current spec also describes the
private-module official-release rule without clearly covering deprecated modules
or override policy.
Goal
Bring official plugin release validation, compatibility overrides, and
documentation into alignment for deprecated host-module usage.
Scope
must temporarily depend on deprecated host modules.
no override is present.
release validation is not enforcing official registry policy.
overridden host-module cases.
Non-goals
task.
release-validation distinction.
Acceptance Criteria
dependencies unless an explicit compatibility override applies.
modules as diagnostics suitable for compatibility decisions rather than
unexpectedly blocking local installs.
deprecated-with-override, official private, and manual/community deprecated
cases.
spec/src/30-cross-package-contracts/plugin-registry.mddocuments thedeprecated-host-module policy and override shape.
Implementation Notes
severity flag; inspect
runtime-validation.tsbefore adding overridesemantics.
cleanly; avoid introducing a second policy source unless necessary.
rather than expanding this task.
Suggested Files or Specs To Inspect
spec/src/30-cross-package-contracts/plugin-registry.mdpackages/api/src/lib/plugin-distribution/runtime-validation.tspackages/api/src/lib/__tests__/plugin-release-runtime-validation.test.tsValidation Commands
pnpm --filter @lapis-notes/api exec vitest run src/lib/__tests__/plugin-release-runtime-validation.test.tspnpm --filter @lapis-notes/api check:allmake spec-lintmdbook build specRelated Issues
Follow-up Tasks
Implementation Summary
Added manifest and release metadata compatibility overrides for deprecated host modules, made official-release deprecated usage an error unless explicitly overridden, preserved private-module errors, and covered validation in API/script tests and specs.