From 3f165bf9e5c0cbc60e75f598c421aa06c4977b12 Mon Sep 17 00:00:00 2001 From: xsl Date: Mon, 12 Oct 2026 20:27:45 +0800 Subject: [PATCH] test(deploy): verify fourth feedback capture and public release --- docs/客户反馈第四轮修改-2026-10-12.md | 17 +- graphify-out/.graphify_labels.json | 33 +- graphify-out/.graphify_labels.json.sig | 2 +- graphify-out/GRAPH_REPORT.md | 189 +++-- graphify-out/graph.html | 8 +- graphify-out/graph.json | 1070 ++++++++++++------------ graphify-out/manifest.json | 16 +- h5/test/capture-quality-browser.mjs | 18 +- h5/test/customer-feedback-second.mjs | 1 + h5/test/customer-feedback.mjs | 1 + 10 files changed, 707 insertions(+), 648 deletions(-) diff --git a/docs/客户反馈第四轮修改-2026-10-12.md b/docs/客户反馈第四轮修改-2026-10-12.md index 62e3645..028e8b4 100644 --- a/docs/客户反馈第四轮修改-2026-10-12.md +++ b/docs/客户反馈第四轮修改-2026-10-12.md @@ -39,7 +39,7 @@ | 歪头 roll | 不判断 | ≤10° | | 脸部平均亮度 | 65~235 | 75~225 | | 稳定累计 | 450ms,短暂漏检不打断 | ≥650ms 且≥3 合格帧;任何漏检/异常打断,帧间隔>2000ms 打断 | -| 稳定期间漂移 | 未单独判断 | 相对起始合格帧 yaw/pitch≤5°,中心 x/y≤原帧 3.5%,框高比例变化≤4.5% | +| 稳定期间漂移 | 未单独判断 | 相对起始合格帧 yaw/pitch≤5°,中心 x/y≤原帧 3.5%,框高占比变化≤4.5 个百分点 | | 最终 JPEG | 实时抓拍后直接推进 | 抓拍后本地复验通过才推进 | 系统相机/相册文件使用同样的单人、完整入镜、距离、角度、光线门限;由于系统照片可能已镜像,沿用不判断左右方向的兼容方式,并记录 `direction_checked:false`。模型加载中最多等待 8 秒;模型确实不可用时保留原有手动/文件降级通路,并记录 `unchecked/model-unavailable`,不伪称已校验。 @@ -72,4 +72,17 @@ - 使用本地真实模型对 C3_180、C3_-135、C3_135 三张样例进行推理,当前收紧门限均通过(yaw 约 4.28°/-44.77°/42.59°)。这不是对真实手机拍摄合格率的保证。 - `node h5/test/capture-quality-browser.mjs`:真实识别引擎和原始模型,使用保持长宽比、居中后的三视角样例模拟视频流,实际自动拍摄三张并复验 JPEG;正脸不能冒充侧脸、反方向侧脸不能直接推进,诊断对应正确视角,相机成功后释放。不是手动触发快门,也不是模拟识别结果。 -全部写入测试仅发生在独立临时数据目录,上游测肤以本地样例替代;不调用收费 Face++,不修改生产账号、照片、报告或配置。真实手机微信/相机验收与上线需后续执行。 +全部写入测试仅发生在独立临时数据目录,上游测肤以本地样例替代;不调用收费 Face++,不修改生产账号、照片、报告或配置。真实手机微信/相机仍需用户最终验收。 + +## 生产部署及只读验收 + +- 功能提交:`92a3965b7d637f19ec3d31389f142447339ff2a6`(`feat(h5): apply fourth feedback and tighten local capture validation`)。 +- 服务器:`ubuntu@1me.xajuzi.com:/home/ubuntu/juzi`;入口:。部署前服务器工作区干净、HEAD 与 origin/main 均为 `e53c809`;通过 Git bundle 快进更新,不代替用户 push、不覆盖服务器私有配置或已有用户数据。 +- 更新后重启 `juzi-h5.service`,让服务端评分展示模块、质量诊断模块及前端同版。服务 active/running,`NRestarts=0`,健康接口 `ok:true`;检查时最近 10 分钟错误级日志为 0。 +- 公网首页、app/capture-quality/head-pose/report-ui 四个脚本、CSS、两份扫描素材全部 200;逐文件 SHA-256 与本地一致,均为 `Cache-Control: no-cache`。 +- 公网未登录报告、后台页面及统计接口均 401;私有身份文件、server.js 均 404;微信配置仍启用,不修改微信凭据或流程。 +- 公网真实模型的自动三连拍测试通过:三个实际合格视角自动抓拍、最终 JPEG 本地复验、实际识别到的正脸/错误方向不能冒充目标侧脸、正确诊断归属、报告后释放摄像头;登录与测肤响应仅浏览器内拦截,不产生生产账号或报告、不调用收费测肤。 +- 公网第三轮专项串行复验通过:五种屏宽的弹窗断行/产品版式、三款产品、扫描动效与成功进入报告、六种等待视口、装饰图标、取消/迟到响应/失败恢复及字体/扫描图失败降级;无页面 JS 异常。已检查公网首页、等待画面及产品截图。 +- 公网第二轮回归串行复验通过:首页口号/Logo 比例、实际 PSD 字体、首屏不加载完整字体和识别引擎、全屏相机、三种圆角轮廓/五官辅助线、五种宽度无溢出;无页面 JS 异常。 +- 公网报告交互串行复验通过:三个维度独立滑动/键盘切换、垂直滚动不误切换、图片放大、七张检测图、三档产品排版;皱纹正文显示指定结论、不再包含分区技术附文。无页面 JS 异常。 +- 同时启动多套冷浏览器时曾出现字体/资源下载超时;串行重试自动拍摄流程通过。字体仍按原 PSD 使用原始 MiSans,并不将此网络压力测试描述为真实手机合格率保证。 diff --git a/graphify-out/.graphify_labels.json b/graphify-out/.graphify_labels.json index ba1c0c8..861ac1b 100644 --- a/graphify-out/.graphify_labels.json +++ b/graphify-out/.graphify_labels.json @@ -4,9 +4,9 @@ "2": "app.js", "3": "skin-score.js", "4": "customer-feedback-second.js", - "5": "n", - "6": "extractFaceTensors", - "7": ".loadFromDisk", + "5": "r", + "6": "extractFaces", + "7": "customer-feedback-third.mjs", "8": "admin.js", "9": "__awaiter", "10": "FaceLandmarks68", @@ -14,14 +14,14 @@ "12": "server.js", "13": "files", "14": ".draw", - "15": "extractFaces", + "15": "getEnv", "16": "巨子测肤 · 1'me 在线肌肤测试 — UI 设计规范", "17": "k", "18": "1'me 在线肌肤测试 H5", "19": "customer-feedback-fourth.js", "20": "build_fixtures.py", "21": "disposeUnusedWeightTensors", - "22": "FaceExpressionNet", + "22": "AgeGenderNet", "23": "facepp-skinanalyze(旷视皮肤分析专业版调用技能)", "24": "巨子测肤 · 1'me 语音播报内容设计文档 V1.0", "25": "mobile-select.iife.min.js", @@ -42,7 +42,7 @@ "40": "第四轮反馈修改与验收", "41": "NeuralNetwork", "42": "layer_at", - "43": "normalize", + "43": "convLayer", "44": "start-local.sh", "45": "PredictAllAgeAndGenderWithFaceAlignmentTask", "46": "PredictAllFaceExpressionsWithFaceAlignmentTask", @@ -65,27 +65,27 @@ "63": "e2e-browser.mjs", "64": "account-client.js", "65": "微信登录接入与公网部署说明", - "66": "report-persistence.mjs", + "66": ".div", "67": "ui-20261009.mjs", "68": "analyze-timeout.js", "69": "misans/README.md", "70": "extractConvParamsFactory", - "71": "AgeGenderNet", + "71": ".predictAgeAndGender", "72": "build_report_copy.py", "73": "camera-geometry.js", "74": "report-copy.js", "75": "prepare_h5_assets.py", - "76": ".detect", + "76": "TinyYolov2Base", "77": "drawFaceExpressions", - "78": "t", + "78": "n", "79": "登录反馈与加载优化(2026-10-12)", "80": "线上微信登录部署记录", "81": "wechat-production.mjs", - "82": "wechat-browser.mjs", + "82": ".forwardInput", "83": "10.09 新版 H5 实施与验收", "84": "微信登录联调:2026-10-12", "85": "test/accounts.js", - "86": "TinyFaceFeatureExtractor", + "86": "normalize", "87": "产品推荐规则:肤龄基准与边界调整", "88": "ui-20261012/manifest.json", "89": "傅艳NEW与项思炼的会话 2026年10月12日.md", @@ -94,14 +94,17 @@ "92": "客户反馈修改(2026-10-12)", "93": ".runAndExtendWithFaceDetections", "94": "第三轮反馈:PSD 对齐、验收及上线记录", - "95": "login-performance.mjs", - "96": "production-loop.mjs", + "95": ".forwardInput", + "96": ".run", "97": "PredictSingleAgeAndGenderWithFaceAlignmentTask", "98": "PredictSingleFaceExpressionsWithFaceAlignmentTask", "99": "DetectSingleFaceLandmarksTask", "100": "extractAllFacesAndComputeResults", + "101": ".toBatchTensor", + "102": "TinyYolov2", "103": "第四轮反馈/傅艳NEW与项思炼的会话 2026年10月12日.md", "104": "export_fourth_feedback_assets.py", "105": "capture-quality-browser.mjs", - "106": "第三轮反馈20261012/傅艳NEW与项思炼的会话 2026年10月12日.md" + "106": "第三轮反馈20261012/傅艳NEW与项思炼的会话 2026年10月12日.md", + "107": "rescaleAndNormalize" } diff --git a/graphify-out/.graphify_labels.json.sig b/graphify-out/.graphify_labels.json.sig index e448121..4c6ca53 100644 --- a/graphify-out/.graphify_labels.json.sig +++ b/graphify-out/.graphify_labels.json.sig @@ -1 +1 @@ -{"0": "37652788ec545d8c", "1": "cb6ea50bd4e4a5ca", "2": "b159712c832c558e", "3": "1f737ca8edb978f2", "4": "56bf12952b0de42b", "5": "47494afa617b619b", "6": "8ebd0f43f0e86540", "7": "29c0ad4b6e50513b", "8": "a689fcb62e7754af", "9": "fcd7da5fb21df420", "10": "15606ce5d8eec23a", "11": "4a490abd5e503318", "12": "aeca274694e158d2", "13": "7e3b558a587a4ebe", "14": "bf75bfc99d4f9e34", "15": "2c0eaf406546159b", "16": "95add6a975c0cb72", "17": "ea5cb911b81546f5", "18": "38bb0b185ceed116", "19": "39abb1eef19df707", "20": "aecf2fce44ba49c5", "21": "9d50601a75c5903e", "22": "f7ad594ba6fb1a78", "23": "90fac00055070ce2", "24": "f85b5b1634224c86", "25": "46e8db3e6e3f37ea", "26": "b6934549d800f3bd", "27": "eab427ce9a5219e9", "28": "3c44bc4b258aa360", "29": "c608f1c6492e1cb1", "30": "73c13793fca09f56", "31": "fbbcfc059751cc6a", "32": "f6bcf56c4589316b", "33": "75f750c5b7d9f63d", "34": "f024ff7942935690", "35": "241be5abeab1da6f", "36": "a7d375041779bad4", "37": "cb8f26249485324a", "38": "9a25b1230b5fe649", "39": "fdd95375b4a5ddb3", "40": "0ea4c7c8a34ebf68", "41": "d96493a5f110bd4c", "42": "916170b9f5d7346b", "43": "eb9096fc959866ce", "44": "852c1bb2446edd9c", "45": "92ab3e5134ed8685", "46": "65718282b3c32109", "47": "e594ecaa8e7d1538", "48": "cf2f2424bc00436f", "49": "1f976711cda158dc", "50": "bbb2b57d72922b16", "51": "eb6a182204867275", "52": "2ec3c8c088568ba9", "53": "68c45056378341a7", "54": "c58d41e8e580fdc6", "55": "ed3c8df05ff45f5e", "56": "9ee2ad45dc27851d", "57": "f2a40b5f1b29f669", "58": "9a659f254e1ffa46", "59": "891f59cda3708718", "60": "a505b7de6257a4e8", "61": "9ed244ba3453a0c1", "62": "1366ae24c7e5897d", "63": "c256b43f75d7809e", "64": "ce0e68dab611f022", "65": "74ae017de0ffd36b", "66": "e042d7fe7351bcb9", "67": "3e126d8deaf6e200", "68": "6b91f3679541de79", "69": "e511846eeba03076", "70": "e2303b43add6bddd", "71": "14fdf4e4c496519f", "72": "c84f196a7bd35861", "73": "2b887bf601ccfb9f", "74": "ae2a154311e1f53a", "75": "69fdd23278518884", "76": "9f2b7646fd18ba5d", "77": "2165f45a42456a76", "78": "7f25acff11d57ca1", "79": "c6cfdfe181232ecc", "80": "315325cde1352e98", "81": "37c559741825be74", "82": "2b037735e1f5b0f6", "83": "1284897282eb47a3", "84": "d8bb296741d3d05c", "85": "4bc370be8afd7db1", "86": "ec24a95b0cbd8486", "87": "e5fa7717989eda80", "88": "8b5ab5232cef3457", "89": "9e3363b80eeceeea", "90": "dd1c246e19a2d032", "91": "83b0fd3b14363e4d", "92": "fced244d93677d90", "93": "a38797466ce43978", "94": "713d04996c4627df", "95": "59c31f858c7b6970", "96": "4195478d5c528371", "97": "01f68dfc34a29d32", "98": "8c471c7baeaaca54", "99": "23f1d406f6c779ae", "100": "29debca18be73445", "103": "6ffbe07b521a061b", "104": "e114a7aebaaca2f1", "105": "0567be4dc8048b9c", "106": "8bc72c179793e1c2"} \ No newline at end of file +{"0": "cd6fa4c897b52500", "1": "cb6ea50bd4e4a5ca", "2": "b159712c832c558e", "3": "1f737ca8edb978f2", "4": "56bf12952b0de42b", "5": "d50faa21d10efe9c", "6": "7162685b110caea8", "7": "325690c89d34f602", "8": "a689fcb62e7754af", "9": "1215838433447012", "10": "68c52c80f38f8b2c", "11": "7c739fd002680640", "12": "aeca274694e158d2", "13": "7e3b558a587a4ebe", "14": "bf75bfc99d4f9e34", "15": "bbd2902bccbcfc9c", "16": "95add6a975c0cb72", "17": "68c8c4a53446cb29", "18": "38bb0b185ceed116", "19": "39abb1eef19df707", "20": "aecf2fce44ba49c5", "21": "d4699b3ebc30431b", "22": "bb2dc34c7d87256a", "23": "90fac00055070ce2", "24": "f85b5b1634224c86", "25": "46e8db3e6e3f37ea", "26": "6039f82328197b7e", "27": "eab427ce9a5219e9", "28": "0018a4ff1d5fe668", "29": "c608f1c6492e1cb1", "30": "73c13793fca09f56", "31": "fbbcfc059751cc6a", "32": "f6bcf56c4589316b", "33": "75f750c5b7d9f63d", "34": "f024ff7942935690", "35": "0a737a97b7cae9fc", "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": "a4d51d71a07be14b", "56": "9ee2ad45dc27851d", "57": "f2a40b5f1b29f669", "58": "55bfa752b54c63f4", "59": "891f59cda3708718", "60": "a505b7de6257a4e8", "61": "57344ed1fd5c260f", "62": "1366ae24c7e5897d", "63": "c256b43f75d7809e", "64": "ce0e68dab611f022", "65": "74ae017de0ffd36b", "66": "09b9b4b462ad944a", "67": "3e126d8deaf6e200", "68": "6b91f3679541de79", "69": "e511846eeba03076", "70": "af5864c4ac65160d", "71": "a2b13160223b5a98", "72": "c84f196a7bd35861", "73": "2b887bf601ccfb9f", "74": "ae2a154311e1f53a", "75": "69fdd23278518884", "76": "4880b6c8e510f062", "77": "d5ce16a18b491627", "78": "390555e7d7f0d203", "79": "c6cfdfe181232ecc", "80": "315325cde1352e98", "81": "37c559741825be74", "82": "315b401775d71d8e", "83": "1284897282eb47a3", "84": "d8bb296741d3d05c", "85": "4bc370be8afd7db1", "86": "8824c7a0092ee36e", "87": "e5fa7717989eda80", "88": "8b5ab5232cef3457", "89": "9e3363b80eeceeea", "90": "dd1c246e19a2d032", "91": "83b0fd3b14363e4d", "92": "fced244d93677d90", "93": "84a88fb74d1ce216", "94": "713d04996c4627df", "95": "5fec2bbca3634aec", "96": "1511ecae12413095", "97": "01f68dfc34a29d32", "98": "8c471c7baeaaca54", "99": "23f1d406f6c779ae", "100": "b8eb9c4c56ab3204", "101": "0c404de2055f9462", "102": "c96276581a8c98d4", "103": "6ffbe07b521a061b", "104": "e114a7aebaaca2f1", "105": "0567be4dc8048b9c", "106": "8bc72c179793e1c2", "107": "8d5f4e992bac9095"} \ No newline at end of file diff --git a/graphify-out/GRAPH_REPORT.md b/graphify-out/GRAPH_REPORT.md index 6cc7c99..fafd14c 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 -- 92 files · ~4,888,704 words +- 92 files · ~4,888,834 words - Verdict: corpus is large enough that graph structure adds value. ## Summary -- 1381 nodes · 2809 edges · 105 communities (82 shown, 23 thin omitted) +- 1382 nodes · 2810 edges · 108 communities (84 shown, 24 thin omitted) - Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 189 edges (avg confidence: 0.54) - Token cost: 0 input · 0 output ## Graph Freshness -- Built from commit: `e53c8095` +- Built from commit: `92a3965b` - Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `graphify update .` after code changes (no API cost). @@ -20,9 +20,9 @@ - app.js - skin-score.js - customer-feedback-second.js -- n -- extractFaceTensors -- .loadFromDisk +- r +- extractFaces +- customer-feedback-third.mjs - admin.js - __awaiter - FaceLandmarks68 @@ -30,14 +30,14 @@ - server.js - files - .draw -- extractFaces +- getEnv - 巨子测肤 · 1'me 在线肌肤测试 — UI 设计规范 - k - 1'me 在线肌肤测试 H5 - customer-feedback-fourth.js - build_fixtures.py - disposeUnusedWeightTensors -- FaceExpressionNet +- AgeGenderNet - facepp-skinanalyze(旷视皮肤分析专业版调用技能) - 巨子测肤 · 1'me 语音播报内容设计文档 V1.0 - mobile-select.iife.min.js @@ -56,7 +56,7 @@ - 第四轮反馈修改与验收 - NeuralNetwork - layer_at -- normalize +- convLayer - start-local.sh - PredictAllAgeAndGenderWithFaceAlignmentTask - PredictAllFaceExpressionsWithFaceAlignmentTask @@ -76,24 +76,24 @@ - e2e-browser.mjs - account-client.js - 微信登录接入与公网部署说明 -- report-persistence.mjs +- .div - ui-20261009.mjs - analyze-timeout.js - misans/README.md - extractConvParamsFactory -- AgeGenderNet +- .predictAgeAndGender - build_report_copy.py -- .detect +- TinyYolov2Base - drawFaceExpressions -- t +- n - 登录反馈与加载优化(2026-10-12) - 线上微信登录部署记录 - wechat-production.mjs -- wechat-browser.mjs +- .forwardInput - 10.09 新版 H5 实施与验收 - 微信登录联调:2026-10-12 - test/accounts.js -- TinyFaceFeatureExtractor +- normalize - 产品推荐规则:肤龄基准与边界调整 - ui-20261012/manifest.json - 傅艳NEW与项思炼的会话 2026年10月12日.md @@ -101,14 +101,17 @@ - 客户反馈修改(2026-10-12) - .runAndExtendWithFaceDetections - 第三轮反馈:PSD 对齐、验收及上线记录 -- login-performance.mjs -- production-loop.mjs +- .forwardInput +- .run - PredictSingleAgeAndGenderWithFaceAlignmentTask - PredictSingleFaceExpressionsWithFaceAlignmentTask - DetectSingleFaceLandmarksTask - extractAllFacesAndComputeResults +- .toBatchTensor +- TinyYolov2 - 第四轮反馈/傅艳NEW与项思炼的会话 2026年10月12日.md - 第三轮反馈20261012/傅艳NEW与项思炼的会话 2026年10月12日.md +- rescaleAndNormalize ## God Nodes (most connected - your core abstractions) 1. `__awaiter()` - 59 edges @@ -137,11 +140,11 @@ ## Import Cycles - None detected. -## Communities (105 total, 23 thin omitted) +## Communities (108 total, 24 thin omitted) ### Community 0 - "face-api.js" Cohesion: 0.02 -Nodes (36): cn(), computeReshapedDimensions(), createBrowserEnv(), createFileSystem(), createNodejsEnv(), Dimensions(), dr(), en() (+28 more) +Nodes (34): boxPredictionLayer(), cn(), createBrowserEnv(), createFileSystem(), createNodejsEnv(), decodeBoxesLayer(), depthwiseConvLayer(), dr() (+26 more) ### Community 1 - "线上闭环测试(不含真实微信授权)" Cohesion: 0.25 @@ -159,33 +162,29 @@ Nodes (45): acneGrade(), buildViewModel(), calcAcne(), calcContour(), calcSens() Cohesion: 0.17 Nodes (10): assert, context, face, fs, geometry, original, path, source (+2 more) -### Community 5 - "n" -Cohesion: 0.11 -Nodes (44): a(), ae(), bf(), cf(), d(), da(), drawContour(), dt() (+36 more) +### Community 5 - "r" +Cohesion: 0.14 +Nodes (34): a(), ae(), bf(), cf(), d(), drawContour(), dt(), ea() (+26 more) -### Community 6 - "extractFaceTensors" +### Community 6 - "extractFaces" Cohesion: 0.10 -Nodes (9): bgrToRgbTensor(), Box(), DetectAllFaceLandmarksTask(), extendWithFaceLandmarks(), extractFaceTensors(), FaceLandmarks(), isDimensions(), minBbox() (+1 more) +Nodes (15): bgrToRgbTensor(), Box(), DetectAllFaceLandmarksTask(), Dimensions(), extendWithFaceLandmarks(), extractFaces(), extractFaceTensors(), imageTensorToCanvas() (+7 more) -### Community 7 - ".loadFromDisk" -Cohesion: 0.25 -Nodes (4): ComposableTask(), getModelUris(), Gf(), TinyFaceDetector() +### Community 7 - "customer-feedback-third.mjs" +Cohesion: 0.14 +Nodes (9): actualLines(), errors, guideLines, manifest, rect(), requests, root, widths (+1 more) ### Community 8 - "admin.js" Cohesion: 0.20 Nodes (29): ageText(), api(), bind(), captureQualityHtml(), closeDetail(), collectFilters(), dimsHtml(), doRetry() (+21 more) ### Community 9 - "__awaiter" -Cohesion: 0.13 -Nodes (13): __awaiter(), extendWithFaceExpressions(), extractSingleFaceAndComputeResult(), fetchImage(), fetchJson(), fetchNetWeights(), fetchOrThrow(), __generator() (+5 more) - -### Community 10 - "FaceLandmarks68" -Cohesion: 0.19 -Nodes (3): FaceLandmarks5(), FaceLandmarks68(), getCenterPoint() +Cohesion: 0.14 +Nodes (13): __awaiter(), ComposableTask(), fetchImage(), fetchJson(), fetchNetWeights(), fetchOrThrow(), __generator(), getModelUris() (+5 more) ### Community 11 - "lib/accounts.js" -Cohesion: 0.17 -Nodes (20): atomic(), body(), cookie(), cookies(), crypto, fs, json(), login() (+12 more) +Cohesion: 0.06 +Nodes (37): atomic(), body(), cookie(), cookies(), crypto, fs, json(), login() (+29 more) ### Community 12 - "server.js" Cohesion: 0.08 @@ -195,17 +194,17 @@ Nodes (52): accounts, appendRecord(), callFacepp(), CaptureDiagnostics, CRED, cr 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) +### Community 15 - "getEnv" +Cohesion: 0.27 +Nodes (14): awaitMediaLoaded(), bufferToImage(), createCanvas(), createCanvasFromMedia(), extractImagePatches(), getContext2dOrThrow(), getEnv(), getMediaDimensions() (+6 more) ### 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 - "k" -Cohesion: 0.17 -Nodes (12): b(), ba(), gn(), k(), kn(), ne(), tt(), wo() (+4 more) +Cohesion: 0.15 +Nodes (15): b(), ba(), ca(), da(), fa(), k(), ne(), pa() (+7 more) ### Community 18 - "1'me 在线肌肤测试 H5" Cohesion: 0.13 @@ -220,8 +219,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.14 -Nodes (23): disposeUnusedWeightTensors(), extractorsFactory$3(), extractorsFactory$5(), extractorsFactory$7(), extractorsFactory$9(), extractParamsFromWeigthMap(), extractParamsFromWeigthMap$1(), extractParamsFromWeigthMap$2() (+15 more) +Cohesion: 0.09 +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 @@ -236,8 +235,8 @@ Cohesion: 0.20 Nodes (16): _arrayLikeToArray(), _arrayWithHoles(), _arrayWithoutHoles(), _classCallCheck(), _createClass(), _defineProperties(), h(), _iterableToArray() (+8 more) ### Community 26 - ".extractWeights" -Cohesion: 0.13 -Nodes (15): createFaceDetectionNet(), createFaceRecognitionNet(), createMtcnn(), createSsdMobilenetv1(), createTinyFaceDetector(), createTinyYolov2(), extractFCParamsFactory(), extractorsFactory$2() (+7 more) +Cohesion: 0.12 +Nodes (16): createFaceDetectionNet(), createFaceRecognitionNet(), createMtcnn(), createSsdMobilenetv1(), createTinyFaceDetector(), createTinyYolov2(), extractFCParamsFactory(), extractorsFactory$2() (+8 more) ### Community 27 - "gen_voice.py" Cohesion: 0.30 @@ -245,7 +244,7 @@ Nodes (11): ndarray, Path, gen_countdown(), main(), normalize_clip(), 倒计时 ### Community 28 - "C" Cohesion: 0.09 -Nodes (29): ao(), C(), cd(), cl(), co(), Do(), eo(), fo() (+21 more) +Nodes (34): ao(), Bo(), C(), cd(), cl(), co(), Do(), eo() (+26 more) ### Community 29 - "face-api.js 本地化依赖(h5/vendor/faceapi/)" Cohesion: 0.29 @@ -260,8 +259,8 @@ 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.06 -Nodes (27): alternate, approved, assert, crop, details, excellent, fs, model (+19 more) +Cohesion: 0.11 +Nodes (18): alternate, approved, assert, crop, details, excellent, fs, model (+10 more) ### Community 37 - "UI 外发版 10.09 图片资源" Cohesion: 0.40 @@ -272,16 +271,16 @@ Cohesion: 0.40 Nodes (4): 1meAI测肤旷视UI问题反馈, UI交互界面调整, 交互, **设计** ### Community 40 - "第四轮反馈修改与验收" -Cohesion: 0.25 -Nodes (7): PSD 来源, 前端参数及限制, 后台校准留痕, 已确认并实现, 皱纹(紧塑力)原文, 第四轮反馈修改与验收, 验证 +Cohesion: 0.22 +Nodes (8): PSD 来源, 前端参数及限制, 后台校准留痕, 已确认并实现, 生产部署及只读验收, 皱纹(紧塑力)原文, 第四轮反馈修改与验收, 验证 ### Community 42 - "layer_at" Cohesion: 0.18 Nodes (11): list, bounds(), layer_at(), main(), save_image(), composite(), main(), sha256() (+3 more) -### Community 43 - "normalize" -Cohesion: 0.05 -Nodes (37): boxPredictionLayer(), conv(), conv$1(), convDown(), convLayer(), convLayer$1(), convNoRelu(), convWithBatchNorm() (+29 more) +### Community 43 - "convLayer" +Cohesion: 0.23 +Nodes (11): convLayer(), convWithBatchNorm(), depthwiseSeparableConv$1(), fullyConnectedLayer(), leaky(), ONet(), PNet(), prelu() (+3 more) ### Community 44 - "start-local.sh" Cohesion: 0.50 @@ -304,8 +303,8 @@ Cohesion: 0.11 Nodes (17): 1. 结论和依据, 2. 统一比较口径, 3. 逐页差异和调整内容, 4. 报告数据如何接到新 UI, 5. 登录与“我的报告”的真实能力缺口, 6. 原稿中需要整理的内容, 7. 实施顺序与交付物, 8. 验收定义 (+9 more) ### Community 55 - "i" -Cohesion: 0.10 -Nodes (24): bn(), ca(), dn(), ee(), Ef(), et(), fa(), fn() (+16 more) +Cohesion: 0.09 +Nodes (22): bn(), dn(), ee(), Ef(), et(), fn(), i(), je() (+14 more) ### Community 56 - "report-ui.js" Cohesion: 0.50 @@ -316,12 +315,8 @@ Cohesion: 0.60 Nodes (5): diffCtx(), loadJSON(), main(), okNum(), okStr() ### Community 58 - ".dispose" -Cohesion: 0.16 -Nodes (12): extractBoundingBoxes(), FaceRecognitionNet(), getSizesForScale(), nonMaxSuppression(), normalize$1(), pyramidDown(), rescaleAndNormalize(), scale() (+4 more) - -### Community 61 - "FaceProcessor" -Cohesion: 0.24 -Nodes (3): extractParams$1(), FaceLandmark68TinyNet(), FaceProcessor() +Cohesion: 0.17 +Nodes (12): computeReshapedDimensions(), extractBoundingBoxes(), iou(), isEven(), nonMaxSuppression(), nonMaxSuppression$1(), pyramidDown(), scale() (+4 more) ### Community 62 - "提交前 Review(2026-10-11)" Cohesion: 0.40 @@ -339,29 +334,33 @@ Nodes (5): browser(), init(), read(), rememberKind(), request() Cohesion: 0.22 Nodes (7): 公网服务器配置, 公网真机验收清单, 反向代理与后台保护, 已完成的链路, 微信登录接入与公网部署说明, 数据、迁移与备份, 本机开发环境限制(不代表线上状态) -### Community 66 - "report-persistence.mjs" -Cohesion: 0.29 -Nodes (6): child, dataRoot, fx, h5, ReportUI, require +### Community 66 - ".div" +Cohesion: 0.21 +Nodes (4): FaceLandmark68NetBase(), FaceLandmarks5(), getCenterPoint(), Point() ### Community 68 - "analyze-timeout.js" Cohesion: 0.20 Nodes (7): assert, end, fs, path, source, start, vm ### Community 70 - "extractConvParamsFactory" -Cohesion: 0.28 -Nodes (8): extractConvParamsFactory(), extractorsFactory(), extractorsFactory$1(), extractorsFactory$6(), extractParams(), extractParams$2(), extractParams$6(), extractSeparableConvParamsFactory() +Cohesion: 0.20 +Nodes (9): extractConvParamsFactory(), extractorsFactory(), extractorsFactory$1(), extractorsFactory$6(), extractParams(), extractParams$2(), extractParams$6(), extractParamsTiny() (+1 more) -### Community 76 - ".detect" -Cohesion: 0.13 -Nodes (8): iou(), isEven(), NetInput(), nonMaxSuppression$1(), sigmoid(), TinyYolov2(), TinyYolov2Base(), validateConfig() +### Community 71 - ".predictAgeAndGender" +Cohesion: 0.28 +Nodes (4): extendWithAge(), extendWithGender(), PredictAllAgeAndGenderTask(), PredictSingleAgeAndGenderTask() + +### Community 76 - "TinyYolov2Base" +Cohesion: 0.40 +Nodes (3): sigmoid(), TinyYolov2Base(), validateConfig() ### Community 77 - "drawFaceExpressions" -Cohesion: 0.21 -Nodes (9): DrawBox(), drawDetections(), drawFaceExpressions(), DrawFaceLandmarks(), FaceExpressions(), isWithFaceDetection(), isWithFaceExpressions(), isWithFaceLandmarks() (+1 more) +Cohesion: 0.22 +Nodes (8): DrawBox(), drawDetections(), drawFaceExpressions(), DrawFaceLandmarks(), FaceExpressions(), isWithFaceDetection(), isWithFaceExpressions(), isWithFaceLandmarks() -### Community 78 - "t" -Cohesion: 0.12 -Nodes (24): be(), bi(), Bo(), ce(), de(), e(), er(), fe() (+16 more) +### Community 78 - "n" +Cohesion: 0.10 +Nodes (33): be(), bi(), ce(), de(), e(), er(), fe(), Ie() (+25 more) ### Community 79 - "登录反馈与加载优化(2026-10-12)" Cohesion: 0.25 @@ -375,9 +374,9 @@ Nodes (6): 初次部署时的凭据查找记录(现已由用户提供), 初 Cohesion: 0.60 Nodes (4): api(), base, callback(), start() -### Community 82 - "wechat-browser.mjs" -Cohesion: 0.22 -Nodes (6): createAccounts, h5, ReportUI, require, root, SkinScore +### Community 82 - ".forwardInput" +Cohesion: 0.31 +Nodes (6): conv(), denseBlock4(), depthwiseSeparableConv(), mainBlock(), reductionBlock(), TinyXception() ### Community 83 - "10.09 新版 H5 实施与验收" Cohesion: 0.29 @@ -391,6 +390,10 @@ Nodes (6): 后续真机确认与体验优化, 微信登录联调:2026-10-12, Cohesion: 0.22 Nodes (9): assert, create, fs, http, os, path, ReportUI, SkinScore (+1 more) +### Community 86 - "normalize" +Cohesion: 0.20 +Nodes (5): denseBlock3(), FaceFeatureExtractor(), normalize(), __spreadArrays(), TinyFaceFeatureExtractor() + ### Community 87 - "产品推荐规则:肤龄基准与边界调整" Cohesion: 0.33 Nodes (6): 产品推荐规则:肤龄基准与边界调整, 决策顺序, 后台与前端一致性, 实施与验证范围, 已明确的要求, 已确认的三个条件 @@ -408,34 +411,42 @@ Cohesion: 0.33 Nodes (5): 公网部署与复测, 客户反馈修改(2026-10-12), 皱纹数据说明, 逐项处理, 验证 ### Community 93 - ".runAndExtendWithFaceDetections" -Cohesion: 0.21 -Nodes (7): allFacesMtcnn(), allFacesSsdMobilenetv1(), allFacesTinyYolov2(), detectAllFaces(), DetectAllFacesTask(), DetectSingleFaceTask(), extendWithFaceDetection() +Cohesion: 0.19 +Nodes (8): allFacesMtcnn(), allFacesSsdMobilenetv1(), allFacesTinyYolov2(), detectAllFaces(), DetectAllFacesTask(), DetectSingleFaceTask(), extendWithFaceDetection(), resizeResults() ### Community 94 - "第三轮反馈:PSD 对齐、验收及上线记录" Cohesion: 0.33 Nodes (5): 原稿与导出可追溯性, 已完成, 本地验证, 生产部署及只读验收, 第三轮反馈:PSD 对齐、验收及上线记录 -### Community 96 - "production-loop.mjs" -Cohesion: 0.50 -Nodes (3): artifacts, errors, samples +### Community 95 - ".forwardInput" +Cohesion: 0.48 +Nodes (6): conv$1(), convDown(), convLayer$1(), convNoRelu(), residual(), residualDown() + +### Community 96 - ".run" +Cohesion: 0.29 +Nodes (3): extendWithFaceExpressions(), PredictAllFaceExpressionsTask(), PredictSingleFaceExpressionsTask() ### Community 100 - "extractAllFacesAndComputeResults" -Cohesion: 0.12 -Nodes (8): ComputeAllFaceDescriptorsTask(), ComputeSingleFaceDescriptorTask(), extendWithAge(), extendWithFaceDescriptor(), extendWithGender(), extractAllFacesAndComputeResults(), PredictAllAgeAndGenderTask(), PredictSingleAgeAndGenderTask() +Cohesion: 0.11 +Nodes (8): ComputeAllFaceDescriptorsTask(), ComputeSingleFaceDescriptorTask(), extendWithFaceDescriptor(), extractAllFacesAndComputeResults(), extractSingleFaceAndComputeResult(), FaceLandmarks(), FaceRecognitionNet(), minBbox() + +### Community 107 - "rescaleAndNormalize" +Cohesion: 0.67 +Nodes (3): getSizesForScale(), normalize$1(), rescaleAndNormalize() ## Knowledge Gaps -- **284 isolated node(s):** `source`, `document_size`, `pages`, `assets`, `layers` (+279 more) +- **285 isolated node(s):** `source`, `document_size`, `pages`, `assets`, `layers` (+280 more) These have ≤1 connection - possible missing edges or undocumented components. -- **23 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. +- **24 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 `n` to `report-ui.js`, `face-api.js`, `app.js`, `C`?** +- **Why does `v()` connect `r` to `report-ui.js`, `face-api.js`, `app.js`, `C`?** _High betweenness centrality (0.069) - this node is a cross-community bridge._ -- **Why does `k()` connect `k` to `face-api.js`, `app.js`, `n`, `lib/accounts.js`, `t`, `i`?** +- **Why does `k()` connect `k` to `face-api.js`, `app.js`, `r`, `lib/accounts.js`, `n`, `C`?** _High betweenness centrality (0.063) - this node is a cross-community bridge._ -- **Why does `fill()` connect `report-ui.js` to `n`?** +- **Why does `fill()` connect `report-ui.js` to `r`?** _High betweenness centrality (0.055) - 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._ @@ -444,4 +455,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?** - _284 weakly-connected nodes found - possible documentation gaps or missing edges._ \ No newline at end of file + _285 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 3534fc2..0a95dd4 100644 --- a/graphify-out/graph.html +++ b/graphify-out/graph.html @@ -63,12 +63,12 @@
-
1381 nodes · 2809 edges · 105 communities
+
1382 nodes · 2810 edges · 108 communities