@bongos/core 1.19.855 → 1.19.857

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/.bongos-core.json CHANGED
@@ -2,11 +2,11 @@
2
2
  "artifact": "bongos-core",
3
3
  "manifest_schema": 1,
4
4
  "generator": "scripts/gds/package-core.js",
5
- "core_version": "1.19.855",
6
- "core_contract": "1.19.855",
7
- "source_commit": "ea9bbb312aedb67961f643df3927bd9c3611d451",
5
+ "core_version": "1.19.857",
6
+ "core_contract": "1.19.857",
7
+ "source_commit": "b591a81b627f40ec9e0d235d201b1f54f21ea1bf",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-09-17T21:30:54.480Z",
9
+ "built_at": "2026-09-17T21:51:29.538Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
12
  "docs_redacted": 498,
@@ -17,7 +17,7 @@
17
17
  "gate": "passed"
18
18
  },
19
19
  "file_count": 2804,
20
- "tree_sha256": "f9cc99e0ebd1bf3f55d448b2204c056c832f6360a4941393b640f1db34e99093",
20
+ "tree_sha256": "6d87cce28c4d7d99fab00dce29c6654aa1e59ebbff7c20ece7de301410c34332",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/ask-for-help/SKILL.md",
@@ -452,7 +452,7 @@
452
452
  {
453
453
  "path": "docs/adr/0008-family-based-tile-generation.md",
454
454
  "mode": "0000644",
455
- "sha256": "6742a4c2b85ca10e4c21759d664cea87e8bd6c03f404ab16312cd4266355df8d"
455
+ "sha256": "7440b1e58ca873eb2b47fdb93dffd97a17d04a3df4729434e8a249068fd3eaaa"
456
456
  },
457
457
  {
458
458
  "path": "docs/adr/0008-google-chat-oauth-user-auth.md",
@@ -2592,7 +2592,7 @@
2592
2592
  {
2593
2593
  "path": "docs/module-api-changelog.md",
2594
2594
  "mode": "0000644",
2595
- "sha256": "e272f0cf7f1826cdfedeb48806e9cec9caf6b926793d5308d5de9e137d47cb76"
2595
+ "sha256": "6039f82c978097f35c3be7357b99c225fd678ca31692b09a130a5389112735dd"
2596
2596
  },
2597
2597
  {
2598
2598
  "path": "docs/modules-contract.md",
@@ -7917,12 +7917,12 @@
7917
7917
  {
7918
7918
  "path": "package-lock.json",
7919
7919
  "mode": "0000644",
7920
- "sha256": "7e2895e4342846fb96f477f37493b4f813d0562e1882a7ce204f54c2787bc815"
7920
+ "sha256": "73c27e08b25249cef8ec8eb6a17f45c8f73c6eb75459aa852129456893485446"
7921
7921
  },
7922
7922
  {
7923
7923
  "path": "package.json",
7924
7924
  "mode": "0000644",
7925
- "sha256": "11f9ed62bce433c5f300faa1c4c052b810276df34ec1dcdca2d022a6e04e6370"
7925
+ "sha256": "6a45a64683e79505a88ad297424ff463068def3a2b92ba9a417b7d119941640a"
7926
7926
  },
7927
7927
  {
7928
7928
  "path": "public-docs/index.html",
@@ -8287,7 +8287,7 @@
8287
8287
  {
8288
8288
  "path": "scripts/gds/copy-inventory.js",
8289
8289
  "mode": "0000644",
8290
- "sha256": "7269164648fc1d00e1bf3272a82f933a5f8da228e562e00848dbc29c671d3e94"
8290
+ "sha256": "5317a97fce3dfe9cd4101bb0d8fd7928fdd6ab2298297e2e42ec0f859a2f34f5"
8291
8291
  },
8292
8292
  {
8293
8293
  "path": "scripts/gds/coreB-carve-proof.sh",
@@ -9867,7 +9867,7 @@
9867
9867
  {
9868
9868
  "path": "src/module-api.js",
9869
9869
  "mode": "0000644",
9870
- "sha256": "210e06e3e19060630a7d73a98aeceb948eb47b6690435d5ad8b624b0b1f05bc2"
9870
+ "sha256": "f3e4186d676d49a57c8b8cbe857c25c0632ebf7e6f0991380ee746d995b75e45"
9871
9871
  },
9872
9872
  {
9873
9873
  "path": "src/module-loader/catalog.js",
@@ -10717,7 +10717,7 @@
10717
10717
  {
10718
10718
  "path": "tests/copy_inventory.mjs",
10719
10719
  "mode": "0000644",
10720
- "sha256": "716aa03c5e93b71aec0c7e6fe646e5abd702b8b6ffda0ef6235a804d2c17a0ca"
10720
+ "sha256": "e621021bdab92a17c9f0f0760ced4c2f2c955ef3df91fb584a7a398c46a717aa"
10721
10721
  },
10722
10722
  {
10723
10723
  "path": "tests/core_upgrade_door.mjs",
@@ -3,7 +3,7 @@
3
3
  - **Status:** Accepted
4
4
  - **Date:** 2026-05-09
5
5
  - **Deciders:** Lars
6
- - **Supersedes (in part):** the per-tile generation flow described in the Phase-1 pixel-art pipeline (see [docs/recipes/pixel-art-pipeline.md](../recipes/pixel-art-pipeline.md)), which remains in service for atomic tiles that have not yet been migrated.
6
+ - **Supersedes (in part):** the per-tile generation flow described in the Phase-1 pixel-art pipeline (see `docs/recipes/pixel-art-pipeline.md` — host content, stripped from the neutral core at extraction in b6ee5d29, so the path no longer resolves here), which remains in service for atomic tiles that have not yet been migrated.
7
7
 
8
8
  ## Context
9
9
 
@@ -2184,5 +2184,9 @@ is load-bearing: the script throws rather than guess if it is missing, and
2184
2184
  landed since 1.19.853 with no explicit bump. run 35276402271. (task 1002620)
2185
2185
  1.19.855 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
2186
2186
  landed since 1.19.854 with no explicit bump. run 35277047800. (task 1002620)
2187
+ 1.19.856 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
2188
+ landed since 1.19.855 with no explicit bump. run 35277927951. (task 1002620)
2189
+ 1.19.857 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
2190
+ landed since 1.19.856 with no explicit bump. run 35278916322. (task 1002620)
2187
2191
  ---------------------------------------------------------------------------
2188
2192
  ```
package/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@bongos/core",
3
- "version": "1.19.855",
3
+ "version": "1.19.857",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@bongos/core",
9
- "version": "1.19.855",
9
+ "version": "1.19.857",
10
10
  "license": "AGPL-3.0-or-later",
11
11
  "dependencies": {
12
12
  "express": "^4.21.2",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bongos/core",
3
- "version": "1.19.855",
3
+ "version": "1.19.857",
4
4
  "description": "Cloud Bongos — the AI-first build platform core (GDS + platform surfaces + module system), installed as a versioned dependency (ADR 0108).",
5
5
  "license": "AGPL-3.0-or-later",
6
6
  "main": "src/platform-server.js",
@@ -40,6 +40,7 @@
40
40
  const fs = require('node:fs');
41
41
  const path = require('node:path');
42
42
  const crypto = require('node:crypto');
43
+ const { sameContent } = require('./gen-freshness'); // eol-insensitive freshness (CRLF checkouts)
43
44
 
44
45
  const REPO_ROOT = path.resolve(__dirname, '..', '..');
45
46
  // Repo-relative paths that end up INSIDE the checked-in artifacts are joined with
@@ -485,30 +486,24 @@ function renderReport(reg) {
485
486
  return L.join('\n');
486
487
  }
487
488
 
488
- // Line-ending-blind view of a file's text, for the --check compare ONLY (task 1003619).
489
- // Why: the generator emits LF, and --check string-compares that against the file on
490
- // disk. A Windows checkout hands back CRLF, so the compare reported STALE forever on
491
- // content that was byte-identical in the index — a permanently red /ship-check gate,
492
- // which teaches builders to wave past the one check that catches a REAL stale artifact.
493
- // .gitattributes now pins this pair to eol=lf, but that only governs FUTURE checkouts:
494
- // a file already sitting CRLF in an existing worktree stays CRLF until renormalized,
495
- // so the checker must not care either way. Freshness is a question about CONTENT.
496
- // Not used on the write path — generated files are still written with LF endings.
497
- function lf(s) {
498
- return s.replace(/\r\n/g, '\n');
499
- }
500
-
501
489
  // Is the artifact on disk still what the generator would write? Freshness is a
502
- // question about CONTENT, so CRLF-vs-LF is not a difference — see lf() above for
503
- // why that mattered. A missing file (`have === null`) is stale by definition.
504
- // Only \r\n is folded, NOT a lone \r: no tool in this repo emits classic-Mac
505
- // endings, and treating a bare \r as a newline would let a genuinely corrupt file
506
- // read as fresh. Pure + exported so the decision is unit-testable without writing
507
- // to the committed artifacts (same shape as shouldRefuseSessionClaim in
508
- // modules/lifecycle/routes/claims.js).
490
+ // question about CONTENT, so CRLF-vs-LF is not a difference — the eol-blind compare
491
+ // is gen-freshness.sameContent, shared with the other six generators, and its header
492
+ // carries the full why (task 1003619 hit it here: a Windows checkout reads back the
493
+ // CRLF git wrote, so a byte compare reported STALE forever on content that was
494
+ // byte-identical in the index — a permanently red gate teaches builders to wave past
495
+ // the one check that catches a REAL stale artifact). Only \r\n is folded, NOT a lone
496
+ // \r, so a genuinely corrupt file cannot read as fresh.
497
+ //
498
+ // The one thing that is local, and the reason this wrapper exists rather than a bare
499
+ // sameContent() at the call site: a MISSING file is stale by definition. sameContent
500
+ // would coerce a null `have` to '' and call it fresh against an empty `want`.
501
+ // Not used on the write path — generated files are still written with LF endings.
502
+ // Pure + exported so the decision is unit-testable without writing to the committed
503
+ // artifacts (same shape as shouldRefuseSessionClaim in modules/lifecycle/routes/claims.js).
509
504
  function matchesGenerated(have, want) {
510
505
  if (have === null || have === undefined) return false;
511
- return lf(have) === lf(want);
506
+ return sameContent(have, want);
512
507
  }
513
508
 
514
509
  function write({ check = false } = {}) {
@@ -551,5 +546,5 @@ if (require.main === module) {
551
546
  module.exports = {
552
547
  SURFACES, COPY_ATTRS, BLIND_SPOTS, REGISTRY_REL, REPORT_REL,
553
548
  cmp, stableId, looksLikeCopy, lineIndex, lineAt, stripEmbedded, fromHtml, fromJs, filesFor,
554
- buildRegistry, renderReport, write, lf, matchesGenerated,
549
+ buildRegistry, renderReport, write, matchesGenerated,
555
550
  };
package/src/module-api.js CHANGED
@@ -71,7 +71,7 @@ const { responsibilityFor, ROLE_RESPONSIBILITIES } = require('./role-responsibil
71
71
  // there. scripts/gds/bump-version.js still rewrites the literal below; it appends
72
72
  // the entry to that file. Look for a version's history there, not here.
73
73
  // ---------------------------------------------------------------------------
74
- const CORE_VERSION = '1.19.855'; // CI auto-patch carrier (ADR 0161); changelog: docs/module-api-changelog.md
74
+ const CORE_VERSION = '1.19.857'; // CI auto-patch carrier (ADR 0161); changelog: docs/module-api-changelog.md
75
75
 
76
76
  // A namespaced logger so a module's log lines are attributable + consistent.
77
77
  // Usage: const log = api.logger('dev-box'); log.info('mounted');
Binary file