Tag the 17 open todos with their g15office task IDs, close 7 todos that are already done or promoted to Phase 16.3, and record the sync rules and the phase-to-task map in .planning/G15OFFICE.md.
1.3 KiB
title, date, priority, area, g15office
| title | date | priority | area | g15office |
|---|---|---|---|---|
| Reject duplicate console command names in bonfire.NewRoot | 2026-09-30 | low | summercms.go bonfire | u4rtpcl1 |
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.