Migrate remaining installable first-party plugins to the official registry #185
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#185
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
Full Registry V1 can install the Docs pilot, but the registry repository and
app-side distribution contract have drifted: the app verifies inline metadata
signatures while the registry currently publishes sidecar signatures, the
default registry host is inconsistent, and the remaining optional first-party
plugins are still bundled instead of installable through the official registry.
Goal
Make PDF, Slides, Canvas, Graph, Notebook, and Telemetry official installable
plugins using the same verified registry path as Docs. Keep Bases bundled for
this phase.
Scope
signaturesongenerated index, detail, and revocation JSON while preserving sidecars as
optional audit artifacts.
@lapis-notes/api.https://registry.lapis.md.pdf->lapis-pdfslides->lapis-slidescanvas->lapis-canvasgraph->lapis-graphnotebook->lapis-notebooktelemetry->lapis-telemetryregistry metadata and dry-installs at least one non-Docs plugin artifact.
Non-goals
History, file explorer, tags, word count, language-code support, or app/settings
shell out of the bundle.
release signing roles.
Acceptance Criteria
https://registry.lapis.md/v1/index.jsonusing embedded trusted keys.lapis-plugin-registryverifies through thesame inline signature path the app uses.
lapis-*IDs, ship standalone plugin artifacts, and have old-ID plugin data alias
migrations.
workspaceCorePluginsonly after theirverified install path works.
or dependency-bundled by the workspace app after they are active official
registry entries.
provenance: "official"load from/.obsidian/plugins/<id>but are classified and displayed as external coreplugins rather than community plugins.
optional-core Safe Mode disables them, while community-plugin Safe Mode does
not.
generated registry metadata and release artifacts when feature tests require
those plugins.
lapis-basesis not promoted to an active installable registry entry.spec.mdfiles reflect the new installable/bundledownership split.
Implementation Notes
package IDs do not temporarily disagree.
registry-installed plugin behavior.
when the target has no data yet.
signed local release artifacts and leave the registry entries pending until
immutable HTTPS assets are published.
lapis-canvas,lapis-graph,lapis-notebook,lapis-pdf,lapis-slides,and
lapis-telemetryare treated as external official plugins.workspaceCorePlugins: Markdown, CSV, Fmode,History, File Explorer, Tags, Notifications, Search, Tasks, Bases, Word Count,
Lang Code, and AppPlugin.
enablement file; do not introduce a new enablement file for this cleanup.
and community plugin rows remain distinguishable in settings surfaces.
list in the same cleanup once its
lapis-markdown-lintplugin wrapper is inplace.
Suggested Files or Specs To Inspect
spec/src/50-roadmap/full-registry-v1.mdspec/src/30-cross-package-contracts/plugin-registry.mdpackages/workspace/src/lib/components/app/bootstrap.tspackages/api/src/lib/plugin-distribution//Users/stevejuma/code/lapis-plugin-registryValidation Commands
pnpm --filter @lapis-notes/api check:allpnpm --filter @lapis-notes/workspace check:allcheck:allpnpm check:allpnpm test:smokemake spec-lintmdbook build speclapis-plugin-registry:pnpm checkandpnpm registry:validate:remoteRelated Issues
Follow-up Tasks
Implementation Summary
Removed active official first-party plugins from workspace bootstrap, classified installed official plugins as external core plugins, updated fixtures/specs/tests, and preserved external enablement compatibility.