Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 18 additions & 6 deletions .chock/bin/_chock_runtime.py
Original file line number Diff line number Diff line change
Expand Up @@ -2106,15 +2106,27 @@ def _repo_stop_path(text):
text = _repo_stop_unquote(rest[rest.find('/'):] if '/' in rest else '')
return text if 0 < len(text) <= _REPO_STOP_PATH_MAX and '\x00' not in text else None

def _repo_stop_words(command):
"""Each word of a shell command, and the value of each `--flag=value` word: best effort, never raises."""
lexer = _chock_shlex.shlex(command, posix=True, punctuation_chars=True)
def _repo_stop_split(command, posix):
lexer = _chock_shlex.shlex(command, posix=posix, punctuation_chars=True)
lexer.whitespace_split = True
try:
words = list(lexer)
return list(lexer)
except ValueError:
words = command.split()
return words + [word.split('=', 1)[1] for word in words if '=' in word]
return command.split()

def _repo_stop_windows(word):
"""A word read as a Windows path (`C:\\repo\\x` kept, quotes dropped), spelled with `/`; None when it has no drive."""
path = _chock_PureWindowsPath(word.strip('"\''))
return path.as_posix() if path.drive else None

def _repo_stop_words(command):
"""Each word of a shell command, the value of each `--flag=value` word, and each Windows-path reading of a word
(a POSIX split eats the backslashes of `C:\\repo\\x`): best effort, never raises."""
words = _repo_stop_split(command, posix=True)
raw = _repo_stop_split(command, posix=False)
words += [word.strip('"\'') for word in raw if '\\' in word]
words += [word.split('=', 1)[1] for word in words if '=' in word]
return words + [path for path in map(_repo_stop_windows, raw) if path]

def _repo_stop_named(raw):
"""Every string anywhere in a payload that may name a path (`file://` URIs decoded): each client nests and
Expand Down
2 changes: 1 addition & 1 deletion .chock/bin/claude_code.py
Original file line number Diff line number Diff line change
Expand Up @@ -809,7 +809,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
2 changes: 1 addition & 1 deletion .chock/bin/codex_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -777,7 +777,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
2 changes: 1 addition & 1 deletion .chock/bin/cursor.py
Original file line number Diff line number Diff line change
Expand Up @@ -670,7 +670,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
2 changes: 1 addition & 1 deletion .chock/bin/devin.py
Original file line number Diff line number Diff line change
Expand Up @@ -776,7 +776,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
2 changes: 1 addition & 1 deletion .chock/bin/gemini_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -776,7 +776,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
2 changes: 1 addition & 1 deletion .chock/bin/grok.py
Original file line number Diff line number Diff line change
Expand Up @@ -776,7 +776,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
2 changes: 1 addition & 1 deletion .chock/bin/tabnine.py
Original file line number Diff line number Diff line change
Expand Up @@ -732,7 +732,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
2 changes: 1 addition & 1 deletion .chock/bin/vscode_copilot.py
Original file line number Diff line number Diff line change
Expand Up @@ -560,7 +560,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
2 changes: 1 addition & 1 deletion .chock/bin/windsurf.py
Original file line number Diff line number Diff line change
Expand Up @@ -629,7 +629,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
16 changes: 12 additions & 4 deletions .github/workflows/windows-paths.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: Windows paths

# Windows path spellings in the agent write gate (drive-letter case, `/c:/` roots, either
# slash). Linux cannot exercise them, and CI's full matrix does not run on PRs, so this one
# targeted file runs on Windows every time.
# slash), the repo stop, pack hashing, install and scaffold. Linux cannot exercise them, and CI's
# full matrix does not run on PRs, so these targeted files run on Windows every time.

on:
push:
Expand Down Expand Up @@ -39,5 +39,13 @@ jobs:
python -m pip install --require-hashes --upgrade -r requirements/pip.txt
python -m pip install --require-hashes -r requirements/dev.txt && pip install -e . --no-deps

- name: Windows write-gate path tests
run: pytest -q tests/test_cursor_windows_write_gate.py
- name: Windows path tests
run: >-
pytest -q
tests/test_cursor_windows_write_gate.py
tests/test_repo_stop_gap1d.py
tests/test_pack_hash_platform.py
tests/test_install_command.py
tests/test_install_local.py
tests/test_scaffold_new.py
tests/test_scaffold_kinds.py
28 changes: 21 additions & 7 deletions src/chock/gate/repo_stop.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
import shlex
import sys
import time
from pathlib import Path
from pathlib import Path, PureWindowsPath

from .decision_log import DLOG_ROUTE_SYNC, runtime_route
from .runner.halt import (
Expand Down Expand Up @@ -64,15 +64,29 @@ def _repo_stop_path(text):
return text if 0 < len(text) <= _REPO_STOP_PATH_MAX and "\x00" not in text else None


def _repo_stop_words(command):
"""Each word of a shell command, and the value of each `--flag=value` word: best effort, never raises."""
lexer = shlex.shlex(command, posix=True, punctuation_chars=True)
def _repo_stop_split(command, posix):
lexer = shlex.shlex(command, posix=posix, punctuation_chars=True)
lexer.whitespace_split = True
try:
words = list(lexer)
return list(lexer)
except ValueError:
words = command.split()
return words + [word.split("=", 1)[1] for word in words if "=" in word]
return command.split()


def _repo_stop_windows(word):
"""A word read as a Windows path (`C:\\repo\\x` kept, quotes dropped), spelled with `/`; None when it has no drive."""
path = PureWindowsPath(word.strip("\"'"))
return path.as_posix() if path.drive else None


def _repo_stop_words(command):
"""Each word of a shell command, the value of each `--flag=value` word, and each Windows-path reading of a word
(a POSIX split eats the backslashes of `C:\\repo\\x`): best effort, never raises."""
words = _repo_stop_split(command, posix=True)
raw = _repo_stop_split(command, posix=False)
words += [word.strip("\"'") for word in raw if "\\" in word]
words += [word.split("=", 1)[1] for word in words if "=" in word]
return words + [path for path in map(_repo_stop_windows, raw) if path]


def _repo_stop_named(raw):
Expand Down
12 changes: 8 additions & 4 deletions src/chock/validation/selection_source.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ def _mode_at(repo_root: Path, ref: str, path: Path) -> str | None:
"""The git mode of `path` at `ref`; None when the revision has nothing there."""
result = _git(repo_root, "ls-tree", ref, "--", path.as_posix())
if result.returncode != 0:
msg = f"cannot list {path} at {ref}: {result.stderr.strip()}"
msg = f"cannot list {path.as_posix()} at {ref}: {result.stderr.strip()}"
raise SelectionInvalidError(msg)
return result.stdout.split(maxsplit=1)[0] if result.stdout.strip() else None

Expand All @@ -41,7 +41,9 @@ def _at_ref(repo_root: Path, kind: Kind, ref: str) -> str | None:
return None
if mode != _TREE if part == rel.parent else mode not in _REGULAR:
what = "a file" if mode in _REGULAR else _MODES.get(mode, f"object mode {mode}")
msg = f"{part} is {what} at {ref}, not {want}; the base selection cannot be trusted as a baseline"
msg = (
f"{part.as_posix()} is {what} at {ref}, not {want}; the base selection cannot be trusted as a baseline"
)
raise SelectionInvalidError(msg)
result = _git(repo_root, "show", f"{ref}:{kind.filename}")
if result.returncode != 0:
Expand All @@ -59,10 +61,12 @@ def _in_worktree(repo_root: Path, kind: Kind) -> str | None:
except FileNotFoundError:
return None
if stat.S_ISLNK(mode) or (part == rel and not stat.S_ISREG(mode)):
msg = f"{part} is a symlink or not a regular file; a selection must be a committed regular file"
msg = f"{part.as_posix()} is a symlink or not a regular file; a selection must be a committed regular file"
raise SelectionInvalidError(msg)
if part != rel and not stat.S_ISDIR(mode):
msg = f"{part} is a file, not a directory; the runtime finds no selection under it and falls back"
msg = (
f"{part.as_posix()} is a file, not a directory; the runtime finds no selection under it and falls back"
)
raise SelectionInvalidError(msg)
return (repo_root / rel).read_text(encoding="utf-8")

Expand Down
24 changes: 18 additions & 6 deletions tests/fixtures/runtime_goldens/_chock_runtime.py
Original file line number Diff line number Diff line change
Expand Up @@ -2106,15 +2106,27 @@ def _repo_stop_path(text):
text = _repo_stop_unquote(rest[rest.find('/'):] if '/' in rest else '')
return text if 0 < len(text) <= _REPO_STOP_PATH_MAX and '\x00' not in text else None

def _repo_stop_words(command):
"""Each word of a shell command, and the value of each `--flag=value` word: best effort, never raises."""
lexer = _chock_shlex.shlex(command, posix=True, punctuation_chars=True)
def _repo_stop_split(command, posix):
lexer = _chock_shlex.shlex(command, posix=posix, punctuation_chars=True)
lexer.whitespace_split = True
try:
words = list(lexer)
return list(lexer)
except ValueError:
words = command.split()
return words + [word.split('=', 1)[1] for word in words if '=' in word]
return command.split()

def _repo_stop_windows(word):
"""A word read as a Windows path (`C:\\repo\\x` kept, quotes dropped), spelled with `/`; None when it has no drive."""
path = _chock_PureWindowsPath(word.strip('"\''))
return path.as_posix() if path.drive else None

def _repo_stop_words(command):
"""Each word of a shell command, the value of each `--flag=value` word, and each Windows-path reading of a word
(a POSIX split eats the backslashes of `C:\\repo\\x`): best effort, never raises."""
words = _repo_stop_split(command, posix=True)
raw = _repo_stop_split(command, posix=False)
words += [word.strip('"\'') for word in raw if '\\' in word]
words += [word.split('=', 1)[1] for word in words if '=' in word]
return words + [path for path in map(_repo_stop_windows, raw) if path]

def _repo_stop_named(raw):
"""Every string anywhere in a payload that may name a path (`file://` URIs decoded): each client nests and
Expand Down
2 changes: 1 addition & 1 deletion tests/fixtures/runtime_goldens/antigravity.py
Original file line number Diff line number Diff line change
Expand Up @@ -698,7 +698,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
2 changes: 1 addition & 1 deletion tests/fixtures/runtime_goldens/claude_code.py
Original file line number Diff line number Diff line change
Expand Up @@ -809,7 +809,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
2 changes: 1 addition & 1 deletion tests/fixtures/runtime_goldens/codex_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -777,7 +777,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
2 changes: 1 addition & 1 deletion tests/fixtures/runtime_goldens/cursor.py
Original file line number Diff line number Diff line change
Expand Up @@ -670,7 +670,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
2 changes: 1 addition & 1 deletion tests/fixtures/runtime_goldens/devin.py
Original file line number Diff line number Diff line change
Expand Up @@ -776,7 +776,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
2 changes: 1 addition & 1 deletion tests/fixtures/runtime_goldens/factory_droid.py
Original file line number Diff line number Diff line change
Expand Up @@ -763,7 +763,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
2 changes: 1 addition & 1 deletion tests/fixtures/runtime_goldens/gemini_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -776,7 +776,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
2 changes: 1 addition & 1 deletion tests/fixtures/runtime_goldens/goose.py
Original file line number Diff line number Diff line change
Expand Up @@ -732,7 +732,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
2 changes: 1 addition & 1 deletion tests/fixtures/runtime_goldens/grok.py
Original file line number Diff line number Diff line change
Expand Up @@ -776,7 +776,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
2 changes: 1 addition & 1 deletion tests/fixtures/runtime_goldens/mistral_vibe.py
Original file line number Diff line number Diff line change
Expand Up @@ -759,7 +759,7 @@ def degrade(decision, event):
# Not self-contained: chock's guard logic lives in the sibling _chock_runtime.py, loaded from this
# file's own folder and pinned to the sha256 of that file's bytes (CRLF read as LF), hashed before they are executed.
# Missing, unreadable, another version, or failing to import: every call refuses (_CHOCK_RUNTIME_FAULT), never allows.
_CHOCK_RUNTIME_PIN = '09ed5e7bf20341a34839444d62cf4b17a37eeb24e1120b65724eabec6f83fba9'
_CHOCK_RUNTIME_PIN = '1338b7f2c52bc6aa85599d6913bab34e13784a39897247e3d84c092684bbb443'


def _chock_load_runtime():
Expand Down
Loading
Loading