diff --git a/AGENTS.md b/AGENTS.md index 7a5ef40..2e42e1a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2227,8 +2227,8 @@ session with **no other memory of this project**. So: retries, then one full reload per session, so a chunk-load failure self-heals instead of showing the error boundary. - **Baselines** (verified 2026-10-29): `npm test` → **0 errors, 0 warnings**, - **150 tests**, build ok. The gate also type-checks the CVM server - (`tsc -p cvm-server/tsconfig.json`). `package.json` version **1.7.38**. + **156 tests**, build ok. The gate also type-checks the CVM server + (`tsc -p cvm-server/tsconfig.json`). `package.json` version **1.7.40**. - ✅ Lint is **clean**: `no-explicit-any` = 0 · `react-hooks/exhaustive-deps` = 0 · `no-unused-vars` = 0 · `react-refresh` = 0. Non-component exports were **split into their own modules** (`contexts/language.ts`, `lib/sortOptions.ts`, @@ -2688,6 +2688,16 @@ Rules: hidden on `/become`, create/edit and `/supporters` forms; protobufjs override 7.6.5 (only remaining production advisory is write-only xlsx). APK sha256 `c5975f8b…`, versionCode 10738. Web forced live at `41f420a`. + - **1.7.39 (2026-10-30):** replaced write-only SheetJS `xlsx` with a small + local OOXML writer (`lib/xlsx.ts` + fflate); `npm audit --omit=dev` is now + **0 vulnerabilities**. Personal profiles have a **Lab services** strip + linking their Lab profiles. Added parser/XLSX tests (156 tests). APK + sha256 `1202aded…`, versionCode 10739. Web forced live at `6aba9b3`. + - **1.7.40 (2026-10-30):** native boot fix for the white/black reload loop — + `boot-guard.js` and `registerAppServiceWorker` clear stale + `skate-spots-shell-*` service workers/caches on the Capacitor + `https://localhost` origin before the bundle runs. APK sha256 `162488b5…`, + versionCode 10740. Web forced live at `44be542`. ### Relay archive (dataset backup) - **Transfer content between keys (`scripts/transfer-content.mjs`, 2026-10-04):** @@ -2748,6 +2758,11 @@ Rules: and enables them. Logs: `journalctl --user -u skatespots-archive`. - Commits touching only `scripts/`, `*.md`, `cvm-server/`, `skills/`, `.agents/` are **skipped by the deploy timer** → no Netlify credits spent. +- **XLSX writer without SheetJS (2026-10-30):** the only SheetJS use was the + deck-cost **export** (write-only). It is now `src/lib/xlsx.ts` using `fflate` + to emit a minimal OOXML workbook (inline strings, multi-sheet, safe names). + `xlsx` was removed; production `npm audit --omit=dev` is **0**. Keep the + writer write-only; never parse untrusted XLSX with it. - **Dependency updates + vulnerability scan (2026-10-12):** `scripts/update-deps.sh` runs `npm outdated` + `npm audit` (dated report in `~/.local/state/skatespots-deps/`), applies **non-breaking** updates only (`npm update` + `npm audit fix`, never