Skip to content

Apply the 72-hour pnpm baseline to Source - #198

Draft
9larsons wants to merge 2 commits into
mainfrom
codex/pla-321-source-baseline
Draft

Apply the 72-hour pnpm baseline to Source#198
9larsons wants to merge 2 commits into
mainfrom
codex/pla-321-source-baseline

Conversation

@9larsons

@9larsons 9larsons commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

What changed

  • Added minimumReleaseAge: 4320 to enforce an explicit 72-hour dependency cooldown.
  • Added strictDepBuilds: true so unapproved lifecycle scripts fail installation.
  • Added blockExoticSubdeps: true so transitive dependencies cannot resolve from exotic Git or tarball sources.
  • Preserved the existing package-wide dtrace-provider: false denial.
  • Kept the build permission surface empty; there are no allowBuilds: true entries.
  • Retained pnpm-workspace.yaml in the generated standalone source.zip so standalone installs receive the same policy.

Why

Source is consumed in two forms: Ghost updates it as a full git submodule, and Source releases a standalone theme archive. The submodule path already carries the root configuration, but the zip task explicitly removed pnpm-workspace.yaml, leaving the standalone artifact without the repository's dependency-install policy.

Both paths now retain the same explicit 72-hour and fail-closed pnpm controls without permitting any dependency lifecycle scripts.

This is the Source portion of PLA-321.

Impact

There is no theme runtime behavior change. Newly published dependencies wait 72 hours, unapproved build scripts fail installation, and exotic transitive sources are blocked. The standalone theme zip gains the small pnpm policy manifest; it continues to exclude pnpm-lock.yaml and other development-only files.

Validation

  • corepack pnpm --version (11.19.0)
  • Effective pnpm settings verified with pnpm config get
  • corepack pnpm install --frozen-lockfile (751 lockfile entries passed supply-chain policy verification)
  • corepack pnpm build
  • corepack pnpm test:ci (zip generation and fatal gscan)
  • Standalone fatal gscan after restoring tracked build artifacts
  • Verified source.zip contains a byte-identical pnpm-workspace.yaml and excludes pnpm-lock.yaml
  • Verified the effective allow map remains only dtrace-provider: false
  • git diff --check

ref https://linear.app/ghost/issue/PLA-321/make-the-72-hour-pnpm-cooldown-explicit-across-first-party-themes

Source is installed both as Ghost's default-theme submodule and as a standalone release archive, so both paths should retain the same explicit 72-hour cooldown and fail-closed pnpm policy without permitting dependency lifecycle scripts.
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: ef5b40db-eaff-47c2-a2e5-b297cf579f37

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant