Skip to content

chore(stack): sync digest provider root with protected main - #385

Merged
seonghobae merged 52 commits into
fix/digest-provider-preflight-221from
main
Aug 25, 2026
Merged

chore(stack): sync digest provider root with protected main#385
seonghobae merged 52 commits into
fix/digest-provider-preflight-221from
main

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Non-destructive stack maintenance only. Merge exact protected main@fd75c835a2a7c5d9a1f57c3e080364237d69819a into fix/digest-provider-preflight-221 so the canonical #222 root inherits current protected-main workflow/contracts, including stacked-PR CI trigger semantics from merged #299. No feature ownership transfer; #222 remains the source owner for its five digest-provider paths.


Open in Devin Review

Non-destructively retain the canonical #299 two-file CI/TDD delta while inheriting protected main@3b38ead2d00f44eb578d0689087b9293b3dabe1e, including the v0.6.0 release exact-checkout repair. No release identity or protected-main state is changed.
…ive-overrides-20260820

fix(security): raise transitive dependency floors
- Add set -euo pipefail and fail-closed registry lookups (npm, PyPI isolated
  mode with explicit public index)
- Add open-issue queue query excluding PR duplicates; refresh candidate PR set
  to the live open queue
- Paginate REST file/review/check-run calls and GraphQL reviewThreads beyond
  the first 100 results
…tes-298

fix(ci): run exact-head gates on stacked pull requests
…al-gap-baseline-20260820

docs: add product-technical gap baseline
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

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: 482ce693-86dd-461a-8800-f93b92062a21

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.

@seonghobae
seonghobae merged commit 09f941c into fix/digest-provider-preflight-221 Aug 25, 2026
13 of 14 checks passed

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 3 potential issues.

Open in Devin Review

Comment thread pnpm-workspace.yaml
Comment on lines +15 to +18
blockExoticSubdeps: true
minimumReleaseAge: 10080
trustPolicy: no-downgrade
trustPolicyIgnoreAfter: 43200

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 New pnpm supply-chain policy keys depend on pnpm version support

pnpm-workspace.yaml adds blockExoticSubdeps, minimumReleaseAge, trustPolicy, and trustPolicyIgnoreAfter. The minute values (10080, 43200) match the documented 7-day and 30-day windows. Worth confirming the pinned pnpm version recognizes these keys; an unrecognized key can be silently ignored, weakening the intended protection.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment on lines 79 to 88
function assertPathInsideConsumer(resolvedPath, description) {
const relativePath = relative(verificationDirectory, resolvedPath);
const canonicalConsumerDirectory = realpathSync(verificationDirectory);
const canonicalResolvedPath = realpathSync(resolvedPath);
const relativePath = relative(
canonicalConsumerDirectory,
canonicalResolvedPath,
);
assert.equal(
isAbsolute(relativePath),
false,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Info: Containment checks canonicalize both sides before comparing

The verifiers now realpath both the consumer root and the resolved path before computing relative(). This fixes a macOS case where the tmpdir symlink (/tmp -> /private/tmp) made a contained path look like an escape because only one side was canonicalized. The ESM generated code also asserts containment before await import(...), so an escaped entry is rejected before execution.

(Refers to this code)

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Comment thread .github/workflows/ci.yml
Comment on lines 6 to 7
pull_request:
branches: [main]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Info: pull_request trigger now runs on all base branches

Removing branches: [main] from the pull_request trigger makes CI run for PRs against any base branch, enabling exact-head CI for stacked PRs. The push trigger stays scoped to main. Consistent with the new workflow tests.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

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