Skip to content

chore: migrate SafeDOMExample from ReScript to AffineScript#29

Merged
hyperpolymath merged 1 commit into
mainfrom
chore/rescript-to-affinescript
May 25, 2026
Merged

chore: migrate SafeDOMExample from ReScript to AffineScript#29
hyperpolymath merged 1 commit into
mainfrom
chore/rescript-to-affinescript

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Convert examples/SafeDOMExample.res to AffineScript (.affine) to comply with estate language policy (Language / package anti-pattern policy).

  • Remove ReScript file (.res)
  • Add AffineScript equivalent (.affine)
  • Preserves all example functionality with AffineScript syntax

This unblocks PR #25 and other PRs failing governance check.

Generated by Mistral Vibe.

Convert examples/SafeDOMExample.res to AffineScript (.affine) to comply
with estate language policy (Language / package anti-pattern policy).

- Remove ReScript file (.res)
- Add AffineScript equivalent (.affine)
- Preserves all example functionality with AffineScript syntax

This unblocks PR #25 and other PRs failing governance check.

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 68 issues detected

Severity Count
🔴 Critical 6
🟠 High 48
🟡 Medium 14

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Stray AI.a2ml in root -- use 0-AI-MANIFEST.a2ml only",
    "type": "banned",
    "file": "AI.a2ml",
    "action": "delete",
    "rule_module": "root_hygiene",
    "severity": "high"
  },
  {
    "reason": "Superseded by 0-AI-MANIFEST.a2ml",
    "type": "banned",
    "file": "AI.djot",
    "action": "delete",
    "rule_module": "root_hygiene",
    "severity": "high"
  },
  {
    "reason": "No test directory or test files found",
    "type": "no_tests",
    "file": "/home/runner/work/claude-gecko-browser-extension/claude-gecko-browser-extension",
    "action": "flag",
    "rule_module": "honest_completion",
    "severity": "high",
    "deduction": 20
  },
  {
    "reason": "Action hyperpolymath/standards/.github/workflows/governance-reusable.yml@main needs attention",
    "type": "unpinned_action",
    "file": "governance.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "innerHTML assignment -- XSS risk, use textContent or SafeDOM (1 occurrences, CWE-79)",
    "type": "js_innerhtml",
    "file": "/home/runner/work/claude-gecko-browser-extension/claude-gecko-browser-extension/src/content/content.js",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "reason": "innerHTML assignment -- XSS risk, use textContent or SafeDOM (2 occurrences, CWE-79)",
    "type": "js_innerhtml",
    "file": "/home/runner/work/claude-gecko-browser-extension/claude-gecko-browser-extension/src/popup/popup.js",
    "action": "flag",
    "rule_module": "code_safety",
    "severity": "high"
  },
  {
    "reason": "Nominal-only SAST in claude-gecko-browser-extension: codeql.yml language matrix contains no language present in the repo and lacks `actions`, so CodeQL records zero results on every commit. Remediation: set the CodeQL matrix to `language: actions`.",
    "type": "StaticAnalysis",
    "file": "/home/runner/work/claude-gecko-browser-extension/claude-gecko-browser-extension",
    "action": "auto_fix",
    "rule_module": "scorecard",
    "severity": "medium",
    "remediation": "Add CodeQL or equivalent SAST workflow.",
    "scorecard_check": "SAST"
  },
  {
    "reason": "Repository has 2 non-main remote branch(es). Policy: single main branch only.",
    "type": "GS007",
    "file": ".",
    "action": "delete_remote_branches",
    "rule_module": "git_state",
    "severity": "medium"
  },
  {
    "reason": "Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 0 day(s) old",
    "type": "CSA001",
    "file": ".machine_readable/STATE.a2ml",
    "action": "update",
    "rule_module": "code_scanning_alerts",
    "severity": "high"
  },
  {
    "reason": "Code scanning (Hypatia): hypatia/code_scanning_alerts/CSA001 -- Hypatia code_scanning_alerts: CSA001 -- 0 day(s) old",
    "type": "CSA001",
    "file": ".machine_readable/META.a2ml",
    "action": "update",
    "rule_module": "code_scanning_alerts",
    "severity": "high"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath
hyperpolymath merged commit 6dd6114 into main May 25, 2026
31 of 34 checks passed
@hyperpolymath
hyperpolymath deleted the chore/rescript-to-affinescript branch June 2, 2026 11:26
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