feat(h5): remember profile selections and add finger-following skin swipe

This commit is contained in:
xsl
2026-10-12 21:10:00 +08:00
parent c9352fe4ca
commit ce6dbc20d4
14 changed files with 2230 additions and 900 deletions
+104 -83
View File
@@ -1,16 +1,16 @@
# Graph Report - juzi (2026-10-12)
## Corpus Check
- 93 files · ~4,889,148 words
- 97 files · ~4,891,452 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 1387 nodes · 2814 edges · 108 communities (82 shown, 26 thin omitted)
- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 189 edges (avg confidence: 0.54)
- 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)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `3f165bf9`
- Built from commit: `c9352fe4`
- 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
- .forwardInput
- f
- Box
- test/profile-store.js
- admin.js
- __awaiter
- wechat-browser.mjs
@@ -56,7 +56,7 @@
- 第四轮反馈修改与验收
- NeuralNetwork
- layer_at
- normalize
- convLayer
- start-local.sh
- PredictAllAgeAndGenderWithFaceAlignmentTask
- PredictAllFaceExpressionsWithFaceAlignmentTask
@@ -66,7 +66,7 @@
- call_skinanalyze_3view.sh
- 护理建议(全量文本,按需求摘抄)
- UI 对齐 10.09 设计稿:调研与实施计划
- pn
- i
- report-ui.js
- regression.js
- .dispose
@@ -76,16 +76,16 @@
- e2e-browser.mjs
- account-client.js
- 微信登录接入与公网部署说明
- FaceLandmarks68
- FaceLandmarks
- ui-20261009.mjs
- analyze-timeout.js
- misans/README.md
- extractConvParamsFactory
- extractAllFacesAndComputeResults
- .forwardInput
- .predictAgeAndGender
- build_report_copy.py
- .toString
- .runAndExtendWithFaceDetections
- i
- .forwardInput
- extractFaceTensors
- n
- 登录反馈与加载优化(2026-10-12)
- 线上微信登录部署记录
- wechat-production.mjs
@@ -105,13 +105,14 @@
- production-loop.mjs
- PredictSingleAgeAndGenderWithFaceAlignmentTask
- PredictSingleFaceExpressionsWithFaceAlignmentTask
- DetectSingleFaceLandmarksTask
- ComputeAllFaceDescriptorsTask
- PredictSingleFaceExpressionsTask
- age
- drawFaceExpressions
- TinyYolov2
- .detect
- 第四轮反馈/傅艳NEW与项思炼的会话 2026年10月12日.md
- 第三轮反馈20261012/傅艳NEW与项思炼的会话 2026年10月12日.md
- ComputeSingleFaceDescriptorTask
- 基础信息记忆与肤质拖动
- profile-interaction.mjs
## God Nodes (most connected - your core abstractions)
1. `__awaiter()` - 59 edges
@@ -128,23 +129,23 @@
## 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 (108 total, 26 thin omitted)
## Communities (109 total, 22 thin omitted)
### Community 0 - "face-api.js"
Cohesion: 0.02
Nodes (51): bgrToRgbTensor(), cn(), computeReshapedDimensions(), createBrowserEnv(), createFaceDetectionNet(), createSsdMobilenetv1(), Dimensions(), dr() (+43 more)
Nodes (39): cn(), computeReshapedDimensions(), createBrowserEnv(), createFileSystem(), createNodejsEnv(), Dimensions(), dr(), en() (+31 more)
### Community 1 - "线上闭环测试(不含真实微信授权)"
Cohesion: 0.25
@@ -152,35 +153,35 @@ Nodes (7): 发现并修复, 可复现命令, 已通过的检查, 线上闭环测
### Community 2 - "app.js"
Cohesion: 0.05
Nodes (85): applyMirror(), armNudge(), beginDetect(), bindBackdropClose(), busyWithFlow(), captureFromVideo(), captureHaptic(), checkStill() (+77 more)
Nodes (90): applyMirror(), armNudge(), beginDetect(), bindBackdropClose(), busyWithFlow(), cancelSkinDrag(), captureFromVideo(), captureHaptic() (+82 more)
### Community 3 - "skin-score.js"
Cohesion: 0.11
Cohesion: 0.12
Nodes (45): acneGrade(), buildViewModel(), calcAcne(), calcContour(), calcSens(), calcSmooth(), calcTone(), calcWrinkles() (+37 more)
### Community 4 - "customer-feedback-second.js"
Cohesion: 0.17
Nodes (10): assert, context, face, fs, geometry, original, path, source (+2 more)
### Community 5 - "n"
### Community 5 - "f"
Cohesion: 0.12
Nodes (43): a(), ae(), ba(), bf(), cf(), d(), da(), drawContour() (+35 more)
Nodes (36): a(), b(), ba(), cf(), d(), da(), drawContour(), dt() (+28 more)
### Community 6 - "extractFaceTensors"
Cohesion: 0.16
Nodes (5): Box(), extendWithFaceLandmarks(), extractFaceTensors(), FaceLandmarks(), minBbox()
### Community 6 - "Box"
Cohesion: 0.11
Nodes (5): Box(), ComputeAllFaceDescriptorsTask(), ComputeSingleFaceDescriptorTask(), extendWithFaceDescriptor(), ObjectDetection()
### Community 7 - ".forwardInput"
Cohesion: 0.22
Nodes (9): boxPredictionLayer(), decodeBoxesLayer(), depthwiseConvLayer(), getCenterCoordinatesAndSizesLayer(), getStridesForLayerIdx(), mobileNetV1(), outputLayer(), pointwiseConvLayer() (+1 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)
### Community 9 - "__awaiter"
Cohesion: 0.12
Nodes (14): __awaiter(), bufferToImage(), ComposableTask(), extendWithFaceExpressions(), fetchImage(), fetchJson(), fetchNetWeights(), fetchOrThrow() (+6 more)
Cohesion: 0.13
Nodes (13): __awaiter(), ComposableTask(), extractSingleFaceAndComputeResult(), fetchImage(), fetchJson(), fetchNetWeights(), fetchOrThrow(), __generator() (+5 more)
### Community 10 - "wechat-browser.mjs"
Cohesion: 0.22
@@ -199,8 +200,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.24
Nodes (15): awaitMediaLoaded(), createCanvas(), createCanvasFromMedia(), extractFaces(), extractImagePatches(), getContext2dOrThrow(), getEnv(), getMediaDimensions() (+7 more)
Cohesion: 0.19
Nodes (18): awaitMediaLoaded(), bufferToImage(), createCanvas(), createCanvasFromMedia(), extractFaces(), extractImagePatches(), getContext2dOrThrow(), getEnv() (+10 more)
### Community 16 - "巨子测肤 · 1'me 在线肌肤测试 — UI 设计规范"
Cohesion: 0.15
@@ -223,8 +224,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.10
Nodes (24): disposeUnusedWeightTensors(), extractorsFactory$3(), extractorsFactory$5(), extractorsFactory$7(), extractorsFactory$9(), extractParamsFromWeigthMap(), extractParamsFromWeigthMap$1(), extractParamsFromWeigthMap$2() (+16 more)
Cohesion: 0.08
Nodes (25): disposeUnusedWeightTensors(), extractorsFactory$3(), extractorsFactory$5(), extractorsFactory$7(), extractorsFactory$9(), extractParamsFromWeigthMap(), extractParamsFromWeigthMap$1(), extractParamsFromWeigthMap$2() (+17 more)
### Community 23 - "facepp-skinanalyze(旷视皮肤分析专业版调用技能)"
Cohesion: 0.20
@@ -239,16 +240,16 @@ Cohesion: 0.20
Nodes (16): _arrayLikeToArray(), _arrayWithHoles(), _arrayWithoutHoles(), _classCallCheck(), _createClass(), _defineProperties(), h(), _iterableToArray() (+8 more)
### Community 26 - ".extractWeights"
Cohesion: 0.14
Nodes (14): createFaceRecognitionNet(), createMtcnn(), createTinyFaceDetector(), createTinyYolov2(), extractFCParamsFactory(), extractorsFactory$2(), extractorsFactory$4(), extractorsFactory$8() (+6 more)
Cohesion: 0.09
Nodes (24): createFaceDetectionNet(), createFaceRecognitionNet(), createMtcnn(), createSsdMobilenetv1(), createTinyFaceDetector(), createTinyYolov2(), extractConvParamsFactory(), extractFCParamsFactory() (+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 (36): ao(), Bo(), C(), cd(), cl(), co(), Do(), e() (+28 more)
Cohesion: 0.08
Nodes (35): ao(), Bo(), C(), cd(), cl(), co(), Do(), eo() (+27 more)
### Community 29 - "face-api.js 本地化依赖(h5/vendor/faceapi/)"
Cohesion: 0.29
@@ -282,9 +283,9 @@ Nodes (8): PSD 来源, 前端参数及限制, 后台校准留痕, 已确认并
Cohesion: 0.18
Nodes (11): list, bounds(), layer_at(), main(), save_image(), composite(), main(), sha256() (+3 more)
### Community 43 - "normalize"
Cohesion: 0.07
Nodes (28): conv(), conv$1(), convDown(), convLayer(), convLayer$1(), convNoRelu(), convWithBatchNorm(), denseBlock3() (+20 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
@@ -306,9 +307,9 @@ Nodes (19): 5\.1 轮廓(紧塑力), 5\.2 皱纹(紧塑力), 5\.3 肤色
Cohesion: 0.11
Nodes (17): 1. 结论和依据, 2. 统一比较口径, 3. 逐页差异和调整内容, 4. 报告数据如何接到新 UI, 5. 登录与“我的报告”的真实能力缺口, 6. 原稿中需要整理的内容, 7. 实施顺序与交付物, 8. 验收定义 (+9 more)
### Community 55 - "pn"
Cohesion: 0.25
Nodes (8): bn(), fn(), ln(), pd(), pn(), un(), wn(), xn()
### Community 55 - "i"
Cohesion: 0.09
Nodes (26): bn(), ca(), dn(), ee(), et(), fa(), fn(), i() (+18 more)
### Community 56 - "report-ui.js"
Cohesion: 0.50
@@ -319,8 +320,12 @@ Cohesion: 0.60
Nodes (5): diffCtx(), loadJSON(), main(), okNum(), okStr()
### Community 58 - ".dispose"
Cohesion: 0.15
Nodes (9): FaceRecognitionNet(), NetInput(), nonMaxSuppression(), scale(), SsdMobilenetv1(), stage1(), stage2(), stage3() (+1 more)
Cohesion: 0.12
Nodes (13): bgrToRgbTensor(), DetectSingleFaceLandmarksTask(), extendWithFaceLandmarks(), extractBoundingBoxes(), FaceRecognitionNet(), getSizesForScale(), nonMaxSuppression(), normalize$1() (+5 more)
### Community 61 - "FaceProcessor"
Cohesion: 0.22
Nodes (3): extractParams$1(), FaceLandmark68TinyNet(), FaceProcessor()
### Community 62 - "提交前 Review(2026-10-11)"
Cohesion: 0.40
@@ -335,39 +340,39 @@ Cohesion: 0.80
Nodes (5): browser(), init(), read(), rememberKind(), request()
### Community 65 - "微信登录接入与公网部署说明"
Cohesion: 0.22
Cohesion: 0.29
Nodes (7): 公网服务器配置, 公网真机验收清单, 反向代理与后台保护, 已完成的链路, 微信登录接入与公网部署说明, 数据、迁移与备份, 本机开发环境限制(不代表线上状态)
### Community 66 - "FaceLandmarks68"
Cohesion: 0.10
Nodes (8): FaceLandmark68NetBase(), FaceLandmarks5(), FaceLandmarks68(), getCenterPoint(), Point(), pt(), vt(), wl()
### Community 66 - "FaceLandmarks"
Cohesion: 0.06
Nodes (16): conv(), denseBlock3(), denseBlock4(), depthwiseSeparableConv(), FaceFeatureExtractor(), FaceLandmark68NetBase(), FaceLandmarks(), FaceLandmarks5() (+8 more)
### Community 68 - "analyze-timeout.js"
Cohesion: 0.20
Nodes (7): assert, end, fs, path, source, start, vm
### Community 70 - "extractConvParamsFactory"
Cohesion: 0.20
Nodes (9): extractConvParamsFactory(), extractorsFactory(), extractorsFactory$1(), extractorsFactory$6(), extractParams(), extractParams$2(), extractParams$6(), extractParamsTiny() (+1 more)
### Community 70 - ".forwardInput"
Cohesion: 0.39
Nodes (7): conv$1(), convDown(), convLayer$1(), convNoRelu(), residual(), residualDown(), __spreadArrays()
### Community 71 - "extractAllFacesAndComputeResults"
Cohesion: 0.29
Nodes (5): extendWithAge(), extendWithFaceDescriptor(), extendWithGender(), extractAllFacesAndComputeResults(), extractSingleFaceAndComputeResult()
### Community 71 - ".predictAgeAndGender"
Cohesion: 0.28
Nodes (4): extendWithAge(), extendWithGender(), PredictAllAgeAndGenderTask(), PredictSingleAgeAndGenderTask()
### Community 76 - ".toString"
Cohesion: 0.33
Nodes (5): createFileSystem(), createNodejsEnv(), FaceMatch(), la(), pr()
### Community 76 - ".forwardInput"
Cohesion: 0.22
Nodes (9): boxPredictionLayer(), decodeBoxesLayer(), depthwiseConvLayer(), getCenterCoordinatesAndSizesLayer(), getStridesForLayerIdx(), mobileNetV1(), outputLayer(), pointwiseConvLayer() (+1 more)
### Community 77 - ".runAndExtendWithFaceDetections"
Cohesion: 0.18
Nodes (8): DetectAllFacesTask(), DrawBox(), drawDetections(), DrawFaceLandmarks(), extendWithFaceDetection(), isWithFaceDetection(), isWithFaceLandmarks(), resizeResults()
### Community 77 - "extractFaceTensors"
Cohesion: 0.12
Nodes (13): DetectAllFacesTask(), DrawBox(), drawDetections(), DrawFaceLandmarks(), extendWithFaceDetection(), extendWithFaceExpressions(), extractAllFacesAndComputeResults(), extractFaceTensors() (+5 more)
### Community 78 - "i"
Cohesion: 0.06
Nodes (45): b(), be(), bi(), ca(), ce(), de(), dn(), ee() (+37 more)
### Community 78 - "n"
Cohesion: 0.10
Nodes (39): ae(), be(), bf(), bi(), ce(), de(), e(), Ef() (+31 more)
### Community 79 - "登录反馈与加载优化(2026-10-12)"
Cohesion: 0.25
Cohesion: 0.33
Nodes (5): 体验变化, 公网部署后复测, 慢的原因与处理, 登录反馈与加载优化(2026-10-12), 验证
### Community 80 - "线上微信登录部署记录"
@@ -387,7 +392,7 @@ Cohesion: 0.29
Nodes (5): 10.09 新版 H5 实施与验收, 按确认项实现, 文档未定义部分的实施口径, 素材再生成, 验证命令
### Community 84 - "微信登录联调:2026-10-12"
Cohesion: 0.33
Cohesion: 0.22
Nodes (6): 后续真机确认与体验优化, 微信登录联调:2026-10-12, 本轮修正, 白名单与凭据, 真实微信验收与排查, 自动验证
### Community 85 - "test/accounts.js"
@@ -422,24 +427,40 @@ Nodes (5): 原稿与导出可追溯性, 已完成, 本地验证, 生产部署及
Cohesion: 0.50
Nodes (3): artifacts, errors, samples
### Community 100 - "age"
Cohesion: 0.43
Nodes (4): age(), clean(), create(), key()
### Community 101 - "drawFaceExpressions"
Cohesion: 0.50
Nodes (3): drawFaceExpressions(), FaceExpressions(), isWithFaceExpressions()
### Community 102 - ".detect"
Cohesion: 0.18
Nodes (5): iou(), NetInput(), nonMaxSuppression$1(), TinyYolov2(), TinyYolov2Base()
### Community 107 - "基础信息记忆与肤质拖动"
Cohesion: 0.33
Nodes (4): 回归命令, 基础信息记忆与肤质拖动, 肤质交互, 范围
### Community 108 - "profile-interaction.mjs"
Cohesion: 0.40
Nodes (3): dragBy(), h5, touch()
## Knowledge Gaps
- **288 isolated node(s):** `source`, `document_size`, `pages`, `assets`, `layers` (+283 more)
- **305 isolated node(s):** `source`, `document_size`, `pages`, `assets`, `layers` (+300 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **26 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
- **22 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`?**
_High betweenness centrality (0.068) - this node is a cross-community bridge._
- **Why does `k()` connect `n` to `face-api.js`, `app.js`, `lib/accounts.js`, `i`, `C`?**
_High betweenness centrality (0.062) - this node is a cross-community bridge._
- **Why does `fill()` connect `report-ui.js` to `n`?**
_High betweenness centrality (0.054) - this node is a cross-community bridge._
- **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._
- **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._
- **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?**
@@ -447,4 +468,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?**
_288 weakly-connected nodes found - possible documentation gaps or missing edges._
_305 weakly-connected nodes found - possible documentation gaps or missing edges._