Name:v0.12.0Status:complete
v0.12.0 — Plugin Unification & Hardening
- Plugin terminology unified —
RunePackage→Plugin,loadRunePackage/mergePackages→loadPlugin/mergePlugins, config fieldsite.packages[]→site.plugins[]. Repo layout moved fromrunes/{marketing,…}/toplugins/{marketing,…}/. The deprecated top-levelconfig.packages[]shorthand was removed in favour of the existingconfig.plugins[]which now covers both rune contributions and CLI commands. - Config follow-ups (WORK-176) — JSON Schema now published at a versioned URL (
https://refrakt.md/schemas/v0.11/refrakt.config.schema.json) with the unversioned URL kept as a "latest" alias;create-refraktscaffolds derive the versioned URL from the package version.RefraktConfig.contentDir,theme, andtargettyped as optional with adapter code migrated toresolveSite(). Flat-shape configs now emit a one-time deprecation warning with a v1.0 removal target.SiteConfig.targetdowngraded to documentation-only (no adapter validates or consumes it). - Security policy for transform pipeline (WORK-177) — opt-in
SecurityPolicywith three tiers so hosted products can render untrusted author content with layered defences. Tier 1 ('strict') sanitises script/handler/iframe content in-package and ships a non-removable banner. Tier 2 adds an opaque-origin iframe with srcdoc + meta-CSP gatingconnect-src,form-action,img-src,script-src,style-src. Tier 3 supports a separate-origin sandbox endpoint with real CSP response headers. Default remains'trusted'— no behaviour change for self-hosted users. Plugin authors honour the policy viaconfig.variables.__securityPolicy. - Auto-migration of legacy
packagesconfig field — transform loader transparently rewritespackages: [...]toplugins: [...]so projects still on the old field keep working through the deprecation window.
No work items linked to this milestone.