-
Notifications
You must be signed in to change notification settings - Fork 6.2k
Fix parameter ordering issues in CLI #1669
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,3 @@ | ||
| # Global code owner | ||
| * @localden | ||
| * @mnriem | ||
|
|
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -2,12 +2,23 @@ | |||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| <!-- markdownlint-disable MD024 --> | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| All notable changes to the Specify CLI and templates are documented here. | ||||||||||||||||||||||||||
| Recent changes to the Specify CLI and templates are documented here. | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), | ||||||||||||||||||||||||||
| and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ## [0.1.5] - Unreleased | ||||||||||||||||||||||||||
| ## [0.1.6] - 2026-02-23 | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ### Fixed | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| - **Parameter Ordering Issues (#1641)**: Fixed CLI parameter parsing issue where option flags were incorrectly consumed as values for preceding options | ||||||||||||||||||||||||||
| - Added validation to detect when `--ai` or `--ai-commands-dir` incorrectly consume following flags like `--here` or `--ai-skills` | ||||||||||||||||||||||||||
| - Now provides clear error messages: "Invalid value for --ai: '--here'" | ||||||||||||||||||||||||||
| - Includes helpful hints suggesting proper usage and listing available agents | ||||||||||||||||||||||||||
| - Commands like `specify init --ai-skills --ai --here` now fail with actionable feedback instead of confusing "Must specify project name" errors | ||||||||||||||||||||||||||
| - Added comprehensive test suite (5 new tests) to prevent regressions | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ## [0.1.5] - 2026-02-21 | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ### Fixed | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
|
@@ -16,13 +27,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | |||||||||||||||||||||||||
| - Affected agents now work correctly: copilot (`.github/agents/`), opencode (`.opencode/command/`), windsurf (`.windsurf/workflows/`), codex (`.codex/prompts/`), kilocode (`.kilocode/workflows/`), q (`.amazonq/prompts/`), and agy (`.agent/workflows/`) | ||||||||||||||||||||||||||
| - The `install_ai_skills()` function now uses the correct path for all agents instead of assuming `commands/` for everyone | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ## [0.1.4] - Unreleased | ||||||||||||||||||||||||||
| ## [0.1.4] - 2026-02-20 | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ### Fixed | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| - **Qoder CLI detection**: Renamed `AGENT_CONFIG` key from `"qoder"` to `"qodercli"` to match the actual executable name, fixing `specify check` and `specify init --ai` detection failures | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ## [0.1.3] - Unreleased | ||||||||||||||||||||||||||
| ## [0.1.3] - 2026-02-20 | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| ### Added | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
|
|
@@ -69,7 +80,3 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 | |||||||||||||||||||||||||
| ## [0.0.94] - 2026-02-11 | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| - Add stale workflow for 180-day inactive issues and PRs (#1594) | ||||||||||||||||||||||||||
|
||||||||||||||||||||||||||
| - Add stale workflow for 180-day inactive issues and PRs (#1594) | |
| - Add stale workflow for 180-day inactive issues and PRs (#1594) | |
| ## [0.0.93] - 2026-02-10 | |
| - Historical changelog entry for version 0.0.93 was previously present and is preserved in the project’s git history (tag `v0.0.93`). | |
| - Refer to the `CHANGELOG.md` content from that tag or the corresponding GitHub release page for the full list of changes. | |
| ## Earlier releases (0.0.1–0.0.92) | |
| - Detailed release notes for versions 0.0.1 through 0.0.92 are also available in version control history. | |
| - To view them, check out an earlier revision of `CHANGELOG.md` (before this truncation) or consult the project’s tagged releases. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -1256,6 +1256,20 @@ def init( | |
|
|
||
| show_banner() | ||
|
|
||
| # Detect when option values are likely misinterpreted flags (parameter ordering issue) | ||
| if ai_assistant and ai_assistant.startswith("--"): | ||
| console.print(f"[red]Error:[/red] Invalid value for --ai: '{ai_assistant}'") | ||
| console.print("[yellow]Hint:[/yellow] Did you forget to provide a value for --ai?") | ||
| console.print("[yellow]Example:[/yellow] specify init --ai claude --here") | ||
| console.print(f"[yellow]Available agents:[/yellow] {', '.join(AGENT_CONFIG.keys())}") | ||
| raise typer.Exit(1) | ||
|
Comment on lines
+1259
to
+1265
|
||
|
|
||
| if ai_commands_dir and ai_commands_dir.startswith("--"): | ||
| console.print(f"[red]Error:[/red] Invalid value for --ai-commands-dir: '{ai_commands_dir}'") | ||
| console.print("[yellow]Hint:[/yellow] Did you forget to provide a value for --ai-commands-dir?") | ||
| console.print("[yellow]Example:[/yellow] specify init --ai generic --ai-commands-dir .myagent/commands/") | ||
| raise typer.Exit(1) | ||
|
|
||
| if project_name == ".": | ||
| here = True | ||
| project_name = None # Clear project_name to use existing validation logic | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CHANGELOG no longer includes an "Unreleased" section (it now jumps straight into dated releases). If any tooling/docs expect Keep a Changelog structure, this makes it harder to stage changes before a release. Consider reintroducing an "Unreleased" section at the top and moving the 0.1.6 notes under a released heading only when cutting the release.