@evinvest/kitstart 0.20.0 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -45,7 +45,7 @@ brand's `flake.nix` is its own config plus one call — `template/flake.nix` is
45
45
  the whole of one:
46
46
 
47
47
  ```nix
48
- inputs.ev.url = "github:EV-invest/lib?ref=@evinvest/kitstart-v0.20.0"; # the version in package-lock.json
48
+ inputs.ev.url = "github:EV-invest/lib?ref=@evinvest/kitstart-v0.20.1"; # the version in package-lock.json
49
49
  inputs.ev.inputs.v_flakes.follows = "v_flakes";
50
50
 
51
51
  landing = ev.lib.mkLanding {
@@ -61,6 +61,7 @@ landing = ev.lib.mkLanding {
61
61
  checkKitstartVersion ? true,
62
62
  e2eConfig ? "tests/e2e",
63
63
  packageSourceOverrides ? { }, # lock key → `file:`/vendored tarball
64
+ maxOldSpaceMiB ? 72, # V8 old-space cap; raise with cacheMaxMemorySize (16 MB)
64
65
  };
65
66
  # → { site, bundleBudget, packages.{default,site,container}, containers,
66
67
  # checks.{site,bundle-budget}, apps.{default,help,dev,test,accept-test,size,container-smoke},
@@ -25,6 +25,12 @@ export interface LandingOptions {
25
25
  * - `images.unoptimized` + the sharp exclusion — the optimiser would add a
26
26
  * native dependency the Nix image cannot load, for sources already sized;
27
27
  * - `isrFlushToDisk: false` — the server runs from the read-only Nix store, so
28
- * the cache stays in memory, per pod.
28
+ * the cache stays in memory, per pod;
29
+ * - `cacheMaxMemorySize` — that in-memory LRU defaults to 50 MB, and a brand's
30
+ * paths (locales × points × A/B buckets) fill it: aquafix's ~550 pushed the
31
+ * retained heap from 27 to 90 MB and the pod into its 128Mi OOM kill
32
+ * (devops#74). At 16 MB it plateaus at 55 MB. A miss re-renders and refetches
33
+ * the live place, so a brand raising it must raise mkLanding's
34
+ * `maxOldSpaceMiB` (72) too, or V8 dies with a heap OOM instead.
29
35
  */
30
36
  export declare function withLanding(config: NextConfig, options: LandingOptions): NextConfig;
@@ -13,13 +13,20 @@ export { buildEnv, readCard, readMarkPath, readOgPalette, readStringTables } fro
13
13
  * - `images.unoptimized` + the sharp exclusion — the optimiser would add a
14
14
  * native dependency the Nix image cannot load, for sources already sized;
15
15
  * - `isrFlushToDisk: false` — the server runs from the read-only Nix store, so
16
- * the cache stays in memory, per pod.
16
+ * the cache stays in memory, per pod;
17
+ * - `cacheMaxMemorySize` — that in-memory LRU defaults to 50 MB, and a brand's
18
+ * paths (locales × points × A/B buckets) fill it: aquafix's ~550 pushed the
19
+ * retained heap from 27 to 90 MB and the pod into its 128Mi OOM kill
20
+ * (devops#74). At 16 MB it plateaus at 55 MB. A miss re-renders and refetches
21
+ * the live place, so a brand raising it must raise mkLanding's
22
+ * `maxOldSpaceMiB` (72) too, or V8 dies with a heap OOM instead.
17
23
  */
18
24
  export function withLanding(config, options) {
19
25
  return {
20
26
  poweredByHeader: false,
21
27
  output: "standalone",
22
28
  expireTime: 86_400,
29
+ cacheMaxMemorySize: 16 * 1024 * 1024,
23
30
  ...config,
24
31
  env: { ...buildEnv(options.root), ...config.env },
25
32
  images: { unoptimized: true, ...config.images },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evinvest/kitstart",
3
- "version": "0.20.0",
3
+ "version": "0.20.1",
4
4
  "description": "Landing-site machinery for local-service brands: a site composition root, the Place/Presence/ServiceArea model with a publication gate, host/locale routing, schema.org and SEO builders, the lead funnel with its antispam, and analytics events. Pure core at '.', more subpaths per runtime.",
5
5
  "license": "BlueOak-1.0.0",
6
6
  "publishConfig": {
@@ -3,7 +3,7 @@
3
3
  v_flakes.url = "github:valeratrades/v_flakes?ref=v1.6";
4
4
  # The lib flake at the tag of the @evinvest/kitstart version in
5
5
  # package-lock.json — mkLanding refuses a mismatch.
6
- ev.url = "github:EV-invest/lib?ref=@evinvest/kitstart-v0.20.0";
6
+ ev.url = "github:EV-invest/lib?ref=@evinvest/kitstart-v0.20.1";
7
7
  ev.inputs.v_flakes.follows = "v_flakes";
8
8
  };
9
9