Skip to content

fix: 4 small surgical bugs (#23302)#28423

Merged
teknium1 merged 1 commit into
mainfrom
hermes/hermes-de55f5dd
May 19, 2026
Merged

fix: 4 small surgical bugs (#23302)#28423
teknium1 merged 1 commit into
mainfrom
hermes/hermes-de55f5dd

Conversation

@teknium1

Copy link
Copy Markdown
Contributor

Salvages #23302 by @Bartok9.

Four independent one-area fixes from the original PR:

  1. kanban boards delete alias: hermes kanban boards delete <slug> now hard-deletes (it was archiving instead because --delete belongs to the rm subparser only). Detect boards_action=='delete' explicitly.
  2. Gateway auto-title noise: title-generation failures no longer leak as user-visible messages. Debug-log only — not actionable to the end user.
  3. Background process notification truncation: snap to next newline boundary when output is truncated, prepend [… output truncated — showing last N chars].
  4. _cprint() cross-thread coroutine fix: schedule run_in_terminal via asyncio.ensure_future so output isn't silently GC'd from background threads. Removes the double-print fallback path for mocked builds.

Original branch was stale; applied each substantive change manually onto current main. Authorship preserved via rebase merge.

Salvages #23302 by @Bartok9. Four independent one-area fixes:

1. kanban boards delete alias now hard-deletes (not archives) — the
   alias didn't carry --delete, so getattr(args, 'delete', False)
   returned False. Detect boards_action=='delete' explicitly.
2. Gateway auto-title failures no longer leak as user-visible
   warnings — debug-log only since they're not actionable.
3. Background process completion notification snaps truncation to
   the next newline boundary, prepends a marker when content is
   dropped.
4. _cprint() schedules the run_in_terminal coroutine via
   asyncio.ensure_future so output isn't silently dropped from
   background threads (fixes #23185 Bug A). Skips the
   double-print fallback that would fire for mock paths.
@github-actions

Copy link
Copy Markdown
Contributor

🔎 Lint report: hermes/hermes-de55f5dd vs origin/main

ruff

Total: 0 on HEAD, 0 on base (➖ 0)

🆕 New issues: none

✅ Fixed issues: none

Unchanged: 0 pre-existing issues carried over.

ty (type checker)

Total: 8815 on HEAD, 8814 on base (🆕 +1)

🆕 New issues (2):

Rule Count
invalid-assignment 1
invalid-argument-type 1
First entries
gateway/run.py:16192: [invalid-assignment] invalid-assignment: Invalid subscript assignment with key of type `Literal["title_callback"]` and value of type `(title: str) -> None` on object of type `dict[str, ((task: str, exc: BaseException) -> None) | dict[str, Any | None] | None]`
gateway/run.py:16203: [invalid-argument-type] invalid-argument-type: Argument to function `maybe_auto_title` is incorrect: Expected `((str, /) -> None) | None`, found `((task: str, exc: BaseException) -> None) | dict[str, Any | None] | None`

✅ Fixed issues (1):

Rule Count
invalid-argument-type 1
First entries
gateway/run.py:16188: [invalid-argument-type] invalid-argument-type: Argument to function `maybe_auto_title` is incorrect: Expected `((str, /) -> None) | None`, found `Any | None | dict[str, Any | None]`

Unchanged: 4625 pre-existing issues carried over.

Diagnostics are surfaced as warnings — this check never fails the build.

@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 comp/gateway Gateway runner, session dispatch, delivery comp/plugins Plugin system and bundled plugins labels May 19, 2026
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 comp/gateway Gateway runner, session dispatch, delivery comp/plugins Plugin system and bundled plugins P3 Low — cosmetic, nice to have type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants