Drop the pull_request trigger (the branch push already validates the commit),
drop the second npm run build from the lint job (the image build compiles it),
and build the image on arm64 after the cheap checks pass. The CI publishes it
as inputs-<hash>, so the merge to main only re-tags it.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
CHANGELOG.md in Portuguese, from the project history. The release job builds its
notes from the matching section. The new files are excluded from the image hash,
so the published image is reused. README points at the Gitea repository.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The release workflow hashes everything that goes into the image build and skips
CI and the build when the registry already has an image for that hash, so a docs
or tooling change, or a version tag, only re-points the tags. ci.yml no longer
runs on main by push: release.yml calls it when a build is needed, and running
both repeated the same suite on the same commit.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Next standalone build in three stages, non-root, healthchecked. next 15.5.28
(image-optimiser RCE) with postcss pinned past the copy bundled by next.
release.yml publishes linux/arm64 to the Gitea registry. The book/ directory is
a repository of its own and stays out of the build context.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Linux-only runner, so the Windows and macOS legs and GitHub's audit action are
gone. The Rust toolchain, cargo registry and target directories live on the
runner's persistent toolcache volume. release.yml stays under .github and is
not run by Gitea.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
- Logo em duas cores (teal + cobre), inline no cabeçalho e rodapé para
seguir o tema do site; SVGs estáticos com prefers-color-scheme.
- scripts/generate-favicons.mjs passa a gerar favicons, ícones de app
(maskable), site.webmanifest e a imagem Open Graph 1200x630.
- Manifest com fundo/tema obsidiana e lang pt-BR.
Claude-Session: https://claude.ai/code/session_016W1xmizFcmXLrmabSvfSuc
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
* feat(design): redesign das páginas internas no novo design system
Padroniza todas as páginas e componentes internos nos tokens e primitivos
de app/globals.css, com contraste AAA (7:1) nos dois temas e alvos de toque
de 44px.
- Páginas reescritas: glossário, séries, série, seletor, comparador,
diagnóstico, catálogo, component registry, frameworks, framework, sobre
e a nova 404.
- Componentes: PageHero e SectionHead novos; BoardCard, CodeExample,
PinRestrictions, SeriesTabMenu e ConnectionsDiagram refeitos, com abas
e diálogo acessíveis.
- Remove emojis, cores avulsas por série, caixa alta com tracking, texto
menor que 12px e os pares slate-*/dark:*.
- Comparador: "mostrar só as diferenças" e leitura de ?chips=.
- Corrige overflow em 320/390px e ajusta accent/copper do tema claro
para fechar 7:1.
- scripts/auditar-temas.mjs passa a travar paleta crua, dark:, texto
pequeno, emoji e contraste dos tokens.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016W1xmizFcmXLrmabSvfSuc
* ci: roda lint, auditorias de design e build em cada PR
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016W1xmizFcmXLrmabSvfSuc
---------
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Instala dependências com npm ci ao criar o workspace, copia o .env.local do repositório raiz quando existir e expõe npm run dev no botão Run. Não há serviços persistentes para encerrar no teardown.
O ESP32-P4 tem um LP CPU RISC-V (RV32IMAC, até 40 MHz) que fica ligado no
deep sleep, com 32 KB de LP SRAM; o campo faltava e o site exibia "Não".
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ESP32-P4: dois SAR ADC de 12 bits, 14 canais (ADC1_CH0–7, ADC2_CH0–5),
conforme o datasheet e SOC_ADC_PERIPH_NUM. ESP32: o sensor de temperatura
foi retirado do datasheet em 2018 e não tem driver no ESP-IDF.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Datasheet de pré-lançamento v0.6 (revisão v3.x): 15 a 150 mA ativo,
light sleep de 75 a 800 µA, deep sleep de 12 µA; 400 MHz na v3.x e
360 MHz na v1.x; PSRAM só interna (16 ou 32 MB).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
H2 (datasheet v1.2): light sleep de 25 a 85 µA, deep sleep de 7 µA e
rádio de 24 a 140 mA. H4: preview no ESP-IDF v6.0. SRAM de 384 KB e
40 GPIOs do H4 confirmados na página do produto e no seletor (2026); o
anúncio de 2024 trazia 320 KB e 35 GPIOs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
C5 (v1.2): deep sleep 12 µA, light sleep 60-250 µA, TX até 377 mA em
5 GHz, dois controladores CAN FD. C6 (v1.5): light sleep 35-180 µA.
C61 (v1.0): deep sleep 10 µA, light sleep 50-200 µA.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
C3: até 105 °C (85 °C no C3FN4), pico de TX 335 mA e modem-sleep de
16 a 28 mA (datasheet v2.4). C2: light sleep de 140 µA e modem-sleep de
10,7 a 15,6 mA a 120 MHz (ESP8684 datasheet v2.3).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
S3: light sleep de 240 µA e modem-sleep de 13 a 42 mA (datasheet v2.2).
S31: proteção contra DPA, PSRAM só interna (NRV16/NRV32) e suporte em
preview no ESP-IDF v6.1 (datasheet preliminar v0.2 e FAQ da Espressif).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ESP32 tem Secure Boot V2 a partir da revisão v3.0; C3 a partir da v0.3;
esquemas ECDSA de C2 e C5; H4 com suporte no hardware, ainda não no ESP-IDF.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- CLAUDE.md com as instruções do OpenWolf
- .claude/ com regras, hooks e comandos do OpenWolf
- .gitignore: ignora /book/ (projeto privado à parte) e /.wolf/ (memória local)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Implemented robots.txt to guide search engine indexing.
- Created layout components for the selector and series pages to manage metadata.
- Developed a dynamic sitemap generator based on existing series and frameworks data.
- Centralized SEO information in a new lib/seo.js file to maintain consistency across the site.
- Added SVG logos for branding.
- Introduced DESIGN.md to outline rules for maintaining consistent light and dark themes, including color scales, symmetry rules, and contrast requirements.
- Added PinRestrictions component to display pin usage restrictions based on series data, ensuring accurate representation of pin functionalities.
- Implemented auditing script (auditar-temas.mjs) to check for theme consistency issues, including nonexistent tones, inverted pairs, low contrast, and inline fixed colors.