Files
openmaic/.project-docs/30-worklog/tasks/20260818-learning-lockfile-9d2a.md
T

2.8 KiB

Task: Fix OpenMAIC frozen lockfile build

Identity

  • Task ID: 20260818-learning-lockfile-9d2a
  • Mode: Feature
  • Branch: main
  • Worktree: D:\Datas\OthersProjects\openmaic
  • Base commit: 0b4c45d696
  • Owner: developer
  • Status: Ready for integration

Scope

  • Regenerate OpenMAIC/pnpm-lock.yaml from the current workspace manifests so packages/@makelore/learning-contracts is represented and Docker's frozen install can pass.
  • Verify the regenerated lockfile with pnpm 10.28.0 and the same frozen install command used by the Dockerfile.
  • Do not change application code or weaken the Dockerfile's frozen-lockfile policy.

Intent And Constraints

  • The current failure is a dependency metadata mismatch: the learning contracts package was added after the lockfile was last generated.
  • Use the package-manager version pinned by the Dockerfile (pnpm@10.28.0) when regenerating the lockfile.
  • Preserve the user's known .project-docs/ adoption and avoid unrelated workspace changes.

Outcome

  • Added the missing packages/@makelore/learning-contracts importer to OpenMAIC/pnpm-lock.yaml with the existing resolved TypeScript and Vitest entries. No unrelated pnpm 10.28 reserialization changes were retained.
  • The original Dockerfile policy remains pnpm install --frozen-lockfile.
  • Committed locally on main as e1a0a14 (fix: sync learning contracts lockfile).

Verification

  • pnpm install --frozen-lockfile --ignore-scripts passed with pnpm 10.28.0.
  • pnpm --filter @makelore/learning-contracts test passed: 1 file, 3 tests.
  • git diff --check passed; lockfile diff is limited to 9 importer lines.
  • Read-only final review returned PASS; the importer matches the manifest and existing lockfile peer snapshot, with no Dockerfile or application-code changes.
  • Full Windows pnpm install --frozen-lockfile reached the existing postinstall chain and failed because rm is unavailable on Windows; the Dockerfile runs this chain inside Linux Alpine, so this is not the reported Jenkins failure.
  • Local Docker deps validation was not run because the Docker Desktop Linux engine was unavailable (dockerDesktopLinuxEngine pipe missing).

Follow-ups

  • Commit and push OpenMAIC/pnpm-lock.yaml, then rerun the Jenkins Docker build.
  • Local push to origin/main was blocked because this environment has no authenticated Git credential/TTY; rerun git push origin main from an authenticated terminal.
  • If a Windows-native install is required, separately replace Unix-only rm usage in package build scripts; that is outside this lockfile fix.
  • The task-aware doc-drift check is blocked by the pre-existing adopted untracked .project-docs/ template tree; no task-specific shared-doc writes were made.

Promotion Candidates

  • None recorded.