feat(h5): apply October 12 customer report feedback

This commit is contained in:
xsl
2026-10-12 13:15:09 +08:00
parent 3193a4b683
commit d7ae748e08
22 changed files with 2282 additions and 1027 deletions
+23 -17
View File
@@ -4,17 +4,17 @@
"2": "app.js",
"3": "skin-score.js",
"4": "k",
"5": "r",
"6": "extractFaceTensors",
"7": "ComputeSingleFaceDescriptorTask",
"5": "f",
"6": ".runAndExtendWithFaceDetection",
"7": ".run",
"8": "admin.js",
"9": "__awaiter",
"10": ".forwardInput",
"10": "SsdMobilenetv1",
"11": "lib/accounts.js",
"12": "server.js",
"13": "files",
"14": "AgeGenderNet",
"15": ".runAndExtendWithFaceDetections",
"15": "extractFaceTensors",
"16": "巨子测肤 · 1'me 在线肌肤测试 — UI 设计规范",
"17": "extractFaces",
"18": "1'me 在线肌肤测试 H5",
@@ -34,15 +34,15 @@
"32": "FaceMatcher",
"33": "build-fixture.py",
"34": "smoke-test.js",
"35": "DetectSingleFaceLandmarksTask",
"35": "customer-feedback.js",
"36": "ao",
"37": "UI 外发版 10.09 图片资源",
"38": "FaceLandmark68Net",
"39": "UI交互界面调整",
"40": ".predictAgeAndGender",
"41": "test/accounts.js",
"41": "NeuralNetwork",
"42": "export_psd_assets.py",
"43": ".toBatchTensor",
"43": "normalize",
"44": "start-local.sh",
"45": "PredictAllAgeAndGenderWithFaceAlignmentTask",
"46": "PredictAllFaceExpressionsWithFaceAlignmentTask",
@@ -60,34 +60,40 @@
"58": ".dispose",
"59": "call_skinanalyze.sh",
"60": "report-fixture.js",
"61": "NeuralNetwork",
"61": ".extractWeights",
"62": "提交前 Review(2026-10-11)",
"63": "e2e-browser.mjs",
"64": "account-client.js",
"65": "微信登录接入与公网部署说明",
"66": "wechat-browser.mjs",
"66": "TinyYolov2Base",
"67": "ui-20261009.mjs",
"68": "analyze-timeout.js",
"69": "misans/README.md",
"70": ".draw",
"71": "production-loop.mjs",
"71": "initialize",
"72": "build_report_copy.py",
"73": "camera-geometry.js",
"74": "report-copy.js",
"75": "prepare_h5_assets.py",
"76": "TinyYolov2",
"77": "drawFaceExpressions",
"76": ".detect",
"77": ".runAndExtendWithFaceDetections",
"78": "n",
"79": "微信登录联调-2026-10-12.md",
"79": "登录反馈与加载优化(2026-10-12)",
"80": "线上微信登录部署记录",
"81": "wechat-production.mjs",
"82": "ComputeAllFaceDescriptorsTask",
"82": "test/accounts.js",
"83": "10.09 新版 H5 实施与验收",
"84": "微信登录联调:2026-10-12",
"85": "FaceLandmarks",
"86": "isValidNumber",
"87": "产品推荐规则:肤龄基准与边界调整",
"91": "login-performance.mjs",
"94": "Box",
"88": "gn",
"89": "傅艳NEW与项思炼的会话 2026年10月12日.md",
"90": "customer-feedback.mjs",
"91": "FaceDetection",
"92": "客户反馈修改(2026-10-12)",
"93": "TinyFaceFeatureExtractor",
"94": "DetectSingleFaceLandmarksTask",
"95": "PredictAllFaceExpressionsTask",
"97": "PredictSingleAgeAndGenderWithFaceAlignmentTask",
"98": "PredictSingleFaceExpressionsWithFaceAlignmentTask",
+1 -1
View File
@@ -1 +1 @@
{"0": "bf880d08a452d7b9", "1": "cb6ea50bd4e4a5ca", "2": "e45f02a2d81f378b", "3": "1f737ca8edb978f2", "4": "68c8c4a53446cb29", "5": "d50faa21d10efe9c", "6": "21004e7ec716999e", "7": "7ac475ea9bc280f8", "8": "1ecf47531e1d507b", "9": "bb9def5316182bbf", "10": "880a74c6d255e5cc", "11": "4a490abd5e503318", "12": "53594b653ad48743", "13": "7e3b558a587a4ebe", "14": "d982c7c094e0d01c", "15": "4184c65898b38dd8", "16": "95add6a975c0cb72", "17": "d522c79a290badbf", "18": "38bb0b185ceed116", "19": "0a373ad2197fd1a6", "20": "aecf2fce44ba49c5", "21": "8835aeeaa165e9f9", "22": "af8f2189aee7bcc9", "23": "90fac00055070ce2", "24": "f85b5b1634224c86", "25": "46e8db3e6e3f37ea", "26": "83b0fd3b14363e4d", "27": "eab427ce9a5219e9", "28": "08e85dab33772c23", "29": "c608f1c6492e1cb1", "30": "73c13793fca09f56", "31": "fbbcfc059751cc6a", "32": "f6bcf56c4589316b", "33": "75f750c5b7d9f63d", "34": "f024ff7942935690", "35": "23f1d406f6c779ae", "36": "a3859fc25c864a81", "37": "cb8f26249485324a", "38": "9a25b1230b5fe649", "39": "fdd95375b4a5ddb3", "40": "a2b13160223b5a98", "41": "4bc370be8afd7db1", "42": "ffd960136fde00ad", "43": "b434f4a4ecab270c", "44": "852c1bb2446edd9c", "45": "92ab3e5134ed8685", "46": "65718282b3c32109", "47": "e594ecaa8e7d1538", "48": "e042d7fe7351bcb9", "49": "1f976711cda158dc", "50": "bbb2b57d72922b16", "51": "eb6a182204867275", "52": "2ec3c8c088568ba9", "53": "68c45056378341a7", "54": "c58d41e8e580fdc6", "55": "ac5257538f52da80", "56": "91d7ab49459e0b92", "57": "f2a40b5f1b29f669", "58": "16bec50ccad83d20", "59": "891f59cda3708718", "60": "a505b7de6257a4e8", "61": "5f4ba3be5e4fe3af", "62": "1366ae24c7e5897d", "63": "c256b43f75d7809e", "64": "ce0e68dab611f022", "65": "74ae017de0ffd36b", "66": "2b037735e1f5b0f6", "67": "3e126d8deaf6e200", "68": "6b91f3679541de79", "69": "e511846eeba03076", "70": "bf75bfc99d4f9e34", "71": "4195478d5c528371", "72": "c84f196a7bd35861", "73": "2b887bf601ccfb9f", "74": "ae2a154311e1f53a", "75": "69fdd23278518884", "76": "c96276581a8c98d4", "77": "d5ce16a18b491627", "78": "bff404f6e2fa3713", "79": "f31ac836426a58b6", "80": "315325cde1352e98", "81": "37c559741825be74", "82": "3dd68cce72af5314", "83": "1284897282eb47a3", "84": "d8bb296741d3d05c", "85": "1d30b164aa092dc6", "87": "e5fa7717989eda80", "91": "59c31f858c7b6970", "94": "c6eac02ad7178f8e", "95": "e800d832c255899a", "97": "01f68dfc34a29d32", "98": "8c471c7baeaaca54", "99": "cb5ac3401283c378"}
{"0": "04a103a1199997a0", "1": "cb6ea50bd4e4a5ca", "2": "b663df3416204401", "3": "1f737ca8edb978f2", "4": "377a4f12232bbcdc", "5": "f074a081a584c171", "6": "5a9014c4a7f87699", "7": "6cda159cdef28f96", "8": "1ecf47531e1d507b", "9": "a16154b22fd8e2b3", "10": "d0c91dec45eac5ad", "11": "ae1e487145595eb9", "12": "53594b653ad48743", "13": "7e3b558a587a4ebe", "14": "d0f5c6e307b85cb1", "15": "0e3ea8dc60f6e10f", "16": "95add6a975c0cb72", "17": "0d185c03b2040000", "18": "38bb0b185ceed116", "19": "0a373ad2197fd1a6", "20": "aecf2fce44ba49c5", "21": "5d94cf57d5d1a6fb", "22": "be2f6d3dcfc9aabd", "23": "90fac00055070ce2", "24": "f85b5b1634224c86", "25": "46e8db3e6e3f37ea", "26": "83b0fd3b14363e4d", "27": "eab427ce9a5219e9", "28": "b992b3cc0a0fa9be", "29": "c608f1c6492e1cb1", "30": "73c13793fca09f56", "31": "fbbcfc059751cc6a", "32": "f6bcf56c4589316b", "33": "75f750c5b7d9f63d", "34": "f024ff7942935690", "35": "c4fa292c3dfb0d0e", "36": "a3859fc25c864a81", "37": "cb8f26249485324a", "38": "9a25b1230b5fe649", "39": "fdd95375b4a5ddb3", "40": "a2b13160223b5a98", "41": "d96493a5f110bd4c", "42": "ffd960136fde00ad", "43": "57726d26805c136b", "44": "852c1bb2446edd9c", "45": "92ab3e5134ed8685", "46": "65718282b3c32109", "47": "e594ecaa8e7d1538", "48": "e042d7fe7351bcb9", "49": "1f976711cda158dc", "50": "bbb2b57d72922b16", "51": "eb6a182204867275", "52": "2ec3c8c088568ba9", "53": "68c45056378341a7", "54": "c58d41e8e580fdc6", "55": "da0f3cd0568e4331", "56": "8c9a3fc5edff7e44", "57": "f2a40b5f1b29f669", "58": "7471c1ff7f7420f0", "59": "891f59cda3708718", "60": "a505b7de6257a4e8", "61": "8394d2bc925a408a", "62": "1366ae24c7e5897d", "63": "c256b43f75d7809e", "64": "ce0e68dab611f022", "65": "74ae017de0ffd36b", "66": "6b96cb56e55af88c", "67": "3e126d8deaf6e200", "68": "6b91f3679541de79", "69": "e511846eeba03076", "70": "bf75bfc99d4f9e34", "71": "eb3733e409dc7411", "72": "c84f196a7bd35861", "73": "2b887bf601ccfb9f", "74": "ae2a154311e1f53a", "75": "69fdd23278518884", "76": "c7c04904801db5b4", "77": "429cd62f9137881c", "78": "1ce63692525fa555", "79": "c6cfdfe181232ecc", "80": "315325cde1352e98", "81": "37c559741825be74", "82": "4bc370be8afd7db1", "83": "1284897282eb47a3", "84": "d8bb296741d3d05c", "85": "4c7d02c634649745", "86": "1c27e5f448dc4f9c", "87": "e5fa7717989eda80", "88": "a3e6d368559999ec", "89": "9e3363b80eeceeea", "90": "dd1c246e19a2d032", "91": "287d60115d9acda8", "92": "9509aca4f2e8a012", "93": "3befc14a32607829", "94": "23f1d406f6c779ae", "95": "e800d832c255899a", "97": "01f68dfc34a29d32", "98": "8c471c7baeaaca54", "99": "cb5ac3401283c378"}
+120 -95
View File
@@ -1,16 +1,16 @@
# Graph Report - juzi (2026-10-12)
## Corpus Check
- 70 files · ~4,212,892 words
- 74 files · ~4,387,581 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 1222 nodes · 2613 edges · 93 communities (72 shown, 21 thin omitted)
- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 180 edges (avg confidence: 0.53)
- 1255 nodes · 2651 edges · 99 communities (78 shown, 21 thin omitted)
- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 181 edges (avg confidence: 0.53)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `85790ef9`
- Built from commit: `3193a4b6`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@@ -20,17 +20,17 @@
- app.js
- skin-score.js
- k
- r
- extractFaceTensors
- ComputeSingleFaceDescriptorTask
- f
- .runAndExtendWithFaceDetection
- .run
- admin.js
- __awaiter
- .forwardInput
- SsdMobilenetv1
- lib/accounts.js
- server.js
- files
- AgeGenderNet
- .runAndExtendWithFaceDetections
- extractFaceTensors
- 巨子测肤 · 1'me 在线肌肤测试 — UI 设计规范
- extractFaces
- 1'me 在线肌肤测试 H5
@@ -49,15 +49,15 @@
- browser-failures.mjs
- FaceMatcher
- build-fixture.py
- DetectSingleFaceLandmarksTask
- customer-feedback.js
- ao
- UI 外发版 10.09 图片资源
- FaceLandmark68Net
- UI交互界面调整
- .predictAgeAndGender
- test/accounts.js
- NeuralNetwork
- export_psd_assets.py
- .toBatchTensor
- normalize
- start-local.sh
- PredictAllAgeAndGenderWithFaceAlignmentTask
- PredictAllFaceExpressionsWithFaceAlignmentTask
@@ -72,31 +72,36 @@
- regression.js
- .dispose
- call_skinanalyze.sh
- NeuralNetwork
- .extractWeights
- 提交前 Review(2026-10-11)
- e2e-browser.mjs
- account-client.js
- 微信登录接入与公网部署说明
- wechat-browser.mjs
- TinyYolov2Base
- ui-20261009.mjs
- analyze-timeout.js
- misans/README.md
- .draw
- production-loop.mjs
- initialize
- build_report_copy.py
- TinyYolov2
- drawFaceExpressions
- .detect
- .runAndExtendWithFaceDetections
- n
- 微信登录联调-2026-10-12.md
- 登录反馈与加载优化(2026-10-12)
- 线上微信登录部署记录
- wechat-production.mjs
- ComputeAllFaceDescriptorsTask
- test/accounts.js
- 10.09 新版 H5 实施与验收
- 微信登录联调:2026-10-12
- FaceLandmarks
- isValidNumber
- 产品推荐规则:肤龄基准与边界调整
- login-performance.mjs
- Box
- gn
- 傅艳NEW与项思炼的会话 2026年10月12日.md
- FaceDetection
- 客户反馈修改(2026-10-12)
- TinyFaceFeatureExtractor
- DetectSingleFaceLandmarksTask
- PredictAllFaceExpressionsTask
- PredictSingleAgeAndGenderWithFaceAlignmentTask
- PredictSingleFaceExpressionsWithFaceAlignmentTask
@@ -123,17 +128,17 @@
h5/js/app.js → h5/vendor/faceapi/face-api.js
- `vizCompose()` --indirect_call--> `rh()` [INFERRED]
h5/js/app.js → h5/vendor/faceapi/face-api.js
- `vizCompose()` --indirect_call--> `w()` [INFERRED]
- `vizCompose()` --indirect_call--> `scale()` [INFERRED]
h5/js/app.js → h5/vendor/faceapi/face-api.js
## Import Cycles
- None detected.
## Communities (93 total, 21 thin omitted)
## Communities (99 total, 21 thin omitted)
### Community 0 - "face-api.js"
Cohesion: 0.02
Nodes (29): cn(), createBrowserEnv(), createFileSystem(), createNodejsEnv(), dr(), en(), FaceDetection(), ff() (+21 more)
Cohesion: 0.03
Nodes (20): cn(), dr(), en(), ff(), ge(), ia(), na(), nt() (+12 more)
### Community 1 - "线上闭环测试(不含真实微信授权)"
Cohesion: 0.25
@@ -141,39 +146,43 @@ Nodes (7): 发现并修复, 可复现命令, 已通过的检查, 线上闭环测
### Community 2 - "app.js"
Cohesion: 0.05
Nodes (79): applyMirror(), armNudge(), beginDetect(), bindBackdropClose(), busyWithFlow(), captureFromVideo(), checkStill(), closeLoginSuccess() (+71 more)
Nodes (80): applyMirror(), armNudge(), beginDetect(), bindBackdropClose(), busyWithFlow(), captureFromVideo(), checkStill(), closeLoginSuccess() (+72 more)
### Community 3 - "skin-score.js"
Cohesion: 0.12
Nodes (45): acneGrade(), buildViewModel(), calcAcne(), calcContour(), calcSens(), calcSmooth(), calcTone(), calcWrinkles() (+37 more)
### Community 4 - "k"
Cohesion: 0.15
Nodes (15): b(), ba(), ca(), da(), fa(), k(), ne(), pa() (+7 more)
Cohesion: 0.13
Nodes (19): b(), ba(), ca(), cl(), da(), fa(), k(), ll() (+11 more)
### Community 5 - "r"
Cohesion: 0.14
Nodes (34): a(), ae(), bf(), cf(), d(), drawContour(), dt(), ea() (+26 more)
### Community 5 - "f"
Cohesion: 0.21
Nodes (23): a(), cf(), d(), drawContour(), dt(), ea(), f(), g() (+15 more)
### Community 6 - "extractFaceTensors"
Cohesion: 0.25
Nodes (4): DetectAllFaceLandmarksTask(), extractFaceTensors(), isTensor3D(), isTensor4D()
### Community 6 - ".runAndExtendWithFaceDetection"
Cohesion: 0.33
Nodes (5): allFacesMtcnn(), allFacesSsdMobilenetv1(), allFacesTinyYolov2(), detectAllFaces(), DetectSingleFaceTask()
### Community 7 - ".run"
Cohesion: 0.22
Nodes (3): ComputeAllFaceDescriptorsTask(), ComputeSingleFaceDescriptorTask(), extendWithFaceDescriptor()
### Community 8 - "admin.js"
Cohesion: 0.21
Nodes (28): ageText(), api(), bind(), closeDetail(), collectFilters(), dimsHtml(), doRetry(), dSec() (+20 more)
### Community 9 - "__awaiter"
Cohesion: 0.14
Nodes (14): __awaiter(), extendWithFaceDescriptor(), extendWithFaceExpressions(), extractAllFacesAndComputeResults(), extractSingleFaceAndComputeResult(), FaceRecognitionNet(), fetchImage(), fetchJson() (+6 more)
Cohesion: 0.15
Nodes (13): __awaiter(), extendWithFaceExpressions(), extractAllFacesAndComputeResults(), extractSingleFaceAndComputeResult(), fetchImage(), fetchJson(), fetchNetWeights(), fetchOrThrow() (+5 more)
### Community 10 - ".forwardInput"
Cohesion: 0.22
Nodes (9): boxPredictionLayer(), decodeBoxesLayer(), depthwiseConvLayer(), getCenterCoordinatesAndSizesLayer(), getStridesForLayerIdx(), mobileNetV1(), outputLayer(), pointwiseConvLayer() (+1 more)
### Community 10 - "SsdMobilenetv1"
Cohesion: 0.17
Nodes (10): boxPredictionLayer(), decodeBoxesLayer(), depthwiseConvLayer(), getCenterCoordinatesAndSizesLayer(), getStridesForLayerIdx(), mobileNetV1(), outputLayer(), pointwiseConvLayer() (+2 more)
### Community 11 - "lib/accounts.js"
Cohesion: 0.17
Nodes (20): atomic(), body(), cookie(), cookies(), crypto, fs, json(), login() (+12 more)
Cohesion: 0.08
Nodes (31): atomic(), body(), cookie(), cookies(), crypto, fs, json(), login() (+23 more)
### Community 12 - "server.js"
Cohesion: 0.08
@@ -184,20 +193,20 @@ Cohesion: 0.12
Nodes (15): files, analyze-fail, analyzing, countdown-321, hint-far, hint-front, hint-hold, hint-near (+7 more)
### Community 14 - "AgeGenderNet"
Cohesion: 0.10
Nodes (6): AgeGenderNet(), extractParams$1(), FaceExpressionNet(), FaceLandmark68NetBase(), FaceLandmark68TinyNet(), FaceProcessor()
Cohesion: 0.12
Nodes (5): AgeGenderNet(), extractParams$1(), FaceExpressionNet(), FaceLandmark68TinyNet(), FaceProcessor()
### Community 15 - ".runAndExtendWithFaceDetections"
Cohesion: 0.18
Nodes (8): allFacesMtcnn(), allFacesSsdMobilenetv1(), allFacesTinyYolov2(), detectAllFaces(), DetectAllFacesTask(), DetectSingleFaceTask(), extendWithFaceDetection(), resizeResults()
### Community 15 - "extractFaceTensors"
Cohesion: 0.25
Nodes (3): DetectAllFaceLandmarksTask(), extractFaceTensors(), isTensor3D()
### Community 16 - "巨子测肤 · 1'me 在线肌肤测试 — UI 设计规范"
Cohesion: 0.15
Nodes (12): 1. 基准与尺寸换算, 2. 色彩规范, 3. 字体规范, 4. 组件切图(assets/svg/), 5. 图片素材(assets/images/,共 15 张), 6. 页面清单(design/ 下有整屏 PNG 预览), 7. 目录结构, 8. 还原建议 (+4 more)
### Community 17 - "extractFaces"
Cohesion: 0.25
Nodes (16): awaitMediaLoaded(), bufferToImage(), createCanvas(), createCanvasFromMedia(), extractFaces(), extractImagePatches(), getContext2dOrThrow(), getEnv() (+8 more)
Cohesion: 0.14
Nodes (19): awaitMediaLoaded(), Box(), bufferToImage(), createCanvas(), createCanvasFromMedia(), extractFaces(), extractImagePatches(), getContext2dOrThrow() (+11 more)
### Community 18 - "1'me 在线肌肤测试 H5"
Cohesion: 0.13
@@ -213,11 +222,11 @@ Nodes (9): build_case1(), build_case2(), build_truth(), col(), dump(), main(), p
### Community 21 - "disposeUnusedWeightTensors"
Cohesion: 0.09
Nodes (24): disposeUnusedWeightTensors(), extractorsFactory$3(), extractorsFactory$5(), extractorsFactory$7(), extractorsFactory$9(), extractParamsFromWeigthMap(), extractParamsFromWeigthMap$1(), extractParamsFromWeigthMap$2() (+16 more)
Nodes (23): disposeUnusedWeightTensors(), extractorsFactory$3(), extractorsFactory$5(), extractorsFactory$7(), extractorsFactory$9(), extractParamsFromWeigthMap(), extractParamsFromWeigthMap$1(), extractParamsFromWeigthMap$2() (+15 more)
### Community 22 - ".loadFromDisk"
Cohesion: 0.22
Nodes (4): ComposableTask(), getModelUris(), Gf(), TinyFaceDetector()
Cohesion: 0.20
Nodes (5): ComposableTask(), getModelUris(), Gf(), Kf(), TinyFaceDetector()
### Community 23 - "facepp-skinanalyze(旷视皮肤分析专业版调用技能)"
Cohesion: 0.20
@@ -240,8 +249,8 @@ Cohesion: 0.30
Nodes (11): ndarray, Path, gen_countdown(), main(), normalize_clip(), 倒计时单独按字生成再拼接,避免「三、二、一」整句被读成播报腔、与提示音气质漂移。 与提示音共用同一 speaker + instruct;句间留约…, 裁掉过长首尾静音,保留 ≤150ms 边沿,避免提示显迟钝。, 响度归一 −16 LUFS + 转 MP3 48k CBR mono 22050Hz。 (+3 more)
### Community 28 - "C"
Cohesion: 0.12
Nodes (28): Bo(), C(), cd(), cl(), co(), e(), eo(), fo() (+20 more)
Cohesion: 0.14
Nodes (22): bf(), Bo(), C(), cd(), co(), eo(), fo(), Ft() (+14 more)
### Community 29 - "face-api.js 本地化依赖(h5/vendor/faceapi/)"
Cohesion: 0.29
@@ -255,6 +264,10 @@ Nodes (5): assets, document_size, layers, pages, source
Cohesion: 0.60
Nodes (4): main(), 递归缩放 result 内全部坐标:{left,top,width,height} 矩形与 {x,y} 点,与原数据同为整数。, scale_coords(), to_data_url()
### Community 35 - "customer-feedback.js"
Cohesion: 0.11
Nodes (17): alternate, assert, crop, details, excellent, fs, model, modelBefore (+9 more)
### Community 36 - "ao"
Cohesion: 0.40
Nodes (5): ao(), Do(), io(), so(), To()
@@ -271,17 +284,13 @@ Nodes (4): 1meAI测肤旷视UI问题反馈, UI交互界面调整, 交互, **设
Cohesion: 0.28
Nodes (4): extendWithAge(), extendWithGender(), PredictAllAgeAndGenderTask(), PredictSingleAgeAndGenderTask()
### Community 41 - "test/accounts.js"
Cohesion: 0.22
Nodes (9): assert, create, fs, http, os, path, ReportUI, SkinScore (+1 more)
### Community 42 - "export_psd_assets.py"
Cohesion: 0.70
Nodes (4): bounds(), layer_at(), main(), save_image()
### Community 43 - ".toBatchTensor"
Cohesion: 0.09
Nodes (28): conv(), conv$1(), convDown(), convLayer(), convLayer$1(), convNoRelu(), convWithBatchNorm(), denseBlock3() (+20 more)
### Community 43 - "normalize"
Cohesion: 0.13
Nodes (15): conv(), conv$1(), convDown(), convLayer$1(), convNoRelu(), denseBlock3(), denseBlock4(), depthwiseSeparableConv() (+7 more)
### Community 44 - "start-local.sh"
Cohesion: 0.50
@@ -304,24 +313,24 @@ Cohesion: 0.11
Nodes (17): 1. 结论和依据, 2. 统一比较口径, 3. 逐页差异和调整内容, 4. 报告数据如何接到新 UI, 5. 登录与“我的报告”的真实能力缺口, 6. 原稿中需要整理的内容, 7. 实施顺序与交付物, 8. 验收定义 (+9 more)
### Community 55 - "i"
Cohesion: 0.10
Nodes (21): bn(), dn(), ee(), et(), fn(), i(), je(), ln() (+13 more)
Cohesion: 0.12
Nodes (19): bn(), dn(), ee(), Ef(), et(), fn(), i(), je() (+11 more)
### Community 56 - "report-ui.js"
Cohesion: 0.90
Nodes (4): build(), count(), fill(), numeric()
Cohesion: 0.50
Nodes (8): build(), count(), fill(), metricText(), numeric(), scalar(), wrinkleDetails(), wrinkleText()
### Community 57 - "regression.js"
Cohesion: 0.60
Nodes (5): diffCtx(), loadJSON(), main(), okNum(), okStr()
### Community 58 - ".dispose"
Cohesion: 0.14
Nodes (17): computeReshapedDimensions(), extractBoundingBoxes(), getSizesForScale(), iou(), isEven(), NetInput(), nonMaxSuppression(), nonMaxSuppression$1() (+9 more)
Cohesion: 0.18
Nodes (12): extractBoundingBoxes(), FaceRecognitionNet(), getSizesForScale(), nonMaxSuppression(), normalize$1(), pyramidDown(), rescaleAndNormalize(), scale() (+4 more)
### Community 61 - "NeuralNetwork"
Cohesion: 0.06
Nodes (28): createFaceDetectionNet(), createFaceRecognitionNet(), createMtcnn(), createSsdMobilenetv1(), createTinyFaceDetector(), createTinyYolov2(), extractConvParamsFactory(), extractFCParamsFactory() (+20 more)
### Community 61 - ".extractWeights"
Cohesion: 0.09
Nodes (25): createFaceDetectionNet(), createFaceRecognitionNet(), createMtcnn(), createSsdMobilenetv1(), createTinyFaceDetector(), createTinyYolov2(), extractConvParamsFactory(), extractFCParamsFactory() (+17 more)
### Community 62 - "提交前 Review(2026-10-11)"
Cohesion: 0.40
@@ -339,29 +348,33 @@ Nodes (5): browser(), init(), read(), rememberKind(), request()
Cohesion: 0.22
Nodes (7): 公网服务器配置, 公网真机验收清单, 反向代理与后台保护, 已完成的链路, 微信登录接入与公网部署说明, 数据、迁移与备份, 本机开发环境限制(不代表线上状态)
### Community 66 - "wechat-browser.mjs"
Cohesion: 0.22
Nodes (6): createAccounts, h5, ReportUI, require, root, SkinScore
### Community 66 - "TinyYolov2Base"
Cohesion: 0.18
Nodes (13): convLayer(), convWithBatchNorm(), depthwiseSeparableConv$1(), fullyConnectedLayer(), leaky(), ONet(), PNet(), prelu() (+5 more)
### Community 68 - "analyze-timeout.js"
Cohesion: 0.20
Nodes (7): assert, end, fs, path, source, start, vm
### Community 71 - "production-loop.mjs"
Cohesion: 0.50
Nodes (3): artifacts, errors, samples
### Community 71 - "initialize"
Cohesion: 0.29
Nodes (7): createBrowserEnv(), createFileSystem(), createNodejsEnv(), initialize(), isBrowser(), monkeyPatch(), setEnv()
### Community 77 - "drawFaceExpressions"
Cohesion: 0.22
Nodes (8): DrawBox(), drawDetections(), drawFaceExpressions(), DrawFaceLandmarks(), FaceExpressions(), isWithFaceDetection(), isWithFaceExpressions(), isWithFaceLandmarks()
### Community 76 - ".detect"
Cohesion: 0.18
Nodes (6): computeReshapedDimensions(), iou(), isEven(), NetInput(), nonMaxSuppression$1(), TinyYolov2()
### Community 77 - ".runAndExtendWithFaceDetections"
Cohesion: 0.15
Nodes (11): DetectAllFacesTask(), DrawBox(), drawDetections(), drawFaceExpressions(), DrawFaceLandmarks(), extendWithFaceDetection(), FaceExpressions(), isWithFaceDetection() (+3 more)
### Community 78 - "n"
Cohesion: 0.10
Nodes (31): be(), bi(), ce(), de(), Ef(), er(), fe(), Ie() (+23 more)
Cohesion: 0.11
Nodes (36): ae(), be(), bi(), ce(), de(), e(), er(), FaceMatch() (+28 more)
### Community 79 - "微信登录联调-2026-10-12.md"
Cohesion: 0.29
Nodes (4): 体验变化, 慢的原因与处理, 登录反馈与加载优化(2026-10-12), 验证
### Community 79 - "登录反馈与加载优化(2026-10-12)"
Cohesion: 0.25
Nodes (5): 体验变化, 公网部署后复测, 慢的原因与处理, 登录反馈与加载优化(2026-10-12), 验证
### Community 80 - "线上微信登录部署记录"
Cohesion: 0.33
@@ -371,6 +384,10 @@ Nodes (6): 初次部署时的凭据查找记录(现已由用户提供), 初
Cohesion: 0.60
Nodes (4): api(), base, callback(), start()
### Community 82 - "test/accounts.js"
Cohesion: 0.22
Nodes (9): assert, create, fs, http, os, path, ReportUI, SkinScore (+1 more)
### Community 83 - "10.09 新版 H5 实施与验收"
Cohesion: 0.29
Nodes (5): 10.09 新版 H5 实施与验收, 按确认项实现, 文档未定义部分的实施口径, 素材再生成, 验证命令
@@ -380,31 +397,39 @@ Cohesion: 0.33
Nodes (6): 后续真机确认与体验优化, 微信登录联调:2026-10-12, 本轮修正, 白名单与凭据, 真实微信验收与排查, 自动验证
### Community 85 - "FaceLandmarks"
Cohesion: 0.08
Nodes (12): bgrToRgbTensor(), Dimensions(), extendWithFaceLandmarks(), FaceLandmarks(), FaceLandmarks5(), FaceLandmarks68(), getCenterPoint(), isValidNumber() (+4 more)
Cohesion: 0.07
Nodes (15): extendWithFaceLandmarks(), FaceLandmark68NetBase(), FaceLandmarks(), FaceLandmarks5(), FaceLandmarks68(), getCenterPoint(), isDimensions(), minBbox() (+7 more)
### Community 86 - "isValidNumber"
Cohesion: 0.33
Nodes (5): bgrToRgbTensor(), Dimensions(), isValidNumber(), isValidProbablitiy(), isWithGender()
### Community 87 - "产品推荐规则:肤龄基准与边界调整"
Cohesion: 0.33
Nodes (6): 产品推荐规则:肤龄基准与边界调整, 决策顺序, 后台与前端一致性, 实施与验证范围, 已明确的要求, 已确认的三个条件
### Community 94 - "Box"
Cohesion: 0.20
Nodes (3): Box(), isDimensions(), ObjectDetection()
### Community 88 - "gn"
Cohesion: 0.40
Nodes (5): gn(), kn(), tt(), wo(), z()
### Community 92 - "客户反馈修改(2026-10-12)"
Cohesion: 0.40
Nodes (4): 客户反馈修改(2026-10-12), 皱纹数据说明, 逐项处理, 验证
## Knowledge Gaps
- **198 isolated node(s):** `source`, `document_size`, `pages`, `assets`, `layers` (+193 more)
- **220 isolated node(s):** `source`, `document_size`, `pages`, `assets`, `layers` (+215 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **21 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **Why does `r()` connect `r` to `face-api.js`, `.toBatchTensor`, `server.js`, `n`, `i`, `C`?**
_High betweenness centrality (0.063) - this node is a cross-community bridge._
- **Why does `r()` connect `n` to `face-api.js`, `k`, `f`, `normalize`, `server.js`, `i`, `C`?**
_High betweenness centrality (0.050) - this node is a cross-community bridge._
- **Why does `k()` connect `k` to `face-api.js`, `app.js`, `f`, `lib/accounts.js`, `n`, `gn`?**
_High betweenness centrality (0.050) - this node is a cross-community bridge._
- **Why does `renderReport()` connect `app.js` to `k`, `n`?**
_High betweenness centrality (0.051) - this node is a cross-community bridge._
- **Why does `k()` connect `k` to `face-api.js`, `app.js`, `r`, `lib/accounts.js`, `n`, `C`?**
_High betweenness centrality (0.047) - this node is a cross-community bridge._
_High betweenness centrality (0.038) - this node is a cross-community bridge._
- **Are the 24 inferred relationships involving `n()` (e.g. with `newRecordId()` and `ae()`) actually correct?**
_`n()` has 24 INFERRED edges - model-reasoned connections that need verification._
- **Are the 27 inferred relationships involving `r()` (e.g. with `handleExport()` and `handleRecordsQuery()`) actually correct?**
@@ -412,4 +437,4 @@ _Questions this graph is uniquely positioned to answer:_
- **Are the 7 inferred relationships involving `t()` (e.g. with `renderReport()` and `e()`) actually correct?**
_`t()` has 7 INFERRED edges - model-reasoned connections that need verification._
- **What connects `source`, `document_size`, `pages` to the rest of the system?**
_198 weakly-connected nodes found - possible documentation gaps or missing edges._
_220 weakly-connected nodes found - possible documentation gaps or missing edges._
File diff suppressed because one or more lines are too long
+1575 -779
View File
File diff suppressed because it is too large Load Diff
+80 -25
View File
@@ -40,8 +40,8 @@
"semantic_hash": ""
},
"h5/js/app.js": {
"mtime": 1791773775.2349546,
"ast_hash": "cda77fb341a0f2573ed3a57c8e536fbb",
"mtime": 1791780010.867014,
"ast_hash": "da06fb14a0750f9aeaac3cf1cdc474df",
"semantic_hash": ""
},
"h5/js/head-pose.js": {
@@ -140,8 +140,8 @@
"semantic_hash": ""
},
"h5/index.html": {
"mtime": 1791773528.470933,
"ast_hash": "a8248357be1c886421c44845b6038203",
"mtime": 1791779513.7549675,
"ast_hash": "b0d1eaae730873cfb06dab32e997fa29",
"semantic_hash": ""
},
"h5/vendor/faceapi/README.md": {
@@ -1245,8 +1245,8 @@
"semantic_hash": ""
},
"h5/js/report-ui.js": {
"mtime": 1791735369.923658,
"ast_hash": "b05b0a2181711ce6f05bbe6c16179170",
"mtime": 1791779513.7549675,
"ast_hash": "100c3438318d0f7a8048c74ef3455252",
"semantic_hash": ""
},
"h5/lib/accounts.js": {
@@ -1440,38 +1440,38 @@
"semantic_hash": ""
},
"design/ui-20261009/verification/01-login.png": {
"mtime": 1791710678.3993611,
"ast_hash": "546575bd6c19464adfd8033f1416e41f",
"mtime": 1791780103.439073,
"ast_hash": "32f142e3c11d1c7768477e37b06e2209",
"semantic_hash": ""
},
"design/ui-20261009/verification/02-home.png": {
"mtime": 1791710681.0034657,
"ast_hash": "48cb27f9eb1d5f01f3ca00097b31d5b8",
"mtime": 1791780106.015078,
"ast_hash": "52b5c983e23e89638f6f13e4b805bc33",
"semantic_hash": ""
},
"design/ui-20261009/verification/03-history-empty.png": {
"mtime": 1791710681.5034268,
"ast_hash": "cf7cc9fdf15a8fe2c2276ffbf01e9356",
"mtime": 1791780106.5190792,
"ast_hash": "6d94cf3a87064fe79bb8a3cb7e227228",
"semantic_hash": ""
},
"design/ui-20261009/verification/04-privacy.png": {
"mtime": 1791710682.4802737,
"ast_hash": "349e9841ce4f114a2816c52fea2301c3",
"mtime": 1791780107.4590812,
"ast_hash": "7765fe3123d067a5211190f7a08e90c5",
"semantic_hash": ""
},
"design/ui-20261009/verification/05-profile.png": {
"mtime": 1791710683.0148475,
"ast_hash": "2e624c0cb91f96fe84e41878cf9852b5",
"mtime": 1791780108.0350823,
"ast_hash": "0a74071e471e65a16cf5ed22f27b7803",
"semantic_hash": ""
},
"design/ui-20261009/verification/06-report-top.png": {
"mtime": 1791710685.010846,
"ast_hash": "ad6cbf32ddbb4ef628f8b8bf6f970af9",
"mtime": 1791780109.9670866,
"ast_hash": "4f47a34364b02e9ef6189d7ac0ef6660",
"semantic_hash": ""
},
"design/ui-20261009/verification/07-report-full.png": {
"mtime": 1791710685.1146839,
"ast_hash": "8775ce75d26200ab9341f662b8aaf40d",
"mtime": 1791780110.071087,
"ast_hash": "0be8c9110241f7305598415d6c861f5c",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/bg-history-h5.jpg": {
@@ -1515,17 +1515,17 @@
"semantic_hash": ""
},
"design/ui-20261009/verification/08-camera-front-layout.png": {
"mtime": 1791710683.453275,
"mtime": 1791780108.4710832,
"ast_hash": "b9d04eed0983f1f49fed6c663070ecc1",
"semantic_hash": ""
},
"design/ui-20261009/verification/08-camera-left-layout.png": {
"mtime": 1791710683.5186543,
"mtime": 1791780108.5350835,
"ast_hash": "2cb973828c1d18bfbcb5c0cb8ad06d41",
"semantic_hash": ""
},
"design/ui-20261009/verification/08-camera-right-layout.png": {
"mtime": 1791710683.4840417,
"mtime": 1791780108.5030832,
"ast_hash": "4b299e86432feb2697dd739dc77a825d",
"semantic_hash": ""
},
@@ -1615,8 +1615,63 @@
"semantic_hash": ""
},
"docs/\u767b\u5f55\u53cd\u9988\u4e0e\u52a0\u8f7d\u4f18\u5316-2026-10-12.md": {
"mtime": 1791774062.6429472,
"ast_hash": "ffa81f4a1a2b47615d6a4b7a27de0d08",
"mtime": 1791774227.194959,
"ast_hash": "e925c1ba7a57fdcb2321229b3eb32b66",
"semantic_hash": ""
},
"h5/test/customer-feedback.js": {
"mtime": 1791779743.1310055,
"ast_hash": "a01d5f9ec4424a2f21f8239451f576f9",
"semantic_hash": ""
},
"h5/test/customer-feedback.mjs": {
"mtime": 1791780010.8710139,
"ast_hash": "a8332f17ef693582bc81bff83950fedb",
"semantic_hash": ""
},
"feedback/\u5085\u8273NEW\u4e0e\u9879\u601d\u70bc\u7684\u4f1a\u8bdd 2026\u5e7410\u670812\u65e5/\u5085\u8273NEW\u4e0e\u9879\u601d\u70bc\u7684\u4f1a\u8bdd 2026\u5e7410\u670812\u65e5.md": {
"mtime": 1791778827.0,
"ast_hash": "09b009c9cdb63cf90710b1b45fc6cee0",
"semantic_hash": ""
},
"feedback/\u5085\u8273NEW\u4e0e\u9879\u601d\u70bc\u7684\u4f1a\u8bdd 2026\u5e7410\u670812\u65e5/\u56fe\u7247\u548c\u9644\u4ef6/exported_img_v3_0216d_40a9e343-5d09-4760-aa80-6d13cc9ac8eg.png": {
"mtime": 1791778827.0,
"ast_hash": "7a58ab24cec7edaaac8667f37f4e8e5a",
"semantic_hash": ""
},
"feedback/\u5085\u8273NEW\u4e0e\u9879\u601d\u70bc\u7684\u4f1a\u8bdd 2026\u5e7410\u670812\u65e5/\u56fe\u7247\u548c\u9644\u4ef6/exported_img_v3_0216d_718c2f13-c978-4e07-bf72-21b24236bd6g.png": {
"mtime": 1791778827.0,
"ast_hash": "96c0f8befaa850e8cb6eab3c54c4ad04",
"semantic_hash": ""
},
"feedback/\u5085\u8273NEW\u4e0e\u9879\u601d\u70bc\u7684\u4f1a\u8bdd 2026\u5e7410\u670812\u65e5/\u56fe\u7247\u548c\u9644\u4ef6/exported_img_v3_0216d_92abffb2-da3a-42d4-bd42-6d1b6a864e3g.png": {
"mtime": 1791778827.0,
"ast_hash": "9c902ad750767d96b98b20c713c36c14",
"semantic_hash": ""
},
"feedback/\u5085\u8273NEW\u4e0e\u9879\u601d\u70bc\u7684\u4f1a\u8bdd 2026\u5e7410\u670812\u65e5/\u56fe\u7247\u548c\u9644\u4ef6/exported_img_v3_0216d_d5d64a81-acad-4db9-970c-2dd1398b532g.png": {
"mtime": 1791778827.0,
"ast_hash": "12c940d1d339ff8a7a5bcb4e9292f1ff",
"semantic_hash": ""
},
"feedback/\u5085\u8273NEW\u4e0e\u9879\u601d\u70bc\u7684\u4f1a\u8bdd 2026\u5e7410\u670812\u65e5/\u56fe\u7247\u548c\u9644\u4ef6/exported_img_v3_0216d_ee1903ba-96ef-4778-9891-027588093c7g.jpeg": {
"mtime": 1791778827.0,
"ast_hash": "12251b6acdea7aaba393c3544832572e",
"semantic_hash": ""
},
"feedback/\u5085\u8273NEW\u4e0e\u9879\u601d\u70bc\u7684\u4f1a\u8bdd 2026\u5e7410\u670812\u65e5/\u56fe\u7247\u548c\u9644\u4ef6/exported_img_v3_0216d_eec8b07b-be07-4d37-9a9f-4057c5afc56g.png": {
"mtime": 1791778827.0,
"ast_hash": "c7a7e7a16688e354c0010a278fcf9124",
"semantic_hash": ""
},
"docs/\u5ba2\u6237\u53cd\u9988\u4fee\u6539-2026-10-12.md": {
"mtime": 1791780101.1150675,
"ast_hash": "4b0cf0511f31cb1c1ea310fe72b3b808",
"semantic_hash": ""
},
"design/ui-20261009/verification/02-login-success.png": {
"mtime": 1791780103.7670736,
"ast_hash": "6e06a46e74f50f9f9a4ee94bb34bc3de",
"semantic_hash": ""
}
}