Skip to content

Commit 7ef67d8

Browse files
abrichrclaude
andauthored
feat: verbose/quiet toggle, PR revision support, demo screenshots, plans (#20)
* feat: add /verbose and /quiet notification toggle for Telegram bot Adds per-chat notification mode so users can switch between verbose (all events) and quiet (milestones only) modes. In quiet mode, noisy events like edits, test runs, and clones are suppressed entirely, while non-loud events are delivered silently. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: add demo screenshots to README Add 10 screenshots (4 desktop, 6 mobile) showing the full Wright pipeline: task submission via Telegram, progress events, job completion with approve/reject buttons, and the resulting GitHub PR. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: replace screenshot tables with WebP montage composites Generate labeled 2x2 desktop and 3x2 mobile composite images via ImageMagick montage, replacing verbose markdown tables with single images for a cleaner README. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: add PR revision support, Claude-generated titles, plans & guides PR revision support (3 methods): - Reply to any job message with feedback to revise its PR - /revise <job_id> <feedback> for explicit revision - /task <pr_url> <feedback> detects PR URLs and creates revision jobs Worker changes: - checkoutExistingBranch() for revision jobs (push to existing PR) - Claude generates PR titles via .wright-pr-title file - Skip PR creation for revision jobs (PR already exists) Shared types: add feature_branch and parent_job_id to Job Migration: add feature_branch and parent_job_id columns to job_queue Also includes: - macOS Desktop restore guide (docs/guides/) - Blog platform and CLI tool plans (docs/plans/) - Bot fly.toml fix for monorepo build context Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: short ID lookup, parentJobId for PR revisions, env leak in test-runner - Add getJobByPrefix() to bot supabase.ts for 8-char short ID lookup (reply-based revision was broken — getJob() requires exact UUID) - /revise and reply handler now fall back to prefix match - /task <pr_url> now looks up the original job to set parentJobId, so the worker can find the existing PR URL for revision jobs - test-runner.ts: add SAFE_ENV_KEYS allowlist to execSync calls in installDependencies() and runTests() — prevents leaking secrets (SUPABASE_SERVICE_ROLE_KEY, ANTHROPIC_API_KEY, BOT_TOKEN) to cloned repos - Remove dead getPrBranch() from github-ops.ts - Move child_process import to top-level in bot index.ts - Fix let -> const for originalJob in reply handler Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 538a778 commit 7ef67d8

24 files changed

+1654
-38
lines changed

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,18 @@
22

33
Wright is a generalized dev automation platform that takes task descriptions, uses the Claude Agent SDK to generate code, runs tests iteratively (the Ralph Loop pattern), and creates pull requests -- with a Telegram bot for human-in-the-loop approval.
44

5+
## Demo
6+
7+
Submit a task via Telegram, watch Wright clone the repo, edit code, run tests, and create a PR -- all automated.
8+
9+
### Desktop
10+
11+
![Desktop demo — task submission, progress, completion, and GitHub PR](docs/screenshots/demo-desktop.webp)
12+
13+
### Mobile
14+
15+
![Mobile demo — task submission, progress, completion, and PR review](docs/screenshots/demo-mobile.webp)
16+
517
## Test Results
618

719
**53 tests passing** across 6 test suites, covering the full pipeline from detection to dev loop execution.

apps/bot/fly.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Fly.io configuration for the wright Telegram bot
22
# Long-polling bot — no HTTP service needed, just a persistent process
3+
#
4+
# Deploy from repo root: fly deploy -c apps/bot/fly.toml
35

46
app = "wright-bot"
57
primary_region = "ord"

0 commit comments

Comments
 (0)