Conversation
Greptile SummaryThis PR completes the GitHub-shorthand ( Confidence Score: 5/5Safe to merge — no logic or data-integrity regressions found; changes are well-isolated and covered by unit + bats tests. All findings are P2 (style/test-coverage); no P0 or P1 issues identified. The git-spec parsing, manifest-write path, section-scrub logic, and catalog-bypass warning are all correct. No files require special attention. Important Files Changed
Reviews (4): Last reviewed commit: "test: restore @pnpm.e2e/foo dist-tag in ..." | Re-trigger Greptile |
Benchmark changesPublic ratios: warm installs vs Bun 7x -> 8x; warm installs vs pnpm 11x -> 13x.
7249ec4 vs 56a5651 | aube/bun/pnpm | 3 scenarios | 3 runs | 500mbit/50ms | generated by Codex. |
|
Addressed all three review comments in 8a7485a:
Verified: cargo build/clippy/fmt clean, Written with Claude. |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 8a7485a. Configure here.
The third slow test mutates `@pnpm.e2e/foo`'s `latest` dist-tag via `add_dist_tag`, but the teardown's `git checkout` list missed it — leaving the on-disk fixture polluted across runs and violating the "MUST restore via git checkout" convention documented in common_setup.bash. Add `foo/package.json` to the restore list. Mirrors the existing entries for bar / dep-of-pkg-with-1-dep / qar. Addresses Cursor Bugbot medium on PR #475. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Addressed Cursor's medium-severity finding in 192cabe: added The other Cursor comment ("Triplicated dependency scrub-and-insert") is a stale re-attachment from commit 46e550e — it was already addressed by the Written with Claude. |
Routes bare `user/repo`, `github:`/`gitlab:`/`bitbucket:`, `git+https://`, `git+ssh://`, scp form, and aliased `myname@<git-spec>` through a new parse_pkg_spec branch that derives the manifest key from the URL's repo segment and writes the user's verbatim spec into package.json. Skips the packument fetch and version-resolution loop for git specs; the chained `aube install` clones the repo and writes the lockfile entry on its own. Manifest-key heuristic uses the trailing path segment with `.git` stripped (`kevva/is-negative` -> `is-negative`, `git+https://github.com/owner/some-pkg.git` -> `some-pkg`). When the package's published name differs from the repo, users supply the alias explicitly: `aube add typescript@microsoft/vscode-typescript`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds three network-gated bats tests in pnpm_update_slow.bats mirroring pnpm/test/update.ts:143/170/197 with the dropped `kevva/is-negative` assertions restored end-to-end. Each test exercises the new `aube add <bare-shorthand>` path before the registry deps, so the github shorthand lands in package.json from the CLI rather than a manifest-declared dep + `aube install`. Updates PNPM_TEST_IMPORT.md to mark the github-shorthand resolution work done — parser branch (PR #472) + update --latest skip (PR #472) + CLI add support land the full end-to-end story for pnpm's update.ts:14 /143/170/197. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Three paths in `aube add` (registry, `workspace:`, git-spec) were emitting the same ~20-line scrub-then-insert block. Pulled the logic into `apply_dep_to_section` so the dep-section rules (which sections get cleared, how `--save-peer` + `--save-dev` combine) live in one place. Net -33 LOC. Also surfaces `--save-catalog` as a no-op for git-spec deps via `tracing::warn!` so users don't think the flag silently took effect (catalogs only apply to versioned registry deps), and renames the `_name` discard binding in the alias-form parse branch to make the intent explicit (the alias is the manifest key; the URL-derived name is irrelevant). Addresses Greptile P2 (save-catalog silent no-op + discarded _name) and Cursor low (triplicated scrub-and-insert). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The third slow test mutates `@pnpm.e2e/foo`'s `latest` dist-tag via `add_dist_tag`, but the teardown's `git checkout` list missed it — leaving the on-disk fixture polluted across runs and violating the "MUST restore via git checkout" convention documented in common_setup.bash. Add `foo/package.json` to the restore list. Mirrors the existing entries for bar / dep-of-pkg-with-1-dep / qar. Addresses Cursor Bugbot medium on PR #475. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
192cabe to
7249ec4
Compare
|
Superseded by #483 — same feature ( Written with Claude. |

Summary
user/repo,github:/gitlab:/bitbucket:,git+https://,git+ssh://, scp form, and aliasedmyname@<git-spec>through a manifest-write path that skips the registry packument fetch and version-resolution loop. The chainedaube installclones the repo and writes the lockfile entry on its own..gitstripped:kevva/is-negative->is-negative,git+https://github.com/owner/some-pkg.git->some-pkg. When the package's published name differs from the repo (e.g.microsoft/vscode-typescriptpublishes astypescript), users supply the alias explicitly viaaube add typescript@microsoft/vscode-typescript.kevva/is-negativeassertions for pnpm/test/update.ts:143/170/197 — each exercisesaube add kevva/is-negativealongside registry deps and confirms the github shorthand survivesaube update --latest/-E/-L <name>.Completes the GitHub-shorthand work end-to-end. The parser-side prerequisite landed in #472 (parse_git_spec recognizes bare
user/repo, update.rs skips git specs in the manifest-rewrite loop); this PR is the CLI add path.Test plan
cargo test --workspace— 611+ tests passcargo clippy --all-targets -- -D warnings— cleancargo fmt --check— cleancommands::add::testscovering bare shorthand,github:protocol,git+https://(with and without.git), committish preservation, aliased forms (bare + protocol), scoped pkg / relative path / single-token negatives, scp formmise run test:bats test/pnpm_install_misc.bats— 30/30 (bareaube addregression —aube addwith no args still errors as before)mise run test:bats test/pnpm_update.bats— 22/22 offline tests passAUBE_NETWORK_TESTS=1 mise run test:bats test/pnpm_update_slow.bats— 4/4 (existing regression guard + 3 new restored ports)Note
Medium Risk
Adds new parsing and manifest-write behavior for git-based dependencies, which changes how
aube addinterprets commonuser/repo-style inputs and bypasses registry resolution; mistakes here could write incorrect dependency keys/specs topackage.json. Coverage includes new unit tests and network-gated end-to-end bats tests to reduce regression risk.Overview
aube addnow recognizes git dependency specs (e.g. bareuser/repo,github:/gitlab:/bitbucket:,git+https:///git+ssh://, scp form, andmyalias@<git-spec>), derives a manifest key from the repo URL’s last path segment, and writes the verbatim git spec intopackage.jsonfor install-time resolution.The add pipeline skips registry packument fetch/version resolution and catalog handling for git specs, reuses a shared helper to consistently scrub/insert the dependency into the correct dep section, and adds unit + network-gated bats tests to validate that git shorthands survive
aube update --latestflows.Reviewed by Cursor Bugbot for commit 7249ec4. Bugbot is set up for automated code reviews on this repo. Configure here.