Skip to content

Harden Devvit release artifact smoke - #24

Merged
imjlk merged 1 commit into
mainfrom
codex/devvit-adapter-release-hardening
Jul 7, 2026
Merged

imjlk merged 1 commit into
mainfrom
codex/devvit-adapter-release-hardening

Conversation

@imjlk

@imjlk imjlk commented Jul 7, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Validate apps/target-devvit/devvit.json during pnpm smoke:target reddit.
  • Ensure the Devvit manifest points at the generated dist/client/index.html and dist/server/index.cjs artifacts, has no unreplaced template placeholders, validates the Devvit app-name slug, keeps redis/reddit capabilities enabled, treats payments/realtime as disabled when false or omitted, and exposes the subreddit create-post menu entry while accepting Devvit schema defaults.
  • Clarify the Reddit Devvit release-artifact checklist item.

Validation

  • pnpm smoke:target reddit
  • pnpm build:devvit
  • pnpm smoke:target reddit
  • pnpm check
  • ocr review --audience human --commit 9229519 (0 comments after amend)

Changeset

No Sampo changeset: this changes release smoke tooling and docs only, with no publishable package API or runtime package contract change.

Summary by CodeRabbit

  • Bug Fixes

    • Improved release artifact checks for Devvit apps to catch missing or misconfigured manifest settings before release.
    • Added stricter validation for app paths, entry points, permissions, and menu configuration to help ensure published builds work as expected.
  • Documentation

    • Expanded the release checklist with clearer verification steps for Devvit releases, including manifest, artifact paths, permissions, menu entry, and embedded target config.

@coderabbitai

coderabbitai Bot commented Jul 7, 2026 •

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds devvit-web target support to the smoke test artifact verifier, with devvit.json validation, path containment checks, permission and menu-item assertions, and a release checklist update.

Changes

Devvit Web Manifest Verification

Layer / File(s) Summary
Devvit-web verification entry point and manifest validation
tools/smoke/verify-target-artifacts.ts
A new devvit-web branch in verifyTargetArtifacts calls verifyDevvitWebManifest, which reads devvit.json from the wrapper app, validates required fields, verifies referenced files stay within the artifact, checks permission rules, and requires a matching create-post menu item.
Path resolution and assertion helpers
tools/smoke/verify-target-artifacts.ts
Adds normalized Devvit path resolution helpers plus boolean, placeholder, permission, and menu-item predicates used by the manifest verifier.
Release checklist documentation update
docs/PUBLIC_RELEASE_CHECKLIST.md
Expands the Reddit Devvit release-artifacts checklist bullet to list the manifest, path, permission, menu, and target-config checks now covered.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related PRs

  • imjlk/mpgd-kit#2: Both PRs extend verifyTargetArtifacts for reddit/devvit-web targets in the same file.
  • imjlk/mpgd-kit#15: Both PRs strengthen devvit-web manifest/config verification in tools/smoke/verify-target-artifacts.ts.
  • imjlk/mpgd-kit#4: Both PRs adjust downstream smoke artifact validation for devvit-web targets.

Poem

A rabbit checks the manifest twice,
hopping through paths precise and nice,
permissions and menus all line up bright,
no stray placeholder slips out of sight,
thump-thump — the release list feels right. 🐇

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly summarizes the main change: hardening Devvit release-artifact smoke checks.
Description check ✅ Passed The description matches the template's intent and includes summary and validation, with only the Notes section omitted.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/devvit-adapter-release-hardening

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.

@imjlk

imjlk commented Jul 7, 2026

Copy link
Copy Markdown
Owner Author

@codex review

Please review the current head f954167. This PR adds Devvit release smoke validation for devvit.json artifact paths, permissions, menu wiring, and unreplaced template placeholders. Local validation passed: pnpm build:devvit, pnpm smoke:target reddit, pnpm check, and OCR 0 comments.

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f954167ce6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/smoke/verify-target-artifacts.ts Resolved
Comment thread tools/smoke/verify-target-artifacts.ts Resolved
Comment thread tools/smoke/verify-target-artifacts.ts Resolved
Comment thread tools/smoke/verify-target-artifacts.ts Resolved
Comment thread tools/smoke/verify-target-artifacts.ts Resolved
@imjlk
imjlk force-pushed the codex/devvit-adapter-release-hardening branch from f954167 to 4fcd9d9 Compare July 7, 2026 17:20
@imjlk

imjlk commented Jul 7, 2026

Copy link
Copy Markdown
Owner Author

Addressed the Codex review comments in 4fcd9d9:

  • Devvit manifest paths now use Devvit-relative path validation instead of web URL normalization, so /index.html, query strings, and hash fragments fail smoke instead of being silently normalized.
  • Devvit app names now must be 3-16 character lowercase slugs starting with a letter.
  • Reddit permission validation accepts true and object configs that rely on Devvit default enable: true, while rejecting explicit disabled configs.
  • Create-post menu detection accepts location arrays containing subreddit and treats omitted forUserType as the Devvit default moderator value.

Re-ran pnpm smoke:target reddit, pnpm check, and OCR on 4fcd9d9 with 0 comments.

@codex review

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4fcd9d98a8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/smoke/verify-target-artifacts.ts Resolved
@imjlk
imjlk force-pushed the codex/devvit-adapter-release-hardening branch from 4fcd9d9 to eca1ba3 Compare July 7, 2026 17:32
@imjlk

imjlk commented Jul 7, 2026

Copy link
Copy Markdown
Owner Author

Addressed the latest Codex review comment in eca1ba3:

  • permissions.payments and permissions.realtime now accept Devvit schema-default omitted values as disabled, while still rejecting enabled or invalid values.

Re-ran pnpm smoke:target reddit, pnpm check, and OCR on eca1ba3 with 0 comments.

@codex review

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: eca1ba345f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/smoke/verify-target-artifacts.ts Resolved
Comment thread tools/smoke/verify-target-artifacts.ts Resolved
Comment thread tools/smoke/verify-target-artifacts.ts Resolved
@imjlk
imjlk force-pushed the codex/devvit-adapter-release-hardening branch from eca1ba3 to ffa6d06 Compare July 7, 2026 18:13
@imjlk

imjlk commented Jul 7, 2026

Copy link
Copy Markdown
Owner Author

Addressed the latest OCR/Codex review surface in ffa6d06:

  • Query stripping now validates the normalized path after ./ prefix removal, so path-only prefixes cannot resolve to the wrapper root.
  • Hash fragments are rejected against the original path even when query strings are allowed for post entrypoint file resolution.

Re-ran pnpm smoke:target reddit, pnpm check, and OCR on ffa6d06 with 0 comments.

@codex review

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ffa6d06b23

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/smoke/verify-target-artifacts.ts Resolved
Comment thread tools/smoke/verify-target-artifacts.ts Resolved
Comment thread tools/smoke/verify-target-artifacts.ts Resolved
@imjlk
imjlk force-pushed the codex/devvit-adapter-release-hardening branch from ffa6d06 to f3317fe Compare July 7, 2026 18:34
@imjlk

imjlk commented Jul 7, 2026

Copy link
Copy Markdown
Owner Author

Addressed the latest Codex review comments in f3317fe:

  • Devvit post.dir and default post entry now must resolve to the generated dist/client/index.html artifact, while still honoring the schema default entry: index.html.
  • Devvit server.dir and server.entry now must resolve to the generated dist/server/index.cjs artifact.
  • Query stripping now validates both query-only paths and ./-only paths before resolving.

Re-ran pnpm smoke:target reddit, pnpm check, and OCR on f3317fe with 0 comments.

@codex review

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f3317fe469

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/smoke/verify-target-artifacts.ts Resolved
Comment thread tools/smoke/verify-target-artifacts.ts Resolved
@imjlk
imjlk force-pushed the codex/devvit-adapter-release-hardening branch from f3317fe to 9229519 Compare July 7, 2026 19:15
@imjlk

imjlk commented Jul 7, 2026

Copy link
Copy Markdown
Owner Author

Addressed the latest Codex review comments in 9229519:

  • server.dir now defaults to Devvit schema default dist/server only when omitted, while invalid explicit values still fail smoke.
  • The create-post menu check now accepts Devvit-supported forUserType: "user" in addition to omitted/default and "moderator".

Re-ran pnpm smoke:target reddit, pnpm check, and OCR on 9229519 with 0 comments.

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Another round soon, please!

Reviewed commit: 9229519121

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@imjlk
imjlk merged commit 926ee72 into main Jul 7, 2026
6 checks passed
@imjlk
imjlk deleted the codex/devvit-adapter-release-hardening branch July 7, 2026 19:37
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