fix(h5): show captured face behind report scan animation
This commit is contained in:
+128
-63
@@ -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._
|
||||
_309 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
Reference in New Issue
Block a user