Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
fb97b48
feat(i18n): gêmea EN do /changelog e idioma honesto nas rotas EN
manazitto Aug 21, 2026
16c34f4
docs(gerados): re-deriva o bloco de scripts após eval:i18ntwins
manazitto Aug 21, 2026
3e836ca
docs(gerados): conta o eval:i18ntwins no arnês (192 → 193)
manazitto Aug 21, 2026
dc29ead
docs(gerados): /whats-new entra na conta das páginas (18 → 19)
manazitto Aug 21, 2026
20749e7
Merge da main em v2/changelog-en-twin (resolve conflitos)
rubenmarcus Aug 21, 2026
c07bc62
Merge da main (alpha.173) em 400: conflito só de arquivo gerado
rubenmarcus Aug 22, 2026
244a10c
Merge da main (alpha.175) em v2/changelog-en-twin
rubenmarcus Aug 22, 2026
d71c5aa
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
ac97432
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 22, 2026
84a2816
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
ea4f19d
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 22, 2026
bcdd5da
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
1c6bfc3
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 22, 2026
b0cd977
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
d28f4a3
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
d5544f0
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 22, 2026
8ac16fd
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
89317e1
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 22, 2026
4aca208
Merge da base (autofix)
csbrasil-BOT Aug 22, 2026
1c8002f
Merge da base (autofix)
csbrasil-BOT Aug 22, 2026
a3f4e67
Merge da base (autofix)
csbrasil-BOT Aug 22, 2026
a34e6b1
Merge da base (autofix)
csbrasil-BOT Aug 22, 2026
dda92c0
Merge da base (conflito só em arquivo gerado, resolvido pelo autofix)
csbrasil-BOT Aug 22, 2026
c30e425
chore(docs): regenera bloco derivado (autofix)
csbrasil-BOT Aug 22, 2026
d1852e4
Merge da base (autofix)
csbrasil-BOT Aug 22, 2026
0e279e0
Merge da base (autofix)
csbrasil-BOT Aug 22, 2026
f763b6a
Merge da base (autofix)
csbrasil-BOT Aug 22, 2026
5c492fd
Merge da base (autofix)
csbrasil-BOT Aug 23, 2026
86a577f
Merge da base (autofix)
csbrasil-BOT Aug 23, 2026
3f9e511
Merge da base (autofix)
csbrasil-BOT Aug 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions ARCH.generated.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ Números atuais das zonas, do quality gate e do `package.json`:

| Zona | O que é | Tamanho medido | Regra |
|---|---|---|---|
| `public/` | o **jogo** | 44 arquivos `.js`, 32.001 linhas · Three.js `r160` vendorizado | ES modules servidos crus, **zero build**, sem dependência de runtime |
| `src/` | o **site** | 18 páginas `.astro`, 21 rotas `/api` · Astro `^7.1.1` | framework é bem-vindo; `service_role` só no servidor |
| `tools/` | o **arnês** | 201 scripts em `tools/eval/`, 55 em `tools/` | node puro: sobe o jogo real sem browser |
| `public/` | o **jogo** | 46 arquivos `.js`, 32.430 linhas · Three.js `r160` vendorizado | ES modules servidos crus, **zero build**, sem dependência de runtime |
| `src/` | o **site** | 19 páginas `.astro`, 21 rotas `/api` · Astro `^7.1.1` | framework é bem-vindo; `service_role` só no servidor |
| `tools/` | o **arnês** | 204 scripts em `tools/eval/`, 55 em `tools/` | node puro: sobe o jogo real sem browser |

**Não existe `public/index.html`.** O HTML do jogo é `src/pages/index.astro`, servido na rota `/`. Servir `public/` estaticamente entrega os arnêses visuais, **não o jogo** — é a pegadinha que custa a primeira hora de todo mundo.

Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ contra bots, direto na aba. Sem download, sem instalação, sem cadastro.

| O que | Quanto | Onde confere |
|---|---:|---|
| Código do jogo | 32.001 linhas em 44 arquivos | `git ls-files public/js/*.js \| xargs wc -l` |
| Código do jogo | 32.430 linhas em 46 arquivos | `git ls-files public/js/*.js \| xargs wc -l` |
| `game.js` | **6.910** linhas | `wc -l public/js/game.js` |
| `main.js` | 2.698 linhas | `wc -l public/js/main.js` |
| Armas com GLB | 26 | `git ls-files 'public/models/weapons/*.glb' \| wc -l` |
Expand All @@ -44,7 +44,7 @@ contra bots, direto na aba. Sem download, sem instalação, sem cadastro.
| Personagens jogáveis | 44, em 5 facções | array `CHARACTERS` de `characters.js` |
| Mapas no registro | 12 | objeto `MAPS` de `maps.js` |
| Arnêses visuais em HTML | 15 | `git ls-files 'public/*.html' \| wc -l` |
| Scripts do arnês | 201 | `git ls-files 'tools/eval/*.mjs' 'tools/eval/*.py' \| wc -l` |
| Scripts do arnês | 204 | `git ls-files 'tools/eval/*.mjs' 'tools/eval/*.py' \| wc -l` |
| Scripts de pipeline | 55 | `git ls-files 'tools/*.mjs' \| wc -l` |
| Tarefas de entrada escritas | 26 | `git ls-files 'docs/issues/[0-9]*.md' \| wc -l` |
| Versão | `2.0.0-alpha.184` | `public/js/version.js` e `package.json` (batem) |
Expand Down Expand Up @@ -89,7 +89,7 @@ arquitetura): `cd docs && npm install && npm start` → <http://localhost:3000/d
| Camada | Ferramenta | Versão |
|---|---|---|
| Motor 3D (WebGL) | **Three.js**, vendorizado | `r160` |
| Jogo | ES modules vanilla, **zero build** | 44 arquivos |
| Jogo | ES modules vanilla, **zero build** | 46 arquivos |
| Site | **Astro** com SSR | `^7.1.1` |
| Hospedagem | adapter **Vercel** | `^11.0.6` |
| Banco | **Postgres gerenciado** (RLS; schema privado, fora do repo) | `^2.110.7` |
Expand All @@ -100,7 +100,7 @@ arquitetura): `cd docs && npm install && npm start` → <http://localhost:3000/d
| Esta documentação | **Docusaurus** | `3.6.3` |
| Runtime de CI | **Node** | `22` |

Three.js sai de `public/vendor/three.module.js` (**sem CDN, sem npm no runtime**). Astro e Vercel de `package.json` + `astro.config.mjs` + `vercel.json`. Dos scripts de `tools/`, **110** importam Playwright, **39** importam gltf-transform e **4** importam meshoptimizer.
Three.js sai de `public/vendor/three.module.js` (**sem CDN, sem npm no runtime**). Astro e Vercel de `package.json` + `astro.config.mjs` + `vercel.json`. Dos scripts de `tools/`, **111** importam Playwright, **39** importam gltf-transform e **4** importam meshoptimizer.

> Bloco gerado por `node tools/gen-docs.mjs`. Fonte: `dependencies/devDependencies do package.json · REVISION de public/vendor/three.module.js`

Expand Down
8 changes: 8 additions & 0 deletions SCRIPTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,14 @@ Contrato de produção do BotBrain: coleta opt-in autenticada por UID, limites c
npm run eval:botbrain
```

## `eval:i18ntwins`

Pares PT↔EN numa tabela só (`src/lib/i18n-pairs.ts`): hreflang, `html lang`, og:locale, sitemap e o parser único do changelog. A gêmea do `/changelog` é `/whats-new`; o cromo é EN e o corpo continua o `CHANGELOG.md`. Mutantes: sem-par|sem-redirect|chrome-pt|lang-pt|sem-sitemap|parser-dup.

```bash
npm run eval:i18ntwins
```

## `eval:posters`

O aspecto declarado de cada cartaz em POSTER_FILES (textures.js) bate com o pixel do arquivo em public/posters/? Erro >6% = arte esticada na parede (issue #79). `--mutate` estraga um número e prova que a régua morde.
Expand Down
54 changes: 54 additions & 0 deletions SESSAO-2026-08-20-issue-382-nick-cheat.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Sessão 2026-08-20 — issue #382: nick de quem tenta cheat no crash report

## Estado ao desconectar

- Branch: `main`, atualizada com `origin/main` (ff de 181 commits, até `ed59dfc`).
- Trabalho da branch `fix/perf-fps-medida-em-partida` está **guardado no `stash@{0}`**
(mensagem: "wip fix/perf-fps-medida-em-partida (stash p/ issue 382)").
Para recuperar: `git checkout fix/perf-fps-medida-em-partida && git stash pop`.
- Correção da #382 **aplicada, verificada (54/54 no check:fast), mas NÃO commitada**.
Falta decidir: commit direto na `main` ou branch/PR.

## O que a issue era

Alguém colou no console o script de cheat `cheat-demo`, que faz
`console.error("ainda sem window.__game…")`. O hook de console do `index.astro`
reportou pro `/api/jserror` e o `crash-fix.yml` abriu a issue automática — mas
sem nick, sem saber QUEM.

## Causa raiz

`src/pages/index.astro` (`contexto()`) lia `g.nickname` — campo que o `game.js`
**nunca grava** na instância (o construtor só usa o parâmetro `nickname` inline
em `player.name`, game.js:629). `undefined` calado: todo erro em partida chegava
sem dono.

## O que foi mudado (4 arquivos, +61/−4)

1. `src/pages/index.astro` — `contexto()` lê o nick de `localStorage['awpbr_nick']`
(mesma chave `NICK_KEY` de `main.js:30`); fallback do `#nick-input` no menu
continua. Não mexeu em `game.js` (zona vermelha).
2. `src/pages/api/jserror.ts` — `nick` virou const; `client_payload` do dispatch
agora leva `nick` + `anonId` (anonId validado por UUID_RE).
3. `.github/workflows/crash-fix.yml` — corpo da issue ganha `**Nick:**` e `**Anon:**`.
4. `tools/eval/error-provenance-check.mjs` — invariante nova **EP14**: executa o
`contexto()` real com `__game` sem o campo e prova nick→payload→issue.
Mutantes novos (ambos vermelhos, como manda a lei 3): `nick-do-game` e
`nick-sem-issue`.

## Verificação já feita

- `node tools/eval/error-provenance-check.mjs` → verde (EP1–EP14).
- Mutantes `nick-do-game` e `nick-sem-issue` → vermelhos na EP14 (a régua morde).
- `syntax`, `error-console`, `telemetry` → verdes.
- `npm run check:fast` → **54/54** (50.6s).
- Sem migration: a tabela `js_error` já tinha a coluna `nick`.

## Ao voltar (pendências)

1. Decidir destino do diff: commit na `main` ou branch/PR (hook exige trailer
`Agent:` — automático; diff está dentro do limite de 15 arq/800 linhas).
2. Recuperar o stash da branch de perf se for continuar nela depois.
3. Opcional: comentar na issue #382 que a correção subiu (ela só passa a
mostrar nick nas **próximas** ocorrências; as linhas antigas da tabela
`js_error` seguem sem nick).
4 changes: 2 additions & 2 deletions STATUS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

- **Versão:** `2.0.0-alpha.184`
- **Conteúdo jogável:** 5 facções, 44 personagens, 12 mapas e 26 armas com GLB
- **Código do jogo:** 32.001 linhas em 44 módulos JavaScript
- **Automação:** 124 comandos npm, 201 scripts de avaliação e 55 scripts de pipeline
- **Código do jogo:** 32.430 linhas em 46 módulos JavaScript
- **Automação:** 124 comandos npm, 204 scripts de avaliação e 55 scripts de pipeline

> Bloco gerado por `node tools/gen-docs.mjs`. Fonte: `package.json · CHARACTERS · MAPS · public/models/weapons · public/js · tools/`

Expand Down
2 changes: 1 addition & 1 deletion docs/docs/arquitetura.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ Tamanho dos arquivos que o `gen-arch.mjs` indexa — bloco gerado, regenerado po
| `public/js/weapons.js` | 346 |
| `public/js/springs.js` | 260 |

Total de `public/js/`: **32.001 linhas em 44 arquivos**. O índice símbolo→linha, com a tabela de conflito, é outro bloco gerado: `tools/eval/ARCH.md` (`npm run arch`).
Total de `public/js/`: **32.430 linhas em 46 arquivos**. O índice símbolo→linha, com a tabela de conflito, é outro bloco gerado: `tools/eval/ARCH.md` (`npm run arch`).

> Bloco gerado por `node tools/gen-docs.mjs`. Fonte: ``git ls-files public/js/*.js | xargs wc -l``

Expand Down
2 changes: 1 addition & 1 deletion docs/docs/colaborar.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ O número abaixo não é retórica, e não é escrito à mão: sai de `git short

{/* BEGIN:GERADO:pessoas — não edite à mão, rode `npm run docs` */}

**11 identidades de autoria humana** assinam commit no histórico **desta branch**: `ruben-cytonic`, `Ruben`, `Emerson Garrido`, `rubenmarcus`, `Ruben Marcus`, `William Oliveira`, `Juan Versolato Lopes`, `daeeseD`, `matheusgb`, `Maná Soares`, `daltonfontes`. O resto dos commits é assinado por agentes de IA. Branch não é repositório: quem contribuiu num ramo que esta branch não contém **não aparece aqui**.
**11 identidades de autoria humana** assinam commit no histórico **desta branch**: `ruben-cytonic`, `Ruben`, `Emerson Garrido`, `rubenmarcus`, `Ruben Marcus`, `William Oliveira`, `Juan Versolato Lopes`, `Maná Soares`, `daeeseD`, `matheusgb`, `daltonfontes`. O resto dos commits é assinado por agentes de IA. Branch não é repositório: quem contribuiu num ramo que esta branch não contém **não aparece aqui**.

> Bloco gerado por `node tools/gen-docs.mjs`. Fonte: `git shortlog -sn --no-merges (descontando autores que são agentes)`

Expand Down
4 changes: 2 additions & 2 deletions docs/docs/comecando.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ esta página envelhecia no primeiro commit — ver

| O que | Quanto | Onde confere |
|---|---:|---|
| Código do jogo | 32.001 linhas em 44 arquivos | `git ls-files public/js/*.js \| xargs wc -l` |
| Código do jogo | 32.430 linhas em 46 arquivos | `git ls-files public/js/*.js \| xargs wc -l` |
| `game.js` | **6.910** linhas | `wc -l public/js/game.js` |
| `main.js` | 2.698 linhas | `wc -l public/js/main.js` |
| Armas com GLB | 26 | `git ls-files 'public/models/weapons/*.glb' \| wc -l` |
Expand All @@ -49,7 +49,7 @@ esta página envelhecia no primeiro commit — ver
| Personagens jogáveis | 44, em 5 facções | array `CHARACTERS` de `characters.js` |
| Mapas no registro | 12 | objeto `MAPS` de `maps.js` |
| Arnêses visuais em HTML | 15 | `git ls-files 'public/*.html' \| wc -l` |
| Scripts do arnês | 201 | `git ls-files 'tools/eval/*.mjs' 'tools/eval/*.py' \| wc -l` |
| Scripts do arnês | 204 | `git ls-files 'tools/eval/*.mjs' 'tools/eval/*.py' \| wc -l` |
| Scripts de pipeline | 55 | `git ls-files 'tools/*.mjs' \| wc -l` |
| Tarefas de entrada escritas | 26 | `git ls-files 'docs/issues/[0-9]*.md' \| wc -l` |
| Versão | `2.0.0-alpha.184` | `public/js/version.js` e `package.json` (batem) |
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/quality-gates.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ PR (`.github/workflows/ci.yml`).
{/* BEGIN:GERADO:invariantes — não edite à mão, rode `npm run docs` */}

- `tools/eval/invariants.mjs`: **2.275 linhas**, **65 identificadores de invariante declarados** (`put()`), dos quais **28** têm caminho de `skip()` declarado.
- O arnês inteiro são **201 scripts** em `tools/eval/` (`.mjs` + `.py`), mais **55 scripts** de pipeline em `tools/`.
- O arnês inteiro são **204 scripts** em `tools/eval/` (`.mjs` + `.py`), mais **55 scripts** de pipeline em `tools/`.
- Quantas invariantes rodam como **críticas** numa execução **não é derivável do fonte**: depende de qual insumo existe na máquina (o JSON do auditor de viewmodel, um GLB, uma pasta de anims). Esse número só sai rodando o quality gate — e o lugar dele é o cabeçalho do `KNOWN-BUGS.md`, atualizado com saída real.

Reproduza:
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/stack.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ a partir do `package.json`, do `docs/package.json` e do próprio Three.js vendor
| Camada | Ferramenta | Versão |
|---|---|---|
| Motor 3D (WebGL) | **Three.js**, vendorizado | `r160` |
| Jogo | ES modules vanilla, **zero build** | 44 arquivos |
| Jogo | ES modules vanilla, **zero build** | 46 arquivos |
| Site | **Astro** com SSR | `^7.1.1` |
| Hospedagem | adapter **Vercel** | `^11.0.6` |
| Banco | **Postgres gerenciado** (RLS; schema privado, fora do repo) | `^2.110.7` |
Expand All @@ -28,7 +28,7 @@ a partir do `package.json`, do `docs/package.json` e do próprio Three.js vendor
| Esta documentação | **Docusaurus** | `3.6.3` |
| Runtime de CI | **Node** | `22` |

Three.js sai de `public/vendor/three.module.js` (**sem CDN, sem npm no runtime**). Astro e Vercel de `package.json` + `astro.config.mjs` + `vercel.json`. Dos scripts de `tools/`, **110** importam Playwright, **39** importam gltf-transform e **4** importam meshoptimizer.
Three.js sai de `public/vendor/three.module.js` (**sem CDN, sem npm no runtime**). Astro e Vercel de `package.json` + `astro.config.mjs` + `vercel.json`. Dos scripts de `tools/`, **111** importam Playwright, **39** importam gltf-transform e **4** importam meshoptimizer.

> Bloco gerado por `node tools/gen-docs.mjs`. Fonte: `dependencies/devDependencies do package.json · REVISION de public/vendor/three.module.js`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ Size of the files `gen-arch.mjs` indexes — a generated block, regenerated by
| `public/js/weapons.js` | 346 |
| `public/js/springs.js` | 260 |

Total in `public/js/`: **32,001 lines in 44 files**. The symbol-to-line index lives in `tools/eval/ARCH.md`.
Total in `public/js/`: **32,430 lines in 46 files**. The symbol-to-line index lives in `tools/eval/ARCH.md`.

> Block generated by `node tools/gen-docs.mjs`. Source: ``wc -l public/js/*.js``

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The number below is not rhetoric, and it is not hand-written: it comes from `git

{/* BEGIN:GERADO:pessoas — não edite à mão, rode `npm run docs` */}

**11 human author identities** sign commits in this branch: `ruben-cytonic`, `Ruben`, `Emerson Garrido`, `rubenmarcus`, `Ruben Marcus`, `William Oliveira`, `Juan Versolato Lopes`, `daeeseD`, `matheusgb`, `Maná Soares`, `daltonfontes`. Automated identities are excluded. A Git author name is not necessarily one unique person.
**11 human author identities** sign commits in this branch: `ruben-cytonic`, `Ruben`, `Emerson Garrido`, `rubenmarcus`, `Ruben Marcus`, `William Oliveira`, `Juan Versolato Lopes`, `Maná Soares`, `daeeseD`, `matheusgb`, `daltonfontes`. Automated identities are excluded. A Git author name is not necessarily one unique person.

> Block generated by `node tools/gen-docs.mjs`. Source: `git shortlog -sn --no-merges (descontando autores que são agentes)`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ this page was aging at the very first commit — see

| What | How much | Where to check |
|---|---:|---|
| Game code | 32,001 lines in 44 files | `git ls-files public/js/*.js \| xargs wc -l` |
| Game code | 32,430 lines in 46 files | `git ls-files public/js/*.js \| xargs wc -l` |
| `game.js` | **6,910** lines | `wc -l public/js/game.js` |
| `main.js` | 2,698 lines | `wc -l public/js/main.js` |
| Weapons with GLB | 26 | `git ls-files 'public/models/weapons/*.glb' \| wc -l` |
Expand All @@ -51,7 +51,7 @@ this page was aging at the very first commit — see
| Playable characters | 44, in 5 factions | `CHARACTERS` array in `characters.js` |
| Maps in the registry | 12 | `MAPS` object in `maps.js` |
| Visual harnesses in HTML | 15 | `git ls-files 'public/*.html' \| wc -l` |
| Harness scripts | 201 | `git ls-files 'tools/eval/*.mjs' 'tools/eval/*.py' \| wc -l` |
| Harness scripts | 204 | `git ls-files 'tools/eval/*.mjs' 'tools/eval/*.py' \| wc -l` |
| Pipeline scripts | 55 | `git ls-files 'tools/*.mjs' \| wc -l` |
| Written entry tasks | 26 | `git ls-files 'docs/issues/[0-9]*.md' \| wc -l` |
| Version | `2.0.0-alpha.184` | `public/js/version.js` and `package.json` (match) |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ PR (`.github/workflows/ci.yml`).
{/* BEGIN:GERADO:invariantes — não edite à mão, rode `npm run docs` */}

- `tools/eval/invariants.mjs`: **2,275 lines**, **65 declared invariant identifiers**, with **28** declared `skip()` paths.
- The harness contains **201 scripts** in `tools/eval/`, plus **55 pipeline scripts** in `tools/`.
- The harness contains **204 scripts** in `tools/eval/`, plus **55 pipeline scripts** in `tools/`.
- The number of critical checks in one run depends on the inputs present on that machine; dated results belong in `KNOWN-BUGS.md`.

```bash
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ from `package.json`, `docs/package.json` and the vendored Three.js itself.
| Layer | Tool | Version |
|---|---|---|
| 3D engine (WebGL) | **Three.js**, vendored | `r160` |
| Game | vanilla ES modules, **zero build** | 44 files |
| Game | vanilla ES modules, **zero build** | 46 files |
| Site | **Astro** with SSR | `^7.1.1` |
| Hosting | **Vercel** adapter | `^11.0.6` |
| Database | **managed Postgres** (RLS; private schema) | `^2.110.7` |
Expand All @@ -31,7 +31,7 @@ from `package.json`, `docs/package.json` and the vendored Three.js itself.
| This documentation | **Docusaurus** | `3.6.3` |
| CI runtime | **Node** | `22` |

Three.js comes from `public/vendor/three.module.js`. Of the scripts in `tools/`, **110** import Playwright, **39** import gltf-transform, and **4** import meshoptimizer.
Three.js comes from `public/vendor/three.module.js`. Of the scripts in `tools/`, **111** import Playwright, **39** import gltf-transform, and **4** import meshoptimizer.

> Block generated by `node tools/gen-docs.mjs`. Source: `dependencies/devDependencies do package.json · REVISION de public/vendor/three.module.js`

Expand Down
Binary file added public/img/textures/sky_brasilia.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/textures/sky_ferrovelho.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/textures/sky_havan.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/textures/sky_pool.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/img/textures/sky_quebrada.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading