You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The repository currently uses locked NuGet restore, package source mapping, and pinned/resolved package hashes, but it does not appear to enforce a package release-age cooldown for NuGet packages.
Treat NuGet release-age verification as a minimum gate for dependency updates, not as proof that a package is trustworthy after the cooldown window.
Details
Current restore path uses dotnet restore --locked-mode and CruiserJumpPractice/packages.lock.json.
CruiserJumpPractice/nuget.config limits sources through package source mapping.
CruiserJumpPractice/CruiserJumpPractice.csproj still includes direct package references, including floating analyzer/build helper versions such as BepInEx.Analyzers1.* and BepInEx.PluginInfoProps2.*, with resolved versions captured by the lock file.
The missing piece is release-age verification for the resolved NuGet package versions before accepting dependency updates or lock-file changes.
Release-age verification does not replace normal package trust judgment. Provenance, configured sources, package identity, pinning/lockfile behavior, vulnerability signals, package permissions or build behavior where relevant, and stricter current security requirements still matter.
This should stay practical and project-scoped: verify the package versions this repository resolves, document blockers when registry metadata is unavailable, and avoid attempting broader ecosystem trust guarantees.
Proposed Implementation Plan
Add a small verification script or documented command that reads CruiserJumpPractice/packages.lock.json and checks the resolved package versions.
For each resolved package, query the configured NuGet source metadata for the package publish/listed timestamp when available.
Fail or report a blocker when a resolved package version is newer than the repository cooldown period, currently 7 days.
Fail or report a blocker when release-age metadata cannot be retrieved from the expected source and no maintainer-approved exception is recorded.
Document how maintainers should run the check after changing PackageReference entries or regenerating packages.lock.json.
Consider adding the check to CI only after the local command is deterministic enough for the repository's configured NuGet sources.
Record any unavoidable NuGet API/source limitations in the security Agent Skill or package-management documentation.
Acceptance Criteria
NuGet dependency updates have a documented release-age verification workflow.
The workflow checks resolved package versions from packages.lock.json, not only direct PackageReference entries.
The workflow uses source-backed publish/release metadata where available.
The workflow presents cooldown as a minimum gate and explicitly says cooldown expiry is not sufficient trust by itself.
The workflow preserves broader dependency trust checks, such as configured source provenance, package identity, pinning/lockfile behavior, vulnerability signals where available, and stricter current security requirements.
The workflow reports a clear blocker or requires a documented exception when release age cannot be verified.
Warning
This issue was created with assistance from LLMs.
Summary
Details
dotnet restore --locked-modeandCruiserJumpPractice/packages.lock.json.CruiserJumpPractice/nuget.configlimits sources through package source mapping.CruiserJumpPractice/CruiserJumpPractice.csprojstill includes direct package references, including floating analyzer/build helper versions such asBepInEx.Analyzers1.*andBepInEx.PluginInfoProps2.*, with resolved versions captured by the lock file.Proposed Implementation Plan
CruiserJumpPractice/packages.lock.jsonand checks the resolved package versions.PackageReferenceentries or regeneratingpackages.lock.json.Acceptance Criteria
packages.lock.json, not only directPackageReferenceentries.