Skip to content

fix+feat(gateway): salvage platform feature PRs #6914 #6851 #6909 #6852 #6842 - #7154

Merged
teknium1 merged 8 commits into
mainfrom
hermes/bucket3
Apr 10, 2026
Merged

fix+feat(gateway): salvage platform feature PRs #6914 #6851 #6909 #6852 #6842#7154
teknium1 merged 8 commits into
mainfrom
hermes/bucket3

Conversation

@teknium1

Copy link
Copy Markdown
Contributor

Summary

Salvage of 5 gateway platform feature PRs. Contributor authorship preserved via cherry-pick where applicable.

Cherry-picked (authorship preserved):

Simplified reimplementation (credited):

  • feat(discord): add layered auto-skill bindings for forums/channels #6842 (RunzhouLi) — Discord channel_skill_bindings: auto-load skills per channel/forum. Original PR was 385 lines; simplified to 68 additions by streamlining the resolver and multi-skill loader. Config format:
    discord:
      channel_skill_bindings:
        - id: "123456"
          skills: ["skill-a", "skill-b"]
    The run.py auto-skill loader now handles both str and list[str], loading multiple skills in order.

Also closed/skipped:

Test results

  • 151 tests pass (discord channel skills, matrix reactions, config, CLI status)
  • All affected files compile clean

Cygra and others added 8 commits April 10, 2026 04:57
When extra.base_url is set in the Telegram platform config, use it as
the base URL for all Telegram API requests instead of api.telegram.org.
This allows agents to route Telegram traffic through the credential
proxy, which injects the real bot token — the VM never sees it.

Also supports extra.base_file_url for file downloads (defaults to
base_url if not set separately).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The on_processing_complete handler was never removing the eyes reaction because
_send_reaction didn't return the reaction event_id.

Fix:
- _send_reaction returns Optional[str] event_id
- on_processing_start stores it in _pending_reactions dict
- on_processing_complete redacts the eyes reaction before adding completion emoji
_send_reaction now returns Optional[str] (event_id) instead of bool.
Tests updated:
- test_send_reaction: assert result == event_id string
- test_send_reaction_no_client: assert result is None
- test_on_processing_start_sends_eyes: _send_reaction returns event_id,
  now also asserts _pending_reactions is populated
- test_on_processing_complete_sends_check: set up _pending_reactions and
  mock _redact_reaction, assert eyes reaction is redacted before sending check
Add debug logging when eyes reaction redaction fails, and add tests
for the success=False path and the no-pending-reaction edge case.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… channel

Simplified implementation of the feature from PR #6842 (RunzhouLi).
Allows Discord channels/forum threads to auto-bind skills via config:

    discord:
      channel_skill_bindings:
        - id: "123456"
          skills: ["skill-a", "skill-b"]

The run.py auto-skill loader now handles both str and list[str],
loading multiple skills in order and concatenating their payloads.
Forum threads inherit their parent channel's bindings.

Co-authored-by: RunzhouLi <RunzhouLi@users.noreply.github.com>
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.

5 participants