Skip to content

Suppress internal title-generation Slack notifications - #89

Merged
koichiro merged 1 commit into
mainfrom
codex/fix-internal-title-notifications
Sep 6, 2026
Merged

koichiro merged 1 commit into
mainfrom
codex/fix-internal-title-notifications

Conversation

@koichiro

@koichiro koichiro commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Summary

A single user prompt can trigger an internal Codex title-generation request that codex-notify posts as another Slack conversation. Suppress the complete known title-generation envelope and its subsequent response in Hook normal mode, and filter the corresponding events in both log-tail publishers before they enter delivery.

The classifier matches the full instruction envelope with whitespace normalization and a non-empty embedded prompt. Ordinary title requests, introduced/quoted instructions, and JSON responses with a title field remain eligible for delivery. Hook suppression persists across invocations and resume events; the next regular prompt clears it. Existing threads are preserved, while startup/clear and explicit thread resets retain their behavior.

Security and compatibility

  • Prevents unnecessary forwarding of internal instructions and embedded prompt content without changing outbound secret redaction or expanding Hook event disclosure.
  • Hook debug mode retains existing visibility. Log-tail filtering also suppresses internal tool events when tool notifications are enabled; the monitor-start notification remains unchanged.
  • Existing ambient-task suppression retains its thread-clearing behavior. Log session metadata is used to track suppression without changing existing publication keys.
  • Detection intentionally covers only the known template. An exact user-pasted copy is indistinguishable; changed templates and a log monitor started after the internal prompt cannot be classified from title JSON alone. These limits are documented in README.
  • No credentials, real Hook payloads, session logs, or screenshot/account details were added. Regression inputs are synthetic. No live Slack or Codex reproduction was performed.

Validation

  • bundle exec rake — 272 runs, 1,466 assertions, 0 failures, 0 errors, 0 skips; line coverage 96.07% (1,709/1,779).
  • git diff --check — passed.
  • Regression coverage includes separate/same-session delivery, persisted suppression, resume/reset, stale-thread avoidance, debug behavior, quoted instructions, JSON title responses, both log publishers, session metadata, mixed records, malformed JSON, and internal initial prompts.

Fixes #88

@koichiro
koichiro merged commit 6d0fa4d into main Sep 6, 2026
4 checks passed
@koichiro
koichiro deleted the codex/fix-internal-title-notifications branch September 6, 2026 06:24
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.

Suppress internal title-generation tasks that create extra Slack threads for a single user prompt

1 participant