Update completion spec: deno (deno) - #339
Conversation
Refresh json/deno.json for Deno 2.9.5, which had drifted from a pre-Deno-2 CLI shape: - Remove the 'vendor' subcommand: 'deno vendor was removed in Deno 2' per its own --help output. - Add 9 subcommands that exist in the current CLI but were missing from the spec: add, clean, init, jupyter, outdated, publish, remove, serve, and update. - 'update' is a distinct, real subcommand (alias for 'deno outdated --update'), not a duplicate of 'upgrade' (which upgrades the deno executable itself). This was the concrete gap named in warpdotdev/warp#4521. Verified against a locally installed Deno 2.9.5 via 'deno --help', 'deno <sub> --help' for each touched subcommand, and 'deno completions bash' as a machine-readable list of every subcommand the CLI actually registers. Existing subcommands (bench, bundle, cache, check, compile, completions, coverage, doc, eval, fmt, info, install, uninstall, lsp, lint, repl, run, task, test, types, upgrade, help) are left as-is; a full flag-by-flag audit of those was out of scope for this pass. Co-Authored-By: Warp <agent@warp.dev>
|
This PR was generated with Warp. Comment |
|
I'm starting a first review of this pull request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR refreshes the Deno completion spec by replacing the removed vendor command with newly supported Deno 2.x subcommands.
Concerns
- Several newly added command specs omit documented options from Deno's current CLI reference, so the refreshed completions would still be incomplete for
clean,publish, andupdate. - No approved repository spec context was available for implementation/spec comparison.
- The diff adds no code comments or tests to audit against repository conventions.
Verdict
Found: 0 critical, 3 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
There was a problem hiding this comment.
Overview
Refreshes deno.json for Deno 2.x, adding the modern subcommands and the missing update. One open question needs a human call; the rest of this review's findings were unambiguous and are being fixed directly.
Concerns
- This drops the
vendorblock because Deno 2 removed the command, butdeno vendor --helpin 2.9.5 still prints a usage line anddeno completions bashstill emits adeno__vendorfunction, so removing it means Warp stops completing something the user's own shell completes. Both readings are defensible: keep the catalog honest about what Deno 2 actually supports, or keepvendoras a deprecated entry whose description points at the migration. @acarl005, your call — we will implement whichever you pick.
Verdict
Checks: build pass, tests pass, CI green, visual proof n/a
Found: 0 critical, 0 important, 0 suggestions, 0 nits, 1 question
Responding as wilson: Open session · View factory task
…store vendor stub - jupyter --conn/--name/--display, publish --set-version/--token/ --config, remove --root, serve --port/--host/--config: drop isOptional from these args. Deno's own --help shows these as required <VALUE> forms (no brackets), so marking them optional let the completer suggest the bare flag as complete. - add/outdated/remove/update --frozen: add the optional --frozen[= <BOOLEAN>] value with true/false suggestions, matching --help. - deno clean: add --node-modules-dir, --node-modules-linker, and --vendor, which 'deno clean --help' lists under "Dependency management options" and the previous commit omitted. - deno publish: add --env-file, --check, and --no-check, all present in 'deno publish --help' but missing from the spec. Also drop isOptional from -c/--config's arg (required, not bracketed). - deno update: add --compatible, --minimum-dependency-age, and --env-file, all present in 'deno update --help' (an alias for 'deno outdated --update') but missing from the spec. - deno init: remove the folders-only template on the positional arg, since it also accepts a JSR/npm package name, not just a directory. - Restore 'vendor' as a deprecated stub subcommand. Reversing the previous commit's removal: verified 'deno vendor --help' still prints 'Usage: deno vendor [OPTIONS]' (with only -h/-q/--unstable, no real vendoring options) and 'deno completions bash' still emits a deno__vendor function, so the user's shell still completes 'vendor' even though Deno 2 removed its functionality. Warp should not regress behind what shells already complete, so the stub stays with an accurate 'removed' description and none of the old vendoring-specific options. Co-Authored-By: Warp <agent@warp.dev>
…eno (#15248) ## Description Bumps the `warp-command-signatures` git pin in `Cargo.toml` (and regenerates `Cargo.lock`) from `d79e09c4` to `ac69f9b0` in [warpdotdev/command-signatures](https://github.com/warpdotdev/command-signatures), bringing three merged completion-spec PRs into the client, per [#4521](#4521): - [`mpv` (#338)](warpdotdev/command-signatures#338) — new spec, commit `8529104` - [`ruff` (#340)](warpdotdev/command-signatures#340) — new spec, commit `97ee925` - [`deno` (#339)](warpdotdev/command-signatures#339) — refreshed for Deno 2.9.5, commit `ac69f9b` These are the **only** three commits between the old and new rev (`git log d79e09c..ac69f9b` in command-signatures), so this bump does not pull in anything beyond the three PRs above. ## Linked Issue - [x] N/A — this is a dependency pin bump that lands work already reviewed and merged in a separate repo, not a change tied to a `ready-to-implement` issue in this repo. - [ ] Where appropriate, screenshots or a short video of the implementation are included below (especially for user-visible or UI changes). ## Testing <!-- No functional Rust source changed: this is a Cargo.toml/Cargo.lock-only change. --> - `Cargo.lock` is regenerated via `cargo check -p warp_completer` (not hand-edited). The diff touches **only** the two `warp-command-signatures`/`warp-completion-metadata` `source =` lines — verified with `git --no-pager diff master -- Cargo.lock | grep -i windows` returning empty (an earlier revision of this PR used `cargo update -p warp-command-signatures --precise <rev>`, which in the sandbox this was built in also rewrote unrelated `windows-sys`/`windows-core`/`base64` dependency edges to older versions; `cargo check` reproduces cleanly without that churn and was used instead). - Ran a targeted `cargo check -p warp_completer` (the crate that loads these specs via `warp_command_signatures::signature_by_name`, in `crates/warp_completer/src/signatures/legacy/mod.rs`) — succeeded with no errors, and is stable on a second run (no further lock changes). - Directly confirmed the vendored git checkout cargo actually built from (`~/.cargo/git/checkouts/command-signatures-*/ac69f9b/command-signatures/json/`) contains `mpv.json`, `ruff.json`, and the updated `deno.json`, so the pin resolves to the intended tree rather than silently landing on the wrong commit. - Did **not** run a full workspace build or `./script/run` — a full build is too heavy for this sandbox, and there is no UI change to exercise manually. CI should carry full-build validation. - [ ] I have manually tested my changes locally with `./script/run` ### Screenshots / Videos N/A — no UI change; this only updates completion spec data. ## Agent Mode - [x] Warp Agent Mode - This PR was created via Warp's AI Agent Mode <!-- CHANGELOG-IMPROVEMENT: Added shell completions for `mpv` and `ruff`, and refreshed `deno` completions for Deno 2. --> <!-- warp:pr-description-artifacts start --> <!-- warp:pr-description-artifacts end --> Co-authored-by: warp-agent-staging[bot] <240773466+warp-agent-staging[bot]@users.noreply.github.com> Co-authored-by: Warp <agent@warp.dev>
…eno (warpdotdev#15248) ## Description Bumps the `warp-command-signatures` git pin in `Cargo.toml` (and regenerates `Cargo.lock`) from `d79e09c4` to `ac69f9b0` in [warpdotdev/command-signatures](https://github.com/warpdotdev/command-signatures), bringing three merged completion-spec PRs into the client, per [warpdotdev#4521](warpdotdev#4521): - [`mpv` (warpdotdev#338)](warpdotdev/command-signatures#338) — new spec, commit `8529104` - [`ruff` (warpdotdev#340)](warpdotdev/command-signatures#340) — new spec, commit `97ee925` - [`deno` (warpdotdev#339)](warpdotdev/command-signatures#339) — refreshed for Deno 2.9.5, commit `ac69f9b` These are the **only** three commits between the old and new rev (`git log d79e09c..ac69f9b` in command-signatures), so this bump does not pull in anything beyond the three PRs above. ## Linked Issue - [x] N/A — this is a dependency pin bump that lands work already reviewed and merged in a separate repo, not a change tied to a `ready-to-implement` issue in this repo. - [ ] Where appropriate, screenshots or a short video of the implementation are included below (especially for user-visible or UI changes). ## Testing <!-- No functional Rust source changed: this is a Cargo.toml/Cargo.lock-only change. --> - `Cargo.lock` is regenerated via `cargo check -p warp_completer` (not hand-edited). The diff touches **only** the two `warp-command-signatures`/`warp-completion-metadata` `source =` lines — verified with `git --no-pager diff master -- Cargo.lock | grep -i windows` returning empty (an earlier revision of this PR used `cargo update -p warp-command-signatures --precise <rev>`, which in the sandbox this was built in also rewrote unrelated `windows-sys`/`windows-core`/`base64` dependency edges to older versions; `cargo check` reproduces cleanly without that churn and was used instead). - Ran a targeted `cargo check -p warp_completer` (the crate that loads these specs via `warp_command_signatures::signature_by_name`, in `crates/warp_completer/src/signatures/legacy/mod.rs`) — succeeded with no errors, and is stable on a second run (no further lock changes). - Directly confirmed the vendored git checkout cargo actually built from (`~/.cargo/git/checkouts/command-signatures-*/ac69f9b/command-signatures/json/`) contains `mpv.json`, `ruff.json`, and the updated `deno.json`, so the pin resolves to the intended tree rather than silently landing on the wrong commit. - Did **not** run a full workspace build or `./script/run` — a full build is too heavy for this sandbox, and there is no UI change to exercise manually. CI should carry full-build validation. - [ ] I have manually tested my changes locally with `./script/run` ### Screenshots / Videos N/A — no UI change; this only updates completion spec data. ## Agent Mode - [x] Warp Agent Mode - This PR was created via Warp's AI Agent Mode <!-- CHANGELOG-IMPROVEMENT: Added shell completions for `mpv` and `ruff`, and refreshed `deno` completions for Deno 2. --> <!-- warp:pr-description-artifacts start --> <!-- warp:pr-description-artifacts end --> Co-authored-by: warp-agent-staging[bot] <240773466+warp-agent-staging[bot]@users.noreply.github.com> Co-authored-by: Warp <agent@warp.dev>


Summary
Refreshes the completion spec for
deno, per feedback in warpdotdev/warp#4521 notingjson/deno.jsonhas drifted from a pre-Deno-2 CLI shape.Changes
add,clean,init,jupyter,outdated,publish,remove,serve,update.updateis added as its own subcommand, not folded intoupgrade. They are different:upgradeupgrades thedenoexecutable itself;updateis a real, documented alias fordeno outdated --updateand updates project dependencies. This distinction was the concrete gap called out in the linked issue's discussion.vendoris kept as a deprecated stub subcommand (see "Revision" below for why this was reversed mid-review) with an accurate "removed" description and none of its old Deno-1 vendoring options.bench,bundle,cache,check,compile,completions,coverage,doc,eval,fmt,info,install,uninstall,lsp,lint,repl,run,task,test,types,upgrade,help) are left as-is.bundleandcachewere specifically checked and are both still valid, functioning commands in 2.9.5. A full flag-by-flag audit of every existing subcommand's options was out of scope for this pass.Source of option data
Installed Deno 2.9.5 in the sandbox (
curl -fsSL https://deno.land/install.sh | sh) and used it as the authoritative source:deno --helpfor the current curated top-level command list.deno completions bash, which embeds a full, machine-readable list of every subcommand the CLI actually registers (including hidden ones liketypes/lsp/completions/vendor), used to cross-check for anything the curated--helpomits.deno <subcommand> --helpfor each touched subcommand's own options (add,remove,serve,init,jupyter,outdated,update,publish,clean, plusbundle,cache,vendor,upgradeto confirm their current status).Revision
Addressed review findings:
deno cleanwas missing--node-modules-dir,--node-modules-linker, and--vendor(all present indeno clean --help's "Dependency management options"). Added.deno publishwas missing--env-file,--check, and--no-check(all present indeno publish --help). Added.deno updatewas missing--compatible,--minimum-dependency-age, and--env-file(all present indeno update --help). Added.jupyter --conn/--name/--display,publish --set-version/--token/--config,remove --root,serve --port/--host/--config) were incorrectly marked optional;deno's own--helpshows these as required<VALUE>forms with no brackets. Fixed.--frozenflags (add,outdated,remove,update) were missing their documented optional[=<BOOLEAN>]value. Added, withtrue/falsesuggestions.deno init's positional argument was constrained to thefolderstemplate, but it also accepts a JSR/npm package name. Removed the folder-only template.vendorreversal: this PR originally removedvendorentirely since Deno 2 removed its functionality. On further review,deno vendor --helpstill prints a real usage line anddeno completions bashstill emits adeno__vendorshell-completion function on 2.9.5 — so the user's shell still completesvendor, and Warp regressing behind that contradicts the motivating complaint (Warp completing less than the shell).vendoris restored as a stub subcommand with an accurate "removed" description,-h/-q/--unstableonly, and none of its old vendoring-specific options.Verification
npm run format:check— passescargo fmt -p warp-command-signatures -p warp-completion-metadata --check— passescargo clippy -p warp-command-signatures -p warp-completion-metadata --all-targets --all-features -- -D warnings— passescargo test --verbose— all 176+ tests pass (spec deserializes correctly)Follow-up
This spec isn't usable in the Warp client until
warpdotdev/warp'sCargo.tomlwarp-command-signaturesgit pin is bumped to a commit that includes this merged spec. That pin bump is a separate, follow-up change (it can only point at an already-merged commit in this repo).