fix: accept "default" as the default board name - #44
Merged
Conversation
`shepherd boards` advertises the default board as "default", but `--board default` resolved to a nonexistent boards/default.md instead of the real todo.md. Any consumer that reads a name from the boards listing and feeds it back (e.g. drover's board picker) hit an empty phantom board. ResolveBoard now maps "default" to the empty board so the advertised name round-trips; CreateBoard reserves "default" so no real board can shadow it (rename/archive already did).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fix a round-trip bug:
shepherd boardsadvertises the default board asdefault, but--board defaultresolved to a nonexistentboards/default.mdinstead of the realtodo.md.Impact
Any consumer that reads a name from the
boardslisting and feeds it back to--boardbreaks for exactly the default board — it silently addresses an empty phantom board. Surfaced via drover: its dashboard board-picker passes the advertiseddefaultname toshepherd watch --board default, so drover watched an empty board and never sawboard.added/board.updatedevents (no actions fired).Fix
ResolveBoard:"default"resolves to the empty board, so the advertised name round-trips for every consumer.CreateBoard: reserves"default"so no real board can shadow the alias (rename/archivealready reserved it).TestResolveBoard.