Skip to content

--model argument now double-quoted in assembled claude_args string — behavioral change in edge case #148

Closed as not planned

Description

@twistedmelonman

Non-Blocking Review Concern: --model argument now double-quoted in assembled claude_args string — behavioral change in edge case

Source: pre-push whole-codebase review
Location: .github/workflows/claude-assistant.yml:219
Date: 2026-08-17

What was flagged

This diff changes CLAUDE_ARGS="--model $MODEL" to CLAUDE_ARGS="--model \"$MODEL\"", embedding literal escaped-quote characters in the string. The comment acknowledges this is "defensive against future charset drift rather than a live fix," and the model charset validation already precludes any whitespace that would require quoting. However, the behavior change is real: the string passed through $GITHUB_OUTPUT and consumed by claude-code-action now contains literal \" around the model name. If parseShellArgs in the action correctly handles embedded escaped quotes (as it apparently does for the existing --allowed-tools pattern), this is fine. But it differs from the pre-existing unquoted form and has not been tested in a live run. Consider verifying with a real @claude trigger that the model value is correctly received after this change.

Context

This issue was automatically created from a non-blocking concern identified
during pre-push whole-codebase review. It was flagged for tracking.


Created by lib-review-issues.sh

Activity

  1. twistedmelonman commented on Aug 18, 2026

    @twistedmelonman
    MemberAuthor

    Verified this is a misreading of bash source-level escaping, not a real behavioral change.

    CLAUDE_ARGS="--model \"$MODEL\"" uses backslash-escaped quotes because the assignment is itself double-quoted. The backslashes are consumed by bash at parse time; they are not part of the resulting value. Raw bytes written to $GITHUB_OUTPUT:

    c l a u d e _ a r g s = - - m o d e l   " c l a u d e - o p u s - 4 - 7 "  \n
    

    Plain " characters, no backslashes. This is byte-for-byte the same quoting form --allowed-tools has always emitted, which parseShellArgs tokenizes as real shell quoting. Since the model charset excludes whitespace, the quotes are also semantically inert after tokenization — the action receives the identical model string either way.

    Addressed in #149. Closing as not-an-issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    tech-debtTechnical debt to address

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions