Files
summercms/.planning/todos/pending/bonfire-duplicate-command-names.md

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, so the generated main should build the root first (as it does today) and rely on that check. 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.