Skip to content

Commit d042335

Browse files
fix: correct misleading comment and quote RUN: line in validate.sh (dso-w20r, dso-xhhv) (merge worktree-20260324-164324)
2 parents cafc669 + 8807180 commit d042335

File tree

9 files changed

+53
-6
lines changed

9 files changed

+53
-6
lines changed

.test-index

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ plugins/dso/scripts/runners/bash-runner.sh:tests/scripts/test-test-batched.sh
4646
plugins/dso/scripts/capture-review-diff.sh:tests/hooks/test-merge-aware-diff.sh
4747
plugins/dso/scripts/agent-batch-lifecycle.sh:tests/scripts/test-validate-phase-v2-removal.sh [test_validate_phase_no_TK_variable]
4848
plugins/dso/scripts/validate-phase.sh:tests/test-validate-phase-portability.sh,tests/scripts/test-validate-phase-v2-removal.sh [test_validate_phase_no_TK_variable]
49-
plugins/dso/scripts/validate.sh:tests/plugin/test-validate-work-portability.sh,tests/hooks/test-validate-review-output.sh,tests/hooks/test-validate-crash-detection.sh,tests/scripts/test-validate-test-batched-integration.sh,tests/scripts/test-validate-flock-timeout.sh,tests/scripts/test-validate-background.sh,tests/scripts/test-validate-skip-ci-flag.sh,tests/scripts/test-validate-issues.sh,tests/scripts/test-validate-config.sh,tests/scripts/test-validate-script-writes-integration.sh,tests/scripts/test-validate-config-driven.sh,tests/scripts/test-validate-state-lifecycle.sh,tests/test-validate-phase-portability.sh
49+
plugins/dso/scripts/validate.sh:tests/plugin/test-validate-work-portability.sh,tests/hooks/test-validate-review-output.sh,tests/hooks/test-validate-crash-detection.sh,tests/scripts/test-validate-test-batched-integration.sh,tests/scripts/test-validate-flock-timeout.sh,tests/scripts/test-validate-background.sh,tests/scripts/test-validate-skip-ci-flag.sh,tests/scripts/test-validate-issues.sh,tests/scripts/test-validate-config.sh,tests/scripts/test-validate-script-writes-integration.sh,tests/scripts/test-validate-config-driven.sh,tests/scripts/test-validate-state-lifecycle.sh,tests/test-validate-phase-portability.sh,tests/scripts/test-validate-comment-accuracy.sh
5050
plugins/dso/scripts/worktree-cleanup.sh:tests/scripts/test_worktree_cleanup_startup_config.py
5151
plugins/dso/skills/batch-overlap-check/SKILL.md:plugins/dso/tests/test-sprint-skill-step10-no-merge-to-main.sh,tests/plugin/test-audit-skill-resolution.sh,tests/hooks/test-fix-bug-skill.sh,tests/hooks/test-generate-claude-md-skill.sh,tests/hooks/test-init-skill.sh,tests/scripts/test-qualify-skill-refs.sh,tests/scripts/test-skill-path-refs.sh,tests/scripts/test-check-skill-refs.sh,tests/skills/test_end_skill_final_verification_step.py,tests/skills/test_implementation_plan_skill_tdd_enforcement.py,tests/skills/test-quick-ref-skill.sh,tests/skills/test_project_setup_skill_conditional_prompts.py,tests/skills/test_fix_bug_skill.py,tests/skills/test_end_skill_summary_displays_stored_learnings.py,tests/skills/test_end_skill_learnings_step_before_commit.py,tests/skills/test-design-skills-cross-stack.sh,tests/skills/test_end_skill_dirty_worktree_resolution.py,tests/skills/test_fix_bug_skill_escalated_section.py,tests/skills/test_end_skill_bug_tickets_before_commit.py
5252
plugins/dso/skills/brainstorm/SKILL.md:plugins/dso/tests/test-sprint-skill-step10-no-merge-to-main.sh,tests/plugin/test-audit-skill-resolution.sh,tests/hooks/test-fix-bug-skill.sh,tests/hooks/test-generate-claude-md-skill.sh,tests/hooks/test-init-skill.sh,tests/scripts/test-qualify-skill-refs.sh,tests/scripts/test-skill-path-refs.sh,tests/scripts/test-check-skill-refs.sh,tests/skills/test_end_skill_final_verification_step.py,tests/skills/test_implementation_plan_skill_tdd_enforcement.py,tests/skills/test-quick-ref-skill.sh,tests/skills/test_project_setup_skill_conditional_prompts.py,tests/skills/test_fix_bug_skill.py,tests/skills/test_end_skill_summary_displays_stored_learnings.py,tests/skills/test_end_skill_learnings_step_before_commit.py,tests/skills/test-design-skills-cross-stack.sh,tests/skills/test_end_skill_dirty_worktree_resolution.py,tests/skills/test_fix_bug_skill_escalated_section.py,tests/skills/test_end_skill_bug_tickets_before_commit.py,tests/hooks/test-sub-agent-guard.sh

plugins/dso/.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "dso",
3-
"version": "0.26.8",
3+
"version": "0.26.9",
44
"description": "Workflow infrastructure plugin for Claude Code projects",
55
"commands": "./commands/",
66
"skills": "./skills/",

plugins/dso/scripts/validate.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -552,9 +552,9 @@ run_test_check() {
552552
if [ -x "$batched_script" ]; then
553553
local rc=0
554554
# Run test-batched.sh with the session state file; capture both stdout+stderr.
555-
# We do NOT use run_with_timeout here — test-batched.sh manages its own
556-
# internal timeout budget (--timeout=45). The outer timeout is the full
557-
# TIMEOUT_TESTS as a safety backstop for truly hung processes.
555+
# test-batched.sh manages its own internal timeout budget (--timeout=45).
556+
# The outer run_with_timeout uses the full TIMEOUT_TESTS as a safety
557+
# backstop for truly hung processes that exceed the internal budget.
558558
TEST_BATCHED_STATE_FILE="$VALIDATE_TEST_STATE_FILE" \
559559
run_with_timeout "$timeout" "$name" \
560560
bash "$batched_script" --timeout="$batched_timeout" "$test_cmd" \
@@ -1178,7 +1178,7 @@ elif [ $TESTS_PENDING -eq 1 ] && [ $FAILED -eq 0 ]; then
11781178
echo "════════════════════════════════════════════════════════════"
11791179
echo " ⚠ ACTION REQUIRED — TESTS NOT COMPLETE ⚠"
11801180
echo "════════════════════════════════════════════════════════════"
1181-
echo "RUN: bash $0 $*"
1181+
printf 'RUN: bash %s' "$0"; printf ' %q' "$@"; printf '\n'
11821182
echo "DO NOT PROCEED until the command above prints a final summary."
11831183
echo "════════════════════════════════════════════════════════════"
11841184
_state_content="pending
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#!/usr/bin/env bash
2+
# tests/scripts/test-validate-comment-accuracy.sh
3+
# Bug dso-w20r: Comment says "do NOT use run_with_timeout" but code does use it.
4+
# Bug dso-xhhv: Unquoted $* in RUN: line produces broken resume command.
5+
#
6+
# Usage: bash tests/scripts/test-validate-comment-accuracy.sh
7+
# Returns: exit 0 if all tests pass, exit 1 if any fail
8+
9+
set -uo pipefail
10+
11+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
12+
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
13+
14+
source "$REPO_ROOT/tests/lib/assert.sh"
15+
16+
echo "=== test-validate-comment-accuracy.sh ==="
17+
echo ""
18+
19+
VALIDATE_SCRIPT="$REPO_ROOT/plugins/dso/scripts/validate.sh"
20+
21+
# ── Test 1: No "do NOT use run_with_timeout" comment near run_with_timeout call ─
22+
echo "--- test_no_contradictory_run_with_timeout_comment ---"
23+
_snapshot_fail
24+
_has_contradiction=0
25+
# Look for "do NOT use run_with_timeout" — this contradicts the actual code
26+
if grep -qiF "do NOT use run_with_timeout" "$VALIDATE_SCRIPT"; then
27+
_has_contradiction=1
28+
fi
29+
assert_eq "test_no_contradictory_run_with_timeout_comment: must not say 'do NOT use run_with_timeout' when code uses it" \
30+
"0" "$_has_contradiction"
31+
assert_pass_if_clean "test_no_contradictory_run_with_timeout_comment"
32+
33+
# ── Test 2: RUN: line uses proper quoting (not bare $*) ─────────────────────
34+
echo ""
35+
echo "--- test_run_line_proper_quoting ---"
36+
_snapshot_fail
37+
_has_unquoted=0
38+
# Check for 'echo "RUN:...$*"' pattern which loses quoting on space-containing args
39+
if grep -qE 'echo.*RUN:.*\$\*' "$VALIDATE_SCRIPT"; then
40+
_has_unquoted=1
41+
fi
42+
assert_eq "test_run_line_proper_quoting: RUN: line must not use unquoted \$* (use printf %q instead)" \
43+
"0" "$_has_unquoted"
44+
assert_pass_if_clean "test_run_line_proper_quoting"
45+
46+
# ── Summary ───────────────────────────────────────────────────────────────────
47+
print_summary

tests/scripts/test-validate-config-driven.sh

100644100755
File mode changed.

tests/scripts/test-validate-config.sh

100644100755
File mode changed.

tests/scripts/test-validate-skip-ci-flag.sh

100644100755
File mode changed.

tests/scripts/test-validate-state-lifecycle.sh

100644100755
File mode changed.

tests/scripts/test-validate-test-batched-integration.sh

100644100755
File mode changed.

0 commit comments

Comments
 (0)