Local live/smoke fixtures for manual lpm testing.
Use python3 run_smokes.py --list to see the available scenarios.
Use python3 run_smokes.py all to rebuild lpm-rs, reset the relevant fixtures,
and run the current live smoke suite end to end.
Use LPM_SMOKE_NATIVE_SECURITY_UNLOCK=1 python3 run_smokes.py install-security
to opt into the native macOS approval dialog path for lpm security unlock.
Without that env var, the security smoke only covers the automatable refusal and
status/config/proposal surfaces.
The runner is Python on purpose: it uses the standard-library PTY support to
drive real interactive lpm add prompts without adding project dependencies.
install/— single-project fixtures forlpm install,lpm add,lpm uninstall, and related flows.workspace/— multi-package fixtures for workspace commands and workspace-specific behaviors.
- This folder is the unified home for local end-to-end and live smoke fixtures.
lpm-test-packages/remains for package publishing inputs and source-package authoring fixtures, not consumer-side E2E runs.- Fixtures here should stay scrubbed of generated state unless a specific smoke case needs committed lockfiles or caches.
- Registry-backed smoke scenarios use an isolated
LPM_HOMEper run so repeated runs do not reuse stale packument or tarball cache entries.
install/sample— nested-package install fixture copied from the desktop repro projectinstall/source-delivery— clean consumer project for simple-pathlpm add, bare-import surfacing, repeat-download and conflict-prompt coverage, manifest-backedlpm remove, and alias/dependency-injection checksinstall/config-aware— clean consumer project for interactive config-awarelpm addcoverageinstall/read-only-routing— mock-registry fixture forlpm info,lpm resolve,lpm search, andlpm downloadthrough project-local.npmrcrouting without the proxy metadata pathinstall/download— mock-registry fixture for directlpm downloadruns, covering canonical--outputpaths, stripped extraction layout, integrity verification, and no install side-effectsinstall/resolve— mock-registry fixture for directlpm resolveruns, covering multi-spec JSON output, scoped last-@parsing, metadata-only routing, and no-download read-only behaviorinstall/cache— local fixture for directlpm cache path,lpm cache clean, andlpm cache clearruns, covering JSON output, subcategory targeting, and the cache/store boundaryinstall/cache/prune— local fixture for directlpm cache pruneruns, covering missing-registry and corrupt-registry degraded modes plus--project/--max-ageorphan cleanup on a seeded v2 storeinstall/store— local fixture for directlpm storeruns, covering path output, fast-vs-deep verify semantics,--fixsecurity-cache refreshes, and bluntcleanwipes across both v1 and v2 store stateinstall/graph— local fixture for directlpm graphruns, covering resolved tree output, substring--filtersemantics, graph-level depth pruning across json/stats/html, and the--no-openwarning contractinstall/pack— local fixture for directlpm packruns, covering missing-tsdown fail-fast behavior plus project-local tsdown resolution and direct single-package stdout passthroughinstall/dev— local fixture set for directlpm devruns, covering.env.examplebootstrap, env-schema validation vs--no-env-check, explicit--envlayering, forwarded args after--, the--no-installstartup banner, hermetic--httpsconsent/bootstrap behavior, successful loopback tunnel hello plus persisted inspector session state and--tunnel-auth, refresh-backed tunnel inspector/no-inspect/strict inspect-port behavior, and multi-servicedependsOnorchestration with cross-service env injectioninstall/tunnel— local fixture for directlpm tunnelruns, covering auth-gated relay actions plus localinspect,log, andreplaybehavior from seeded on-disk webhook logsinstall/ports— local fixture for directlpm portsruns, covering declared-port listing, missing-port kill failures, live owner termination, and per-projectports.tomlreset semanticsinstall/cert— local fixture for directlpm certruns, covering absent status, isolated trust-store install/uninstall,generate --hostSAN refreshes, and the human-readable status blocksinstall/doctor— local + mock-registry fixture for directlpm doctorruns, covering fast-vs-all preset split, livedoctor listfilters, and fast--fixregeneration oflpm.lockbwithout dispatching extended-only fixesinstall/doctor-drift— local + mock-registry fixture forlpm doctordeps-sync drift after a prior successful install, covering request-free fast detection,--fixinstall dispatch, and a clean reruninstall/lockfile-contract— mock-registry fixture set for healthy lockfile fast-path reuse, missinglpm.lockbregeneration without extra registry traffic, and missinglpm.lockfallback to a fresh resolve pathinstall/adversarial-packument— mock-registry fixture set for install fail-fast behavior on invalid packument JSON, missing dist tarball metadata, invalidversionsshapes, and absentversionsblocks without project writesinstall/corrupt-tarball— mock-registry fixture set for install failures on truncated gzip bodies, gzip-wrapped non-tar payloads, and integrity mismatches without lockfile or manifest mutationinstall/rollback— mock-registry fixture for transactional integrity-failure rollback and a clean rerun in the same fixtureinstall/permissions-collision— local + mock-registry fixture for write-denied project roots and occupiedlpm.lockpath collisions, including recovery after removing the collisioninstall/health— mock-registry fixture for directlpm healthruns, covering successful JSON output, the single/api/registry/healthround trip, and unreachable-registry non-zero exitsinstall/migrate/npm— local fixture forlpm migratefrom npm, covering--dry-runno-write behavior, lockfile/.npmrcbackup creation, and--rollbackcleanup back to the original foreign-lockfile stateinstall/migrate/pnpm— local fixture forlpm migratefrom pnpm, coveringpnpm.overridestranslation intolpm.overrides, preservedpnpm.overrides, manifest backups, and--no-install --no-npmrcno-side-effect behaviorinstall/migrate/pnpm/patches— local fixture forlpm migratefrom pnpm, coveringpnpm.patchedDependenciestranslation intolpm.patchedDependencies,originalIntegritybinding, canonical patch-path preservation, and intact patch bytes on the self-copy pathinstall/migrate/bun— local fixture forlpm migratefrom Bun, covering Bun lockfile detection, LPM lockfile-pair emission, source-lockfile preservation, and--no-install --no-npmrcno-side-effect behaviorinstall/migrate/yarn— local fixture forlpm migratefrom Yarn v1, covering Yarn lock detection, mixed dependency plus devDependency conversion, source-lockfile preservation, and--no-install --no-npmrcno-side-effect behaviorinstall/upgrade— mock-registry fixture forlpm upgradeon public-npm and configured-registry lockfile sources, covering dry-run candidate discovery and real end-to-end upgrade applicationinstall/outdated— mock-registry fixture forlpm outdatedacrossdependenciesanddevDependencies, including resolvedwantedvslatestsemantics, configured-registry npm inclusion, and the shared skipped-private no-leak path withlpm upgrade --dry-runinstall/uninstall— local uninstall fixture for dependency/devDependency removal, lockfile-pair cleanup, and untouched peer/optional/trusted dependency stateinstall/uninstall-bin-cleanup— mock-registry fixture for scoped package uninstall cleanup, covering owned local.binshim removal while preserving unrelated shimsinstall/create-project-smoke— migrated single-project fixture for project bootstrap flowsinstall/e2e-sandbox— migrated single-project fixture for env/sandbox-related end-to-end checksinstall/test-upstream-proxy— migrated single-project fixture for mixed upstream-registry dependency coverageinstall/project-discovery— new fixture set for nearest-ancestor root discovery and fresh-directory auto-manifest coverageinstall/engines— new fixture set forengines.lpmenforcement and opt-out behaviorinstall/peer-deps— mock-registry fixture set for optional-peer suppression, strict missing-peer failures, structuredpeer_issues, and peer-conflict auto-isolationinstall/catalog— mock-registry fixture set for manual/prefer/strict catalog save policy,--catalogforcing, package.json cleanup pruning, andpnpm-workspace.yamlcatalog ingestioninstall/save-policy— mock-registry fixture set for save-prefix, explicit range, latest-tag, prerelease, wildcard, and re-install coverageinstall/optional-deps-hard-mode— mock-registry fixture set for transitive optional dependency trust previews, platform-gated skips, missing optional fetch skips, and optional-plus-peer interactions, plus an explicit trust-unlock path for optional script executioninstall/scoped-matrix— mock-registry fixture set for scoped package bare installs, beta dist-tag resolution, local bin wiring, scoped uninstall manifest cleanup, and scoped upgrade applicationinstall/output-contract— mock-registry fixture set for human-vs-JSON stdout behavior, stable JSON failure envelopes, and approval-required output contractsinstall/script-policy— mock-registry fixture set for default deny, guardedlpm.scriptPolicy = "allow"and"triage"proposals, explicitscripts-allowunlock execution, lifecycle ordering, targeted rebuild, and the current auto-build failure surfaceinstall/offline-integrity— tarball-URL fixture set for--strict-integrity, warm-store offline relink, and cold offline failure coverageinstall/minimum-release-age— mock-registry fixture set for recent-publish cooldown defaults, guarded CLI/package weakeners, and explicit pinned-spec blockinginstall/security— local + mock-registry fixture set forlpm security status, guardedlpm configwrites, guarded repo proposals, default-targetunlock/lockcoverage, signed audit-log coverage, and the optional native unlock + project lock success pathinstall/audit-after-install— mock-registry fixture set for default-off audit summaries, precedence resolution, JSON envelopes, and informational audit-hook failuresinstall/audit— mock-registry fixture for directlpm auditandlpm audit fixruns, covering default informational high behaviors,--fail-on=behavior,--secrets --fail-on=secrets, canonical/alias fix flows, and custom-registry skip safetyinstall/query— mock-registry fixture for directlpm queryruns, covering selector matches,--assert-none,--count --json, and Mermaid outputinstall/approve-scripts— mock-registry fixture for directlpm approve-scriptsruns, covering blocked-set listing, dry-run named approval preview, and guarded named approval refusalinstall/trust— mock-registry fixture for directlpm trustruns, covering guarded approval refusal plus diff/prune behavior over direct manifest-and-snapshot driftinstall/rebuild— mock-registry fixture for directlpm rebuildruns, covering guarded trust approval refusal plus deny-mode skip messaging with no script executioninstall/patch— mock-registry fixture for directlpm patchandlpm patch-commitruns, covering lockfile-based extraction, patch file generation, manifest registration, reinstall auto-apply, pristine re-extracts, and no-change abortsinstall/patch/scoped— mock-registry fixture for scopedlpm patchandlpm patch-commitruns, covering/to__filename sanitization, manifest key preservation, and reinstall auto-apply through the sanitized patch pathinstall/patch/binary— mock-registry fixture forlpm patch-commitrejection of binary edits, covering the error path plus the absence of generated patch files or manifest mutation after the failed commitinstall/global-install— mock-registry fixture set forinstall -gmanifest writes,uninstall -gcleanup,lpm globallink/unlink/path/list coverage, shim creation, collision hints, outdated reporting, and alias-based collision resolutionworkspace/basic— minimal workspace fixture with one local package and one app consuming itworkspace/complex— larger workspace fixture with multiple apps, shared packages, and transitive workspace linksworkspace/nested-boundary— workspace fixture with a nested non-workspace child package for boundary regressionsworkspace/cycles— generated workspace fixture set for pure workspace cycles plus the current default-path external registry re-entry linker failure without registry leakageworkspace/rollback— generated workspace fixture for workspace self-dependency early-abort coverage, asserting the install fails before writing member lockfiles or self-linksworkspace/multi-member-prompt— generated workspace fixture for multi-member filtered install coverage, covering streamed--jsonenvelopes and the interactive decline-before-write pathworkspace/targeting— workspace fixture for--filter,--filter-prod,--no-bail,--workspace-concurrency,--changed-files-ignore-pattern,--test-pattern,pkg{path},-w, multi-member writes, uninstall targeting, and--fail-if-no-matchworkspace/pack— workspace fixture forlpm pack --all, root-level tsdown bin reuse, workspace JSON envelopes, and multi-member watch rejection