Skip to content

fix(gateway/slack): address thread context design issues (v2)#6162

Closed
jarvisxyz wants to merge 1 commit into
NousResearch:mainfrom
jarvisxyz:2026-04-08.eizus.slack-thread-context-v2
Closed

fix(gateway/slack): address thread context design issues (v2)#6162
jarvisxyz wants to merge 1 commit into
NousResearch:mainfrom
jarvisxyz:2026-04-08.eizus.slack-thread-context-v2

Conversation

@jarvisxyz

Copy link
Copy Markdown
Contributor

Fork PR: jarvisxyz#5

Summary: Re-implementation of the Slack thread history feature from #5582, addressing feedback from teknium1.

Changes:

  • Deduplication: Thread context is only fetched on first contact (no active session). After the first turn, _has_active_session_for_thread returns True so the fetch is skipped — messages never appear twice in the conversation.
  • Rate limit handling: Exponential backoff (1s, 2s) on Tier-3 conversations.replies 429 responses, with per-attempt logging.
  • Typed cache: Replaced fragile first-list-element metadata with _ThreadContextCache dataclass (fields: content, fetched_at, message_count).

Closes #5582 (supersedes it).

- Add deduplication: context only fetched on first contact when no
  active session exists; comment clarifies messages are not duplicated
  in subsequent turns
- Add rate limit handling: exponential backoff for Tier-3 conversations.replies
  (1s, 2s delays on 429)
- Replace fragile list-based cache with typed _ThreadContextCache dataclass

Addresses feedback from NousResearch#5582 (teknium1).
teknium1 pushed a commit that referenced this pull request Apr 9, 2026
…hing

- Add _ThreadContextCache dataclass for caching fetched context (60s TTL)
- Add exponential backoff retry for conversations.replies 429 rate limits
  (Tier 3, ~50 req/min)
- Only fetch context when no active session exists (guard at call site)
  to prevent duplication across turns
- Hoist bot_uid lookup outside the per-message loop
- Clearer header text for injected thread context

Based on PR #6162 by jarvisxyz, cherry-picked onto current main.
teknium1 pushed a commit that referenced this pull request Apr 9, 2026
…hing

- Add _ThreadContextCache dataclass for caching fetched context (60s TTL)
- Add exponential backoff retry for conversations.replies 429 rate limits
  (Tier 3, ~50 req/min)
- Only fetch context when no active session exists (guard at call site)
  to prevent duplication across turns
- Hoist bot_uid lookup outside the per-message loop
- Clearer header text for injected thread context

Based on PR #6162 by jarvisxyz, cherry-picked onto current main.
@teknium1

teknium1 commented Apr 9, 2026

Copy link
Copy Markdown
Contributor

Merged via PR #6809 as part of a consolidated Slack adapter improvement. Your contribution was cherry-picked with conflict resolution. Your authorship is preserved in git history. Thank you @jarvisxyz for your work on this!

@teknium1 teknium1 closed this Apr 9, 2026
Tommyeds pushed a commit to Tommyeds/hermes-agent that referenced this pull request Apr 12, 2026
…hing

- Add _ThreadContextCache dataclass for caching fetched context (60s TTL)
- Add exponential backoff retry for conversations.replies 429 rate limits
  (Tier 3, ~50 req/min)
- Only fetch context when no active session exists (guard at call site)
  to prevent duplication across turns
- Hoist bot_uid lookup outside the per-message loop
- Clearer header text for injected thread context

Based on PR NousResearch#6162 by jarvisxyz, cherry-picked onto current main.
angelburgosrosado pushed a commit to angelburgosrosado/hermes-agent that referenced this pull request Apr 28, 2026
…hing

- Add _ThreadContextCache dataclass for caching fetched context (60s TTL)
- Add exponential backoff retry for conversations.replies 429 rate limits
  (Tier 3, ~50 req/min)
- Only fetch context when no active session exists (guard at call site)
  to prevent duplication across turns
- Hoist bot_uid lookup outside the per-message loop
- Clearer header text for injected thread context

Based on PR NousResearch#6162 by jarvisxyz, cherry-picked onto current main.
ulasbilgen pushed a commit to ulasbilgen/hermes-adhd-agent that referenced this pull request May 1, 2026
…hing

- Add _ThreadContextCache dataclass for caching fetched context (60s TTL)
- Add exponential backoff retry for conversations.replies 429 rate limits
  (Tier 3, ~50 req/min)
- Only fetch context when no active session exists (guard at call site)
  to prevent duplication across turns
- Hoist bot_uid lookup outside the per-message loop
- Clearer header text for injected thread context

Based on PR NousResearch#6162 by jarvisxyz, cherry-picked onto current main.
02356abc pushed a commit to 02356abc/hermes-agent that referenced this pull request May 14, 2026
…hing

- Add _ThreadContextCache dataclass for caching fetched context (60s TTL)
- Add exponential backoff retry for conversations.replies 429 rate limits
  (Tier 3, ~50 req/min)
- Only fetch context when no active session exists (guard at call site)
  to prevent duplication across turns
- Hoist bot_uid lookup outside the per-message loop
- Clearer header text for injected thread context

Based on PR NousResearch#6162 by jarvisxyz, cherry-picked onto current main.
olympus-terminal pushed a commit to olympus-terminal/hermes-agent that referenced this pull request May 16, 2026
…hing

- Add _ThreadContextCache dataclass for caching fetched context (60s TTL)
- Add exponential backoff retry for conversations.replies 429 rate limits
  (Tier 3, ~50 req/min)
- Only fetch context when no active session exists (guard at call site)
  to prevent duplication across turns
- Hoist bot_uid lookup outside the per-message loop
- Clearer header text for injected thread context

Based on PR NousResearch#6162 by jarvisxyz, cherry-picked onto current main.
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
…hing

- Add _ThreadContextCache dataclass for caching fetched context (60s TTL)
- Add exponential backoff retry for conversations.replies 429 rate limits
  (Tier 3, ~50 req/min)
- Only fetch context when no active session exists (guard at call site)
  to prevent duplication across turns
- Hoist bot_uid lookup outside the per-message loop
- Clearer header text for injected thread context

Based on PR NousResearch#6162 by jarvisxyz, cherry-picked onto current main.
Egavasyug pushed a commit to Egavasyug/hermes-agent that referenced this pull request Jun 10, 2026
…hing

- Add _ThreadContextCache dataclass for caching fetched context (60s TTL)
- Add exponential backoff retry for conversations.replies 429 rate limits
  (Tier 3, ~50 req/min)
- Only fetch context when no active session exists (guard at call site)
  to prevent duplication across turns
- Hoist bot_uid lookup outside the per-message loop
- Clearer header text for injected thread context

Based on PR NousResearch#6162 by jarvisxyz, cherry-picked onto current main.
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