Every template now carries .github/workflows/release.yml, a matching ci.yml,
.sdk-scope.json, scripts/switch-sdk-scope.mjs, and a typecheck script.
initPlugin applies the scope config on scaffold so @drop-oss specifiers and
workspace:* deps are rewritten to the concrete @droposs versions, letting a
freshly scaffolded repo install, typecheck, build, and release without manual
edits. Release/CI install steps fall back to npm install when no lockfile is
present.
Adds the host-populated settings snapshot to PluginContext (loaded before
init), raises PLUGIN_API_VERSION to 3 and SUPPORTED_API_VERSIONS to
[1, 2, 3], and mirrors the change through the JSON schema, mock harness,
tests, and docs. Bumps both packages to 0.7.0.
README, getting-started, manifest-reference, and the contributor guide now
cover the template matrix, drop-plugin dev, the settingsSchema contract, and
the new auth:provider / storage:depot / game:runner capabilities.
- Remove unused statSync import in starter switch-sdk-scope.mjs (fixes CI lint failure)
- Enforce sidecar verification in packPlugin and add integrity tests
- Implement fail-closed capability proxies in MockClientPluginContext
- Clean up any types, unused arguments, and @ts-ignore warnings across SDK/CLI/templates
- Add pre-publish staging smoke tests and provenance flag in publish-legacy-scope.mjs
- Pin GitHub Actions to commit SHAs in release workflows and bump doc/scope versions
- Replace template-string examples with render() functions and warn that
production Vue builds ship no runtime template compiler
- Document the well-known-directory fallback of ctx.system.run per platform
and the Windows batch-wrapper caveat in manifests
- Export the conformance module as an SDK subpath export
- MockClientServerRequest falls back to base-path matching for query strings
- Update the starter template slot to a render function
- getting-started: use the real route key ("GET /status"),
registeredSlots/playActionProviders, and describe build outputs from
server.entry/client.entry.
- testing-plugins: storage gating now uses await assert.rejects (the
guarded storage rejects rather than throwing synchronously).
- manifest-reference: document per-target capability resolution (server
reads top-level only; client reads client.capabilities with top-level
fallback) and mark apiVersion required.
- Rename package references in guides to the @drop-oss scope.
Replace the anti-cheat-specific checkAntiCheat/AntiCheatReport SPI with a
generic findFiles(gameId, patterns) primitive so the host carries no domain
knowledge. Plugins (e.g. drop-gse) own the pattern tables and can feature-
detect the capability for older hosts.
BREAKING CHANGE: ScopedGameScanner no longer exposes checkAntiCheat; use
findFiles with the patterns that identify the files you care about. Bumps
@droposs/plugin-sdk to 0.5.0.