Skip to content

Discord: fix Clawdis not sending "typing" notifications in replies#97

Closed
thewilloftheshadow wants to merge 1 commit intoopenclaw:mainfrom
thewilloftheshadow:shadow/discord-typing
Closed

Discord: fix Clawdis not sending "typing" notifications in replies#97
thewilloftheshadow wants to merge 1 commit intoopenclaw:mainfrom
thewilloftheshadow:shadow/discord-typing

Conversation

@thewilloftheshadow
Copy link
Copy Markdown
Member

Discord was only working with the bot typing in the initial message in a session, any followups weren't showing the "Clawd is typing..." properly when mentions were disabled, this PR fixes that by treating the bot as mentioned in Discord if mentions are disabled to let the upstream code take over with the normal flow like the rest of the systems are.

@thewilloftheshadow thewilloftheshadow changed the title Discord: keep typing active without mention Discord: fix Clawdis not sending "typing" notifications in replies Jan 2, 2026
@steipete
Copy link
Copy Markdown
Contributor

steipete commented Jan 3, 2026

🦞 Codex Review

Findings

  • ⚠️ Medium: WasMentioned becomes true when requireMention is false; templates/analytics now treat unmentioned messages as mentions. Consider keeping WasMentioned = actual mention and derive from separate flag.
  • ℹ️ Low: shouldRequireMention hinges on isDirectMessage; GroupDMs get treated as direct and skip mention gating. Confirm intended.

Open Questions

  • Should WasMentioned stay "literal mention" for templates even when mention isn't required?

Summary
Adjusts Discord mention gating flag and uses it to force WasMentioned in non-mention-required cases.

Review by Clawd 🦞 via Codex

@thewilloftheshadow
Copy link
Copy Markdown
Member Author

Already fixed on main!

dalefrieswthat pushed a commit to dalefrieswthat/openclaw that referenced this pull request Feb 25, 2026
* feat: scaffold evaluation harness foundation

* docs: add evaluation harness extension workstream note

* UX: add ChannelBroadcastCenter — unified messaging broadcast and channel management (openclaw#324)

* feat(evals): catalog schema + tool-reliability & agent-spawning scenarios (11 new cases)

- catalog.ts: ScenarioCatalog schema with category/difficulty grouping,
  CataloguedEvaluationCase type, filterCatalog, validateScenarioMetadata
- fixtures.ts: createDefaultCatalog, loadScenarios*, getCatalogStats CI loaders
- cases/hitl-escalation.ts: escalation-smoke + timeout-handling (ported from jerry/eval-scenario-schema)
- cases/memory-recall.ts: recall-context + path-traversal (ported from jerry/eval-scenario-schema)
- cases/tool-reliability.ts: 6 new deterministic scenarios
  - dispatch-success: happy-path tool invocation
  - dispatch-unknown-tool: graceful structured error on unknown name
  - retry-on-transient-failure: retry succeeds on nth attempt
  - max-retries-exhausted: retry gives up cleanly at limit
  - timeout-abort: AbortSignal propagation cuts execution early
  - result-schema-validation: validates ok/error result shape contracts
- cases/agent-spawning.ts: 5 new deterministic scenarios
  - basic-spawn-and-complete: child agent lifecycle + result accessible to parent
  - depth-limit-enforcement: spawn rejected beyond MAX_SPAWN_DEPTH=3
  - result-routing-to-requester: result delivered to correct session only
  - orphan-cleanup-on-parent-kill: recursive kill propagates to all descendants
  - parallel-completion-ordering: N concurrent agents collect without loss
- catalog.test.ts: 37 tests covering catalog build, filter, validation,
  per-category smoke runs (all 42 suite tests green)
- index.ts: updated exports for all new symbols

All scenarios: deterministic, no LLM calls, no external services.
Catalog now: 16 cases across 5 categories.

* UX: add ProviderRoutingPanel — AI provider routing and failover dashboard (openclaw#325)

* feat(evals): add JSONL export adapter for CI integration

- export-jsonl.ts: writeEvaluationJsonl writes each case as separate JSON line
- writeEvaluationJsonlSummary writes aggregate metrics in single line
- computeMetrics calculates per-suite, per-category, per-difficulty pass rates
- Supports append mode for incremental CI reporting
- 7 new tests covering path resolution, append, summary, and metrics

* feat(evaluation-harness): add WORKSTREAM.md and basic benchmark test

* feat(evals): add scenario catalog schema + 2 benchmark scenarios (HITL + memory) (openclaw#96)

- Add scenario catalog schema/metadata contracts in catalog.ts
- Add HITL benchmark scenarios (escalation + timeout handling)
- Add Memory path benchmark scenarios (context recall + path traversal)
- Add CI-friendly fixture loading in fixtures.ts
- Add comprehensive validation tests for catalog functionality
- Export all new types and cases from index.ts

Implements eh-002 with seed for eh-003 (5-scenario target)

* feat(evals): add tool-reliability benchmark scenario (4 cases) (openclaw#97)

* feat(evals): add scenario catalog schema + 2 benchmark scenarios (HITL + memory)

- Add scenario catalog schema/metadata contracts in catalog.ts
- Add HITL benchmark scenarios (escalation + timeout handling)
- Add Memory path benchmark scenarios (context recall + path traversal)
- Add CI-friendly fixture loading in fixtures.ts
- Add comprehensive validation tests for catalog functionality
- Export all new types and cases from index.ts

Implements eh-002 with seed for eh-003 (5-scenario target)

* feat(evals): add tool-reliability benchmark scenario (4 cases)

Adds the tool-reliability benchmark scenario to reach the 5-scenario target:
- tool-reliability.dispatch-smoke: basic tool dispatch structure validation
- tool-reliability.timeout-handling: tool timeout detection and handling
- tool-reliability.failure-recovery: fallback behavior on tool failure
- tool-reliability.result-validation: tool result structure validation

Wired through existing catalog + fixture loading utilities.
Updated tests to cover new scenarios.

eh-003 complete: 5-scenario target now met (was 4, added 4)

* Delete WORKSTREAM.md
github-actions bot pushed a commit to Piboonsak/openclaw_github that referenced this pull request Mar 9, 2026
Piboonsak added a commit to Piboonsak/openclaw_github that referenced this pull request Mar 9, 2026
- Add SSH key retry logic (3 attempts, 15s delay) to handle transient VPS unreachability (openclaw#110)
- Add SSH auth verification before proceeding with deploy
- Pin [email protected] to avoid npm install failures (openclaw#109)
- Add error handling for json5 install step
- Add config verification logging for safeBins and model persistence (openclaw#97, openclaw#100)

Fixes: openclaw#110, openclaw#109, openclaw#97, openclaw#100
Sprint: 1.6
Piboonsak added a commit to Piboonsak/openclaw_github that referenced this pull request Mar 12, 2026
- Add safeBinProfiles.gh and .git to config/openclaw.prod.json5 (WS-B)
  * Fixes config drift that blocked exec path and forced approval fallback
  * Profiles allow git clone/pull, gh issue/pr operations
  * Reduces outbound message bursts that trigger LINE rate limits

- Add exponential backoff + jitter retry to LINE exec-approvals (WS-D)
  * Retries template send with 3 attempts, baseDelay 300ms, max 5s
  * Retries fallback text with 2 attempts, baseDelay 500ms, max 3s
  * Only retries on transient errors (429, 5xx, network timeouts)
  * Spreads requests over time to avoid burst rate limits

- Add backoff retry to heartbeat runner (WS-D)
  * Wraps deliverOutboundPayloads calls with retry logic
  * 2 attempts, baseDelay 500ms, max 5s for heartbeat pings
  * Handles transient rate limiting gracefully

Fixes openclaw#122 (LINE 429 bursts)
Addresses openclaw#97 #101 (exec allow list reliability)
CyberSpencer added a commit to CyberSpencer/openclaw that referenced this pull request Mar 19, 2026
…_actions/actions/download-artifact-8

chore(deps): bump actions/download-artifact from 4 to 8
0x666c6f added a commit to 0x666c6f/openclaw that referenced this pull request Mar 26, 2026
…nforcement (openclaw#97)

* fix(sre:PLA-902): block long progress messages, add missing prefixes

Live test showed 9 bot messages — progress messages over 200 chars
bypassed the length check. Remove the 200-char exemption: messages
starting with progress prefixes are noise regardless of length.
The incident-label check still protects substantive replies.

Add "now i have" and "now i understand" to prefix list (appeared
4 times in the test thread as multi-paragraph thinking-out-loud).

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

* fix(sre:PLA-902): apply label enforcement inside chunk function, not caller

Move enforceIncidentLabelFormat into markdownToSlackMrkdwnChunks so
ALL Slack reply paths get label enforcement (not just sendMessageSlack).
Remove redundant .map() in send.ts. Add "What the PR does" to bold
detection regex.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
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.

2 participants