Skip to content

ci: add DinoLab V2 gate#1

Merged
ryan10sa-star merged 1 commit into
mainfrom
codex/add-dinolab-v2-ci-20260612
Jun 12, 2026
Merged

ci: add DinoLab V2 gate#1
ryan10sa-star merged 1 commit into
mainfrom
codex/add-dinolab-v2-ci-20260612

Conversation

@ryan10sa-star

Copy link
Copy Markdown
Owner

Summary

  • add a dependency-free static app validator for app shell, service-worker cache entries, web manifest, and licensed local assets
  • add GitHub Actions for the validator plus JavaScript syntax checks
  • document DinoLab V2 guardrails and fix README asset-count/runtime-format wording

Local validation

  • python3 tools/validate_static_app.py
  • node --check app.js
  • node --check sw.js

Copilot AI review requested due to automatic review settings June 12, 2026 22:16
@ryan10sa-star ryan10sa-star merged commit ea10dc5 into main Jun 12, 2026
2 checks passed
@ryan10sa-star ryan10sa-star deleted the codex/add-dinolab-v2-ci-20260612 branch June 12, 2026 22:17

Copilot AI 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.

Pull request overview

This PR introduces a CI “V2 gate” to keep the DinoLab static PWA ship-ready by validating the app shell, manifest, service worker cache list, and local licensed assets, plus adding lightweight JS syntax checks.

Changes:

  • Add a dependency-free Python validator (tools/validate_static_app.py) that enforces required files, key boot markers, web manifest fields, and asset-manifest/license constraints.
  • Add a GitHub Actions workflow to run the validator and node --check for app.js / sw.js.
  • Update documentation/README wording and add a V2 upgrade/guardrails plan document.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
tools/validate_static_app.py Adds the static app + asset/license validator used as the CI gate.
.github/workflows/ci.yml Runs the validator and JS syntax checks on PRs/pushes to main.
README.md Updates asset counts/wording and clarifies runtime asset format expectations.
docs/V2_UPGRADE_PLAN.md Documents V2 baseline, ship-blocking guardrails, and a work queue.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +62 to +67
def safe_repo_path(value: str, errors: list[str], asset_id: str, field: str) -> Path | None:
rel = Path(value)
if rel.is_absolute() or ".." in rel.parts:
errors.append(f"{asset_id}.{field} must be a safe repo-relative path: {value}")
return None
return ROOT / rel
Comment on lines +49 to +51
def require_text_marker(path: str, text: str, marker: str, errors: list[str]) -> None:
if marker not in text:
errors.append(f"{path} is missing expected marker: {marker}")
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