Skip to content

fix(webhooks): followup ghost-event dispatcher + vi i18n (#11050) - #11130

Merged
diegosouzapw merged 1 commit into
diegosouzapw:release/v3.8.50from
maxmad64bis:fix/11050-webhooks-ghost-events-followup
Aug 22, 2026
Merged

diegosouzapw merged 1 commit into
diegosouzapw:release/v3.8.50from
maxmad64bis:fix/11050-webhooks-ghost-events-followup

Conversation

@maxmad64bis

@maxmad64bis maxmad64bis commented Aug 22, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Follow-up to the already-merged #11050: closes the two blockers the owner flagged.

  • Dispatcher tests (webhook-discord/slack/telegram-dispatcher.test.ts) still iterated/called the removed events provider.error/provider.recovered/combo.switched, throwing TypeError: Cannot read properties of undefined at runtime (EVENT_DESCRIPTIONS[event]). Replaced the hand-copied catalogs with WEBHOOK_EVENT_VALUES and retargeted the standalone discord:36 / slack:41 calls to request.failed with { provider } shape.
  • vi.json carried __MISSING__: on omni-webhooks.description, which tests/unit/i18n-vi-completeness.test.ts bans for vi only. Translated it to Vietnamese. The other 41 locales keep the marker by design (the sync-ui-keys.mjs convention; i18n-ui-value-drift treats __MISSING__: as the legitimate staleness signal).
  • Added a runtime smoke test asserting the three builders accept every value in WEBHOOK_EVENT_VALUES. The negative ghost-string assertions in webhooks-ghost-events.test.ts are kept (they prove the removal).

Related Issues

Validation

Change type: i18n / other (test-only + one i18n value)

  • Focused tests rerun: webhook-discord/slack/telegram-dispatcher.test.ts, i18n-vi-completeness.test.ts, i18n-ui-value-drift.test.ts, webhooks-ghost-events.test.ts all pass
  • npm run lint (pre-commit hooks ran on commit)
  • Reconciled with current active release base upstream/release/v3.8.50
  • Production-code change (vi.json) includes an automated test in this PR (i18n-vi-compat/completeness)

Tests Added Or Updated

  • tests/unit/webhooks-ghost-events.test.ts — new positive smoke test over WEBHOOK_EVENT_VALUES
  • tests/unit/webhook-discord-dispatcher.test.ts, webhook-slack-dispatcher.test.ts, webhook-telegram-dispatcher.test.ts — catalogs now derive from WEBHOOK_EVENT_VALUES; slack test name updated

Coverage Notes

  • No src//open-sse//electron//bin/ production logic changed (only a test file and one i18n value). The vi.json value change is covered by the existing i18n-vi-completeness gate.

Reviewer Notes

  • eventDescriptions.ts is intentionally NOT touched (it was already correct in fix(webhooks): remove 3 declared-but-never-emitted events #11050).
  • The smoke test is a runtime check, not a static source-scan gate; a future hand-copied literal in a dispatcher test would not be caught by this PR alone. Filed as a known follow-up.

…souzapw#11050)

diegosouzapw#11050 removed provider.error/recovered/combo.switched from EVENT_DESCRIPTIONS
but the dispatcher tests still iterated/called them, throwing TypeError at
runtime (EVENT_DESCRIPTIONS[event] undefined), and vi.json carried __MISSING__
which i18n-vi-completeness bans for vi only.

- Drop ghost events from the 3 dispatcher test catalogs + the standalone
  discord:36 and slack:41 calls; iterate WEBHOOK_EVENT_VALUES instead.
- Translate vi.json omni-webhooks.description (41 other locales keep the
  marker by design — sync-ui-keys convention).
- Add a runtime smoke test asserting builders accept all WEBHOOK_EVENT_VALUES;
  keep the negative ghost-string assertions in webhooks-ghost-events.test.ts.

Why: owner flagged 2 blockers on the already-merged diegosouzapw#11050; this followup
closes both without touching eventDescriptions.ts (already correct).

Decision: runtime smoke test (not static source-scan gate) as the AXE6
anchor; retarget ghost calls to request.failed with {provider} shape.

Co-Authored-By: opencode <noreply@opencode.ai>
@maxmad64bis
maxmad64bis force-pushed the fix/11050-webhooks-ghost-events-followup branch from f0894f3 to 1a8002a Compare August 22, 2026 12:12
@diegosouzapw
diegosouzapw merged commit b44f22a into diegosouzapw:release/v3.8.50 Aug 22, 2026
9 of 16 checks passed
diegosouzapw pushed a commit that referenced this pull request Aug 23, 2026
…0964)

Merged after conflict triage: the six base-red repair files (vi.json, opencode.ts JSDoc, context-manager test, the three webhook dispatcher tests, the uncloseai orphan-test rename) were already drained on the tip by today's #11130/#11157/#11160/#11113 — those hunks resolved to the tip shape. What lands is the production-fix set: GLM transport-aware Anthropic headers, Claude Code-compatible model-listing rejection, combo live-test single-probe, zero-cost Auto-Combo interval normalization, recovery-clearing union handling, LLMLingua real-path compare, macOS netstat PID discovery, AI Horde R2 strict public-host validation. Sweep of every touched test file: 243/243 green; typecheck + file-size clean. (guide-settings-route's 4 reds reproduce on the pure tip — pre-existing drift from #11079, not from here.) Thank you @backryun!
@maxmad64bis
maxmad64bis deleted the fix/11050-webhooks-ghost-events-followup branch September 24, 2026 21:12
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…souzapw#11050) (diegosouzapw#11130)

Validated on the combined batch board over release/v3.8.50 tip 0f43f0f: static gates clean, typecheck:core clean, focused tests green.

Closes the two diegosouzapw#11050 blockers: dispatcher tests now derive from WEBHOOK_EVENT_VALUES (no more TypeError on removed events) and vi.json carries a real translation. Thank you @maxmad64bis!
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…egosouzapw#10964)

Merged after conflict triage: the six base-red repair files (vi.json, opencode.ts JSDoc, context-manager test, the three webhook dispatcher tests, the uncloseai orphan-test rename) were already drained on the tip by today's diegosouzapw#11130/diegosouzapw#11157/diegosouzapw#11160/diegosouzapw#11113 — those hunks resolved to the tip shape. What lands is the production-fix set: GLM transport-aware Anthropic headers, Claude Code-compatible model-listing rejection, combo live-test single-probe, zero-cost Auto-Combo interval normalization, recovery-clearing union handling, LLMLingua real-path compare, macOS netstat PID discovery, AI Horde R2 strict public-host validation. Sweep of every touched test file: 243/243 green; typecheck + file-size clean. (guide-settings-route's 4 reds reproduce on the pure tip — pre-existing drift from diegosouzapw#11079, not from here.) Thank you @backryun!
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