Skip to content

ci: refresh shader-validation (1.6.1) + runbook#75

Merged
alandtse merged 3 commits into
devfrom
ci/release-validation
Jun 2, 2026
Merged

ci: refresh shader-validation (1.6.1) + runbook#75
alandtse merged 3 commits into
devfrom
ci/release-validation

Conversation

@alandtse
Copy link
Copy Markdown
Owner

@alandtse alandtse commented Jun 2, 2026

What

  • Regenerate .github/configs/shader-validation{,-vr}.yaml from fresh Debug-level CommunityShaders.log captures on the deployed 1.6.1 build (SE + VR), via generate-shader-configs.ps1. Picks up permutation changes from the 1.6.1 shader fixes (Lighting.hlsl, ISWaterBlend.hlsl). Both regenerated 0 errors (SE 24 shaders / 3324 variants, VR 25 / 3617).
  • Add docs/development/release-validation.md — runbook for in-game release validation via the devbench MCP (shader-cache gate, feature load, in-game load, log scan) + the config-refresh procedure.

On the large diff

The config diff is a full mechanical regen (variant reordering + 1.6.1 additions; files grew SE +2.3k / VR +6k lines), not hand-edited. Don't review line-by-line — the shader-validation CI job validates it by compiling every variant in the matrix.

Validation that produced this

Built + deployed 1.6.1 (PR #74 content) to SE + VR; via devbench MCP both editions passed: 0 failed shaders, all features loaded (37 VR / 36 SE), loadLast → WhiterunWorld with no CTD, and 0 [E] log errors traceable to 1.6.1 (only pre-existing Streamline/terrain/WeatherEditor notices).

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Added a new development guide for validating release builds using internal testing tools and procedures.

Copilot AI review requested due to automatic review settings June 2, 2026 01:42
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 2, 2026

Review Change Stack

Warning

Review limit reached

@alandtse, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 15 minutes and 1 second. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 23f1404c-de73-4a11-a287-5295b33f0805

📥 Commits

Reviewing files that changed from the base of the PR and between 2232852 and 84a186b.

📒 Files selected for processing (3)
  • .github/configs/shader-validation-vr.yaml
  • .github/configs/shader-validation.yaml
  • docs/development/release-validation.md
📝 Walkthrough

Walkthrough

This PR introduces a comprehensive runbook for validating release builds in-game using the devbench MCP test bench. The documentation covers prerequisites, build and deployment steps, in-game shader compilation and validation workflows, CI configuration refresh procedures, multi-edition coverage for SE and VR, and future automation improvements.

Changes

Release Validation Runbook

Layer / File(s) Summary
Setup and prerequisites
docs/development/release-validation.md
Documents the purpose of release validation via devbench, identifies the shader-cache gate as the primary pass/fail criterion, and specifies prerequisites including devbench installation, remote control bridge tools, and short-drive build path requirements to avoid MAX_PATH issues.
Build and deploy
docs/development/release-validation.md
Describes the build and auto-deploy workflow, including mapping the worktree to a short drive, running the auto-deploy preset to copy DLL, PDB, and shaders into edition data outputs, with notes on expected benign build warnings.
In-game shader compilation and devbench validation
docs/development/release-validation.md
Specifies edition-specific launcher targets, explains shader recompilation on first launch, provides polling logic to await compilation completion via devbench inspect, and details the complete devbench MCP validation workflow including shader-cache gate checks, feature loading, player state reaching playerLoaded, post-load runtime shader verification, and screenshot evidence collection. Includes guidance on distinguishing genuine critical errors from known-benign log lines.
CI configuration refresh and multi-edition validation
docs/development/release-validation.md
Provides instructions for regenerating shader-validation CI YAML from in-game logs when shader permutations change, including debug logging setup via in-game CS menu, log path identification, and generation via build target or PowerShell script. Documents validation via CI PR diff and emphasizes repeating the complete validation sequence for both SE and VR editions to account for runtime differences.
Future automation improvements
docs/development/release-validation.md
Outlines planned enhancements: wrapping shader-cache assertions into a devbench scenario for one-command execution, adding deterministic record/replay with screenshot diffing for visual regression detection, and implementing an unattended autoRun smoke test with EventBus-based pass/fail reporting.

Possibly Related PRs

  • alandtse/open-shaders#62: The main PR adds documentation for release "in-game" validation that includes an MCP shader-cache gate/check, which relies on the retrieved PR's new RemoteControl.inspect(kind="shadercache") and shader compile status plumbing.

Poem

🐰 A new runbook hops into view,
Release validation, tried and true,
With devbench gates and shaders to compile,
In-game testing that's worthwhile,
From SE to VR, we validate with style! ✨


🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
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 mentions shader-validation refresh (1.6.1) and runbook, which aligns with the main changes: regenerated config files and added release-validation.md documentation.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/release-validation

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 and usage tips.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 2, 2026

No actionable suggestions for changed features.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the CI shader-validation configuration to match the 1.6.1 permutation set (SE + VR) and adds a developer runbook for doing in-game release validation via devbench before publishing.

Changes:

  • Regenerated .github/configs/shader-validation.yaml and shader-validation-vr.yaml from fresh 1.6.1 in-game logs to keep the CI variant matrix in sync.
  • Added docs/development/release-validation.md documenting an in-game validation flow (shader-cache gate, feature load, loadLast, log scan) plus the config refresh procedure.

Reviewed changes

Copilot reviewed 1 out of 3 changed files in this pull request and generated 1 comment.

File Description
.github/configs/shader-validation.yaml Refreshed SE shader validation matrix/defines derived from 1.6.1 logs for CI compilation coverage.
.github/configs/shader-validation-vr.yaml Refreshed VR shader validation matrix/defines derived from 1.6.1 logs for CI compilation coverage.
docs/development/release-validation.md New runbook for in-game validation via devbench and for regenerating shader-validation configs when permutations change.

Comment thread docs/development/release-validation.md Outdated
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
docs/development/release-validation.md (1)

1-1: ⚡ Quick win

Suggest a conventional PR title within the 50-char limit.

Current title is descriptive, but over the stated limit. Suggested title:
chore(validation): refresh 1.6.1 configs + runbook

As per coding guidelines, "Conventional Commit Titles ... Length: 50 characters limit for title".

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/development/release-validation.md` at line 1, PR title exceeds the
50-character conventional commit limit; update the PR title to follow the
Conventional Commits format and keep it ≤50 chars — replace the current long
title with something like "chore(validation): refresh 1.6.1 configs + runbook"
(or an equivalent concise conventional title) so the PR title matches the
required convention.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/development/release-validation.md`:
- Around line 48-50: The curl check targets the generic "inspect" tool but
should call the CS bridge's namespaced tool "openshaders.inspect" for kind=state
and kind=shadercache; update the polling commands that use the curl POST to hit
/api/tool/openshaders.inspect (keeping the same JSON body with "kind":"state" or
"kind":"shadercache") so the response fields ("plugin", "vr", "failedTasks",
"currentFailedCount") come from the correct tool; apply the same change to the
other occurrences referenced (lines ~56-60) so both checks use
openshaders.inspect consistently.

---

Nitpick comments:
In `@docs/development/release-validation.md`:
- Line 1: PR title exceeds the 50-character conventional commit limit; update
the PR title to follow the Conventional Commits format and keep it ≤50 chars —
replace the current long title with something like "chore(validation): refresh
1.6.1 configs + runbook" (or an equivalent concise conventional title) so the PR
title matches the required convention.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 4a62dd8a-b4c7-4fc0-967e-04cdda7be157

📥 Commits

Reviewing files that changed from the base of the PR and between 8ff96d1 and 2232852.

📒 Files selected for processing (3)
  • .github/configs/shader-validation-vr.yaml
  • .github/configs/shader-validation.yaml
  • docs/development/release-validation.md

Comment thread docs/development/release-validation.md
alandtse added a commit that referenced this pull request Jun 2, 2026
- Drop the dead `project-worktree-build-maxpath` reference (Copilot); the
  inline MAX_PATH explanation is self-contained.
- Add a note distinguishing devbench's `inspect` (state incl. playerLoaded,
  used for load polling) from `openshaders.inspect` (CS state/shadercache,
  used for the gate). The runbook's calls were already correct; this
  preempts the confusion CodeRabbit flagged (its suggested swap to
  openshaders.inspect for polling would drop playerLoaded and hang).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@alandtse alandtse changed the title ci: refresh shader-validation (1.6.1) + add validation runbook ci: refresh shader-validation (1.6.1) + runbook Jun 2, 2026
alandtse and others added 2 commits June 2, 2026 02:21
…book

Regenerate .github/configs/shader-validation{,-vr}.yaml from fresh
Debug-level CommunityShaders.log captures on the deployed 1.6.1 build (SE
and VR) via generate-shader-configs.ps1. Picks up permutation changes from
the 1.6.1 shader fixes (Lighting.hlsl, ISWaterBlend.hlsl). Both regenerated
with 0 errors (SE 24 shaders/3324 variants, VR 25/3617). Large diff is a
full mechanical regen (variant reordering + additions), not hand-edited —
the shader-validation CI job validates it by compiling the matrix.

Add docs/development/release-validation.md: runbook for in-game release
validation via the devbench MCP (shader-cache gate, feature load, in-game
load, log scan) + the config-refresh procedure, capturing the steps used
to validate 1.6.1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Drop the dead `project-worktree-build-maxpath` reference (Copilot); the
  inline MAX_PATH explanation is self-contained.
- Add a note distinguishing devbench's `inspect` (state incl. playerLoaded,
  used for load polling) from `openshaders.inspect` (CS state/shadercache,
  used for the gate). The runbook's calls were already correct; this
  preempts the confusion CodeRabbit flagged (its suggested swap to
  openshaders.inspect for polling would drop playerLoaded and hang).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 2, 2026 02:21
@alandtse alandtse force-pushed the ci/release-validation branch from d7465d7 to 9dd5e8d Compare June 2, 2026 02:21
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 1 out of 3 changed files in this pull request and generated no new comments.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 2, 2026

✅ A pre-release build is available for this PR:
Download

Regenerate both configs with the deterministic-sort hlslkit
(alandtse/hlslkit#17, now on main): shaders sorted by file, entries by
(entry, defines), file_common_defines keys sorted. Same variant set as
before (SE 24/3324, VR 25/3617) — only ordering changes.

Establishes the sorted baseline on dev so future shader-validation
refreshes diff to only real added/removed variants, not full reorder churn.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@alandtse alandtse merged commit 4d40f84 into dev Jun 2, 2026
20 checks passed
@alandtse alandtse deleted the ci/release-validation branch June 2, 2026 04:45
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.

2 participants