feat(h5): apply fourth feedback and tighten local capture validation

This commit is contained in:
xsl
2026-10-12 20:16:41 +08:00
parent e53c809522
commit 92a3965b7d
33 changed files with 3758 additions and 1385 deletions
+98 -85
View File
@@ -1,16 +1,16 @@
# Graph Report - juzi (2026-10-12)
## Corpus Check
- 83 files · ~4,627,050 words
- 92 files · ~4,888,704 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 1326 nodes · 2732 edges · 98 communities (78 shown, 20 thin omitted)
- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 183 edges (avg confidence: 0.54)
- 1381 nodes · 2809 edges · 105 communities (82 shown, 23 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: `f3e7eac9`
- Built from commit: `e53c8095`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@@ -21,11 +21,11 @@
- skin-score.js
- customer-feedback-second.js
- n
- .runAndExtendWithFaceDetection
- .toString
- extractFaceTensors
- .loadFromDisk
- admin.js
- __awaiter
- FaceLandmarks
- FaceLandmarks68
- lib/accounts.js
- server.js
- files
@@ -34,10 +34,10 @@
- 巨子测肤 · 1'me 在线肌肤测试 — UI 设计规范
- k
- 1'me 在线肌肤测试 H5
- head-pose.js
- customer-feedback-fourth.js
- build_fixtures.py
- disposeUnusedWeightTensors
- .predictAgeAndGender
- FaceExpressionNet
- facepp-skinanalyze(旷视皮肤分析专业版调用技能)
- 巨子测肤 · 1'me 语音播报内容设计文档 V1.0
- mobile-select.iife.min.js
@@ -53,6 +53,7 @@
- UI 外发版 10.09 图片资源
- FaceLandmark68Net
- UI交互界面调整
- 第四轮反馈修改与验收
- NeuralNetwork
- layer_at
- normalize
@@ -70,6 +71,7 @@
- regression.js
- .dispose
- call_skinanalyze.sh
- FaceProcessor
- 提交前 Review(2026-10-11)
- e2e-browser.mjs
- account-client.js
@@ -78,9 +80,10 @@
- ui-20261009.mjs
- analyze-timeout.js
- misans/README.md
- .forwardInput
- extractConvParamsFactory
- AgeGenderNet
- build_report_copy.py
- TinyYolov2Base
- .detect
- drawFaceExpressions
- t
- 登录反馈与加载优化(2026-10-12)
@@ -90,19 +93,21 @@
- 10.09 新版 H5 实施与验收
- 微信登录联调:2026-10-12
- test/accounts.js
- TinyFaceFeatureExtractor
- 产品推荐规则:肤龄基准与边界调整
- ui-20261012/manifest.json
- 傅艳NEW与项思炼的会话 2026年10月12日.md
- wi
- 客户反馈修改(2026-10-12)
- .runAndExtendWithFaceDetections
- 第三轮反馈:PSD 对齐及本地验收
- 第三轮反馈:PSD 对齐、验收及上线记录
- login-performance.mjs
- production-loop.mjs
- PredictSingleAgeAndGenderWithFaceAlignmentTask
- PredictSingleFaceExpressionsWithFaceAlignmentTask
- DetectSingleFaceLandmarksTask
- extractAllFacesAndComputeResults
- 第四轮反馈/傅艳NEW与项思炼的会话 2026年10月12日.md
- 第三轮反馈20261012/傅艳NEW与项思炼的会话 2026年10月12日.md
## God Nodes (most connected - your core abstractions)
@@ -110,12 +115,12 @@
2. `__generator()` - 59 edges
3. `n()` - 37 edges
4. `r()` - 35 edges
5. `t()` - 33 edges
6. `i()` - 33 edges
5. `i()` - 33 edges
6. `t()` - 32 edges
7. `C()` - 32 edges
8. `toNetInput()` - 27 edges
9. `e()` - 22 edges
10. `loadRecords()` - 20 edges
10. `loadRecords()` - 21 edges
## Surprising Connections (you probably didn't know these)
- `actualLines()` --indirect_call--> `el()` [INFERRED]
@@ -124,19 +129,19 @@
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
- `detectFrame()` --indirect_call--> `d()` [INFERRED]
- `checkStill()` --indirect_call--> `d()` [INFERRED]
h5/js/app.js → h5/vendor/faceapi/face-api.js
- `vizCompose()` --indirect_call--> `rh()` [INFERRED]
- `detectFrame()` --indirect_call--> `d()` [INFERRED]
h5/js/app.js → h5/vendor/faceapi/face-api.js
## Import Cycles
- None detected.
## Communities (98 total, 20 thin omitted)
## Communities (105 total, 23 thin omitted)
### Community 0 - "face-api.js"
Cohesion: 0.02
Nodes (37): bgrToRgbTensor(), cn(), computeReshapedDimensions(), createBrowserEnv(), createFileSystem(), createNodejsEnv(), Dimensions(), dr() (+29 more)
Nodes (36): cn(), computeReshapedDimensions(), createBrowserEnv(), createFileSystem(), createNodejsEnv(), Dimensions(), dr(), en() (+28 more)
### Community 1 - "线上闭环测试(不含真实微信授权)"
Cohesion: 0.25
@@ -144,7 +149,7 @@ Nodes (7): 发现并修复, 可复现命令, 已通过的检查, 线上闭环测
### Community 2 - "app.js"
Cohesion: 0.05
Nodes (82): applyMirror(), armNudge(), beginDetect(), bindBackdropClose(), busyWithFlow(), captureFromVideo(), captureHaptic(), checkStill() (+74 more)
Nodes (85): applyMirror(), armNudge(), beginDetect(), bindBackdropClose(), busyWithFlow(), captureFromVideo(), captureHaptic(), checkStill() (+77 more)
### Community 3 - "skin-score.js"
Cohesion: 0.12
@@ -155,28 +160,28 @@ Cohesion: 0.17
Nodes (10): assert, context, face, fs, geometry, original, path, source (+2 more)
### Community 5 - "n"
Cohesion: 0.15
Nodes (36): a(), ae(), bf(), cf(), d(), drawContour(), dt(), ea() (+28 more)
Cohesion: 0.11
Nodes (44): a(), ae(), bf(), cf(), d(), da(), drawContour(), dt() (+36 more)
### Community 6 - ".runAndExtendWithFaceDetection"
Cohesion: 0.23
Nodes (6): allFacesMtcnn(), allFacesSsdMobilenetv1(), allFacesTinyYolov2(), DetectAllFaceLandmarksTask(), detectAllFaces(), DetectSingleFaceTask()
### Community 6 - "extractFaceTensors"
Cohesion: 0.10
Nodes (9): bgrToRgbTensor(), Box(), DetectAllFaceLandmarksTask(), extendWithFaceLandmarks(), extractFaceTensors(), FaceLandmarks(), isDimensions(), minBbox() (+1 more)
### Community 7 - ".toString"
Cohesion: 0.33
Nodes (5): FaceMatch(), la(), pr(), pt(), vt()
### Community 7 - ".loadFromDisk"
Cohesion: 0.25
Nodes (4): ComposableTask(), getModelUris(), Gf(), TinyFaceDetector()
### Community 8 - "admin.js"
Cohesion: 0.21
Nodes (28): ageText(), api(), bind(), closeDetail(), collectFilters(), dimsHtml(), doRetry(), dSec() (+20 more)
Cohesion: 0.20
Nodes (29): ageText(), api(), bind(), captureQualityHtml(), closeDetail(), collectFilters(), dimsHtml(), doRetry() (+21 more)
### Community 9 - "__awaiter"
Cohesion: 0.14
Nodes (12): __awaiter(), ComposableTask(), fetchImage(), fetchJson(), fetchNetWeights(), fetchOrThrow(), __generator(), getModelUris() (+4 more)
Cohesion: 0.13
Nodes (13): __awaiter(), extendWithFaceExpressions(), extractSingleFaceAndComputeResult(), fetchImage(), fetchJson(), fetchNetWeights(), fetchOrThrow(), __generator() (+5 more)
### Community 10 - "FaceLandmarks"
Cohesion: 0.09
Nodes (8): FaceLandmark68NetBase(), FaceLandmarks(), FaceLandmarks5(), FaceLandmarks68(), getCenterPoint(), minBbox(), Point(), wl()
### Community 10 - "FaceLandmarks68"
Cohesion: 0.19
Nodes (3): FaceLandmarks5(), FaceLandmarks68(), getCenterPoint()
### Community 11 - "lib/accounts.js"
Cohesion: 0.17
@@ -184,43 +189,39 @@ Nodes (20): atomic(), body(), cookie(), cookies(), crypto, fs, json(), login() (
### Community 12 - "server.js"
Cohesion: 0.08
Nodes (51): accounts, appendRecord(), callFacepp(), CRED, crypto, csvCell(), DATA_DIR, displaySkinAge() (+43 more)
Nodes (52): accounts, appendRecord(), callFacepp(), CaptureDiagnostics, CRED, crypto, csvCell(), DATA_DIR (+44 more)
### Community 13 - "files"
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.12
Nodes (22): awaitMediaLoaded(), Box(), bufferToImage(), createCanvas(), createCanvasFromMedia(), extractFaces(), extractFaceTensors(), extractImagePatches() (+14 more)
Cohesion: 0.19
Nodes (18): awaitMediaLoaded(), bufferToImage(), createCanvas(), createCanvasFromMedia(), extractFaces(), extractImagePatches(), getContext2dOrThrow(), getEnv() (+10 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.11
Nodes (21): b(), ba(), be(), ca(), da(), fa(), jt(), k() (+13 more)
Cohesion: 0.17
Nodes (12): b(), ba(), gn(), k(), kn(), ne(), tt(), wo() (+4 more)
### Community 18 - "1'me 在线肌肤测试 H5"
Cohesion: 0.13
Nodes (15): 10.09 更新, 1'me 在线肌肤测试 H5, Admin API(统一返回 `{ok:false,message}` 错误), Windows 本机部署(提测用), 后台查看(admin.html), 密钥配置, 已知占位清单, 技术说明 (+7 more)
### Community 19 - "head-pose.js"
Cohesion: 0.33
Nodes (8): assertPoints(), check(), clamp(), dist(), estimate(), makeFrontal(), makeSide(), midpoint()
### Community 19 - "customer-feedback-fourth.js"
Cohesion: 0.06
Nodes (37): evaluate(), finite(), assertPoints(), check(), clamp(), dist(), estimate(), makeFrontal() (+29 more)
### Community 20 - "build_fixtures.py"
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 (24): disposeUnusedWeightTensors(), extractorsFactory$3(), extractorsFactory$5(), extractorsFactory$7(), extractorsFactory$9(), extractParamsFromWeigthMap(), extractParamsFromWeigthMap$1(), extractParamsFromWeigthMap$2() (+16 more)
### Community 22 - ".predictAgeAndGender"
Cohesion: 0.28
Nodes (4): extendWithAge(), extendWithGender(), PredictAllAgeAndGenderTask(), PredictSingleAgeAndGenderTask()
Cohesion: 0.14
Nodes (23): disposeUnusedWeightTensors(), extractorsFactory$3(), extractorsFactory$5(), extractorsFactory$7(), extractorsFactory$9(), extractParamsFromWeigthMap(), extractParamsFromWeigthMap$1(), extractParamsFromWeigthMap$2() (+15 more)
### Community 23 - "facepp-skinanalyze(旷视皮肤分析专业版调用技能)"
Cohesion: 0.20
@@ -235,8 +236,8 @@ Cohesion: 0.20
Nodes (16): _arrayLikeToArray(), _arrayWithHoles(), _arrayWithoutHoles(), _classCallCheck(), _createClass(), _defineProperties(), h(), _iterableToArray() (+8 more)
### Community 26 - ".extractWeights"
Cohesion: 0.05
Nodes (29): AgeGenderNet(), createFaceDetectionNet(), createFaceRecognitionNet(), createMtcnn(), createSsdMobilenetv1(), createTinyFaceDetector(), createTinyYolov2(), extractConvParamsFactory() (+21 more)
Cohesion: 0.13
Nodes (15): createFaceDetectionNet(), createFaceRecognitionNet(), createMtcnn(), createSsdMobilenetv1(), createTinyFaceDetector(), createTinyYolov2(), extractFCParamsFactory(), extractorsFactory$2() (+7 more)
### Community 27 - "gen_voice.py"
Cohesion: 0.30
@@ -244,7 +245,7 @@ Nodes (11): ndarray, Path, gen_countdown(), main(), normalize_clip(), 倒计时
### Community 28 - "C"
Cohesion: 0.09
Nodes (31): ao(), C(), cd(), co(), Do(), eo(), fo(), Ft() (+23 more)
Nodes (29): ao(), C(), cd(), cl(), co(), Do(), eo(), fo() (+21 more)
### Community 29 - "face-api.js 本地化依赖(h5/vendor/faceapi/)"
Cohesion: 0.29
@@ -260,7 +261,7 @@ Nodes (4): main(), 递归缩放 result 内全部坐标:{left,top,width,height}
### Community 35 - "customer-feedback.js"
Cohesion: 0.06
Nodes (26): alternate, assert, crop, details, excellent, fs, model, modelBefore (+18 more)
Nodes (27): alternate, approved, assert, crop, details, excellent, fs, model (+19 more)
### Community 37 - "UI 外发版 10.09 图片资源"
Cohesion: 0.40
@@ -270,13 +271,17 @@ Nodes (4): UI 外发版 10.09 图片资源, 前端素材对应, 文件位置,
Cohesion: 0.40
Nodes (4): 1meAI测肤旷视UI问题反馈, UI交互界面调整, 交互, **设计**
### Community 40 - "第四轮反馈修改与验收"
Cohesion: 0.25
Nodes (7): 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.09
Nodes (27): conv(), conv$1(), convDown(), convLayer(), convLayer$1(), convNoRelu(), convWithBatchNorm(), denseBlock3() (+19 more)
Cohesion: 0.05
Nodes (37): boxPredictionLayer(), conv(), conv$1(), convDown(), convLayer(), convLayer$1(), convNoRelu(), convWithBatchNorm() (+29 more)
### Community 44 - "start-local.sh"
Cohesion: 0.50
@@ -299,20 +304,24 @@ Cohesion: 0.11
Nodes (17): 1. 结论和依据, 2. 统一比较口径, 3. 逐页差异和调整内容, 4. 报告数据如何接到新 UI, 5. 登录与“我的报告”的真实能力缺口, 6. 原稿中需要整理的内容, 7. 实施顺序与交付物, 8. 验收定义 (+9 more)
### Community 55 - "i"
Cohesion: 0.11
Nodes (20): bn(), dn(), ee(), et(), fn(), i(), je(), ln() (+12 more)
Cohesion: 0.10
Nodes (24): bn(), ca(), dn(), ee(), Ef(), et(), fa(), fn() (+16 more)
### Community 56 - "report-ui.js"
Cohesion: 0.50
Nodes (8): build(), count(), fill(), metricText(), numeric(), scalar(), wrinkleDetails(), wrinkleText()
Nodes (7): build(), count(), fill(), focusOf(), numeric(), scalar(), wrinkleDetails()
### Community 57 - "regression.js"
Cohesion: 0.60
Nodes (5): diffCtx(), loadJSON(), main(), okNum(), okStr()
### Community 58 - ".dispose"
Cohesion: 0.14
Nodes (13): extendWithFaceLandmarks(), getSizesForScale(), iou(), nonMaxSuppression(), nonMaxSuppression$1(), normalize$1(), ObjectDetection(), rescaleAndNormalize() (+5 more)
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()
### Community 62 - "提交前 Review(2026-10-11)"
Cohesion: 0.40
@@ -338,17 +347,21 @@ Nodes (6): child, dataRoot, fx, h5, ReportUI, require
Cohesion: 0.20
Nodes (7): assert, end, fs, path, source, start, vm
### Community 70 - ".forwardInput"
Cohesion: 0.22
Nodes (9): boxPredictionLayer(), decodeBoxesLayer(), depthwiseConvLayer(), getCenterCoordinatesAndSizesLayer(), getStridesForLayerIdx(), mobileNetV1(), outputLayer(), pointwiseConvLayer() (+1 more)
### Community 70 - "extractConvParamsFactory"
Cohesion: 0.28
Nodes (8): extractConvParamsFactory(), extractorsFactory(), extractorsFactory$1(), extractorsFactory$6(), extractParams(), extractParams$2(), extractParams$6(), extractSeparableConvParamsFactory()
### Community 76 - ".detect"
Cohesion: 0.13
Nodes (8): iou(), isEven(), NetInput(), nonMaxSuppression$1(), sigmoid(), TinyYolov2(), TinyYolov2Base(), validateConfig()
### Community 77 - "drawFaceExpressions"
Cohesion: 0.22
Nodes (6): DrawBox(), drawDetections(), drawFaceExpressions(), DrawFaceLandmarks(), FaceExpressions(), isWithFaceExpressions()
Cohesion: 0.21
Nodes (9): DrawBox(), drawDetections(), drawFaceExpressions(), DrawFaceLandmarks(), FaceExpressions(), isWithFaceDetection(), isWithFaceExpressions(), isWithFaceLandmarks() (+1 more)
### Community 78 - "t"
Cohesion: 0.10
Nodes (26): bi(), Bo(), ce(), cl(), de(), e(), Ef(), er() (+18 more)
Cohesion: 0.12
Nodes (24): be(), bi(), Bo(), ce(), de(), e(), er(), fe() (+16 more)
### Community 79 - "登录反馈与加载优化(2026-10-12)"
Cohesion: 0.25
@@ -395,40 +408,40 @@ Cohesion: 0.33
Nodes (5): 公网部署与复测, 客户反馈修改(2026-10-12), 皱纹数据说明, 逐项处理, 验证
### Community 93 - ".runAndExtendWithFaceDetections"
Cohesion: 0.33
Nodes (5): DetectAllFacesTask(), extendWithFaceDetection(), isWithFaceDetection(), isWithFaceLandmarks(), resizeResults()
Cohesion: 0.21
Nodes (7): allFacesMtcnn(), allFacesSsdMobilenetv1(), allFacesTinyYolov2(), detectAllFaces(), DetectAllFacesTask(), DetectSingleFaceTask(), extendWithFaceDetection()
### Community 94 - "第三轮反馈:PSD 对齐及本地验收"
Cohesion: 0.40
Nodes (4): 原稿与导出可追溯性, 已完成, 本地验证, 第三轮反馈:PSD 对齐及本地验收
### Community 94 - "第三轮反馈:PSD 对齐、验收及上线记录"
Cohesion: 0.33
Nodes (5): 原稿与导出可追溯性, 已完成, 本地验证, 生产部署及只读验收, 第三轮反馈:PSD 对齐、验收及上线记录
### Community 96 - "production-loop.mjs"
Cohesion: 0.50
Nodes (3): artifacts, errors, samples
### Community 100 - "extractAllFacesAndComputeResults"
Cohesion: 0.11
Nodes (9): ComputeAllFaceDescriptorsTask(), ComputeSingleFaceDescriptorTask(), extendWithFaceDescriptor(), extendWithFaceExpressions(), extractAllFacesAndComputeResults(), extractSingleFaceAndComputeResult(), FaceRecognitionNet(), PredictAllFaceExpressionsTask() (+1 more)
Cohesion: 0.12
Nodes (8): ComputeAllFaceDescriptorsTask(), ComputeSingleFaceDescriptorTask(), extendWithAge(), extendWithFaceDescriptor(), extendWithGender(), extractAllFacesAndComputeResults(), PredictAllAgeAndGenderTask(), PredictSingleAgeAndGenderTask()
## Knowledge Gaps
- **256 isolated node(s):** `source`, `document_size`, `pages`, `assets`, `layers` (+251 more)
- **284 isolated node(s):** `source`, `document_size`, `pages`, `assets`, `layers` (+279 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **20 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
- **23 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 `k()` connect `k` to `face-api.js`, `app.js`, `n`, `lib/accounts.js`, `t`, `C`?**
_High betweenness centrality (0.061) - this node is a cross-community bridge._
- **Why does `renderReport()` connect `app.js` to `k`, `t`?**
_High betweenness centrality (0.048) - this node is a cross-community bridge._
- **Why does `rate()` connect `lib/accounts.js` to `k`?**
_High betweenness centrality (0.048) - this node is a cross-community bridge._
- **Why does `v()` connect `n` 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`?**
_High betweenness centrality (0.063) - this node is a cross-community bridge._
- **Why does `fill()` connect `report-ui.js` to `n`?**
_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._
- **Are the 27 inferred relationships involving `r()` (e.g. with `handleExport()` and `handleRecordsQuery()`) actually correct?**
_`r()` has 27 INFERRED edges - model-reasoned connections that need verification._
- **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._
- **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?**
_256 weakly-connected nodes found - possible documentation gaps or missing edges._
_284 weakly-connected nodes found - possible documentation gaps or missing edges._