Skip to content

feat(slack): spike JEV passive reply routing - #1879

Draft
sentry-junior[bot] wants to merge 1 commit into
mainfrom
spike/jev-passive-routing
Draft

sentry-junior[bot] wants to merge 1 commit into
mainfrom
spike/jev-passive-routing

Conversation

@sentry-junior

@sentry-junior sentry-junior Bot commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add a TypeSafe JEV adapter for the existing experimental passive Slack reply decision
  • keep explicit mentions, thread opt-out checks, heuristics, and confidence gating unchanged
  • fail closed when TypeSafe is unavailable or returns an invalid response
  • document TYPESAFE_API_KEY and the scope of passive-routing

Scope

This does not make Junior process all channel messages. It only classifies non-mention messages in Slack threads that Junior already joined. Without TYPESAFE_API_KEY, the existing fast-model classifier remains in use.

The separate idea of grading full threads for unintuitive Junior behavior should start as an offline evaluation over sampled, redacted transcripts. It is intentionally not part of the live routing path in this PR.

Staging plan

  1. Deploy this branch to an isolated Junior instance or run it through the local junior-prod tunnel flow.
  2. Use a dedicated development Slack app and isolated Redis/Postgres state. Normal junior-prod Vercel previews intentionally omit Slack credentials and cannot test this path.
  3. Set TYPESAFE_API_KEY only in that environment.
  4. Enable createApp({ experimental: { "passive-routing": true } }) in the staging consumer app.
  5. Test in a small private channel with direct follow-ups, acknowledgments, side conversations, other-user mentions, and stop / !stop.
  6. Compare false-positive replies, false negatives, latency, and provider failures before production dogfood.

Verification

  • pnpm --filter @sentry/junior exec vitest run tests/unit/routing/subscribed-decision.test.ts tests/component/routing/jev-subscribed-reply-classifier.test.ts
  • pnpm --filter @sentry/junior typecheck
  • pnpm --filter @sentry/junior lint
  • pnpm test-architecture:check
  • git diff --check

The supplied credential was not committed or included in development logs.

via Ming Chen.

--

View Junior Session [Sentry]

Co-Authored-By: Ming Chen <ming.chen@sentry.io>
@vercel

vercel Bot commented Sep 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
junior-docs Ready Ready Preview Sep 17, 2026 4:49pm UTC

Request Review

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.

0 participants