CChildHarbor
Рабочая среда с ИИ для кода

Дочерние процессы Python с ограничением времени

ChildHarbor — Windows-клиент для проверки обёртки запуска доверенного дочернего процесса Python с ИИ. Обсудите допустимый тайм-аут и завершение прямого потомка с совместимой моделью; доверие к запускаемому коду оцениваете вы.

● ● ●ChildHarbor●
Конкретная отправная точка · Дочерние процессы Python с ограничением времени ×
import math, os, subprocess, sys
from pathlib import Path

def run_trusted_python(script, seconds, folder):
    if type(script) is not str or len(script) > 4096:
        raise ValueError("child.script")
    if type(seconds) not in (int, float) or not .05 <= seconds <= 5 or not math.isfinite(seconds):
        raise ValueError("child.timeout")
    if not isinstance(folder, (str, Path)) or not Path(folder).is_dir():
        raise ValueError("child.folder")
    return subprocess.run([sys.executable, "-I", "-S", "-X", "utf8", "-c", script],
        cwd=folder, timeout=seconds, capture_output=True, text=True,
        encoding="utf-8", check=False,
        creationflags=subprocess.CREATE_NO_WINDOW if os.name == "nt" else 0)
✳Дочерние процессы Python с ограничением времени
✓ ИзмененияПроверьте перед применением ↗
Иллюстрация рабочей среды
Проверьте перед применениемСравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.
ПодключениеБазовый URL, учётные данные и доступный сервер.
ПроектПроверьте Unicode, ошибочное завершение и остановку непосредственного дочернего процесса, отклоняйте неверные пределы без обещания изоляции или остановки потомков.
Сценарии

Дочерние процессы Python с ограничением времени

Сценарии ↗
Конкретная отправная точка
import math, os, subprocess, sys
from pathlib import Path

def run_trusted_python(script, seconds, folder):
    if type(script) is not str or len(script) > 4096:
        raise ValueError("child.script")
    if type(seconds) not in (int, float) or not .05 <= seconds <= 5 or not math.isfinite(seconds):
        raise ValueError("child.timeout")
    if not isinstance(folder, (str, Path)) or not Path(folder).is_dir():
        raise ValueError("child.folder")
    return subprocess.run([sys.executable, "-I", "-S", "-X", "utf8", "-c", script],
        cwd=folder, timeout=seconds, capture_output=True, text=True,
        encoding="utf-8", check=False,
        creationflags=subprocess.CREATE_NO_WINDOW if os.name == "nt" else 0)
Рабочая среда с ИИ для кода

Проверяйте оболочку процесса, сохраняя границу доверия

ChildHarbor — клиент программирования с ИИ для Windows, позволяющий изучать код управления процессами в обсуждении проекта. Сначала укажите, какой код считается доверенным для запуска и что должен наблюдать вызывающий код. До предложения изменений попросите подключённую модель изучить существующую оболочку, чтобы предложение сохранило её назначение и ограничения.

Конкретная задача — оболочка доверенного дочернего процесса Python с существующей рабочей папкой и ограниченным тайм-аутом. Обсудите вывод Unicode, завершения с ошибками и поведение при превышении времени непосредственным дочерним процессом. Отделяйте требования от изоляции безопасности: разрешение запуска доверенного кода не превращает оболочку в песочницу для произвольного ввода.

Проверяйте правку на собственных тестовых процессах. В среде разработки проверьте захваченный вывод, статус завершения и путь тайм-аута непосредственного дочернего процесса. Если важны процессы-потомки, явно определите и исследуйте это дополнительное требование. Успешный тест тайм-аута одного дочернего процесса не доказывает очистку всего дерева процессов; сохраняйте это различие при проверке.

ChildHarbor поддерживает подключения к конечным точкам, совместимым с OpenAI или Anthropic, с учётными данными при необходимости. Модель ИИ без фильтров можно выбрать там, где её предоставляет конечная точка. Сервер и модель определяют контекст, доступные инструменты и ограничения; выбор модели не разрешает запуск недоверенного кода и не подтверждает правильность предложенной оболочки.

Вопросы до изменения кода запуска процессов

Что указать о доверенном вводе?

Укажите, кто предоставляет скрипт и почему приложение разрешает его запуск. Оставьте эту предпосылку явной в задаче. Если скрипты поступают от недоверенных пользователей, проблема безопасности шире, чем добавление тайм-аута к существующей оболочке.

Означает ли тайм-аут завершение всех потомков?

Нет. Проверьте, каким именно процессом управляет реализация, и протестируйте это в своей среде. Если приложению нужна очистка дерева процессов, сделайте её отдельным явным требованием и изучите платформозависимую реализацию, а не выводите её из обработки непосредственного дочернего процесса.

Зачем тестировать вывод Unicode наряду с завершениями с ошибкой?

Они проверяют разные части контракта оболочки с вызывающим кодом. Добавьте ожидаемый текст и поведение завершения, чтобы предложение сохраняло оба. Процесс может работать правильно, но декодирование вывода или сообщение об ошибке всё же даст приложению непригодный результат.

Нужно ли выполнять каждый предложенный в обсуждении скрипт?

Проверяйте код и его последствия до запуска. Обсуждение в среде помогает объяснить предложение, но решение о доверии остаётся за вами. Используйте подходящие тестовые данные проекта и не считайте текст модели разрешением на выполнение произвольных операций.

Скачать для Windows ↗

ChildHarbor · Обновлено 2026-10-25