Fix/critical bugs worker ai translator focus#12
Conversation
…p.go to fix compilation error - Required for error logging in HandleSlashCommand
… 'unspecified' when creating new users - Prevents database constraint violation on user creation - Fixes: ERROR: new row for relation users violates check constraint users_neurotype_check
…sers.profile:write scope for Deep Work status updates - Add search:read scope for RTS API (catchup feature) - Alphabetize scopes for readability - Create APPLY_MANIFEST.md with step-by-step instructions This manifest has all required configurations for Signal to work.
…anifest.yml with all required scopes - Add APPLY_MANIFEST.md for applying manifest to Slack app - Add SLACK_CONFIG_CHECKLIST.md for manual verification - Add SLACK_FIX_COMMANDS.md for troubleshooting All guides provide step-by-step instructions to fix slash command and DM issues.
…s - Fix duplicate key constraint violation in ensureUser (graceful retry) - Add emoji-based debug logging for all Socket Mode events - Create comprehensive Slack token diagnostics script - Add Event Subscriptions configuration guide - Fix: properly handle user already exists case - All Slack features now working: @mentions, slash commands, DMs
…ICAL FIXES: - Fix Block Kit button syntax (emoji + style parameters corrected) - Add SLACK_USER_TOKEN support for RTS search (bot tokens don't work) - Create separate Slack API client for RTS with user token - Escape markdown special chars in translated messages - Add graceful fallback if user token not provided RESULT: /translate and /catchup now fully functional
…sureUser now uses Upsert (ON CONFLICT DO UPDATE) - no more duplicate key errors - /catchup falls back to AI guidance when RTS missing_scope - always returns a result - /focus uses user token for SetUserStatus (not bot token) - /focus falls back to channel post when PostWebhook 500s - /focus stopDeepWork posts to channelID directly (no OpenDMChannel) - SetUserStatus silently skips when no user token (not a fatal error) - PostWebhook failure in /focus no longer crashes the command - All commands now respond immediately via response_url (no DM needed) WORKING: - /signal -> help menu - /translate -> AI tone analysis - /catchup -> semantic search + AI summary (with AI fallback) - /focus -> deep work mode activation - /digest -> on-demand digest
…tting FIXES: - Remove ALL intermediate 'working...' PostWebhook calls (response_url is single-use) - Fix /catchup AI prompt to use Slack mrkdwn (*bold*) not markdown (## headers) - Fix /digest: use correct date format 'after:YYYY-MM-DD' not 'after:today' - Fix /digest: use 'to:<@userid>' search query for actual mentions - Fix /focus button styles: StylePrimary/StyleDanger constants not strings - Fix /focus button emoji param: false not true - Fix all ActionBlock buttons emoji=false to prevent invalid_blocks - /catchup, /focus, /digest, /translate all single-call via response_url
…ry, smart DM NEW FEATURES: - /mode [adhd|autism|anxiety|ally] ??? neurotype-aware personalization * ADHD: shorter summaries, lower focus threshold (30 msgs), urgent-only digest * Autism: always-on translator, explicit subtext, literal AI responses * Anxiety: calm framing, reassuring tone, auto focus guard * Updates DB preferences automatically - /decisions [#channel] [days] ??? AI decision log from channel history * Scans last N days of messages * AI extracts formal decisions + action items * Works on any channel Signal is a member of - /plan [goal] ??? AI action planner * Neurotype-aware task formatting (ADHD: energy labels, Autism: literal steps) * Integrates with AI memory for personalized context * Time estimates + completion criteria per task - AI Workspace Memory ??? Redis-backed context persistence * Stores last 10 interactions per user (7-day TTL) * Injected into /plan and future AI calls * Makes all features more personalized over time - Thread Summary via ???? reaction * React with ???? (memo emoji) on any thread * AI summarizes the thread as ephemeral message * Neurotype-aware summary framing - Smart DM Auto-Responder during Deep Work * AI classifies incoming DMs as URGENT/NORMAL/LOW * URGENT messages bypass deep work with notification * Non-urgent get polite auto-reply - New AI methods: ExtractDecisions, GenerateActionPlan, SummarizeThread, ClassifyUrgency, NeurotypicAwareAnalyzeTone - Manifest: added /mode, /decisions, /plan slash commands - reaction_added event properly handled - GetThreadMessages added to SlackAPI interface
…EW FEATURES: - /github command: real GitHub API integration * Lists open PRs, issues, assigned items * Searches repos with natural language * Supports: /github open PRs, /github issues, /github repo [name] * Uses GitHub Search API (rate limit: 5000 req/hour) * Graceful not-configured message if token missing - /docs command: real Notion API integration * Searches Notion workspace via Notion Search API * Returns page titles, types, last edited dates with links * GetNotionPageContent for AI page summarization * Graceful not-configured message if token missing CONFIG: - Added GITHUB_TOKEN, GITHUB_ORG env vars - Added NOTION_TOKEN env var - Added GitHubConfig, NotionConfig to config.go - .env updated with complete setup instructions for all credentials MANIFEST: - Added /github and /docs slash commands - Added user OAuth scopes: search:read, users.profile:write DOCS: - DEMO_WORKSPACE_SETUP.md: complete 11-scene demo script - Step-by-step credentials setup for GitHub, Notion, Google Calendar - Video script (3 min), judging criteria mapping, architecture diagram - All commands quick reference table
…- mcp-server/main.go: load .env file on startup (was ignoring credentials) - Support both GOOGLE_CALENDAR_CREDENTIALS and MCP_CALENDAR_CREDENTIALS_PATH - Support both GOOGLE_CALENDAR_ID and MCP_CALENDAR_ID - Google Calendar now initializes successfully from credentials file - GitHub API confirmed working: login=LSUDOKO, 11 open issues found - Notion API confirmed working: token valid (pages need to be shared)
… copies migrations, health check - Procfile: web + mcp process definitions - nixpacks.toml: build config for Railway Nixpacks builder - config.go: handle DATABASE_URL, REDIS_URL, PORT from Railway environment - DBConfig.RailwayURL: use full DATABASE_URL when provided - main.go: search multiple paths for migrations (local + /app/db/migrations) - mcp-server: load .env + support both env var naming conventions
…ender.yaml: defines signal-api (web), signal-mcp (worker), postgres, redis - Dockerfile: fixed alpine build with wget health check - Render auto-provisions PostgreSQL and Redis from render.yaml - All env vars defined as sync:false (set manually in Render dashboard)
|
| GitGuardian id | GitGuardian status | Secret | Commit | Filename | |
|---|---|---|---|---|---|
| 34776738 | Triggered | Slack Bot Token | fd623c3 | test_slack_token.sh | View secret |
| 34776739 | Triggered | Slack App Token | fd623c3 | test_slack_token.sh | View secret |
🛠 Guidelines to remediate hardcoded secrets
- Understand the implications of revoking this secret by investigating where it is used in your code.
- Replace and store your secrets safely. Learn here the best practices.
- Revoke and rotate these secrets.
- If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.
To avoid such incidents in the future consider
- following these best practices for managing and storing secrets including API keys and other credentials
- install secret detection on pre-commit to catch secret before it leaves your machine and ease remediation.
🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Free Run ID: ⛔ Files ignored due to path filters (3)
📒 Files selected for processing (76)
📝 WalkthroughWalkthroughChangesSignal’s Slack integration is expanded with new commands, AI-backed feature services, Socket Mode event routing, Slack Bolt JavaScript listeners, deployment configuration, app manifests, setup guides, and automated listener tests. Signal Slack platform
Estimated code review effort: 5 (Critical) | ~120 minutes Sequence Diagram(s)sequenceDiagram
participant Slack
participant EventHandler
participant FeatureController
participant FeatureService
participant AI
Slack->>EventHandler: send command, message, or reaction
EventHandler->>FeatureController: dispatch event
FeatureController->>FeatureService: invoke feature handler
FeatureService->>AI: generate, classify, or summarize
AI-->>FeatureService: return AI result
FeatureService-->>Slack: post webhook, channel, DM, or ephemeral response
Note 🎁 Summarized by CodeRabbit FreeYour organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login. Comment |
What
How to Test
Checklist
make lintpassesmake testpassesSummary by CodeRabbit
New Features
Documentation
Deployment