mirror of
https://github.com/J3vb/OwnCord.git
synced 2026-09-03 03:50:00 +03:00
First of two phase-D parity plans. Grounded in the existing V2 command dispatcher (Server/ws/command.go) and the dormant plugin.Registry.DispatchCommand + host_commands.go — this is not a green-field design, it's a wiring plan for code that already exists. Covers: - Wire format: command_invoke, command_autocomplete, command_reply, command_autocomplete_result - Manifest extension: commands[] with option types, default_member_permissions, contexts, autocomplete flag - Schema: migrations/016_plugin_commands.sql with a unique name index so two plugins can't both own /ban - Code surface: enumerated file-by-file touch list - Permission model: server-enforces default_member_permissions BEFORE the plugin is invoked, plugins never get to gate their own commands - Built-in commands: /me + /shrug ship in-tree as reference handlers - Concurrency: 3s deadline via context.WithTimeout passed to DispatchCommand - Failure modes & UX: 6-row table from "unknown command" through panic auto-disable - Testing: unit + integration + contract round trip - Telemetry: 3 new counters + OTel span - 4-stage rollout, each step independently shippable - Open questions: bot identity for broadcasts, component v2 reservation, cross-plugin imports, DM-context handling Plan #8 (E2EE DMs + DAVE voice) and PHASE_D_PARITY_TODO.md items 2-7 to follow in a subsequent commit. https://claude.ai/code/session_01UsBsQW2YiA2usk9pnJjAWk