Skip to content

feat(gateway): add native Discord thread and channel slash commands#1133

Closed
insecurejezza wants to merge 1 commit into
NousResearch:mainfrom
insecurejezza:feat/discord-native-slash-workspaces
Closed

feat(gateway): add native Discord thread and channel slash commands#1133
insecurejezza wants to merge 1 commit into
NousResearch:mainfrom
insecurejezza:feat/discord-native-slash-workspaces

Conversation

@insecurejezza

@insecurejezza insecurejezza commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add native /thread and /channel Discord slash commands
  • create threads and text channels directly in the Discord adapter without agent tool use
  • cover success, fallback, and failure paths with regression tests

Notes

  • This replaces the tool-based approach with native Discord slash command handling.
  • Thread creation first tries direct channel thread creation, then falls back to creating a starter message and opening a thread from it if Discord rejects the direct path.

Test Plan

  • source /Users/jeremygavin/.hermes/hermes-agent/.venv/bin/activate
  • python -m pytest -q tests/gateway/test_discord_slash_commands.py tests/gateway/test_discord_bot_filter.py tests/gateway/test_discord_free_response.py

@imadreamerboy

Copy link
Copy Markdown

duplicate #866

@teknium1

Copy link
Copy Markdown
Contributor

Duplicate of #866 (identical diff). Merged via PR #1178 with modifications. Thank you @insecurejezza!

@teknium1 teknium1 closed this Mar 13, 2026
teknium1 pushed a commit that referenced this pull request Apr 22, 2026
…imeout

Upgrades agent-browser from 0.13.0 to 0.26.0, picking up 13 releases of
daemon reliability fixes:

- Daemon hang on Linux from waitpid(-1) race in SIGCHLD handler (#1098)
- Chrome killed after ~10s idle due to PR_SET_PDEATHSIG thread tracking (#1157)
- Orphaned Chrome processes via process-group kill on shutdown (#1137)
- Stale daemon after upgrade via .version sidecar and auto-restart (#1134)
- Idle timeout not firing (sleep future recreated each loop) (#1110)
- Navigation hanging on lifecycle events that never fire (#1059, #1092)
- CDP attach hang on Chrome 144+ (#1133)
- Windows daemon TCP bind with Hyper-V port conflicts (#1041)
- Shadow DOM traversal in accessibility tree snapshots
- doctor command for user self-diagnosis

Also wires AGENT_BROWSER_IDLE_TIMEOUT_MS into the browser subprocess
environment so the daemon self-terminates after our configured inactivity
timeout (default 300s). This is the daemon-side counterpart to the
Python-side inactivity reaper — the daemon kills itself and its Chrome
children when no commands arrive, preventing orphan accumulation even
when the Python process dies without running atexit handlers.

Addresses #7343 (daemon socket hangs, shadow DOM) and #13793 (orphan
accumulation from force-killed sessions).
ulasbilgen pushed a commit to ulasbilgen/hermes-adhd-agent that referenced this pull request May 1, 2026
…imeout

Upgrades agent-browser from 0.13.0 to 0.26.0, picking up 13 releases of
daemon reliability fixes:

- Daemon hang on Linux from waitpid(-1) race in SIGCHLD handler (NousResearch#1098)
- Chrome killed after ~10s idle due to PR_SET_PDEATHSIG thread tracking (NousResearch#1157)
- Orphaned Chrome processes via process-group kill on shutdown (NousResearch#1137)
- Stale daemon after upgrade via .version sidecar and auto-restart (NousResearch#1134)
- Idle timeout not firing (sleep future recreated each loop) (NousResearch#1110)
- Navigation hanging on lifecycle events that never fire (NousResearch#1059, NousResearch#1092)
- CDP attach hang on Chrome 144+ (NousResearch#1133)
- Windows daemon TCP bind with Hyper-V port conflicts (NousResearch#1041)
- Shadow DOM traversal in accessibility tree snapshots
- doctor command for user self-diagnosis

Also wires AGENT_BROWSER_IDLE_TIMEOUT_MS into the browser subprocess
environment so the daemon self-terminates after our configured inactivity
timeout (default 300s). This is the daemon-side counterpart to the
Python-side inactivity reaper — the daemon kills itself and its Chrome
children when no commands arrive, preventing orphan accumulation even
when the Python process dies without running atexit handlers.

Addresses NousResearch#7343 (daemon socket hangs, shadow DOM) and NousResearch#13793 (orphan
accumulation from force-killed sessions).
aj-nt pushed a commit to aj-nt/hermes-agent that referenced this pull request May 1, 2026
…imeout

Upgrades agent-browser from 0.13.0 to 0.26.0, picking up 13 releases of
daemon reliability fixes:

- Daemon hang on Linux from waitpid(-1) race in SIGCHLD handler (NousResearch#1098)
- Chrome killed after ~10s idle due to PR_SET_PDEATHSIG thread tracking (NousResearch#1157)
- Orphaned Chrome processes via process-group kill on shutdown (NousResearch#1137)
- Stale daemon after upgrade via .version sidecar and auto-restart (NousResearch#1134)
- Idle timeout not firing (sleep future recreated each loop) (NousResearch#1110)
- Navigation hanging on lifecycle events that never fire (NousResearch#1059, NousResearch#1092)
- CDP attach hang on Chrome 144+ (NousResearch#1133)
- Windows daemon TCP bind with Hyper-V port conflicts (NousResearch#1041)
- Shadow DOM traversal in accessibility tree snapshots
- doctor command for user self-diagnosis

Also wires AGENT_BROWSER_IDLE_TIMEOUT_MS into the browser subprocess
environment so the daemon self-terminates after our configured inactivity
timeout (default 300s). This is the daemon-side counterpart to the
Python-side inactivity reaper — the daemon kills itself and its Chrome
children when no commands arrive, preventing orphan accumulation even
when the Python process dies without running atexit handlers.

Addresses NousResearch#7343 (daemon socket hangs, shadow DOM) and NousResearch#13793 (orphan
accumulation from force-killed sessions).
02356abc pushed a commit to 02356abc/hermes-agent that referenced this pull request May 14, 2026
…imeout

Upgrades agent-browser from 0.13.0 to 0.26.0, picking up 13 releases of
daemon reliability fixes:

- Daemon hang on Linux from waitpid(-1) race in SIGCHLD handler (NousResearch#1098)
- Chrome killed after ~10s idle due to PR_SET_PDEATHSIG thread tracking (NousResearch#1157)
- Orphaned Chrome processes via process-group kill on shutdown (NousResearch#1137)
- Stale daemon after upgrade via .version sidecar and auto-restart (NousResearch#1134)
- Idle timeout not firing (sleep future recreated each loop) (NousResearch#1110)
- Navigation hanging on lifecycle events that never fire (NousResearch#1059, NousResearch#1092)
- CDP attach hang on Chrome 144+ (NousResearch#1133)
- Windows daemon TCP bind with Hyper-V port conflicts (NousResearch#1041)
- Shadow DOM traversal in accessibility tree snapshots
- doctor command for user self-diagnosis

Also wires AGENT_BROWSER_IDLE_TIMEOUT_MS into the browser subprocess
environment so the daemon self-terminates after our configured inactivity
timeout (default 300s). This is the daemon-side counterpart to the
Python-side inactivity reaper — the daemon kills itself and its Chrome
children when no commands arrive, preventing orphan accumulation even
when the Python process dies without running atexit handlers.

Addresses NousResearch#7343 (daemon socket hangs, shadow DOM) and NousResearch#13793 (orphan
accumulation from force-killed sessions).
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
…imeout

Upgrades agent-browser from 0.13.0 to 0.26.0, picking up 13 releases of
daemon reliability fixes:

- Daemon hang on Linux from waitpid(-1) race in SIGCHLD handler (NousResearch#1098)
- Chrome killed after ~10s idle due to PR_SET_PDEATHSIG thread tracking (NousResearch#1157)
- Orphaned Chrome processes via process-group kill on shutdown (NousResearch#1137)
- Stale daemon after upgrade via .version sidecar and auto-restart (NousResearch#1134)
- Idle timeout not firing (sleep future recreated each loop) (NousResearch#1110)
- Navigation hanging on lifecycle events that never fire (NousResearch#1059, NousResearch#1092)
- CDP attach hang on Chrome 144+ (NousResearch#1133)
- Windows daemon TCP bind with Hyper-V port conflicts (NousResearch#1041)
- Shadow DOM traversal in accessibility tree snapshots
- doctor command for user self-diagnosis

Also wires AGENT_BROWSER_IDLE_TIMEOUT_MS into the browser subprocess
environment so the daemon self-terminates after our configured inactivity
timeout (default 300s). This is the daemon-side counterpart to the
Python-side inactivity reaper — the daemon kills itself and its Chrome
children when no commands arrive, preventing orphan accumulation even
when the Python process dies without running atexit handlers.

Addresses NousResearch#7343 (daemon socket hangs, shadow DOM) and NousResearch#13793 (orphan
accumulation from force-killed sessions).
Egavasyug pushed a commit to Egavasyug/hermes-agent that referenced this pull request Jun 10, 2026
…imeout

Upgrades agent-browser from 0.13.0 to 0.26.0, picking up 13 releases of
daemon reliability fixes:

- Daemon hang on Linux from waitpid(-1) race in SIGCHLD handler (NousResearch#1098)
- Chrome killed after ~10s idle due to PR_SET_PDEATHSIG thread tracking (NousResearch#1157)
- Orphaned Chrome processes via process-group kill on shutdown (NousResearch#1137)
- Stale daemon after upgrade via .version sidecar and auto-restart (NousResearch#1134)
- Idle timeout not firing (sleep future recreated each loop) (NousResearch#1110)
- Navigation hanging on lifecycle events that never fire (NousResearch#1059, NousResearch#1092)
- CDP attach hang on Chrome 144+ (NousResearch#1133)
- Windows daemon TCP bind with Hyper-V port conflicts (NousResearch#1041)
- Shadow DOM traversal in accessibility tree snapshots
- doctor command for user self-diagnosis

Also wires AGENT_BROWSER_IDLE_TIMEOUT_MS into the browser subprocess
environment so the daemon self-terminates after our configured inactivity
timeout (default 300s). This is the daemon-side counterpart to the
Python-side inactivity reaper — the daemon kills itself and its Chrome
children when no commands arrive, preventing orphan accumulation even
when the Python process dies without running atexit handlers.

Addresses NousResearch#7343 (daemon socket hangs, shadow DOM) and NousResearch#13793 (orphan
accumulation from force-killed sessions).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants