fix(h5): center score stack, lock profile scroll and gate turn guidance

This commit is contained in:
xsl
2026-10-12 23:48:11 +08:00
parent 2a49ebdab2
commit 6f83f58a09
17 changed files with 1396 additions and 969 deletions
+123 -86
View File
@@ -1,16 +1,16 @@
# Graph Report - juzi (2026-10-12)
## Corpus Check
- 104 files · ~4,904,196 words
- 105 files · ~4,905,053 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 1444 nodes · 2892 edges · 117 communities (92 shown, 25 thin omitted)
- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 209 edges (avg confidence: 0.57)
- 1452 nodes · 2901 edges · 130 communities (98 shown, 32 thin omitted)
- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 210 edges (avg confidence: 0.57)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `63c9e065`
- Built from commit: `2a49ebda`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@@ -20,8 +20,8 @@
- app.js
- skin-score.js
- customer-feedback-second.js
- t
- n
- f
- test/profile-store.js
- admin.js
- __awaiter
@@ -36,7 +36,7 @@
- 1'me肌肤状态检测 H5
- customer-feedback-fourth.js
- build_fixtures.py
- AgeGenderNet
- disposeUnusedWeightTensors
- .loadFromDisk
- facepp-skinanalyze(旷视皮肤分析专业版调用技能)
- 巨子测肤 · 1'me 语音播报内容设计文档 V1.0
@@ -56,7 +56,7 @@
- 第四轮反馈修改与验收
- SsdMobilenetv1
- layer_at
- height
- TinyYolov2Base
- start-local.sh
- PredictAllAgeAndGenderWithFaceAlignmentTask
- PredictAllFaceExpressionsWithFaceAlignmentTask
@@ -74,18 +74,18 @@
- 报告布局与跟手交互调整
- 提交前 Review(2026-10-11)
- e2e-browser.mjs
- start
- play
- 微信登录接入与公网部署说明
- normalize
- ui-20261009.mjs
- analyze-timeout.js
- misans/README.md
- scan-placeholder.mjs
- .predictAgeAndGender
- age
- build_report_copy.py
- onPhotoCaptured
- readPhotoFile
- .runAndExtendWithFaceDetections
- .toString
- Point
- 登录反馈与加载优化(2026-10-12)
- 线上微信登录部署记录
- wechat-production.mjs
@@ -107,7 +107,7 @@
- PredictSingleFaceExpressionsWithFaceAlignmentTask
- DetectSingleFaceLandmarksTask
- ComputeSingleFaceDescriptorTask
- PredictSingleFaceExpressionsTask
- k
- Box
- 第四轮反馈/傅艳NEW与项思炼的会话 2026年10月12日.md
- 第三轮反馈20261012/傅艳NEW与项思炼的会话 2026年10月12日.md
@@ -116,9 +116,22 @@
- submitPhotos
- doCapture
- i
- showScreen
- vizCompose
- FaceProcessor
- convLayer
- startCamera
- AgeGenderNet
- FaceLandmarks
- .forwardInput
- browser
- .forwardInput
- 评分圈内居中、基础信息页固定与正脸语音修复
- TinyYolov2
- 报告等待页实拍背景-2026-10-12.md
- FaceExpressionNet
- FaceLandmark68NetBase
- drawFaceExpressions
- ComputeAllFaceDescriptorsTask
## God Nodes (most connected - your core abstractions)
1. `__awaiter()` - 59 edges
@@ -135,31 +148,31 @@
## Surprising Connections (you probably didn't know these)
- `actualLines()` --indirect_call--> `el()` [INFERRED]
h5/test/customer-feedback-third.mjs → h5/js/admin.js
- `browser()` --indirect_call--> `key()` [INFERRED]
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
- `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
- `checkStill()` --indirect_call--> `d()` [INFERRED]
h5/js/app.js → h5/vendor/faceapi/face-api.js
- `detectFrame()` --indirect_call--> `d()` [INFERRED]
h5/js/app.js → h5/vendor/faceapi/face-api.js
## Import Cycles
- None detected.
## Communities (117 total, 25 thin omitted)
## Communities (130 total, 32 thin omitted)
### Community 0 - "face-api.js"
Cohesion: 0.02
Nodes (33): bgrToRgbTensor(), cn(), createBrowserEnv(), createFileSystem(), createNodejsEnv(), Dimensions(), dr(), en() (+25 more)
Nodes (46): bgrToRgbTensor(), cn(), computeReshapedDimensions(), createBrowserEnv(), createFaceDetectionNet(), createFileSystem(), createNodejsEnv(), createSsdMobilenetv1() (+38 more)
### Community 1 - "线上闭环测试(不含真实微信授权)"
Cohesion: 0.25
Nodes (7): 发现并修复, 可复现命令, 已通过的检查, 线上闭环测试(不含真实微信授权), 结论, 话术及仓库同步, 验证边界
### Community 2 - "app.js"
Cohesion: 0.11
Nodes (22): cancelSkinDrag(), esc(), goSkin(), openHistory(), renderHistoryList(), renderReport(), renderViz(), restartScanCycle() (+14 more)
Cohesion: 0.13
Nodes (22): cancelSkinDrag(), esc(), goSkin(), loadAppFont(), loginAllowed(), loginBrowser(), loginSucceeded(), loginWechat() (+14 more)
### Community 3 - "skin-score.js"
Cohesion: 0.12
@@ -169,25 +182,25 @@ 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.12
Nodes (37): ae(), be(), bf(), bi(), ce(), de(), e(), Ef() (+29 more)
### Community 5 - "t"
Cohesion: 0.11
Nodes (17): bi(), Ef(), er(), FaceMatch(), ia(), Ie(), j(), Kt() (+9 more)
### Community 6 - "f"
Cohesion: 0.21
Nodes (23): a(), cf(), d(), drawContour(), dt(), ea(), f(), g() (+15 more)
### Community 6 - "n"
Cohesion: 0.12
Nodes (48): a(), ae(), be(), bf(), ce(), cf(), d(), da() (+40 more)
### Community 7 - "test/profile-store.js"
Cohesion: 0.12
Nodes (21): browser(), init(), read(), rememberKind(), request(), clean(), create(), key() (+13 more)
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)
### Community 9 - "__awaiter"
Cohesion: 0.13
Nodes (14): __awaiter(), bufferToImage(), extendWithFaceExpressions(), extractAllFacesAndComputeResults(), extractSingleFaceAndComputeResult(), FaceRecognitionNet(), fetchImage(), fetchJson() (+6 more)
Cohesion: 0.12
Nodes (16): __awaiter(), extendWithAge(), extendWithFaceDescriptor(), extendWithFaceExpressions(), extendWithGender(), extractAllFacesAndComputeResults(), extractSingleFaceAndComputeResult(), FaceRecognitionNet() (+8 more)
### Community 10 - "wechat-browser.mjs"
Cohesion: 0.22
@@ -206,8 +219,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.16
Nodes (20): awaitMediaLoaded(), createCanvas(), createCanvasFromMedia(), extractFaces(), extractFaceTensors(), extractImagePatches(), getContext2dOrThrow(), getEnv() (+12 more)
Cohesion: 0.15
Nodes (23): height(), awaitMediaLoaded(), bufferToImage(), createCanvas(), createCanvasFromMedia(), extractFaces(), extractFaceTensors(), extractImagePatches() (+15 more)
### Community 16 - "巨子测肤 · 1'me 在线肌肤测试 — UI 设计规范"
Cohesion: 0.15
@@ -229,13 +242,13 @@ Nodes (37): evaluate(), finite(), assertPoints(), check(), clamp(), dist(), esti
Cohesion: 0.40
Nodes (9): build_case1(), build_case2(), build_truth(), col(), dump(), main(), parse_value(), set_path() (+1 more)
### Community 21 - "AgeGenderNet"
Cohesion: 0.05
Nodes (28): AgeGenderNet(), disposeUnusedWeightTensors(), extractorsFactory$3(), extractorsFactory$5(), extractorsFactory$7(), extractorsFactory$9(), extractParams$1(), extractParamsFromWeigthMap() (+20 more)
### Community 21 - "disposeUnusedWeightTensors"
Cohesion: 0.09
Nodes (25): disposeUnusedWeightTensors(), extractorsFactory$3(), extractorsFactory$5(), extractorsFactory$7(), extractorsFactory$9(), extractParamsFromWeigthMap(), extractParamsFromWeigthMap$1(), extractParamsFromWeigthMap$2() (+17 more)
### Community 22 - ".loadFromDisk"
Cohesion: 0.24
Nodes (5): ComposableTask(), getModelUris(), Gf(), loadWeightMap(), TinyFaceDetector()
Cohesion: 0.29
Nodes (3): ComposableTask(), getModelUris(), TinyFaceDetector()
### Community 23 - "facepp-skinanalyze(旷视皮肤分析专业版调用技能)"
Cohesion: 0.20
@@ -251,15 +264,15 @@ Nodes (16): _arrayLikeToArray(), _arrayWithHoles(), _arrayWithoutHoles(), _class
### Community 26 - "NeuralNetwork"
Cohesion: 0.07
Nodes (25): createFaceDetectionNet(), createFaceRecognitionNet(), createMtcnn(), createSsdMobilenetv1(), createTinyFaceDetector(), createTinyYolov2(), extractConvParamsFactory(), extractFCParamsFactory() (+17 more)
Nodes (24): createFaceRecognitionNet(), createMtcnn(), createTinyFaceDetector(), createTinyYolov2(), extractConvParamsFactory(), extractFCParamsFactory(), extractorsFactory(), extractorsFactory$1() (+16 more)
### Community 27 - "gen_voice.py"
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.09
Nodes (31): ao(), Bo(), C(), cd(), co(), Do(), eo(), fo() (+23 more)
Cohesion: 0.08
Nodes (36): ao(), Bo(), C(), cd(), cl(), co(), Do(), eo() (+28 more)
### Community 29 - "face-api.js 本地化依赖(h5/vendor/faceapi/)"
Cohesion: 0.29
@@ -291,16 +304,12 @@ Nodes (8): PSD 来源, 前端参数及限制, 后台校准留痕, 已确认并
### Community 41 - "SsdMobilenetv1"
Cohesion: 0.18
Nodes (10): boxPredictionLayer(), decodeBoxesLayer(), depthwiseConvLayer(), getCenterCoordinatesAndSizesLayer(), getStridesForLayerIdx(), mobileNetV1(), outputLayer(), pointwiseConvLayer() (+2 more)
Nodes (9): decodeBoxesLayer(), depthwiseConvLayer(), getCenterCoordinatesAndSizesLayer(), getStridesForLayerIdx(), mobileNetV1(), outputLayer(), pointwiseConvLayer(), predictionLayer() (+1 more)
### Community 42 - "layer_at"
Cohesion: 0.18
Nodes (11): list, bounds(), layer_at(), main(), save_image(), composite(), main(), sha256() (+3 more)
### Community 43 - "height"
Cohesion: 0.27
Nodes (5): height(), FaceLandmark68NetBase(), sigmoid(), TinyYolov2Base(), validateConfig()
### Community 44 - "start-local.sh"
Cohesion: 0.50
Nodes (3): HOST, PORT, start-local.sh script
@@ -330,12 +339,12 @@ Cohesion: 0.60
Nodes (5): diffCtx(), loadJSON(), main(), okNum(), okStr()
### Community 58 - ".forwardInput"
Cohesion: 0.14
Nodes (15): computeReshapedDimensions(), extractBoundingBoxes(), getSizesForScale(), iou(), isEven(), nonMaxSuppression(), nonMaxSuppression$1(), normalize$1() (+7 more)
Cohesion: 0.19
Nodes (10): extendWithFaceLandmarks(), extractBoundingBoxes(), iou(), NetInput(), nonMaxSuppression(), nonMaxSuppression$1(), scale(), stage1() (+2 more)
### Community 61 - "报告布局与跟手交互调整"
Cohesion: 0.40
Nodes (4): 报告布局与跟手交互调整, 本次范围, 资源体积, 验证
Cohesion: 0.33
Nodes (5): 报告布局与跟手交互调整, 本次范围, 线上验收(2026-10-12), 资源体积, 验证
### Community 62 - "提交前 Review(2026-10-11)"
Cohesion: 0.40
@@ -345,17 +354,17 @@ Nodes (4): 仍需公网/业务确认, 已发现并修复, 提交前 Review(202
Cohesion: 0.29
Nodes (4): EXPECTED, fails, pageErrors, pwRoot
### Community 64 - "start"
Cohesion: 0.29
Nodes (7): decode(), drain(), load(), preload(), start(), stopCur(), unlock()
### Community 64 - "play"
Cohesion: 0.22
Nodes (9): busyWithFlow(), decode(), drain(), load(), play(), preload(), start(), stopCur() (+1 more)
### Community 65 - "微信登录接入与公网部署说明"
Cohesion: 0.29
Nodes (7): 公网服务器配置, 公网真机验收清单, 反向代理与后台保护, 已完成的链路, 微信登录接入与公网部署说明, 数据、迁移与备份, 本机开发环境限制(不代表线上状态)
### Community 66 - "normalize"
Cohesion: 0.08
Nodes (28): conv(), conv$1(), convDown(), convLayer(), convLayer$1(), convNoRelu(), convWithBatchNorm(), denseBlock3() (+20 more)
Cohesion: 0.20
Nodes (9): conv(), denseBlock3(), denseBlock4(), depthwiseSeparableConv(), FaceFeatureExtractor(), mainBlock(), normalize(), reductionBlock() (+1 more)
### Community 68 - "analyze-timeout.js"
Cohesion: 0.20
@@ -365,21 +374,21 @@ Nodes (7): assert, end, fs, path, source, start, vm
Cohesion: 0.29
Nodes (3): errors, samples, unexpectedWrites
### Community 71 - ".predictAgeAndGender"
Cohesion: 0.29
Nodes (5): age(), extendWithAge(), extendWithGender(), PredictAllAgeAndGenderTask(), PredictSingleAgeAndGenderTask()
### Community 71 - "age"
Cohesion: 0.43
Nodes (4): age(), clean(), create(), key()
### Community 76 - "onPhotoCaptured"
Cohesion: 0.18
Nodes (15): busyWithFlow(), captureHaptic(), checkStill(), dropHint(), faceLuma(), faceOffsetX(), handleCamVisible(), hideCamStatus() (+7 more)
### Community 76 - "readPhotoFile"
Cohesion: 0.40
Nodes (5): checkStill(), faceLuma(), hideCamStatus(), readPhotoFile(), showCamStatus()
### Community 77 - ".runAndExtendWithFaceDetections"
Cohesion: 0.15
Nodes (11): DetectAllFacesTask(), DrawBox(), drawDetections(), drawFaceExpressions(), DrawFaceLandmarks(), extendWithFaceDetection(), FaceExpressions(), isWithFaceDetection() (+3 more)
Cohesion: 0.18
Nodes (8): DetectAllFacesTask(), DrawBox(), drawDetections(), DrawFaceLandmarks(), extendWithFaceDetection(), isWithFaceDetection(), isWithFaceLandmarks(), resizeResults()
### Community 78 - ".toString"
Cohesion: 0.12
Nodes (11): FaceLandmarks5(), FaceMatch(), getCenterPoint(), la(), Point(), pr(), pt(), vt() (+3 more)
### Community 78 - "Point"
Cohesion: 0.22
Nodes (5): FaceLandmarks5(), getCenterPoint(), Point(), pt(), vt()
### Community 79 - "登录反馈与加载优化(2026-10-12)"
Cohesion: 0.33
@@ -437,9 +446,9 @@ Nodes (5): 原稿与导出可追溯性, 已完成, 本地验证, 生产部署及
Cohesion: 0.50
Nodes (3): artifacts, errors, samples
### Community 102 - "Box"
Cohesion: 0.11
Nodes (8): Box(), ComputeAllFaceDescriptorsTask(), extendWithFaceDescriptor(), extendWithFaceLandmarks(), FaceLandmarks(), isDimensions(), minBbox(), ObjectDetection()
### Community 101 - "k"
Cohesion: 0.17
Nodes (13): b(), ba(), ca(), fa(), k(), ne(), pa(), ua() (+5 more)
### Community 107 - "基础信息记忆与肤质拖动"
Cohesion: 0.33
@@ -450,35 +459,63 @@ Cohesion: 0.40
Nodes (3): dragBy(), h5, touch()
### Community 109 - "submitPhotos"
Cohesion: 0.17
Nodes (16): applyMirror(), bindBackdropClose(), closeLoginSuccess(), closeOverlay(), effMirror(), getCamStream(), handleCamHidden(), leaveCamera() (+8 more)
Cohesion: 0.24
Nodes (12): bindBackdropClose(), closeLoginSuccess(), closeOverlay(), handleCamHidden(), leaveCamera(), photosByView(), popHistorySilently(), requestAnalyze() (+4 more)
### Community 110 - "doCapture"
Cohesion: 0.17
Nodes (19): armNudge(), beginDetect(), captureFromVideo(), detectFrame(), detTick(), doCapture(), enableFallback(), hideNudge() (+11 more)
Cohesion: 0.15
Nodes (24): armNudge(), beginDetect(), captureFromVideo(), captureHaptic(), captureStageHint(), detectFrame(), detTick(), doCapture() (+16 more)
### Community 111 - "i"
Cohesion: 0.07
Nodes (36): b(), ba(), bn(), ca(), cl(), da(), dn(), ee() (+28 more)
Cohesion: 0.11
Nodes (20): bn(), dn(), ee(), et(), fn(), i(), je(), ln() (+12 more)
### Community 112 - "showScreen"
Cohesion: 0.22
Nodes (11): loadAppFont(), loginAllowed(), loginBrowser(), loginSucceeded(), loginWechat(), openOverlay(), prepareScanArtwork(), renderAccountStatus() (+3 more)
### Community 112 - "vizCompose"
Cohesion: 0.18
Nodes (11): renderReport(), renderViz(), setDim(), vizCollectMarks(), vizCompose(), vizFaceCrop(), vizLoadImage(), vizMapURL() (+3 more)
### Community 116 - "convLayer"
Cohesion: 0.36
Nodes (9): boxPredictionLayer(), convLayer(), fullyConnectedLayer(), ONet(), PNet(), prelu(), qh(), RNet() (+1 more)
### Community 117 - "startCamera"
Cohesion: 0.29
Nodes (8): applyMirror(), effMirror(), getCamStream(), handleCamVisible(), onCamTrackEnded(), renderCamStep(), startCamera(), waitVideoStable()
### Community 120 - ".forwardInput"
Cohesion: 0.48
Nodes (6): conv$1(), convDown(), convLayer$1(), convNoRelu(), residual(), residualDown()
### Community 121 - "browser"
Cohesion: 0.80
Nodes (5): browser(), init(), read(), rememberKind(), request()
### Community 122 - ".forwardInput"
Cohesion: 0.47
Nodes (3): convWithBatchNorm(), depthwiseSeparableConv$1(), leaky()
### Community 123 - "评分圈内居中、基础信息页固定与正脸语音修复"
Cohesion: 0.40
Nodes (4): 发布, 范围, 评分圈内居中、基础信息页固定与正脸语音修复, 验证
### Community 128 - "drawFaceExpressions"
Cohesion: 0.50
Nodes (3): drawFaceExpressions(), FaceExpressions(), isWithFaceExpressions()
## Knowledge Gaps
- **314 isolated node(s):** `source`, `document_size`, `pages`, `assets`, `layers` (+309 more)
- **318 isolated node(s):** `source`, `document_size`, `pages`, `assets`, `layers` (+313 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **25 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.046) - this node is a cross-community bridge._
- **Why does `height()` connect `height` to `app.js`, `customer-feedback.js`, `scan-placeholder.mjs`, `extractFaces`, `showScreen`, `.forwardInput`?**
- **Why does `height()` connect `extractFaces` to `app.js`, `customer-feedback.js`, `scan-placeholder.mjs`, `TinyYolov2Base`, `profile-interaction.mjs`, `.forwardInput`, `FaceLandmark68NetBase`?**
_High betweenness centrality (0.062) - this node is a cross-community bridge._
- **Why does `v()` connect `n` to `vizCompose`, `face-api.js`, `report-ui.js`, `C`?**
_High betweenness centrality (0.045) - this node is a cross-community bridge._
- **Why does `k()` connect `i` to `face-api.js`, `app.js`, `n`, `f`, `lib/accounts.js`, `C`?**
_High betweenness centrality (0.040) - this node is a cross-community bridge._
- **Why does `k()` connect `k` to `face-api.js`, `t`, `n`, `lib/accounts.js`, `vizCompose`, `C`?**
_High betweenness centrality (0.039) - 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?**
@@ -486,4 +523,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?**
_314 weakly-connected nodes found - possible documentation gaps or missing edges._
_318 weakly-connected nodes found - possible documentation gaps or missing edges._