mirror of
https://github.com/esengine/DeepSeek-Reasonix.git
synced 2026-11-07 10:45:59 -10:00
Stage 10 of the unified extension kernel / Extension Protocol v1 plan. - New docs: EXTENSIONS.md/.zh-CN.md (capability map, install/manage, fail-atomic reload semantics, development guide, compatibility, full-trust security model) and EXTENSION_PROTOCOL.md/.zh-CN.md (prose companion to the generated index: transport, lifecycle, content refs, interception, streaming providers, structured UI, errors, v1 stability contract, security model). - Updated docs: PLUGIN_PACKAGES (Manifest v1 chapter: strict parsing, merge rules, prompts/themes, runtime declaration, FULL TRUST disclosure and --link trust inheritance), CAPABILITY_DIAGNOSTICS (additive v1 prompts/themes/runtime fields, schema_version stays 1), CLI (/reload), ACP (_reasonix.io/session/reloadExtensions, extensionSurface negotiation, /<plugin>:<action> discovery), RELEASING (sdk/go/vX.Y.Z tag convention, three-product tag contract unchanged), THEME_PACK (plugin theme kind and fallback-preserve, from stage 4). - CI: new sdk job on the three-OS matrix (gofmt, vet, stdlib-only guard, test, race on pushes) triggered by sdk/ or internal/extension/ changes; root conformance tests run in the existing root matrix. - Makefile: sdk-test / sdk-test-race targets. - Bundle budget: initial raw JS+CSS 2250 -> 2265 KiB with a comment recording the extension UI surface as the cause; every gzip budget (the user-visible transfer cost) is unchanged and passing. Compatibility audit (kept green by tests added in stages 1-9): legacy manifests parse byte-identically, plugin-packages.json schema unchanged, session JSONL untouched with extension state isolated to <session>.extensions.json, desktop theme state preserves plugin: IDs across uninstall while legacy files load unchanged, install-plan JSON is omitempty-additive, plugin/... refs degrade to model-unavailable on old versions, and the two new event kinds append at the enum end with text fallbacks for old clients.