fix(project): validate board slug in bind-board (#76285) - #76298
fix(project): validate board slug in bind-board (#76285)#76298webtecnica wants to merge 1 commit into
Conversation
teknium1
left a comment
There was a problem hiding this comment.
Thanks for covering both bind-board and project create --board; the current CLI defect is verified on main at hermes_cli/projects_cmd.py:308-314.
Problems
- The new resolver at
hermes_cli/projects_cmd.py:326is only used by the CLI. The TUI gateway still forwardsboard_slugdirectly inprojects.create(tui_gateway/server.py:10976-10987) andprojects.update(tui_gateway/server.py:10995-11006), whileprojects_db.update_projectonly normalizes it (hermes_cli/projects_db.py:449-451). Those paths can still persist the dangling binding this PR prevents.
Suggested changes
- Share the board-existence validation with the TUI gateway create/update paths; its wrapper already maps
ValueErrorto a project argument error attui_gateway/server.py:10948-10949. - Add RPC regressions for unknown board slugs on create and update.
This is an automated hermes-sweeper review.
| return 0 | ||
|
|
||
|
|
||
| def _resolve_board_slug(board: str) -> str | None: |
There was a problem hiding this comment.
This CLI-local resolver leaves projects.create and projects.update RPCs able to persist unknown board_slug values (tui_gateway/server.py:10976-11006). Please move or expose this validation through a shared project-facing path and cover the RPC callers as well.
SummaryOne PR addresses #76285. #76298 prevents unknown board slugs from being persisted through CLI Related pull requests
Suggested consolidationKeep #76298 open with a salvage path: retain its CLI validation behavior and regressions, but move or expose the validation through a shared project-facing path, apply it to the TUI gateway create/update RPC callers, and add RPC regressions for unknown board slugs. This addresses the contributor's keep_open review rather than merging over its documented objection; there are no duplicate PRs to close. Complex graphflowchart LR
classDef open fill:#dbeafe,stroke:#1d4ed8,color:#1e3a8a
classDef merged fill:#dcfce7,stroke:#15803d,color:#14532d
classDef closed fill:#e5e7eb,stroke:#6b7280,color:#1f2937
classDef unverified fill:#f3f4f6,stroke:#9ca3af,color:#374151
classDef best stroke-width:3px,stroke:#b45309
classDef target stroke-width:3px,stroke:#4338ca
I76285(["issue #76285 (open)"])
P76298["PR #76298 (open)"]
P76298 -->|best fix| I76285
class I76285 open
class P76298 open
class P76298 best
class P76298 target
click I76285 "https://github.com/NousResearch/hermes-agent/issues/76285"
click P76298 "https://github.com/NousResearch/hermes-agent/pull/76298"
Graph: solid arrow = fixes / best fix, dashed arrow = partial or unverified (see edge label); boxed group = PRs duplicating each other; amber border = best fix; indigo border = target; gray node = closed (state tag in the node label). Cross-PR triage: Reviewed 1 pull request and 1 issue in this complex. Each diff was read against this issue; Assessment working set: 5 kB of PR diffs, 2 kB of issue/PR text, 1 kB of discussion (2 comments), 2 verify verdicts. verdicts reflect diff content, not PR titles. Part of an automated triage batch. |
Closes #76285