From b2c8f2848bcdd724742ba4724aaaccbb54286ccb Mon Sep 17 00:00:00 2001 From: Joe Date: Fri, 6 Feb 2026 22:43:54 -0600 Subject: [PATCH] Enhance CI pipeline documentation and improve git command handling - Updated the `/ci` command documentation to clarify the execution steps for the CI pipeline, specifically regarding the rbx-dom section. - Modified git command invocations in `CloneCommand` and `InitCommand` to include the `--no-verify` flag, allowing commits to bypass pre-commit hooks. - Added null input handling for git commands in `CloneCommand`, `InitCommand`, and `Syncback` to prevent blocking on stdin. --- .cursor/commands/ci.md | 12 ++++++++---- src/cli/clone.rs | 4 +++- src/cli/init.rs | 4 +++- src/cli/syncback.rs | 1 + 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/.cursor/commands/ci.md b/.cursor/commands/ci.md index 98ae1de1..f1f5c61a 100644 --- a/.cursor/commands/ci.md +++ b/.cursor/commands/ci.md @@ -1,10 +1,13 @@ # /ci - Complete CI Pipeline -Run the complete CI pipeline: auto-fix all formatting, run all linters, build everything, and run ALL tests — for both Rojo and rbx-dom. +Run the complete CI pipeline: auto-fix all formatting, run all linters, build everything, and run ALL tests. ## Instructions -Execute ALL of the following steps in order. Fix issues automatically where possible. +- If the user's message contains **"rbx-dom"**, run **both** the Rojo and rbx-dom sections below. +- Otherwise, **skip the entire rbx-dom section** (steps 8–13) to save time. + +Execute ALL applicable steps in order. Fix issues automatically where possible. --- @@ -143,7 +146,7 @@ Tests: - Rust: X passed, Y failed - Plugin: X passed, Y failed, Z skipped ---- rbx-dom --- +--- rbx-dom (only if included) --- Formatting: - Stylua (rbx_dom_lua): [fixed X files / no changes needed] @@ -166,4 +169,5 @@ Tests: **IMPORTANT:** - Selene PASS requires exit code 0 (0 errors AND 0 warnings). Any warnings = FAIL. - If any step fails, continue running the remaining steps to get a complete picture, then report all failures at the end. -- Do not report "Overall: PASS" unless ALL linters pass with zero issues across both Rojo and rbx-dom. +- Do not report "Overall: PASS" unless ALL linters pass with zero issues across all sections that were run. +- If rbx-dom was skipped, omit its section from the report entirely. diff --git a/src/cli/clone.rs b/src/cli/clone.rs index 56d9288e..a57d443a 100644 --- a/src/cli/clone.rs +++ b/src/cli/clone.rs @@ -93,13 +93,15 @@ impl CloneCommand { let _ = Command::new("git") .args(["add", "."]) .current_dir(&path) + .stdin(Stdio::null()) .stdout(Stdio::null()) .stderr(Stdio::null()) .status(); let _ = Command::new("git") - .args(["commit", "-m", "syncback"]) + .args(["commit", "--no-verify", "-m", "syncback"]) .current_dir(&path) + .stdin(Stdio::null()) .stdout(Stdio::null()) .stderr(Stdio::null()) .status(); diff --git a/src/cli/init.rs b/src/cli/init.rs index 413ca89b..935e8d6d 100644 --- a/src/cli/init.rs +++ b/src/cli/init.rs @@ -186,13 +186,15 @@ impl InitCommand { let _ = Command::new("git") .args(["add", "."]) .current_dir(&base_path) + .stdin(Stdio::null()) .stdout(Stdio::null()) .stderr(Stdio::null()) .status(); let _ = Command::new("git") - .args(["commit", "-m", "Initial commit"]) + .args(["commit", "--no-verify", "-m", "Initial commit"]) .current_dir(&base_path) + .stdin(Stdio::null()) .stdout(Stdio::null()) .stderr(Stdio::null()) .status(); diff --git a/src/cli/syncback.rs b/src/cli/syncback.rs index 7bab7d50..68e35d35 100644 --- a/src/cli/syncback.rs +++ b/src/cli/syncback.rs @@ -403,6 +403,7 @@ fn refresh_git_index(project_dir: &Path) { match Command::new("git") .args(["update-index", "--refresh", "-q"]) .current_dir(project_dir) + .stdin(Stdio::null()) .stdout(Stdio::null()) .stderr(Stdio::null()) .status()