bitflicker64 commented on code in PR #493:
URL: https://github.com/apache/hugegraph-doc/pull/493#discussion_r4051992782


##########
data/landing/community/en.yaml:
##########
@@ -30,9 +35,9 @@ sections:
 
             - [GitHub](https://github.com/apache/hugegraph) — development 
takes place in the Apache HugeGraph repositories.
             - [Developer mailing 
list](/docs/contribution-guidelines/subscribe/) — discuss project and community 
topics.
-            - [Security mailing list](mailto:[email protected]) — 
report security issues privately.
-            - [Security policy](/docs/guides/security/) — follow the project's 
security reporting process.
+            - [Security reporting](mailto:[email protected]) and 
[security policy](/docs/guides/security/) — report issues and follow the 
project's process.
             - [Contribution guidelines](/docs/contribution-guidelines/) — 
learn how to contribute code and documentation.
+            - [Committer resources](https://infra.apache.org/committers.html) 
— open source benefits from OpenAI, Anthropic, GitHub, JetBrains, and others, 
subject to each program's eligibility and terms.

Review Comment:
   ⚠️ The link target doesn't back up this line. 
https://infra.apache.org/committers.html is the Committers' FAQ, and it has no 
mention of OpenAI, GitHub, JetBrains or any vendor program (fetched it today to 
check). The same text is in `data/landing/community/cn.yaml:40`. Listing 
commercial vendors as committer perks on the project's public community page 
also reads as an endorsement, which sits badly with the ASF's vendor-neutral 
stance. Could this entry point at an ASF page that actually lists these offers, 
or drop the vendor names and just link the ASF committer resources?



##########
assets/js/hugegraph-shell.js:
##########
@@ -52,7 +52,7 @@
     if (!buttons.length) return;
     var storage = safeStorage(windowObject);
     var key =
-      'oink.sidebar.v1.' +
+      'oink.sidebar.v2.' +

Review Comment:
   ⚠️ Bumping the storage key to `oink.sidebar.v2.` broke the UI contract at 
`tests/ui-ai/ui-contract.test.cjs:90`, which still asserts 
`/oink\.sidebar\.v1\./`. That is why `e2e` fails on this head (run 35381414495) 
and the required `deploy` gate is red. `test:ci` chains with `&&`, so the 
Playwright suites (platform, ai, accessibility) never ran either, and no 
Playwright run has completed since 225537d, so the hover preview, 
Enter-to-Ask-AI and d25c82d follow-ups have not been exercised in Chromium. 
Reproduced locally with `node --test tests/ui-ai/*.test.cjs` at 401ed8c. Could 
the assertion move to `v2` (or match `oink\.sidebar\.v\d+\.`) so the full e2e 
lane runs again?



##########
assets/js/kapa-adapter.js:
##########
@@ -274,6 +324,19 @@
     }
     documentObject.querySelectorAll('[data-hg-ask-ai]').forEach(bind);
 
+    // Keep the OINK palette untouched: only intercept Enter when local search
+    // is empty and the site-owned Ask AI tail is the available follow-up.
+    input.addEventListener('keydown', function (event) {

Review Comment:
   🧹 `input` is `null` on pages that load the adapter but don't render OINK's 
search dialog, and this line then throws before the tail observer is wired up. 
The old code guarded with `if (list)`, and `syncTail` still checks `!root || 
!input || !list`. A local build with `tests/e2e/ai-enabled.yaml` gives 
`/search/`, `/cn/search/`, `/community/maturity/` and the `_print/` pages the 
adapter without `#td-shell-search`, and calling `init()` with no search root 
throws `TypeError: Cannot read properties of null (reading 
'addEventListener')`. It stays hidden while `ai_search.enabled` is false. Could 
this listener move inside the existing `if (list)` block, or return early when 
`!input`?



##########
scripts/community_roster.md:
##########
@@ -0,0 +1,41 @@
+# Community roster data
+
+`roster.json` is the checked-in, visitor-facing snapshot of current Apache
+HugeGraph PMC members and Committers. It is generated from the three ASF public
+sources recorded in the file:
+
+```bash
+python3 scripts/community_roster.py refresh
+python3 scripts/community_roster.py validate --warn-after-days 90
+```
+
+`refresh` is a maintainer-run operation. It finishes all source, role, mapping,
+and avatar checks before atomically replacing the last-good roster. It never
+pushes or opens a pull request.
+
+`github-map.json` is deliberately maintained by human review. A mapping must
+record both the exact GitHub login and the account's numeric GitHub user ID.
+Do not derive mappings from a person's name, email address, employer, or commit
+history. Leave an ASF ID unmapped until a maintainer has confirmed the account.
+
+Mapped avatars are downloaded during refresh, converted with `cwebp` when
+needed, stripped of metadata, checked as 128 by 128 WebP, and stored under a
+SHA-256 content-addressed filename. Unmapped members render initials and link
+to the ASF phonebook without requiring JavaScript.

Review Comment:
   🧹 This no longer matches the template. 
`layouts/_partials/community/members.html` renders unmapped members as a plain 
`div` with no link, and `members.md` lists them as plain text, so the phonebook 
`profile_url` values in `roster.json` are never used. A local build of 
`/community/` and `/cn/community/` has zero phonebook links. Could this 
sentence say unmapped members render as static cards, or should the template 
link them through `profile_url`?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to