Skip to content

fix(release): harden sandbox supply chain and docs - #59

Merged
ecryptoguru merged 2 commits into
mainfrom
codex/sandbox-release-hardening
Aug 11, 2026
Merged

fix(release): harden sandbox supply chain and docs#59
ecryptoguru merged 2 commits into
mainfrom
codex/sandbox-release-hardening

Conversation

@ecryptoguru

@ecryptoguru ecryptoguru commented Aug 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • qualify and promote the exact multi-architecture sandbox digest that passed non-root smoke tests
  • remove the vulnerable unused JSHint tool and keep sandbox/tool documentation aligned
  • reconcile controlled-derivative, scan-profile, caching, dependency, and production documentation

Verification

  • bash scripts/verify-controlled-derivative.sh: 1011 passed, 1 skipped
  • hard strix/** footprint: 2 files, +24/-0; no new Strix changes
  • sandbox release and Dockerfile regression tests included
  • git diff --check

Summary by CodeRabbit

  • New Features

    • Improved scan-mode guidance with clearer engine options, model routing, budgets, and time limits.
    • Added expanded configuration guidance for caching, web search, sandbox networking, telemetry, and viewer settings.
    • Enhanced sandbox documentation with reproducibility, security, provenance, and source-aware analysis details.
  • Bug Fixes

    • Improved release publishing reliability by validating immutable multi-platform images before promotion.
    • Updated JavaScript analysis to use ESLint and removed JSHint references.
  • Documentation

    • Updated setup, contribution, upgrade, and sandbox guidance for the latest supported workflows and platform requirements.

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@ecryptoguru, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 51 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

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.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 1222ae4b-1758-4e1b-9d4e-b27f793373db

📥 Commits

Reviewing files that changed from the base of the PR and between ba43336 and 819181e.

📒 Files selected for processing (5)
  • .github/workflows/publish-sandbox.yml
  • CONTRIBUTING.md
  • docs/advanced/configuration.mdx
  • docs/usage/scan-modes.mdx
  • tests/test_sandbox_release_workflow.py
📝 Walkthrough

Walkthrough

The PR changes sandbox image publishing to digest-based promotion, removes JSHint references, updates scan and configuration documentation, and revises contributor and upgrade policies.

Changes

Sandbox release and analysis

Layer / File(s) Summary
Digest-based sandbox release promotion
.dockerignore, .github/workflows/publish-sandbox.yml, docs/advanced/configuration.mdx, docs/tools/sandbox.mdx, tests/test_sandbox_release_workflow.py
The workflow smoke-tests a candidate multi-platform digest before promoting it to release and commit tags. Documentation and tests describe and verify this flow.
JavaScript analyzer toolchain
containers/npm-tools/package.json, lyrashield/skills/custom/source_aware_sast.md, lyrashield/skills/system_prompt.jinja, docs/tools/sandbox.mdx, tests/test_sandbox_dockerfile.py
JSHint is removed from the sandbox tooling and guidance. ESLint 10.8.1 remains validated, and source-aware analysis tools are documented.

Configuration and repository guidance

Layer / File(s) Summary
Configuration and scan-mode documentation
README.md, docs/advanced/configuration.mdx, docs/usage/scan-modes.mdx
The documentation updates model routing, cache usage, scan profiles, budgets, token limits, web search, sandbox settings, telemetry, and viewer relay behavior.
Contributor and upgrade policy
CONTRIBUTING.md, UPGRADES.md
The documents update the Strix base, supported deployments, modification allowlist, verification checks, dependency rules, skill locations, viewer guidance, and footprint policy history.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant GitHubActions
  participant ContainerRegistry
  participant SandboxRunners
  GitHubActions->>ContainerRegistry: Push candidate multi-platform image
  GitHubActions->>SandboxRunners: Smoke-test candidate digest on AMD64 and ARM64
  GitHubActions->>ContainerRegistry: Promote candidate digest to release and commit tags
  GitHubActions->>ContainerRegistry: Verify promoted tags resolve to candidate digest
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main changes: hardening the sandbox release supply chain and updating related documentation.
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.
✨ 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/sandbox-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.

@coderabbitai coderabbitai 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.

Actionable comments posted: 5

🤖 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 @.github/workflows/publish-sandbox.yml:
- Around line 61-72: Update the “Promote the smoke-qualified digest” step to
define RELEASE_TAG from github.ref_name in its step-level env, then use
"$RELEASE_TAG" for both the imagetools tag and promotion-validation loop. Remove
direct shell interpolation of github.ref_name while preserving the existing
digest promotion behavior.

In `@CONTRIBUTING.md`:
- Line 107: Update the viewer guidance in CONTRIBUTING.md to match the allowlist
and verifier: require viewer changes to come through an approved upstream-base
update documented in UPGRADES.md, and state that product-specific UI must live
outside strix/**. Remove or revise the instruction to commit viewer source or
regenerated static output directly.

In `@docs/advanced/configuration.mdx`:
- Around line 17-23: Clarify the LYRASHIELD_LLM description that authenticated
subscription-backed chatgpt/<model> values are exempt from the GPT-5.6 Terra or
Luna requirement, while deployments from the other listed providers must use
those models.

In `@docs/usage/scan-modes.mdx`:
- Line 16: Update the scan-mode terminal-outcomes sentence near “Every run can
end” to include the named model-stop reasons engine_stopped and
content_filter_stopped, matching the run.json contract; alternatively state
explicitly that the listed reasons are not exhaustive.
- Line 16: The scan-mode documentation must explicitly define how unused scanner
reserve is reallocated: clarify whether it can extend the engine deadline or
remains scanner-only, and identify the application component that enforces the
overall wall-clock ceiling since no profile-level engine deadline exists.
🪄 Autofix

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: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: f109a353-0546-4af2-aac6-690aa43fb78a

📥 Commits

Reviewing files that changed from the base of the PR and between 67ecd6f and ba43336.

⛔ Files ignored due to path filters (1)
  • containers/npm-tools/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (13)
  • .dockerignore
  • .github/workflows/publish-sandbox.yml
  • CONTRIBUTING.md
  • README.md
  • UPGRADES.md
  • containers/npm-tools/package.json
  • docs/advanced/configuration.mdx
  • docs/tools/sandbox.mdx
  • docs/usage/scan-modes.mdx
  • lyrashield/skills/custom/source_aware_sast.md
  • lyrashield/skills/system_prompt.jinja
  • tests/test_sandbox_dockerfile.py
  • tests/test_sandbox_release_workflow.py
💤 Files with no reviewable changes (1)
  • containers/npm-tools/package.json

Comment thread .github/workflows/publish-sandbox.yml
Comment thread CONTRIBUTING.md Outdated
Comment thread docs/advanced/configuration.mdx Outdated
Comment thread docs/usage/scan-modes.mdx Outdated
@ecryptoguru
ecryptoguru enabled auto-merge (squash) August 11, 2026 22:34
@ecryptoguru
ecryptoguru merged commit 80032d9 into main Aug 11, 2026
3 checks passed
@ecryptoguru
ecryptoguru deleted the codex/sandbox-release-hardening branch August 11, 2026 22:38
ecryptoguru added a commit that referenced this pull request Aug 12, 2026
…61)

Update UPGRADES.md, README.md, CONTRIBUTING.md, lyrashield/README.md,
lyrashield/telemetry/README.md, and docs/*.mdx to reflect the post-PR-#58
state where all product behavior lives in lyrashield/** and strix/** is
exact upstream v1.5.3 with only two generic seams.

Key changes:
- UPGRADES.md: add PR #58/#59/#60 ledger entries; update "Compatibility
  patches retained" and "LyraShield-owned contract" sections to reference
  lyrashield/** paths; add migration notes to historical sections (Parallel
  Search, Security hardening pass) with per-bullet "(Now ...)" annotations.
- lyrashield/README.md: rewrite from "intentionally minimal" to full module
  map and registration-seam documentation.
- lyrashield/telemetry/README.md: fix wrong claim that adapter rejects
  chatgpt/ subscription models (now supports by default).
- docs/advanced/skills.mdx: document lyrashield/skills/ overlay directory.
- docs/contributing.mdx: update gate description to v1.5.3 hard two-file
  allowlist; fix broken AI_AUDIT_REPORT.md reference.
- docs/usage/cli.mdx: update viewer SPA path to lyrashield/interface/viewer/.
- README.md, CONTRIBUTING.md: fix broken AI_AUDIT_REPORT.md references to
  link to UPGRADES.md security hardening section; update viewer path.
- Remove stale planning/handoff docs (AI_AUDIT_REPORT.md,
  LYRASHIELD_DIFF_REPORT.md, MIGRATION_MATRIX.md, findings.md, progress.md,
  task_plan.md, upstream-sync-2e70402.md) superseded by UPGRADES.md.

Verification: bash scripts/verify-controlled-derivative.sh -- 1011 passed,
1 skipped; lint/format/mypy/Bandit pass.

Generated with [Devin](https://devin.ai)

Co-authored-by: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
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