LLockstep Desk
AI coding workspace

Dependency lockfile drift

The manifest and its lockfile should tell the same dependency story. Lockstep Desk connects project files and an AI conversation in Windows, letting you inspect drift and review a proposed check before choosing whether to update packages.

● ● ●Lockstep Desk●
A concrete starting point · Dependency lockfile drift ×
const root = lockfile.packages?.[""];
if (!root) return showDrift(["lockfile.root.missing"]);
const drift = [];
for (const group of ["dependencies", "devDependencies", "optionalDependencies"]) {
  const wanted = manifest[group] ?? {};
  const pinned = root[group] ?? {};
  for (const name of new Set([...Object.keys(wanted), ...Object.keys(pinned)])) {
    if (wanted[name] !== pinned[name]) drift.push(group + ":" + name);
  }
}
return drift.length ? showDrift(drift) : reportAgreement();
✳Dependency lockfile drift
✓ ChangesReview before applying ↗
Illustrative workspace
Project
Report missing or changed specifications without rewriting the lockfile or running an installation.
Review before applying
Compare actual behavior with the expected result. If a check fails, investigate it before applying more changes.
Connection
Base URL, credentials and a reachable server.
Workflows

Dependency lockfile drift

Workflows ↗
A concrete starting point
const root = lockfile.packages?.[""];
if (!root) return showDrift(["lockfile.root.missing"]);
const drift = [];
for (const group of ["dependencies", "devDependencies", "optionalDependencies"]) {
  const wanted = manifest[group] ?? {};
  const pinned = root[group] ?? {};
  for (const name of new Set([...Object.keys(wanted), ...Object.keys(pinned)])) {
    if (wanted[name] !== pinned[name]) drift.push(group + ":" + name);
  }
}
return drift.length ? showDrift(drift) : reportAgreement();
AI coding workspace

Your next change starts here.

Get the Windows app ↗