build(deps): Update fastapi requirement from >=0.110 to >=0.141.1 in /requirements - #4
Closed
dependabot[bot] wants to merge 20 commits into
Closed
build(deps): Update fastapi requirement from >=0.110 to >=0.141.1 in /requirements#4dependabot[bot] wants to merge 20 commits into
dependabot[bot] wants to merge 20 commits into
Conversation
…-safe Открываются сразу с данными (хлор / Акридис / СИБУР / пример отхода) + чипы быстрого выбора. Дисклеймеры (надзор/методика/ФККО) и honest-gap сохранены. Мобайл 390px без переполнения (таблица инспектора — table-layout:fixed). XSS-фикс: полный атрибутный экранировщик в inspection/ppe. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CdKHxsviJk5nhTy5VdYw23
Главная: 5 плиток в разделе для специалистов. Карточка вещества → СИЗ/диспетчер; авария → оперативная карточка диспетчера; реестр завода → карта склада/режим инспектора. Все переходы — deep-link с encodeURIComponent. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CdKHxsviJk5nhTy5VdYw23
Хроника: разведка болей/кода, 5 модулей, демо-полировка, кросс-ссылки, мобайл-QA, security-фикс. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CdKHxsviJk5nhTy5VdYw23
…ционная сеть замкнута Мобильная /card: «Подбор СИЗ» всегда + «Карточка диспетчера» для АХОВ (по той же логике is_ahov, что /emergency: учитывает ERG). safety.html: вкладка Совместимость → карта склада, вкладка Зона → диспетчер + СИЗ (deep-link по выбранному АХОВ). Всё URL-кодировано, мобайл 390px без переполнения. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CdKHxsviJk5nhTy5VdYw23
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CdKHxsviJk5nhTy5VdYw23
…етчер 5 новых модулей+экранов+эндпоинтов, демо-полировка (автозагрузка/чипы), замкнутая навигационная сеть (карточка/авария/реестр/QR-карточка/safety → инструменты), мобайл-QA 390px, XSS-фикс экранирования. Святое правило соблюдено везде (провенанс, honest-gap, плейсхолдеры, дисклеймеры). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CdKHxsviJk5nhTy5VdYw23
engine/shift_alert.py + shift.html + GET /shift/{name}?value=&unit=. Замер газоанализатора vs ПДК/IDLH, кратность, СИЗ (переиспользует ppe.recommend_ppe), при АХОВ — ссылка на карточку диспетчера. СВЯТОЕ ПРАВИЛО: единицы НЕ пересчитываем — кратность ПДК только при совпадении единиц, иначе honest-gap «единицы разные, сверьте вручную» (видно в UI). Плитка на главной + ссылка в карточке вещества.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CdKHxsviJk5nhTy5VdYw23
docs/ЛЕНДИНГ-ИНСТРУМЕНТЫ.md (hero, блок доверия, 6 инструментов со строкой «Честно:», CTA). Хроника: 6-й инструмент, демо-сценарий, лендинг-копи, вывод про headless-обрезку скриншотов (mobile через Playwright fullPage). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CdKHxsviJk5nhTy5VdYw23
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CdKHxsviJk5nhTy5VdYw23
docs/brochure/: brochure.html (книжная A4) + deck.html (16:9) с плейсхолдерами {{IMG}}, shots.sh (снять кадры), build.py (вшить base64 + печать через headless Chrome), README. Живой B2B-русский, реальные числа, нормативка по делу. PDF/*_embed.html — в .gitignore. WORKLOG #45.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CdKHxsviJk5nhTy5VdYw23
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CdKHxsviJk5nhTy5VdYw23
Юридический контур, safety-контур, community-обвязка и первые тесты. Обвязка
перенесена по образцу consilium-principis и адаптирована под safety-домен.
Тесты (было ноль): 105 офлайн-тестов, проходят без Ollama, сети и индекса;
исходящие соединения запрещены песочницей сокетов. Покрыт контур честности —
запрет пересчёта единиц, honest-gap класса отхода, градация passport/baseline,
отказ вне базы, провенанс, целостность CAS, гигиена репозитория.
Найдено тестами и исправлено:
- 27 CAS не проходят контрольную цифру (все в bulk, ядро чистое, обогащение
пустое — fail-closed сработал). Добавлен engine/cas.py, флаг на карточке,
cas_integrity в /quality. Номера НЕ исправляются автоматически.
- Прочерк «-» в CAS давал «регистрационный номер CAS -.» — генератор корпуса
научен писать «не указан в источнике» (engine/fix_cas_placeholders.py).
- Дефолты путей указывали на промежуточный corpus_full.json: из свежего клона
сервис не поднялся бы. Переведены на канонические clean-файлы.
- Реальные названия площадок были захардкожены в retriever.py и generate_ui.py —
вынесены в data/plant_aliases.json, триггеры строятся из реестра (A/B 18/18).
Документы: LICENSE (MIT + отсылка к данным и дисклеймеру), DATA-LICENSE.md,
DISCLAIMER.md, LIMITATIONS.md, SECURITY.md, CONTRIBUTING.md, CODE_OF_CONDUCT.md,
GOVERNANCE.md, SUPPORT.md, README.en.md. README переписан под публичную
аудиторию (в шапке стояло 48 веществ вместо 2597), питч-рамка вынесена в docs/.
Инфраструктура: CI на 3.10-3.13 + macOS, Makefile, scripts/guard.sh,
requirements/{core,dev,full}.txt, шаблоны issue и PR, dependabot.
Обезличивание реестра площадок: engine/anonymize_plants.py + make demo.
Чистка индекса: -38 МБ (промежуточный корпус, доочистные id, исходные .docx).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Системный python3 может обновиться до версии, под которую зависимости не ставились. Makefile берёт первый python3.x с установленным fastapi. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
После нормализации прочерка «-» подозрительных номеров стало 26 из 2071. Актуальный счёт всегда отдаёт /quality -> cas_integrity. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Решение: в открытый доступ проект идёт без юрлиц. Перечень обращающихся на площадке веществ — утверждение о промышленной безопасности организации; собранное из публичных каталогов продукции, оно выглядит как инвентаризация, ею не являясь. Проект, чья ценность в отказе утверждать без основания, такое публиковать не может. Выведено из репозитория (остаётся локально, внесено в .gitignore): data/plants.json, plants_linked.json, plant_aliases.json. Вычищены также неочевидные места: реальный ИНН в самотесте warehouse.py, golden-запросы evaluate.py, комментарий semantic_hybrid_eval.py, подсказка console.html, константа DEMO в inspection.html, автовыбор по регекспу в warehouse.html, демо-сценарий, скрипт скриншотов брошюры, 8 мест в WORKLOG. Вместо реестра публикуется data/plants.example.json: схема полей, вымышленный пример, предупреждение о происхождении перечня веществ. Функции по площадке сохранены и деградируют честно: /plant, /registry, /warehouse, /inspection, /export/registry.csv без реестра отвечают «реестр площадок не подключён» с объяснением, что делать, — не «завод не найден» (это толкало бы искать опечатку) и не падением. Попутно исправлена настоящая поломка: раскладки склада адресовались по ИНН, после обезличивания шаблона демо-раскладка перестала бы находиться и экран молча показывал бы пустоту. Адресация переведена на название площадки + фолбэк на единственную раскладку со статусом template. Сторож усилен: реестр не трекается, ИНН отсутствует, названия организаций проверяются по денайлисту из .private/ (приватный файл — публичный скрипт не носит список компаний). Тесты: 113 (было 105), покрывают оба состояния — с реестром и без. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
PRODUCT.md — продуктовый контур: две сцены (цех/телефон, кабинет/монитор), кто чем пользуется, что система не вправе утверждать. DESIGN.md + .impeccable/design.json — токены, 17 именованных правил, компоненты, принятые отклонения. Сведено 16 расхождений: строка сигнальных токенов теперь одна на все 18 экранов байт в байт, радиусы в четыре ступени (вне шкалы — ноль), кегли без половинных пикселей, 40 литеральных цветов сведены к 12 каноническим, фокус и prefers-reduced-motion 18/18, направление градиента шкалы одно, тёмные концы градиентов вынесены в токены --red-d / --green-d / --amber-d / --orange-d. Закрыто девять дефектов, три с ценой ошибки: - главная кнопка пяти экранов давала 2.72:1 при пороге AA 4.5:1 — стала оранжевой, 8.82:1; это же закрыло нарушение правила одного оранжевого; - на карте склада цвет группы сегрегации брался из статусной палитры, из-за чего хлор-выделяющие вещества были помечены зелёным рядом с вердиктом «нельзя рядом». Заведена отдельная категориальная шкала (10 тонов OKLCH вне триады красный/янтарь/ зелёный, каждый ≥7:1 к фону), квадратик группы получил aria-label — до этого имя группы жило только в title и на телефоне не существовало; - быстрый выбор вещества был 30–38px при норме 46px для цеха, а на экране мастера смены растягивался во всю ширину и выдавливал форму за пределы экрана. Измерено, а не оценено: 171 пара «текст на залитом фоне» с резолвом var() — ниже 4.5:1 ноль; 18 из 18 экранов на 390px — перелива по горизонтали нет; 6 из 6 цеховых экранов — целей нажатия меньше 40px нет. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1. Денайлист сторожа отставал от реестра. Он был рукописным: 11 записей на 13 площадок, без «Авиабора» и «Экопола» и без доменов. Утечки они не дали, но проверка 6в молча пропустила бы новое название. Теперь список производный (scripts/sync_denylist.py: названия, варианты без скобок, содержимое скобок, домены и метки доменов), а guard.sh шагом 6г падает, если список отстал от данных. Псевдонимы, совпадающие с названиями веществ, исключаются автоматически: «корунд» — абразив, «тосол» — этиленгликоль, «синтанол» — ПАВ из СанПиН; сторож, который всегда красный, — это сторож, который отключают. 2. Названия организаций в двух местах, куда сторож не смотрел: имена переменных SIBUR и AKRIDIS в скрипте скриншотов (значения брались из окружения, а сами идентификаторы называли компании) и упоминание площадки в описании правки в WORKLOG. 3. Презентационные материалы выведены из поставки. Брошюра и слайд-дек — коммерческие документы с личными контактами владельца (почта, телефон), а не документация продукта; публичный репозиторий индексируется и вычёсывается ботами. Каталог docs/brochure/ целиком в .gitignore, исходники остаются у владельца локально. Заодно: абсолютные пути с именем пользователя в ollama-mcp/README.md заменены плейсхолдерами. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…йн-система Ветка chore/open-source-readiness: репозиторий приведён к состоянию, в котором его можно открыть. Сведений о юридических лицах нет ни в данных, ни в коде, ни в примерах интерфейса, ни в истории; сторож проверяет это сам и не отстаёт от реестра; дизайн-система зафиксирована в PRODUCT.md и DESIGN.md и приведена в соответствие с кодом. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
При удалении путей с реестром площадок из истории под нож попал и docs/ДЕМО-СЦЕНАРИЙ.md: я счёл, что файла нет в HEAD, потому что `git ls-files` печатает кириллические имена в escape-виде, и мой поиск по имени ничего не нашёл. Файл был в HEAD и на него ссылается README; тест целостности ссылок это и поймал. Возвращён в том виде, в каком его обезличил владелец, — названий организаций в нём нет. Ранние, необезличенные версии файла остались вычищенными из истории, и это верно. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Updates the requirements on [fastapi](https://github.com/fastapi/fastapi) to permit the latest version. - [Release notes](https://github.com/fastapi/fastapi/releases) - [Commits](fastapi/fastapi@0.110.0...0.141.1) --- updated-dependencies: - dependency-name: fastapi dependency-version: 0.141.1 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Author
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updates the requirements on fastapi to permit the latest version.
Release notes
Sourced from fastapi's releases.
Commits
95f8322🔖 Release version 0.141.1 (#16106)f137944📝 Update release notesd623544🐛 Fix support for background tasks and headers from dependencies in `app.fron...1d211b9📝 Update release notes8a1f876📝 DocumentFASTAPI_ENVin FastAPI CLI guide (#16104)c7e7b65🔖 Release version 0.141.0 (#16103)6bceb84📝 Update release notes5429fed✨ Addapp.frontend(check_dir="auto"), to make local development more conven...628663f🔖 Release version 0.140.13 (#16096)0b54fd0📝 Update release notesDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)