v0.3.0: Interactive wizard, parallel reviews, BitBucket API tokens, V…#2
Merged
v0.3.0: Interactive wizard, parallel reviews, BitBucket API tokens, V…#2
Conversation
…PS support Features: - Interactive setup wizard (questionary) with repo detection, token validation - reviewd init --sample for non-interactive VPS/CI setup - Parallel PR processing with ThreadPoolExecutor (configurable concurrency) - Thread-safe SQLite (WAL mode) with per-repo git locks - Graceful shutdown with subprocess tracking and SIGTERM handling - BitBucket API tokens with Basic auth (email:token), replacing App Passwords - GIT_TERMINAL_PROMPT=0 on all git operations for headless environments - Auto-launch wizard when config missing from any command Fixes: - BitBucket null source commit crash on deleted branches - GitHub slug regex not matching dots in repo names (e.g. simion.cv) - BitBucket approve_pr now uses shared client instead of standalone request - Directory names used as repo display names instead of remote slug Tests: - BitBucket Basic auth and null commit handling - JSON extraction edge cases (multiple blocks, malformed, unknown severity) - Config env var substitution and max_concurrent_reviews parsing - Concurrent StateDB access (20 threads) - GIT_TERMINAL_PROMPT=0 verification Docs: - README: VPS/headless deployment guide with systemd example - README: Updated GitHub/BitBucket setup instructions - README: Parallel reviews documented, roadmap updated
- Use email regex instead of fragile @/: heuristic for BB Basic auth detection - Clear _shutdown_event at start of run_poll_loop() so it resets between calls - Add cooldown check to _collect_eligible_prs() to avoid wasting thread slots - Wrap wizard in try/except KeyboardInterrupt for clean exit on Ctrl+C
- Quote GitHub token and BitBucket credentials in generated YAML to prevent
malformed config from special characters (#, :, {, etc.)
- Harvest completed futures during the sleep loop for prompt error logging
- Wizard respects XDG_CONFIG_HOME instead of hardcoding ~/.config - Each _process_pr creates its own provider instance to avoid sharing httpx.Client across threads
Always use cli.value.capitalize() (e.g. "Claude", "Gemini") for the review title instead of the full model ID which produced awkward titles like "Claude-sonnet-4-5-20250514". Removed unused model parameter from comment formatting functions.
Strip trailing commas before } or ] in extracted JSON, a common LLM output error that caused JSONDecodeError.
Owner
Author
review'd by Claude🟡 Suggestion (1)
🟢 Good (4)
Bottom line: Clean, well-architected release. The one actionable item is quoting values in the wizard's YAML builder to handle edge-case paths. The concurrency design (locks, WAL, shutdown coordination) is solid. Automated review by reviewd. Findings are AI-generated — use your judgment. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
…PS support
Features:
Fixes:
Tests:
Docs: