diff --git a/.agents/memory/app-containers-and-ci.md b/.agents/memory/app-containers-and-ci.md deleted file mode 100644 index 58f77cc..0000000 --- a/.agents/memory/app-containers-and-ci.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -description: Containerfiles build the frontend in a node:24-alpine stage with npm ci and vp build; CI uses setup-vp and runs vp check, vp build, vp test (plus lit-check) ---- - -## Containerfiles - -- The frontend build stage is `docker.io/library/node:24-alpine`, replacing - `denoland/deno:alpine`. Vite+ publishes `linux-x64-musl` binaries, so Alpine - works. (`ghcr.io/voidzero-dev/vite-plus` is a glibc alternative that would - need a pinned digest; not used.) -- The stage copies `package.json` and `package-lock.json` first, runs - `npm ci`, then copies the sources and configs and runs `npx vp build`. -- The runtime stage copies the built `js/` and `css/` directories (not single - files) from the node stage. -- No Deno binary, `deno install`, or `deno task` remains in any stage. - -```dockerfile -FROM docker.io/library/node:24-alpine AS frontend -WORKDIR /src/frontend -COPY frontend/package.json frontend/package-lock.json ./ -RUN npm ci -COPY frontend/ ./ -RUN npx vp build -``` - -## CI - -- GitHub repos (temeddix): `.github/workflows`. Capsulizers repos (Gitea): - `.gitea/workflows`. Don't move a repo's CI between hosts. -- Install with `voidzero-dev/setup-vp`, then run `vp check`, `vp build`, and - `vp test`; Lit repos also run `npm run lit-check` - ([[lit-analyzer-ts6]]). -- Repos that ran CI on a self-hosted runner keep it. -- Until `@cunarist/eslint-plugin-*` are on npm, `npm ci` fails in CI. That is - expected and stated in the PR; run `npm install` once they are published - and commit the refreshed lockfile. diff --git a/.agents/memory/app-generated-js-as-ts.md b/.agents/memory/app-generated-js-as-ts.md deleted file mode 100644 index 39b0b4a..0000000 --- a/.agents/memory/app-generated-js-as-ts.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -description: Code that must ship as standalone JS (memona framed_find.js, brain stream-recovery.js) is written as .ts, compiled at build time, and its output gitignored ---- - -Some apps ship plain JavaScript that runs outside the main bundle: memona's -`framed_find.js` and brain's `stream-recovery.js`. Under the TS-only rule -([[ts-only-files-and-imports]]) they are handled like this (2026-10-16): - -- The source is a `.ts` file, linted and type-checked like everything else. -- The `.js` is produced at build time by the existing build (a Vite input or - a build step in `vite.config.ts` or `scripts/`), never committed. -- The output path is gitignored and, if it lands in a linted folder, listed - in `lint.ignorePatterns`; never in `overrides`, never with disable comments. -- Whatever loads the file (Rust `include_str!`, a container `COPY`, an HTML - `