From 69dc9962c06dabb57d4724ec6d2b9984d6878e3b Mon Sep 17 00:00:00 2001 From: xsl Date: Mon, 12 Oct 2026 21:21:49 +0800 Subject: [PATCH] fix(h5): show captured face behind report scan animation --- docs/报告等待页实拍背景-2026-10-12.md | 21 + graphify-out/.graphify_labels.json | 33 +- graphify-out/.graphify_labels.json.sig | 2 +- graphify-out/GRAPH_REPORT.md | 191 ++- graphify-out/graph.html | 8 +- graphify-out/graph.json | 1855 ++++++++++++++---------- graphify-out/manifest.json | 34 +- h5/README.md | 2 +- h5/css/ui-20261012.css | 14 +- h5/index.html | 5 +- h5/js/app.js | 37 +- h5/test/capture-quality-browser.mjs | 3 + h5/test/customer-feedback-third.mjs | 6 +- h5/test/scan-photo.mjs | 110 ++ 14 files changed, 1443 insertions(+), 878 deletions(-) create mode 100644 docs/报告等待页实拍背景-2026-10-12.md create mode 100644 h5/test/scan-photo.mjs diff --git a/docs/报告等待页实拍背景-2026-10-12.md b/docs/报告等待页实拍背景-2026-10-12.md new file mode 100644 index 0000000..5456d1b --- /dev/null +++ b/docs/报告等待页实拍背景-2026-10-12.md @@ -0,0 +1,21 @@ +# 报告等待页实拍背景 + +原扫描页直接展示 PSD 的白色人脸占位。改为在原 PSD 人脸蒙版内叠加本次正脸照片,扫描线置于照片上方;原素材不重绘,框、检测中文字、装饰图标与取消入口不变。 + +- 首张合格正脸就预解码,三张拍完使用同一张正脸,不使用最后一张侧脸或其他报告照片。 +- 与拍摄预览一样居中、等比 `cover` 铺满,不拉伸照片。前置实时拍摄保留当时的预览镜像;后置/相册/系统相机文件不额外镜像。镜像只作用于 CSS,不改变送检 JPEG。 +- 已有“一次完整扫描才进成功报告”保持不变;照片延迟解码时重启扫描,错误/取消不等待动画。 +- 成功、失败、取消、页面隐藏或重新拍摄时清理等待页图片引用,不残留上一轮人脸。照片不新增缓存/上传/持久化。 +- 素材或蒙版加载失败时降级为实拍背景、检测中文字和取消入口;照片解码失败使用深色背景,不露出白色占位。 +- 不修改拍摄约束、评分、肌龄、推荐规则或报告保存逻辑。 + +验证命令(本地服务需运行于 8080): + +```bash +node h5/test/scan-photo.mjs +node h5/test/capture-quality-browser.mjs +node h5/test/customer-feedback-third.mjs +node h5/test/customer-feedback-fourth.mjs +``` + +测试只使用模拟账号、拦截分析响应,不创建线上记录、不调用付费检测。覆盖本次正脸照片、前置镜像与文件不镜像、六种视口、扫描完整循环、成功/失败/取消清理、迟到响应及素材失败降级。 diff --git a/graphify-out/.graphify_labels.json b/graphify-out/.graphify_labels.json index 2270168..f442d15 100644 --- a/graphify-out/.graphify_labels.json +++ b/graphify-out/.graphify_labels.json @@ -5,7 +5,7 @@ "3": "skin-score.js", "4": "customer-feedback-second.js", "5": "f", - "6": "Box", + "6": "ComputeAllFaceDescriptorsTask", "7": "test/profile-store.js", "8": "admin.js", "9": "__awaiter", @@ -69,14 +69,14 @@ "67": "ui-20261009.mjs", "68": "analyze-timeout.js", "69": "misans/README.md", - "70": ".forwardInput", - "71": ".predictAgeAndGender", + "70": "normalize", + "71": "extractAllFacesAndComputeResults", "72": "build_report_copy.py", "73": "camera-geometry.js", "74": "report-copy.js", "75": "prepare_h5_assets.py", - "76": ".forwardInput", - "77": "extractFaceTensors", + "76": "doCapture", + "77": ".runAndExtendWithFaceDetections", "78": "n", "79": "登录反馈与加载优化(2026-10-12)", "80": "线上微信登录部署记录", @@ -107,5 +107,26 @@ "105": "capture-quality-browser.mjs", "106": "第三轮反馈20261012/傅艳NEW与项思炼的会话 2026年10月12日.md", "107": "基础信息记忆与肤质拖动", - "108": "profile-interaction.mjs" + "108": "profile-interaction.mjs", + "109": "submitPhotos", + "110": "startCamera", + "111": "e", + "112": "showScreen", + "113": "Point", + "114": "initialize", + "115": "FaceLandmarks68", + "116": ".forwardInput", + "117": "ao", + "118": "k", + "119": ".div", + "120": "restoreProfile", + "121": "TinyFaceFeatureExtractor", + "122": "isValidNumber", + "123": "tt", + "124": "TinyYolov2", + "125": "报告等待页实拍背景-2026-10-12.md", + "126": "FaceDetection", + "127": "ObjectDetection", + "128": "PredictAllFaceExpressionsTask", + "129": "PredictSingleAgeAndGenderTask" } diff --git a/graphify-out/.graphify_labels.json.sig b/graphify-out/.graphify_labels.json.sig index 1a04873..5f9120c 100644 --- a/graphify-out/.graphify_labels.json.sig +++ b/graphify-out/.graphify_labels.json.sig @@ -1 +1 @@ -{"0": "200bd332d330e79e", "1": "cb6ea50bd4e4a5ca", "2": "86eae3fd1b848c2e", "3": "1f737ca8edb978f2", "4": "56bf12952b0de42b", "5": "06906d9c95022851", "6": "7cd2b329434ded47", "7": "03b56b13a08b5f83", "8": "a689fcb62e7754af", "9": "fce137e5717d2018", "10": "2b037735e1f5b0f6", "11": "4a490abd5e503318", "12": "aeca274694e158d2", "13": "7e3b558a587a4ebe", "14": "bf75bfc99d4f9e34", "15": "2c0eaf406546159b", "16": "95add6a975c0cb72", "17": "e042d7fe7351bcb9", "18": "f93d5d85e671fcee", "19": "39abb1eef19df707", "20": "aecf2fce44ba49c5", "21": "02ac512b5e01b983", "22": "f2045a9940596eb3", "23": "90fac00055070ce2", "24": "f85b5b1634224c86", "25": "46e8db3e6e3f37ea", "26": "8367cbe6ea2844bc", "27": "eab427ce9a5219e9", "28": "4f01dfb5cd033c39", "29": "c608f1c6492e1cb1", "30": "73c13793fca09f56", "31": "fbbcfc059751cc6a", "32": "f6bcf56c4589316b", "33": "75f750c5b7d9f63d", "34": "f024ff7942935690", "35": "241be5abeab1da6f", "36": "a7d375041779bad4", "37": "cb8f26249485324a", "38": "9a25b1230b5fe649", "39": "fdd95375b4a5ddb3", "40": "5e546676ab96de03", "41": "d96493a5f110bd4c", "42": "916170b9f5d7346b", "43": "4eaa3e8b9eed3bf1", "44": "852c1bb2446edd9c", "45": "92ab3e5134ed8685", "46": "65718282b3c32109", "47": "e594ecaa8e7d1538", "48": "cf2f2424bc00436f", "49": "1f976711cda158dc", "50": "bbb2b57d72922b16", "51": "eb6a182204867275", "52": "2ec3c8c088568ba9", "53": "68c45056378341a7", "54": "c58d41e8e580fdc6", "55": "af2dbb7480405e14", "56": "9ee2ad45dc27851d", "57": "f2a40b5f1b29f669", "58": "5a45b41665ef1112", "59": "891f59cda3708718", "60": "a505b7de6257a4e8", "61": "94ead9feda213ac6", "62": "1366ae24c7e5897d", "63": "c256b43f75d7809e", "64": "ce0e68dab611f022", "65": "bdee3c4a37df52f8", "66": "7798792de7e51a25", "67": "3e126d8deaf6e200", "68": "6b91f3679541de79", "69": "e511846eeba03076", "70": "e39b60658e2c785e", "71": "a2b13160223b5a98", "72": "c84f196a7bd35861", "73": "2b887bf601ccfb9f", "74": "ae2a154311e1f53a", "75": "69fdd23278518884", "76": "880a74c6d255e5cc", "77": "2050a9da67ccfa24", "78": "9daf5044cb78b2d2", "79": "86f177bf0a7dd07c", "80": "315325cde1352e98", "81": "37c559741825be74", "82": "200f25fbad7af8fb", "83": "1284897282eb47a3", "84": "2fb17901aa87e0e7", "85": "4bc370be8afd7db1", "86": "e858d75e995c92e5", "87": "e5fa7717989eda80", "88": "8b5ab5232cef3457", "89": "9e3363b80eeceeea", "90": "dd1c246e19a2d032", "91": "83b0fd3b14363e4d", "92": "fced244d93677d90", "93": "8bd61518dd267641", "94": "713d04996c4627df", "95": "59c31f858c7b6970", "96": "4195478d5c528371", "97": "01f68dfc34a29d32", "98": "8c471c7baeaaca54", "99": "cb5ac3401283c378", "100": "b234c5e4ac7f632d", "101": "a0bc88eb14b70170", "102": "8dc2ed447b742130", "103": "6ffbe07b521a061b", "104": "e114a7aebaaca2f1", "105": "0567be4dc8048b9c", "106": "8bc72c179793e1c2", "107": "d9c195d9ccdb137e", "108": "e0fc0a42e33bda91"} \ No newline at end of file +{"0": "f8dacdda1d052754", "1": "cb6ea50bd4e4a5ca", "2": "8fcc50e5e52e3ab3", "3": "1f737ca8edb978f2", "4": "56bf12952b0de42b", "5": "0a7b6d40b794bd19", "6": "3dd68cce72af5314", "7": "03b56b13a08b5f83", "8": "5838caf1c500a4b4", "9": "4a86450ff5444c44", "10": "2b037735e1f5b0f6", "11": "4a490abd5e503318", "12": "aeca274694e158d2", "13": "7e3b558a587a4ebe", "14": "bf75bfc99d4f9e34", "15": "8a30574014478f1f", "16": "95add6a975c0cb72", "17": "e042d7fe7351bcb9", "18": "f93d5d85e671fcee", "19": "39abb1eef19df707", "20": "aecf2fce44ba49c5", "21": "59485c317afc6c2b", "22": "f2045a9940596eb3", "23": "90fac00055070ce2", "24": "f85b5b1634224c86", "25": "46e8db3e6e3f37ea", "26": "599f23689a2b8aca", "27": "eab427ce9a5219e9", "28": "5f977d8429c39f6a", "29": "c608f1c6492e1cb1", "30": "73c13793fca09f56", "31": "fbbcfc059751cc6a", "32": "f6bcf56c4589316b", "33": "75f750c5b7d9f63d", "34": "f024ff7942935690", "35": "241be5abeab1da6f", "36": "a7d375041779bad4", "37": "cb8f26249485324a", "38": "9a25b1230b5fe649", "39": "fdd95375b4a5ddb3", "40": "5e546676ab96de03", "41": "d96493a5f110bd4c", "42": "916170b9f5d7346b", "43": "e649ddeadda89cbb", "44": "852c1bb2446edd9c", "45": "92ab3e5134ed8685", "46": "65718282b3c32109", "47": "e594ecaa8e7d1538", "48": "cf2f2424bc00436f", "49": "1f976711cda158dc", "50": "bbb2b57d72922b16", "51": "eb6a182204867275", "52": "2ec3c8c088568ba9", "53": "68c45056378341a7", "54": "c58d41e8e580fdc6", "55": "b2c8c091044064e6", "56": "9ee2ad45dc27851d", "57": "f2a40b5f1b29f669", "58": "0c5797ecc09be26d", "59": "891f59cda3708718", "60": "a505b7de6257a4e8", "61": "94ead9feda213ac6", "62": "1366ae24c7e5897d", "63": "c256b43f75d7809e", "64": "ce0e68dab611f022", "65": "bdee3c4a37df52f8", "66": "b0afc4d04f42150f", "67": "3e126d8deaf6e200", "68": "6b91f3679541de79", "69": "e511846eeba03076", "70": "cc7621a6b501b8a2", "71": "5757de52275f3382", "72": "c84f196a7bd35861", "73": "2b887bf601ccfb9f", "74": "ae2a154311e1f53a", "75": "69fdd23278518884", "76": "cdeb7b925ce5043d", "77": "2ee521497bb8506a", "78": "7e842e2bd8e95fd4", "79": "86f177bf0a7dd07c", "80": "315325cde1352e98", "81": "37c559741825be74", "82": "200f25fbad7af8fb", "83": "1284897282eb47a3", "84": "2fb17901aa87e0e7", "85": "4bc370be8afd7db1", "86": "e858d75e995c92e5", "87": "e5fa7717989eda80", "88": "8b5ab5232cef3457", "89": "9e3363b80eeceeea", "90": "dd1c246e19a2d032", "91": "664f8b17c5d7a9aa", "92": "fced244d93677d90", "93": "8bd61518dd267641", "94": "713d04996c4627df", "95": "59c31f858c7b6970", "96": "4195478d5c528371", "97": "01f68dfc34a29d32", "98": "8c471c7baeaaca54", "99": "cb5ac3401283c378", "100": "b234c5e4ac7f632d", "101": "a0bc88eb14b70170", "102": "96b578f45b8bad5e", "103": "6ffbe07b521a061b", "104": "e114a7aebaaca2f1", "105": "0567be4dc8048b9c", "106": "8bc72c179793e1c2", "107": "d9c195d9ccdb137e", "108": "e0fc0a42e33bda91", "109": "930d097b73cefa7c", "110": "86ccefb4c68b732b", "111": "ede7733e4a295879", "112": "71cbe5098f4c1b6f", "113": "c65d8fa08757ee48", "114": "1f03fe34df693fcc", "115": "68c52c80f38f8b2c", "116": "4b58c0e8a44f5aec", "117": "8e5e97153c881130", "118": "d61ef5e4abc4bb10", "119": "39b5f1f56c2c2553", "120": "2a08cdb1d7133600", "121": "e7265770f07fa066", "122": "8f647d3ce08ecd2b", "123": "3088ae48043ee39d", "124": "29790cf710874dd0", "125": "e4f29216745ec758", "126": "287d60115d9acda8", "127": "ee7017d224ec9ad6", "128": "e800d832c255899a", "129": "47128fbd98c3ce4d"} \ No newline at end of file diff --git a/graphify-out/GRAPH_REPORT.md b/graphify-out/GRAPH_REPORT.md index bb5724c..cfb6244 100644 --- a/graphify-out/GRAPH_REPORT.md +++ b/graphify-out/GRAPH_REPORT.md @@ -1,16 +1,16 @@ # Graph Report - juzi (2026-10-12) ## Corpus Check -- 97 files · ~4,891,452 words +- 99 files · ~4,892,361 words - Verdict: corpus is large enough that graph structure adds value. ## Summary -- 1420 nodes · 2864 edges · 109 communities (87 shown, 22 thin omitted) -- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 199 edges (avg confidence: 0.55) +- 1431 nodes · 2879 edges · 130 communities (98 shown, 32 thin omitted) +- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 200 edges (avg confidence: 0.56) - Token cost: 0 input · 0 output ## Graph Freshness -- Built from commit: `c9352fe4` +- Built from commit: `ce6dbc20` - Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `graphify update .` after code changes (no API cost). @@ -21,7 +21,7 @@ - skin-score.js - customer-feedback-second.js - f -- Box +- ComputeAllFaceDescriptorsTask - test/profile-store.js - admin.js - __awaiter @@ -80,11 +80,11 @@ - ui-20261009.mjs - analyze-timeout.js - misans/README.md -- .forwardInput -- .predictAgeAndGender +- normalize +- extractAllFacesAndComputeResults - build_report_copy.py -- .forwardInput -- extractFaceTensors +- doCapture +- .runAndExtendWithFaceDetections - n - 登录反馈与加载优化(2026-10-12) - 线上微信登录部署记录 @@ -113,6 +113,27 @@ - 第三轮反馈20261012/傅艳NEW与项思炼的会话 2026年10月12日.md - 基础信息记忆与肤质拖动 - profile-interaction.mjs +- submitPhotos +- startCamera +- e +- showScreen +- Point +- initialize +- FaceLandmarks68 +- .forwardInput +- ao +- k +- .div +- restoreProfile +- TinyFaceFeatureExtractor +- isValidNumber +- tt +- TinyYolov2 +- 报告等待页实拍背景-2026-10-12.md +- FaceDetection +- ObjectDetection +- PredictAllFaceExpressionsTask +- PredictSingleAgeAndGenderTask ## God Nodes (most connected - your core abstractions) 1. `__awaiter()` - 59 edges @@ -133,27 +154,27 @@ h5/js/account-client.js → h5/js/profile-store.js - `init()` --indirect_call--> `key()` [INFERRED] h5/js/account-client.js → h5/js/profile-store.js +- `capture()` --indirect_call--> `el()` [INFERRED] + h5/test/scan-photo.mjs → h5/js/admin.js - `loadRecords()` --indirect_call--> `it()` [INFERRED] h5/js/admin.js → h5/vendor/faceapi/face-api.js -- `bind()` --indirect_call--> `a()` [INFERRED] - h5/js/admin.js → h5/vendor/faceapi/face-api.js ## Import Cycles - None detected. -## Communities (109 total, 22 thin omitted) +## Communities (130 total, 32 thin omitted) ### Community 0 - "face-api.js" Cohesion: 0.02 -Nodes (39): cn(), computeReshapedDimensions(), createBrowserEnv(), createFileSystem(), createNodejsEnv(), Dimensions(), dr(), en() (+31 more) +Nodes (36): cn(), computeReshapedDimensions(), decodeBoxesLayer(), dr(), en(), extractBoundingBoxes(), ff(), ge() (+28 more) ### Community 1 - "线上闭环测试(不含真实微信授权)" Cohesion: 0.25 Nodes (7): 发现并修复, 可复现命令, 已通过的检查, 线上闭环测试(不含真实微信授权), 结论, 话术及仓库同步, 验证边界 ### Community 2 - "app.js" -Cohesion: 0.05 -Nodes (90): applyMirror(), armNudge(), beginDetect(), bindBackdropClose(), busyWithFlow(), cancelSkinDrag(), captureFromVideo(), captureHaptic() (+82 more) +Cohesion: 0.12 +Nodes (21): decode(), drain(), esc(), load(), openHistory(), preload(), renderHistoryList(), renderReport() (+13 more) ### Community 3 - "skin-score.js" Cohesion: 0.12 @@ -164,24 +185,20 @@ Cohesion: 0.17 Nodes (10): assert, context, face, fs, geometry, original, path, source (+2 more) ### Community 5 - "f" -Cohesion: 0.12 -Nodes (36): a(), b(), ba(), cf(), d(), da(), drawContour(), dt() (+28 more) - -### Community 6 - "Box" -Cohesion: 0.11 -Nodes (5): Box(), ComputeAllFaceDescriptorsTask(), ComputeSingleFaceDescriptorTask(), extendWithFaceDescriptor(), ObjectDetection() +Cohesion: 0.23 +Nodes (21): a(), bf(), cf(), d(), dt(), ea(), f(), g() (+13 more) ### Community 7 - "test/profile-store.js" Cohesion: 0.14 Nodes (13): assert, data, empty, now, other, Profile, quota, regions (+5 more) ### Community 8 - "admin.js" -Cohesion: 0.20 -Nodes (29): ageText(), api(), bind(), captureQualityHtml(), closeDetail(), collectFilters(), dimsHtml(), doRetry() (+21 more) +Cohesion: 0.14 +Nodes (33): ageText(), api(), bind(), captureQualityHtml(), closeDetail(), collectFilters(), dimsHtml(), doRetry() (+25 more) ### Community 9 - "__awaiter" -Cohesion: 0.13 -Nodes (13): __awaiter(), ComposableTask(), extractSingleFaceAndComputeResult(), fetchImage(), fetchJson(), fetchNetWeights(), fetchOrThrow(), __generator() (+5 more) +Cohesion: 0.14 +Nodes (12): __awaiter(), ComposableTask(), fetchImage(), fetchJson(), fetchNetWeights(), fetchOrThrow(), __generator(), getModelUris() (+4 more) ### Community 10 - "wechat-browser.mjs" Cohesion: 0.22 @@ -200,8 +217,8 @@ Cohesion: 0.12 Nodes (15): files, analyze-fail, analyzing, countdown-321, hint-far, hint-front, hint-hold, hint-near (+7 more) ### Community 15 - "extractFaces" -Cohesion: 0.19 -Nodes (18): awaitMediaLoaded(), bufferToImage(), createCanvas(), createCanvasFromMedia(), extractFaces(), extractImagePatches(), getContext2dOrThrow(), getEnv() (+10 more) +Cohesion: 0.14 +Nodes (17): awaitMediaLoaded(), Box(), bufferToImage(), createCanvas(), createCanvasFromMedia(), extractFaces(), extractImagePatches(), getContext2dOrThrow() (+9 more) ### Community 16 - "巨子测肤 · 1'me 在线肌肤测试 — UI 设计规范" Cohesion: 0.15 @@ -224,8 +241,8 @@ Cohesion: 0.40 Nodes (9): build_case1(), build_case2(), build_truth(), col(), dump(), main(), parse_value(), set_path() (+1 more) ### Community 21 - "disposeUnusedWeightTensors" -Cohesion: 0.08 -Nodes (25): disposeUnusedWeightTensors(), extractorsFactory$3(), extractorsFactory$5(), extractorsFactory$7(), extractorsFactory$9(), extractParamsFromWeigthMap(), extractParamsFromWeigthMap$1(), extractParamsFromWeigthMap$2() (+17 more) +Cohesion: 0.10 +Nodes (24): disposeUnusedWeightTensors(), extractorsFactory$3(), extractorsFactory$5(), extractorsFactory$7(), extractorsFactory$9(), extractParamsFromWeigthMap(), extractParamsFromWeigthMap$1(), extractParamsFromWeigthMap$2() (+16 more) ### Community 23 - "facepp-skinanalyze(旷视皮肤分析专业版调用技能)" Cohesion: 0.20 @@ -248,8 +265,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.08 -Nodes (35): ao(), Bo(), C(), cd(), cl(), co(), Do(), eo() (+27 more) +Cohesion: 0.15 +Nodes (22): C(), cd(), co(), eo(), fo(), Ft(), Gc(), gn() (+14 more) ### Community 29 - "face-api.js 本地化依赖(h5/vendor/faceapi/)" Cohesion: 0.29 @@ -284,8 +301,8 @@ Cohesion: 0.18 Nodes (11): list, bounds(), layer_at(), main(), save_image(), composite(), main(), sha256() (+3 more) ### Community 43 - "convLayer" -Cohesion: 0.23 -Nodes (11): convLayer(), convWithBatchNorm(), depthwiseSeparableConv$1(), fullyConnectedLayer(), leaky(), ONet(), PNet(), prelu() (+3 more) +Cohesion: 0.15 +Nodes (17): boxPredictionLayer(), convLayer(), convWithBatchNorm(), depthwiseConvLayer(), depthwiseSeparableConv$1(), fullyConnectedLayer(), getStridesForLayerIdx(), leaky() (+9 more) ### Community 44 - "start-local.sh" Cohesion: 0.50 @@ -308,8 +325,8 @@ Cohesion: 0.11 Nodes (17): 1. 结论和依据, 2. 统一比较口径, 3. 逐页差异和调整内容, 4. 报告数据如何接到新 UI, 5. 登录与“我的报告”的真实能力缺口, 6. 原稿中需要整理的内容, 7. 实施顺序与交付物, 8. 验收定义 (+9 more) ### Community 55 - "i" -Cohesion: 0.09 -Nodes (26): bn(), ca(), dn(), ee(), et(), fa(), fn(), i() (+18 more) +Cohesion: 0.14 +Nodes (15): bn(), dn(), ee(), et(), fn(), i(), je(), ln() (+7 more) ### Community 56 - "report-ui.js" Cohesion: 0.50 @@ -320,8 +337,8 @@ Cohesion: 0.60 Nodes (5): diffCtx(), loadJSON(), main(), okNum(), okStr() ### Community 58 - ".dispose" -Cohesion: 0.12 -Nodes (13): bgrToRgbTensor(), DetectSingleFaceLandmarksTask(), extendWithFaceLandmarks(), extractBoundingBoxes(), FaceRecognitionNet(), getSizesForScale(), nonMaxSuppression(), normalize$1() (+5 more) +Cohesion: 0.13 +Nodes (12): bgrToRgbTensor(), DetectSingleFaceLandmarksTask(), extendWithFaceLandmarks(), FaceRecognitionNet(), getSizesForScale(), nonMaxSuppression(), normalize$1(), rescaleAndNormalize() (+4 more) ### Community 61 - "FaceProcessor" Cohesion: 0.22 @@ -344,32 +361,32 @@ Cohesion: 0.29 Nodes (7): 公网服务器配置, 公网真机验收清单, 反向代理与后台保护, 已完成的链路, 微信登录接入与公网部署说明, 数据、迁移与备份, 本机开发环境限制(不代表线上状态) ### Community 66 - "FaceLandmarks" -Cohesion: 0.06 -Nodes (16): conv(), denseBlock3(), denseBlock4(), depthwiseSeparableConv(), FaceFeatureExtractor(), FaceLandmark68NetBase(), FaceLandmarks(), FaceLandmarks5() (+8 more) +Cohesion: 0.21 +Nodes (6): FaceLandmarks(), FaceLandmarks5(), getCenterPoint(), minBbox(), pt(), vt() ### Community 68 - "analyze-timeout.js" Cohesion: 0.20 Nodes (7): assert, end, fs, path, source, start, vm -### Community 70 - ".forwardInput" -Cohesion: 0.39 -Nodes (7): conv$1(), convDown(), convLayer$1(), convNoRelu(), residual(), residualDown(), __spreadArrays() +### Community 70 - "normalize" +Cohesion: 0.36 +Nodes (8): conv$1(), convDown(), convLayer$1(), convNoRelu(), normalize(), residual(), residualDown(), __spreadArrays() -### Community 71 - ".predictAgeAndGender" -Cohesion: 0.28 -Nodes (4): extendWithAge(), extendWithGender(), PredictAllAgeAndGenderTask(), PredictSingleAgeAndGenderTask() +### Community 71 - "extractAllFacesAndComputeResults" +Cohesion: 0.14 +Nodes (8): ComputeSingleFaceDescriptorTask(), extendWithAge(), extendWithFaceDescriptor(), extendWithFaceExpressions(), extendWithGender(), extractAllFacesAndComputeResults(), extractSingleFaceAndComputeResult(), PredictAllAgeAndGenderTask() -### Community 76 - ".forwardInput" -Cohesion: 0.22 -Nodes (9): boxPredictionLayer(), decodeBoxesLayer(), depthwiseConvLayer(), getCenterCoordinatesAndSizesLayer(), getStridesForLayerIdx(), mobileNetV1(), outputLayer(), pointwiseConvLayer() (+1 more) +### Community 76 - "doCapture" +Cohesion: 0.16 +Nodes (23): applyMirror(), armNudge(), busyWithFlow(), captureFromVideo(), captureHaptic(), checkStill(), doCapture(), dropHint() (+15 more) -### Community 77 - "extractFaceTensors" -Cohesion: 0.12 -Nodes (13): DetectAllFacesTask(), DrawBox(), drawDetections(), DrawFaceLandmarks(), extendWithFaceDetection(), extendWithFaceExpressions(), extractAllFacesAndComputeResults(), extractFaceTensors() (+5 more) +### Community 77 - ".runAndExtendWithFaceDetections" +Cohesion: 0.18 +Nodes (8): DetectAllFacesTask(), DrawBox(), drawDetections(), DrawFaceLandmarks(), extendWithFaceDetection(), isWithFaceDetection(), isWithFaceLandmarks(), resizeResults() ### Community 78 - "n" Cohesion: 0.10 -Nodes (39): ae(), be(), bf(), bi(), ce(), de(), e(), Ef() (+31 more) +Nodes (38): ae(), be(), bi(), ce(), de(), Ef(), er(), FaceMatch() (+30 more) ### Community 79 - "登录反馈与加载优化(2026-10-12)" Cohesion: 0.33 @@ -408,8 +425,8 @@ Cohesion: 0.22 Nodes (8): assets, design_scale, document_size, native_header_px, shape_metrics, source, source_sha256, text_styles ### Community 91 - "wi" -Cohesion: 0.28 -Nodes (9): Ci(), Ei(), Fi(), Ii(), ki(), pe(), ri(), wi() (+1 more) +Cohesion: 0.24 +Nodes (10): Ci(), Ei(), Fi(), Ii(), ki(), pe(), ri(), ve() (+2 more) ### Community 92 - "客户反馈修改(2026-10-12)" Cohesion: 0.33 @@ -436,8 +453,8 @@ Cohesion: 0.50 Nodes (3): drawFaceExpressions(), FaceExpressions(), isWithFaceExpressions() ### Community 102 - ".detect" -Cohesion: 0.18 -Nodes (5): iou(), NetInput(), nonMaxSuppression$1(), TinyYolov2(), TinyYolov2Base() +Cohesion: 0.16 +Nodes (6): drawContour(), extractFaceTensors(), SsdMobilenetv1(), TinyYolov2Base(), x(), y() ### Community 107 - "基础信息记忆与肤质拖动" Cohesion: 0.33 @@ -447,20 +464,68 @@ Nodes (4): 回归命令, 基础信息记忆与肤质拖动, 肤质交互, 范围 Cohesion: 0.40 Nodes (3): dragBy(), h5, touch() +### Community 109 - "submitPhotos" +Cohesion: 0.16 +Nodes (17): bindBackdropClose(), clearScanPhoto(), closeLoginSuccess(), closeOverlay(), handleCamHidden(), leaveCamera(), photosByView(), popHistorySilently() (+9 more) + +### Community 110 - "startCamera" +Cohesion: 0.17 +Nodes (15): beginDetect(), detectFrame(), detTick(), enableFallback(), getCamStream(), handleCamVisible(), loadFaceApi(), loadModels() (+7 more) + +### Community 111 - "e" +Cohesion: 0.17 +Nodes (15): ba(), Bo(), ca(), cl(), da(), e(), fa(), pa() (+7 more) + +### Community 112 - "showScreen" +Cohesion: 0.22 +Nodes (11): loadAppFont(), loginAllowed(), loginBrowser(), loginSucceeded(), loginWechat(), openOverlay(), prepareScanArtwork(), renderAccountStatus() (+3 more) + +### Community 113 - "Point" +Cohesion: 0.24 +Nodes (3): FaceLandmark68NetBase(), Point(), wl() + +### Community 114 - "initialize" +Cohesion: 0.22 +Nodes (9): createBrowserEnv(), createFileSystem(), createNodejsEnv(), initialize(), isBrowser(), isNodejs(), monkeyPatch(), resolveInput() (+1 more) + +### Community 116 - ".forwardInput" +Cohesion: 0.36 +Nodes (5): conv(), depthwiseSeparableConv(), mainBlock(), reductionBlock(), TinyXception() + +### Community 117 - "ao" +Cohesion: 0.33 +Nodes (6): ao(), Do(), io(), oo(), so(), To() + +### Community 118 - "k" +Cohesion: 0.33 +Nodes (6): b(), k(), ne(), Yt(), zn(), zr() + +### Community 120 - "restoreProfile" +Cohesion: 0.50 +Nodes (5): cancelSkinDrag(), goSkin(), restoreProfile(), saveProfile(), setPick() + +### Community 122 - "isValidNumber" +Cohesion: 0.50 +Nodes (4): Dimensions(), isValidNumber(), isValidProbablitiy(), isWithGender() + +### Community 123 - "tt" +Cohesion: 0.50 +Nodes (4): kn(), tt(), wo(), z() + ## Knowledge Gaps -- **305 isolated node(s):** `source`, `document_size`, `pages`, `assets`, `layers` (+300 more) +- **309 isolated node(s):** `source`, `document_size`, `pages`, `assets`, `layers` (+304 more) These have ≤1 connection - possible missing edges or undocumented components. -- **22 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. +- **32 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 `v()` connect `f` to `report-ui.js`, `face-api.js`, `app.js`, `C`?** - _High betweenness centrality (0.059) - this node is a cross-community bridge._ + _High betweenness centrality (0.060) - this node is a cross-community bridge._ - **Why does `fill()` connect `report-ui.js` to `f`?** - _High betweenness centrality (0.047) - this node is a cross-community bridge._ -- **Why does `k()` connect `f` to `face-api.js`, `app.js`, `lib/accounts.js`, `n`, `i`, `C`?** - _High betweenness centrality (0.042) - this node is a cross-community bridge._ + _High betweenness centrality (0.049) - this node is a cross-community bridge._ +- **Why does `k()` connect `k` to `face-api.js`, `app.js`, `f`, `lib/accounts.js`, `n`, `e`, `C`?** + _High betweenness centrality (0.043) - 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?** @@ -468,4 +533,4 @@ _Questions this graph is uniquely positioned to answer:_ - **Are the 9 inferred relationships involving `i()` (e.g. with `da()` and `f()`) actually correct?** _`i()` has 9 INFERRED edges - model-reasoned connections that need verification._ - **What connects `source`, `document_size`, `pages` to the rest of the system?** - _305 weakly-connected nodes found - possible documentation gaps or missing edges._ \ No newline at end of file + _309 weakly-connected nodes found - possible documentation gaps or missing edges._ \ No newline at end of file diff --git a/graphify-out/graph.html b/graphify-out/graph.html index 2b97348..2730def 100644 --- a/graphify-out/graph.html +++ b/graphify-out/graph.html @@ -63,12 +63,12 @@
-
1420 nodes · 2864 edges · 109 communities
+
1431 nodes · 2879 edges · 130 communities