fix: address code review findings for plugin command API
Blockers fixed: - Fix documentation: requireAuth defaults to true (not false) - Add command name validation (must start with letter, alphanumeric only) - Add reserved commands list to prevent shadowing built-in commands - Emit diagnostic errors for invalid/duplicate command registration Other improvements: - Return user-friendly message for unauthorized commands (instead of silence) - Sanitize error messages to avoid leaking internal details - Document acceptsArgs behavior when arguments are provided - Add notes about reserved commands and validation rules to docs Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
committed by
Peter Steinberger
parent
4ee808dbcb
commit
b56587f26e
@@ -374,14 +374,25 @@ export function createPluginRegistry(registryParams: PluginRegistryParams) {
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
// Register with the plugin command system (validates name and checks for duplicates)
|
||||
const result = registerPluginCommand(record.id, command);
|
||||
if (!result.ok) {
|
||||
pushDiagnostic({
|
||||
level: "error",
|
||||
pluginId: record.id,
|
||||
source: record.source,
|
||||
message: `command registration failed: ${result.error}`,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
record.commands.push(name);
|
||||
registry.commands.push({
|
||||
pluginId: record.id,
|
||||
command,
|
||||
source: record.source,
|
||||
});
|
||||
// Register with the plugin command system
|
||||
registerPluginCommand(record.id, command);
|
||||
};
|
||||
|
||||
const registerTypedHook = <K extends PluginHookName>(
|
||||
|
||||
Reference in New Issue
Block a user