1.2 KiB
title, date, priority, area
| title | date | priority | area |
|---|---|---|---|
| Reject duplicate console command names in bonfire.NewRoot | 2026-09-30 | low | summercms.go bonfire |
bonfire.NewRoot validates each command name's form (namespace:verb, or one of the bare framework names) but does not check for duplicates. The generated application main appends plugin commands after the framework's runtime commands, so a plugin that declares a command with the same name as a framework command, or as another plugin's command, builds and starts without an error, and which one runs is decided by Cobra.
Found while writing docs/console/writing-commands.md (Phase 11.1 plan 03). The page describes the current behaviour: names are not checked for duplicates, so keep commands in the plugin's own namespace.
Suggested fix: make bonfire.NewRoot fail with an error naming the duplicated command when two commands share a name. bonfire.NewCatalog, which the scheduler calls through, has no error return, but the generated main calls bonfire.NewRoot before it runs any command, so that check stops the binary before a duplicate can run. Update the bonfire README and the docs page in the same change (the D-13 docs rule). The API change is outside the docs phase boundary, so it is not made in Phase 11.1.