Frontend Status: свежий дайджест фронтенда и AI — 12.03.2026
- пятница, 13 марта 2026 г. в 00:00:13

Привет!
Это восьмой выпуск Frontend Status — дайджеста по фронтенд-разработке.
В этом выпуске — CodePen 2.0 и клон Loom на Next.js в видео; про AI: почему коллекция промптов не заменяет мышление, автоисследования на игровом PC и онбординг через Oncode. Безопасность в центре: Clinejection (4000 машин через GitHub-issue), как GitHub защищает агентские воркфлоу, укорочение срока жизни TLS-сертификатов, веб-агенты, сливающие данные пользователей, и 22 CVE в Firefox после проверки кодовой базы Claude. В CSS — все способы выбрать <html>, война z-index и подводный камень Anchor Positioning; в JS — когда пора переходить на Rust, разбор requestAnimationFrame и постмортем npm-червя Shai-Hulud. По фреймворкам: ретро-компоненты и cron-генератор в React, микрофронтенды в Angular 21. Веб-стандарты: обновление WCAG 3 и отчёт TC39 про ES2026. Браузеры: Chrome переходит на двухнедельные релизы, Edge предлагает атрибут focusgroup. Плюс VS Code 1.111 с инфраструктурой для Copilot-агентов, «убедительный дизайн» и усталость от токенов, TDD в эпоху AI, элемент <geolocation>, AT Protocol под капотом Bluesky и запуск Cursor-агентов из Telegram.
Выход Codepen 2.0: Крис Койер размышляет о пути сервиса. В этом выпуске CodePen Radio Крис Койер и Алекс обсуждают запуск CodePen 2.0, рассказывая о пути его разработки, необходимости создания расширяемой системы, важности пользовательского опыта, новом компиляторе и блоках, а также о потенциальной роли AI в улучшении платформы.
Clone Loom на Next.js В этом курсе мы создадим полноценный клон Loom с адаптивной потоковой передачей видео, записью экрана, AI-функциями и безопасным доступом, используя Mux, Next.js 15 и современные веб-технологии.
Папка с сохранёнными промптами не создаёт библиотеку знаний а является способом избежать мышления. Саймон Стерн разбирает, как коллекционирование чужих промптов незаметно перекладывает «думающую» часть работы на AI: вкус тупится, суждение слабеет, и из автора ты превращаешься в супервайзера чужих решений.
Форк проекта autoresearch от Andrey Karpathy для тех, у кого игровой PC на Windows: запускаешь агента на ночь, он сам правит train.py, гоняет 5-минутные эксперименты с обучением маленькой языковой модели, сравнивает результаты и оставляет лучшее — утром получаешь лог из ~100 итераций и улучшенную модель.
Oncode решает одну из самых дорогих проблем в найме разработчиков — месяцы на онбординг: вставляешь ссылку на GitHub-репозиторий, инструмент сам строит карту архитектуры и генерирует серию «отладочных миссий» — структурированных задач, которые проводят через реальные пути выполнения кода, зависимости между сервисами и граничные случаи.
Злоумышленник скомпрометировал 4000 машин разработчиков через GitHub-issue, собрав цепочку из пяти звеньев: prompt injection в AI-тайпере, затем выполнение произвольного npm install → отравление кеша → кража токенов → публикация версии Cline с трояном, которая молча ставила второй AI-агент с полным доступом к системе. Атака вскрыла архитектурную проблему: разработчик доверяет инструменту A, инструмент A компрометируют и он устанавливает инструмент B — и ни один стандартный контроль (npm audit, code review, permission prompts) это не поймает. Разбор называется «Clinejection» и стоит прочитать каждому, кто деплоит AI-агентов в CI/CD.
GitHub рассказывает, как устроена безопасность их агентских воркфлоу (да, это прямое продолжение темы Clinejection). Архитектура построена на четырёх принципах: изоляция на трёх уровнях, агент вообще не видит никаких токенов (LLM-ключи спрятаны в отдельном API-прокси, MCP-ключи — в отдельном шлюзе), все записи в репозиторий буферизируются и проходят фильтрацию перед применением, и полное логирование.
Веб-индустрия сокращает максимальный срок жизни TLS-сертификатов — с 15 марта 2026 года лимит падает с 398 до 200 дней, в 2027-м до 100, а к 2029-му до 47. Heroku напоминает о важности включения автообновления.
Исследователи Brave обнаружили, что веб-агенты систематически «проговариваются» о пользователе — даже когда их просят этого не делать. В 1080 запусках на Amazon и eBay агенты на базе GPT-4o, O3 и O4-mini регулярно сливали в сторонние сервисы данные, которые не имели отношения к задаче: вставляли историю переписки в поисковые поля, раскрывали личные детали через паттерны кликов.
Команда Anthropic прогнала Claude по кодовой базе Firefox и нашла 14 критических уязвимостей, о которых десятилетиями не подозревали, итого 22 CVE вошли в Firefox 148.
Сколько существует способов выбрать <html> в CSS и зачем это вообще знать? Дэниел Шварц разбирает все варианты от очевидного html {} и привычного :root {} до экзотических :has(body), :not(* *) и даже голого & вне вложенности. Большинство выглядят курьёзно, но по дороге мы узнаем, чем отличается специфичность псевдоклассов, что :scope семантически точнее, чем :root для CSS-переменных, и вспомним Lobotomized Owl паттерн: :not(* > *).
Амит Шин разбирает, почему в крупных проектах z-index превращается в гонку вооружений между командами, и предлагает лечение: токенизация слоёв через CSS-переменные (--z-toast: 100, --z-overlay: 300). isolation:isolate учтён!
Крис Койер ошибался в CSS Anchor Positioning! Точнее, считал, что якорь и позиционируемый элемент могут находиться где угодно в DOM, но, оказывается, нет: якорь обязан быть полностью отрендерен раньше, а в идеале — быть сиблингом и стоять первым.
Теймур Гасанов строит быстрый инструмент сравнения скриншотов и упёрся в потолок JavaScript. После того как двухпроходный алгоритм дал 72–88% прироста на чистом TypeScript, дальше оптимизировать было нечего: паузы сборщика мусора, отсутствие SIMD и накладные расходы V8 стали непреодолимой стеной. Решение — переписать ядро на Rust!
Солидный справочный разбор requestAnimationFrame — почему setTimeout для анимаций ломает плавность, как rAF встраивается в цикл отрисовки браузера, примеры для React и Vue. Отдельно разбирается паттерн rAF -> setTimeout для улучшения INP: показываем обновление UI сразу, а тяжёлую работу откладываем на следующий кадр. В конце - сравнительная таблица всех scheduling API: rAF, requestIdleCallback, scheduler.yield, scheduler.postTask.
npm-червь: компания Trigger.dev опубликовала постмортем об атаке Shai-Hulud. В этом посте компания Trigger.dev подробно рассказывает, как стала жертвой атаки через npm-червя Shai-Hulud: от взлома машины инженера и 17-часовой разведки до 10 минут разрушительных действий в GitHub-репозиториях, а также делится опытом восстановления, техническими деталями работы вредоноса и ключевыми уроками по усилению безопасности.
8bitcn/ui: 50+ Ретро компонентов — проект с открытым исходным кодом, предлагающий набор 8-битных компонентов.
Компонент для создания выражений cron — бесплатный визуальный конструктор cron-выражений с открытым исходным кодом, поддерживающий форматы Unix и Quartz, с предпросмотром в реальном времени и доступный в виде React-компонента.
Микрофронтенды Angular 21 и Native Federation — пример микрофронтендов в Angular 21 с использованием Native Federation для создания независимых приложений в едином монорепозитории.
Обновился Working Draft WCAG 3 — среди ключевых обновлений дополнена пояснительная записка и лучшие практики.
Официальный отчёт PDF со 113-го заседания TC39, посвящённый стандартизации ECMAScript — процесс стандартизации ECMAScript идёт по графику, ES2026 выйдет летом, а состав редакторов усилился для подготовки к будущим версиям.
Google Chrome переходит на двухнедельные релизы с сентября 2026 — в целом это вся новость!
Opera взяла четыре iF Design Award 2026 — вдвое больше, чем в прошлом году, и стала самым титулованным в категории цифровых интерфейсов. Напомним, что фактически это тот же Chromium, что лежит в основе Chrome, Edge, Brave и большинства современных браузеров.
Команда Edge предлагает новый HTML-атрибут focusgroup: добавляешь его на контейнер и браузер сам обрабатывает клавиши стрелок, пропускает скрытые/disabled-элементы, учитывает направление текста и восстанавливает фокус при возврате. Реализация уже в Edge и Chromium, идёт RFC-процесс для других браузеров.
VS Code 1.111 — Copilot-агенты обрастают инфраструктурой — рекурсивный поиск *.instructions.md, agent-scoped chat hooks в frontmatter, новая команда /troubleshoot для дебага самого агента (сколько токенов, какие кастомизации загружены), OpenTelemetry-трейсинг чата. Из не-AI: Go to Definition на строки локализации %config.settingName% в package.json, корректный рендер CJK-пунктуации, vim-like foldedLine для cursorMove.
Андерс Токсбо напоминает о предложенной им концепции "Убедительного дизайна" и разбирает, что не сработало: геймификация ради геймификации быстро превращается в мусор, изолированные поведенческие хаки дают краткосрочный буст и роняют retention rate, а модель Fogg с её «триггерами» слишком упрощает реальность. И решения предлагает тоже, да!
Как дизайн-токены из моста между дизайном и кодом превратились в бюрократию — три слоя абстракции (core - semantic - alias/component), документация длиннее продуктового роадмапа, и дизайнеры, которые тихо хардкодят значения прямо в Figma, потому что официальная система непригодна для пользования. Алекс Харпер призывает задуматься о принципах и сократить количество токенов.
Крис Фердинанди всю карьеру ненавидел тесты — потому что тестировал реализацию вместо inputs/outputs, и писал тесты после кода, когда они уже ничего не давали. Переход на TDD (сначала тесты, потом код) и отказ от метрики code coverage полностью изменили картину, и теперь его Playwright-тесты ловят регрессии при рефакторинге, кроссбраузерные баги и неожиданные взаимодействия между компонентами раньше, чем он успевает об этом подумать. Кстати, TDD в эпоху AI-generated кода - крайне актуальная парадигма.
Крис Койер разбирает странную природу элемента <geolocation> — текст и иконку нельзя менять, часть CSS молча игнорируется, часть — ограничена капами, а часть применяется, но тогда кнопка просто перестаёт работать. Браузер впервые принудительно следит за тем, чтобы элемент нельзя было спрятать и обмануть пользователя.
Дэвид Бушелл разбирает AT Protocol (технологию под капотом Bluesky) и объясняет её преимущество: все данные хранятся на личном сервере пользователя (PDS), их можно перенести в любой момент, а один аккаунт работает сразу в нескольких приложениях (Bluesky, Leaflet, Tangled). Девид уже построил на этом своё приложение и по ходу объясняет, как устроена OAuth-авторизация через PDS и почему AT Protocol делает сценарий «убить сторонние приложения как Twitter» технически затруднительным.
Статья подготовлена при поддержке @CosyFrontend, @alexbraun и @DreamShaded.