Skip to content

[bug] day-open-preflight.sh ищет server-calendar.sh по несуществующему пути $IWE/scripts/ — календарь всегда fail #426

Description

@iwe-a02

Что происходит

day-open-preflight.sh каждое утро возвращает "calendar": "fail", хотя календарь исправен.

Причина

Строка 36:

CALENDAR_OUT=$(bash "$IWE/scripts/server-calendar.sh" "$DATE" "$CONFIG" 2>/dev/null || echo "")

Каталога $IWE/scripts/ в типовой установке не существует — скрипт поставляется в $IWE/FMT-exocortex-template/scripts/:

$ ls /home/user/IWE/scripts/
ls: cannot access '/home/user/IWE/scripts/': No such file or directory

bash по несуществующему пути пишет ошибку в /dev/null, || echo "" даёт пустую строку, ветка else ставит CALENDAR_STATUS="fail". Отличить «календарь не отвечает» от «скрипт не найден» по выходу предварительной проверки нельзя.

Проверка

$ bash day-open-preflight.sh 2026-08-13
{ "calendar": "fail", ... }

$ bash FMT-exocortex-template/scripts/server-calendar.sh 2026-08-13
📅 Календарь (13 августа 2026): 2 события.

Тот же вызов напрямую отрабатывает и возвращает события.

Предложение

  1. Брать путь оттуда же, где лежит сам preflight ($TEMPLATE_SCRIPTS_DIR / $SCRIPT_DIR), а не из $IWE/scripts/. Тот же класс, что issue [bug] day-open-scaffold.sh в <governance-repo>/scripts/ разрешает корень рабочей директории на уровень ниже — все пути удваиваются, секции приходят ложно-пустыми #329 (угадывание корня по расположению скрипта).
  2. Развести fail и missing: если файла нет — отдавать отдельный статус с причиной, как уже сделано для scout (scout_reason). Молчаливый fail на отсутствующем файле скрывает дефект установки за видом сбоя внешнего сервиса.

Окружение

Linux (Ubuntu), v0.38.3, установка без Mac-компонентов.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions