Skip to content

v0.79.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 03:25
9ea1a79

What's Changed

Fixes

  • fix: preserve uninstall roots and constrain project cleanup by @tolgaergin in #745
  • fix: preserve source ownership and make add previews accurate by @tolgaergin in #746
  • fix: recover source removals and preserve user editor files by @tolgaergin in #748
  • fix(global): preserve command ownership and recover local links by @tolgaergin in #749
  • fix(cache): preserve live packages and validate pruning boundaries by @tolgaergin in #750
  • fix(upgrade): preserve selected versions and unrelated roots by @tolgaergin in #751
  • fix(outdated): revalidate metadata and report newer wanted versions by @tolgaergin in #752
  • fix(patch): bind sources and preserve patched install graphs by @tolgaergin in #753
  • fix(init): validate inputs and preserve project files by @tolgaergin in #754
  • fix(version): preserve Git history and bind manifest transactions by @tolgaergin in #755
  • fix(release): validate plans and preserve publication boundaries by @tolgaergin in #757
  • fix(publish): validate destinations and accept BOM manifests by @tolgaergin in #758
  • fix(stage): validate preparation and registry review flows by @tolgaergin in #759
  • fix(search): enforce result limits and registry routing contracts by @tolgaergin in #760
  • fix(info): resolve version selections and align registry reads by @tolgaergin in #761
  • fix(audit): reject incomplete scans and verify remediation inputs by @tolgaergin in #762
  • fix(tidy): retain declared usage and reject incomplete inputs by @tolgaergin in #763
  • fix(query): enforce complete CI checks and exact dependency selection by @tolgaergin in #765
  • fix(graph): preserve exact paths and consistent exports by @tolgaergin in #766
  • fix(sbom): preserve exact inventory and locked registry metadata by @tolgaergin in #767
  • fix(licenses): resolve manifests from the selected project by @tolgaergin in #768
  • fix(trust): preserve baselines across failed installs by @tolgaergin in #769
  • fix(rebuild): enforce authorization and validate lifecycle build state by @tolgaergin in #770
  • fix(approve-scripts): bind review and approvals to exact artifacts by @tolgaergin in #771
  • fix(migrate): preserve recovery and verify real lockfile conversions by @tolgaergin in #772
  • fix(catalog): preserve effective dependency snapshots and optional roots by @tolgaergin in #773
  • fix(fetch): honor workspace scope, platform filters, and pinned cache identity by @tolgaergin in #775
  • fix(download): verify and stage archives before exclusive publication by @tolgaergin in #776
  • fix(resolve): preserve exact graph identities and peer diagnostics by @tolgaergin in #777

Other changes

  • Migrate macOS auth into the signed shared Keychain group by @tolgaergin in #736
  • Reduce source-scan false positives and separate capabilities from security warnings by @tolgaergin in #735
  • docs: introduce LPM Vault and refresh README by @tolgaergin in #737
  • Improve source-analysis precision with 12,000-package validation by @tolgaergin in #738
  • Detect credential exfiltration with benign source controls by @tolgaergin in #739
  • Evaluate credential-file theft and install-time downloaders by @tolgaergin in #740
  • Evaluate archived attack patterns with the frozen source detector by @tolgaergin in #741
  • Improve archive labels and targeted source detection by @tolgaergin in #742
  • Fix macOS listener discovery after empty netstat output by @tolgaergin in #743
  • Honor install options when adding packages by @tolgaergin in #744
  • fix(pool): preserve fractional weights and exact cent formatting by @tolgaergin in #778
  • fix(quality): restore authenticated reports and complete metadata by @tolgaergin in #779
  • fix(swift-registry): normalize setup and bound certificate requests by @tolgaergin in #781
  • fix(skills): validate targets and bound source inspection by @tolgaergin in #782
  • fix(resolver): preserve override selections and transitive alias identities by @tolgaergin in #783
  • fix(lockfile): preserve workspace authority and report cleanup failures by @tolgaergin in #784
  • fix(graph): preserve locked identities and filtered depths by @tolgaergin in #786
  • fix(store): validate reused links and compare installed artifact integrity by @tolgaergin in #787
  • fix(install): preserve sources across save policy and catalog conversion by @tolgaergin in #788
  • fix(workspaces): preserve deploy sources and select changed members accurately by @tolgaergin in #789
  • fix(scripts): preserve npm lifecycle context and dependency tools by @tolgaergin in #790
  • fix(swift): preserve native configuration and select manifest variants by @tolgaergin in #791
  • fix(security): bind advisor review and summaries to exact inputs by @tolgaergin in #792
  • fix(dev): align startup, environments, and process cleanup by @tolgaergin in #793
  • fix(run): align watch graphs, output, and workspace scheduling by @tolgaergin in #794
  • fix(exec): runtime policy, signal cleanup, and bounded Node probes by @tolgaergin in #796
  • fix(dlx): validate cached tools and preserve execution lifetime by @tolgaergin in #797
  • fix(test): preserve runner contracts and process lifetimes by @tolgaergin in #798
  • fix(bench): run Vitest benchmarks once by default by @tolgaergin in #799
  • fix(lint): supervise tools and honor workspace pins by @tolgaergin in #800
  • fix(fmt): enforce check and watch modes and capture JSON results by @tolgaergin in #801
  • fix(bundle): supervise builds and honor workspace engine and runtime selections by @tolgaergin in #803
  • fix(pack): supervise library builds and bound tool lookup by @tolgaergin in #804
  • fix(check): enforce no-emit execution and compiler selection by @tolgaergin in #805
  • fix(plugin): verify releases and preserve complete installations by @tolgaergin in #806
  • fix(completions): filter public commands and handle output errors by @tolgaergin in #807
  • fix(use): validate runtime selectors and complete installations by @tolgaergin in #808
  • fix(env): validate commands and safely round-trip secret values by @tolgaergin in #809
  • fix(tasks): validate plans and recover missed watch changes by @tolgaergin in #810
  • fix(runners): honor Vitest watch bundles and argument boundaries by @tolgaergin in #812
  • fix(runtime): preserve Node selectors and verify exact checksums by @tolgaergin in #813
  • fix(tunnel): validate options and relay targets and preserve recovery by @tolgaergin in #814
  • fix(cert): keep previews read-only and report usable certificate state by @tolgaergin in #815
  • fix(proxy): preserve public endpoints and apply service changes by @tolgaergin in #817
  • fix(hosts): preserve backups and validate cleanup before mutation by @tolgaergin in #818
  • fix(ports): show saved assignments and report reset failures by @tolgaergin in #819
  • fix(login): preserve credential sources and bound browser authentication by @tolgaergin in #820
  • fix(setup): validate generated workflows and preserve recovery state by @tolgaergin in #821
  • fix(token-rotate): preserve session state and checked expiry metadata by @tolgaergin in #823
  • fix(config): validate saved settings and report authorized values by @tolgaergin in #824
  • fix(security): enforce native approval and preserve signed policy state by @tolgaergin in #825
  • fix(policy): redact credentials and validate test package identities by @tolgaergin in #827
  • fix(doctor): preserve diagnostics and enforce probe contracts by @tolgaergin in #828
  • fix(store): validate maintenance paths and replace security caches safely by @tolgaergin in #829
  • fix(self-update): validate helper paths and preserve update plans by @tolgaergin in #831
  • fix(tunnel): persist replay captures before acknowledging webhooks by @tolgaergin in #832
  • fix(cert): enforce root constraints through HTTPS publication by @tolgaergin in #833
  • fix(env): isolate personal project encryption and CI access by @tolgaergin in #835
  • fix(cache): validate declared outputs before artifact restore by @tolgaergin in #836
  • fix(dev): preserve port intent and independent service recovery by @tolgaergin in #837
  • fix(doctor): report fresh state and failed repairs by @tolgaergin in #838
  • fix(publish): describe dry-run side effects accurately by @tolgaergin in #839
  • fix(firewall): honor monitor mode for OIDC failures by @tolgaergin in #840
  • fix(swift-registry): prepare Xcode user registry scope by @tolgaergin in #843
  • fix(env): safely update ignore files and report failures by @tolgaergin in #844
  • fix(deploy): exclude registry credentials from source copies by @tolgaergin in #845
  • fix(migrate): install and recover complete workspaces by @tolgaergin in #846
  • fix: enforce manifest dependency and lifecycle policy checks by @tolgaergin in #847
  • fix: validate project runtime and environment configuration consistently by @tolgaergin in #848
  • fix: enforce lpm.config.json selection and dependency contracts by @tolgaergin in #850
  • fix: reject malformed project typosquat exceptions by @tolgaergin in #851
  • fix(config): validate security controls and authorize floor removal by @tolgaergin in #852
  • fix(env): preserve verification and credential fallback contracts by @tolgaergin in #853
  • fix: remove obsolete binary lockfiles on unchanged installs by @tolgaergin in #854
  • fix: sanitize captured root lifecycle output by @tolgaergin in #855
  • fix: preserve failure status and structured missing-command errors by @tolgaergin in #857
  • fix(mcp): pin editor launchers and validate configuration commands by @tolgaergin in #858
  • fix(skills): reconcile selected versions and preserve alias ownership by @tolgaergin in #859
  • fix(release): tolerate delayed npm registry propagation by @tolgaergin in #868
  • test: isolate query OSV fixtures and verify live API contracts by @tolgaergin in #870
  • Reduce cold resolver metadata overhead and preserve speculative snapshots by @tolgaergin in #861
  • Overlap optional tarball downloads and bound speculative extraction memory by @tolgaergin in #862
  • Enforce metadata cache allocation bounds and preserve write ordering by @tolgaergin in #864
  • Reduce cold-install metadata work and reuse canonical histories by @tolgaergin in #865
  • perf(install): reduce standalone runtime and extraction memory by @tolgaergin in #866
  • fix(extractor): keep writes and rollback tied to checked handles by @tolgaergin in #867
  • perf(extractor): overlap gzip decoding with streamed file writes by @tolgaergin in #869
  • perf(install): reduce cached materialization and freshness work by @tolgaergin in #872
  • Reduce no-op install overhead while preserving runtime checks by @tolgaergin in #873
  • perf(resolver): reduce cached metadata allocations and peak RSS by @tolgaergin in #874
  • perf(store): reduce macOS cold object finalization work by @tolgaergin in #875
  • perf(store): avoid large tarball prefix allocations by @tolgaergin in #876
  • feat(bench): add bounded install phase timelines by @tolgaergin in #877
  • fix(runtime): preserve PATH context in Node version probes by @tolgaergin in #871
  • test(install): remove cancellation and timeline scheduling races by @tolgaergin in #878
  • perf(install): enable validated no-op admission for real projects by @tolgaergin in #879
  • perf(install): avoid full flushes for rebuildable install state by @tolgaergin in #880
  • fix(install): use advertised latest tags for available-version hints by @tolgaergin in #882
  • perf(install): admit large ready archives without starving ordinary extraction by @tolgaergin in #883
  • fix(install): bound speculative work and retain transport ownership by @tolgaergin in #884
  • fix(registry): bound retryable error-body reads before retrying by @tolgaergin in #885
  • perf(extractor): bound parallel tarball file writes by @tolgaergin in #886
  • perf(registry): race latest documents against preferred history by @tolgaergin in #887
  • perf(store): read tree metadata directories in parallel by @tolgaergin in #888
  • perf(registry): keep npm fast paths for credentialed public npm routes by @tolgaergin in #889
  • perf(registry): spread registry requests across eight connections per origin by @tolgaergin in #890
  • perf(install): reuse the recorded Node version for an unchanged Node binary by @tolgaergin in #891
  • perf(install): parse each lockfile once and index the store once per install by @tolgaergin in #892
  • perf(extract): create files on the writers and accept them continuously by @tolgaergin in #893
  • perf(resolver): store parsed manifests beside cached package histories by @tolgaergin in #894
  • perf(registry): read oversized histories once and run workflow tests on the npm route by @tolgaergin in #895
  • perf(install): shorten cold installs of small projects by @tolgaergin in #896
  • perf(runtime): remember the Node version of each Node binary by @tolgaergin in #897
  • perf(install): read scripted-package manifests in parallel after linking by @tolgaergin in #898
  • perf(cli): raise the soft limit on open files at startup by @tolgaergin in #899
  • perf(extract): write large files without waiting for the queued writers by @tolgaergin in #900
  • perf(cli): resolve the update check during the command and parse TOML with toml 1 by @tolgaergin in #901
  • test(extract): check the file-count limit without extracting 100,000 files by @tolgaergin in #903
  • docs(bench): record the investigation of linking next after extraction by @tolgaergin in #904
  • test(task): check filter evaluation budgets against thread CPU time by @tolgaergin in #906
  • bench: publish T3 install and dev-command comparisons by @tolgaergin in #908
  • chore: prepare release 0.79.0 by @tolgaergin in #909

Full Changelog: v0.78.0...v0.79.0

macOS standalone upgrades from 0.76.5

The standalone updater in 0.76.5 rejects newer signed app bundles with an icon. If it reports an unexpected Contents/Resources/ entry, rerun the installer once:

curl -fsSL https://cli.lpm.dev/install | sh

For the latest nightly release:

curl -fsSL https://cli.lpm.dev/install | LPM_INSTALL_CHANNEL=nightly sh

The installer preserves saved credentials and configuration. It checks the release checksum and macOS signing and notarization. If cosign is installed, it also verifies the checksum manifest's Sigstore identity. Do not disable verification or delete your credentials. npm and Homebrew installations should continue using their package manager.