Skip to content

fix(project): validate board slug in bind-board (#76285) - #76298

Open
webtecnica wants to merge 1 commit into
NousResearch:mainfrom
webtecnica:fix/76285-bind-board-validation
Open

fix(project): validate board slug in bind-board (#76285)#76298
webtecnica wants to merge 1 commit into
NousResearch:mainfrom
webtecnica:fix/76285-bind-board-validation

Conversation

@webtecnica

Copy link
Copy Markdown
Contributor

Closes #76285

@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/cli CLI entry point, hermes_cli/, setup wizard labels Aug 1, 2026

@teknium1 teknium1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:326 is only used by the CLI. The TUI gateway still forwards board_slug directly in projects.create (tui_gateway/server.py:10976-10987) and projects.update (tui_gateway/server.py:10995-11006), while projects_db.update_project only 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 ValueError to a project argument error at tui_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:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@teknium1 teknium1 added sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades sweeper:blast-contained Sweeper blast radius: contained — one narrow path / opt-in / few users labels Aug 1, 2026
@GottZ

GottZ commented Aug 3, 2026

Copy link
Copy Markdown

This was generated by AI during triage.

Summary

One PR addresses #76285. #76298 prevents unknown board slugs from being persisted through CLI bind-board and project create --board, but the same dangling-binding cause remains reachable through the project create/update RPC paths.

Related pull requests

Suggested consolidation

Keep #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 graph

flowchart 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"
Loading

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cli CLI entry point, hermes_cli/, setup wizard P3 Low — cosmetic, nice to have sweeper:blast-contained Sweeper blast radius: contained — one narrow path / opt-in / few users sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

hermes project bind-board binds a board slug that does not exist (no validation, exit 0)

4 participants