Skip to content

feat(setup): add interactive mode with step-by-step confirmation#23

Merged
marcusquinn merged 1 commit intomainfrom
feature/setup-interactive-mode
Jan 10, 2026
Merged

feat(setup): add interactive mode with step-by-step confirmation#23
marcusquinn merged 1 commit intomainfrom
feature/setup-interactive-mode

Conversation

@alex-solovyev
Copy link
Collaborator

@alex-solovyev alex-solovyev commented Jan 9, 2026

Add --interactive (-i) flag that prompts before each setup step. Users can skip individual steps or quit at any point.

  • Y/Enter: run step (default)
  • n: skip step
  • q: quit setup

Uses tr for lowercase conversion (bash 3.2 compatible).

Summary by CodeRabbit

New Features

  • Added interactive setup mode, activated with --interactive or -i flags
  • Users can now confirm, skip, or quit individual optional setup steps
  • Required setup steps continue to execute automatically in all modes
  • Updated setup flow to categorize steps into required and optional operations

✏️ Tip: You can customize this high-level summary in your review settings.

Add --interactive (-i) flag that prompts before each setup step.
Users can skip individual steps or quit at any point.

- Y/Enter: run step (default)
- n: skip step
- q: quit setup

Uses tr for lowercase conversion (bash 3.2 compatible).
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 9, 2026

Walkthrough

Added interactive mode to setup.sh via a new INTERACTIVE_MODE flag and confirm_step() helper function. Users can now pass --interactive or -i to gate optional setup steps behind confirmation prompts, enabling step-by-step control while preserving non-interactive automatic execution.

Changes

Cohort / File(s) Summary
Interactive Mode Addition
setup.sh
Added global INTERACTIVE_MODE flag; introduced confirm_step() helper for user confirmation flow (proceed/skip/quit); extended parse_args() to handle --interactive/-i flags; refactored main setup flow to categorize steps as required (always run) or optional (confirmation-gated); updated user-facing help text and guidance messages.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🎛️ A script that asks before it leaps,
Step by step, the flow it keeps,
No more rushing through the dance—
Now you choose each setup chance,
Interactive choices, smooth and sweet! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the primary change: adding interactive mode with step-by-step confirmation to setup.sh. It is concise, specific, and clearly conveys the main feature introduced.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2a3d1ae and 941d0c0.

📒 Files selected for processing (1)
  • setup.sh
🧰 Additional context used
📓 Path-based instructions (2)
**/setup.sh

📄 CodeRabbit inference engine (AGENTS.md)

Deploy agents locally using ./setup.sh script

Files:

  • setup.sh
**/*.sh

📄 CodeRabbit inference engine (AGENTS.md)

**/*.sh: Use local var="$1" pattern for shell variable assignments
Use explicit returns in shell scripts
Run ShellCheck on all scripts with zero violations required

Files:

  • setup.sh
🧠 Learnings (4)
📚 Learning: 2025-12-22T01:24:53.937Z
Learnt from: CR
Repo: marcusquinn/aidevops PR: 0
File: templates/home/AGENTS.md:0-0
Timestamp: 2025-12-22T01:24:53.937Z
Learning: Follow all security protocols and working directory specifications defined in ~/Git/aidevops/AGENTS.md

Applied to files:

  • setup.sh
📚 Learning: 2025-12-22T01:24:53.937Z
Learnt from: CR
Repo: marcusquinn/aidevops PR: 0
File: templates/home/AGENTS.md:0-0
Timestamp: 2025-12-22T01:24:53.937Z
Learning: Reference the authoritative repository at ~/Git/aidevops/ for all detailed AI assistant instructions and configurations

Applied to files:

  • setup.sh
📚 Learning: 2025-12-22T01:24:53.937Z
Learnt from: CR
Repo: marcusquinn/aidevops PR: 0
File: templates/home/AGENTS.md:0-0
Timestamp: 2025-12-22T01:24:53.937Z
Learning: Use only the specified working directories: ~/.aidevops/.agent-workspace/work/[project]/ for work files, ~/.aidevops/.agent-workspace/tmp/ for temporary files, and ~/.aidevops/.agent-workspace/memory/ for persistent memory

Applied to files:

  • setup.sh
📚 Learning: 2026-01-06T15:57:56.007Z
Learnt from: CR
Repo: marcusquinn/aidevops PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-06T15:57:56.007Z
Learning: Applies to **/setup.sh : Deploy agents locally using ./setup.sh script

Applied to files:

  • setup.sh
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: Security Validation
  • GitHub Check: Codacy Static Code Analysis
🔇 Additional comments (6)
setup.sh (6)

21-21: LGTM: Clean flag initialization.

The INTERACTIVE_MODE flag follows the established pattern and provides sensible opt-in behavior.


916-919: LGTM: Proper flag handling.

The --interactive|-i flag implementation correctly follows the established pattern and properly sets the mode flag.


920-932: LGTM: Clear documentation.

The help text accurately describes the new interactive mode and provides both long and short flag forms. The explanation is concise and user-friendly.


1950-1960: LGTM: Excellent UX feedback.

The mode display and control instructions provide clear guidance to users running in interactive mode. The presentation is clean and informative.


1962-1992: LGTM: Sound implementation of step categorization.

The division between required and optional steps is well-designed:

  • Required steps (location verification, dependency checks) always run to ensure a viable environment
  • Optional steps give users control for re-runs and partial setups
  • The confirm_step "..." && function_to_run pattern correctly executes functions only when confirmed

The design allows maximum flexibility while maintaining a baseline viable configuration.


30-69: No changes required—function meets all coding guidelines and passes ShellCheck.

The confirm_step function correctly uses the local var="$1" pattern, includes explicit returns, and has zero ShellCheck violations. All 26 call sites throughout the script provide a string argument to the function, making parameter validation unnecessary. The while loop exits only through its case statement; adding a final return would introduce unreachable dead code and reduce clarity.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist
Copy link

Summary of Changes

Hello @alex-solovyev, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the setup.sh script by introducing an interactive mode. Users can now execute the setup process with greater control, confirming each step individually, skipping non-essential tasks, or gracefully exiting the installation at any point. This feature provides a more flexible and user-friendly experience, especially for those who prefer granular control over their system configurations.

Highlights

  • Interactive Setup Mode: Added an --interactive (-i) flag to the setup.sh script, enabling a step-by-step confirmation mode for the setup process.
  • Granular Control: Introduced a confirm_step function that prompts the user before executing each major setup task, allowing them to run, skip, or quit the entire setup.
  • Bash 3.2 Compatibility: Ensured compatibility with Bash 3.2 for lowercase conversion of user input using the tr command.
  • Updated Help Message: The script's help message has been updated to document the new interactive mode and its usage.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@sonarqubecloud
Copy link

sonarqubecloud bot commented Jan 9, 2026

@github-actions
Copy link

github-actions bot commented Jan 9, 2026

🔍 Code Quality Report

�[0;35m[MONITOR]�[0m Code Review Monitoring Report

�[0;34m[INFO]�[0m Latest Quality Status:
SonarCloud: 0 bugs, 0 vulnerabilities, 225 code smells

�[0;34m[INFO]�[0m Recent monitoring activity:
Fri Jan 9 23:18:12 UTC 2026: Code review monitoring started
Fri Jan 9 23:18:12 UTC 2026: SonarCloud - Bugs: 0, Vulnerabilities: 0, Code Smells: 225
Fri Jan 9 23:18:13 UTC 2026: Qlty - 0 issues found, auto-formatting applied
Fri Jan 9 23:18:15 UTC 2026: Codacy analysis completed with auto-fixes

📈 Current Quality Metrics

  • BUGS: 0
  • CODE SMELLS: 225
  • VULNERABILITIES: 0

Generated on: Fri Jan 9 23:18:49 UTC 2026


Generated by AI DevOps Framework Code Review Monitoring

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces an interactive mode to the setup script, triggered by the --interactive or -i flag. This is a valuable feature that gives users more control over the setup process by allowing them to confirm, skip, or quit at each step. The implementation is well-structured, with a new confirm_step function handling the user interaction logic cleanly. The changes in the main function to incorporate this step-by-step confirmation are logical and correctly separate required steps from optional ones. My review includes one suggestion to improve the formatting of the help text for better readability.

@augmentcode
Copy link

augmentcode bot commented Jan 9, 2026

🤖 Augment PR Summary

Summary: Adds --interactive (-i) to setup.sh for step-by-step confirmation.

What changed: Introduced INTERACTIVE_MODE and a confirm_step helper that prompts to run/skip/quit.

Wrapped the previously unconditional setup steps in main() with confirm_step … && <step>, while keeping verify_location/check_requirements always-on.

Extended --help output to document the new flag and controls.

Printed an interactive-mode banner at startup describing the available inputs.

Note: User input is normalized with tr for Bash 3.2 compatibility.

🤖 Was this summary useful? React with 👍 or 👎

Copy link

@augmentcode augmentcode bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. No suggestions at this time.

Comment augment review to trigger a new review at any time.

@marcusquinn marcusquinn merged commit 3aac429 into main Jan 10, 2026
12 of 13 checks passed
@marcusquinn marcusquinn deleted the feature/setup-interactive-mode branch January 10, 2026 23:25
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.

2 participants