feat(h5): align October UI and add WeChat auth with saved reports

This commit is contained in:
xsl
2026-10-11 17:28:11 +08:00
parent ee744b6b5f
commit ce8d0ff1f7
126 changed files with 18711 additions and 1898 deletions
+43 -35
View File
@@ -1,69 +1,77 @@
{
"0": "face-api.js",
"1": "n",
"1": "t",
"2": "app.js",
"3": "skin-score.js",
"4": "isTensor",
"5": ".toBatchTensor",
"6": "getEnv",
"7": "FaceLandmarks",
"8": "disposeUnusedWeightTensors",
"4": "n",
"5": "normalize",
"6": "drawFaceExpressions",
"7": "Box",
"8": "admin.js",
"9": "__awaiter",
"10": "extractWeightEntryFactory",
"11": "FaceProcessor",
"10": "AgeGenderNet",
"11": "lib/accounts.js",
"12": "server.js",
"13": "files",
"14": "extractAllFacesAndComputeResults",
"14": ".predictAgeAndGender",
"15": ".runAndExtendWithFaceDetection",
"16": "巨子测肤 · 1'me 在线肌肤测试 — UI 设计规范",
"17": "extractFaces",
"18": "1'me 在线肌肤测试 H5",
"19": "head-pose.js",
"20": "build_fixtures.py",
"21": ".forwardInput",
"21": "disposeUnusedWeightTensors",
"22": ".loadFromDisk",
"23": "facepp-skinanalyze(旷视皮肤分析专业版调用技能)",
"24": "巨子测肤 · 1'me 语音播报内容设计文档 V1.0",
"25": "extractParamsFromWeigthMap$1",
"25": "mobile-select.iife.min.js",
"26": "wi",
"27": "gen_voice.py",
"28": "initialize",
"28": "i",
"29": "face-api.js 本地化依赖(h5/vendor/faceapi/)",
"30": "regression.js",
"31": "isValidNumber",
"30": "ui-20261009/manifest.json",
"31": ".toString",
"32": "FaceMatcher",
"33": "build-fixture.py",
"34": "smoke-test.js",
"35": "DetectSingleFaceLandmarksTask",
"36": "so",
"37": "tt",
"36": "C",
"37": "UI 外发版 10.09 图片资源",
"38": "TinyYolov2",
"39": "cn",
"40": ".computeFaceDescriptor",
"41": "SsdMobilenetv1",
"42": "dr",
"39": "UI交互界面调整",
"40": "ComputeAllFaceDescriptorsTask",
"41": ".draw",
"42": "export_psd_assets.py",
"43": "FaceLandmark68Net",
"44": "rescaleAndNormalize",
"44": "start-local.sh",
"45": "PredictAllAgeAndGenderWithFaceAlignmentTask",
"46": "PredictAllFaceExpressionsWithFaceAlignmentTask",
"47": "PredictSingleAgeAndGenderWithFaceAlignmentTask",
"47": "k",
"48": "PredictSingleFaceExpressionsWithFaceAlignmentTask",
"49": "Yo",
"49": "mobile-select/README.md",
"50": "call_skinanalyze_3view.sh",
"51": "TinyXception",
"52": "Vc",
"53": "FaceDetection",
"54": "ff",
"55": "ge",
"56": "sa",
"57": "po",
"51": "第二轮2反馈.md",
"52": "region-data.js",
"53": "护理建议(全量文本,按需求摘抄)",
"54": "UI 对齐 10.09 设计稿:调研与实施计划",
"55": "FaceLandmarks68",
"56": ".forwardInput",
"57": "regression.js",
"58": ".dispose",
"59": "call_skinanalyze.sh",
"60": "report-fixture.js",
"61": ".extractWeights",
"62": "NeuralNetwork",
"61": "NeuralNetwork",
"62": "提交前 Review(2026-10-11)",
"63": "e2e-browser.mjs",
"64": "AgeGenderNet",
"66": "FaceExpressionNet",
"71": "PredictSingleFaceExpressionsTask"
"64": "account-client.js",
"65": "PredictSingleFaceExpressionsTask",
"66": ".runAndExtendWithFaceDetections",
"67": "ui-20261009.mjs",
"68": "ComputeSingleFaceDescriptorTask",
"69": "misans/README.md",
"71": "extractFaceTensors",
"72": "build_report_copy.py",
"73": "camera-geometry.js",
"74": "report-copy.js",
"75": "prepare_h5_assets.py"
}
+1 -1
View File
@@ -1 +1 @@
{"0": "084975bb68797cf4", "1": "6c6ce24229e04595", "2": "64f07a78d61df933", "3": "8ac814cdb72a1a7d", "4": "c18a4a8fab272cc6", "5": "7f62d3cc90a92195", "6": "865611558d18274c", "7": "e7b6c52cb9523ba1", "8": "934b465b2e687d3d", "9": "31a3a505422c0528", "10": "f943c63a37873e9e", "11": "9ed244ba3453a0c1", "12": "8d1af962d46ec19f", "13": "7e3b558a587a4ebe", "14": "2681c1b3f4f3539e", "15": "8bd61518dd267641", "16": "95add6a975c0cb72", "17": "d5ee72467704e6f0", "18": "fd0841b607871dc7", "19": "0a373ad2197fd1a6", "20": "aecf2fce44ba49c5", "21": "880a74c6d255e5cc", "22": "1c67ad3d97e5c622", "23": "90fac00055070ce2", "24": "f85b5b1634224c86", "25": "79d2843a716971c8", "26": "83b0fd3b14363e4d", "27": "eab427ce9a5219e9", "28": "eb3733e409dc7411", "29": "c608f1c6492e1cb1", "30": "f2a40b5f1b29f669", "31": "8f647d3ce08ecd2b", "32": "f6bcf56c4589316b", "33": "75f750c5b7d9f63d", "34": "f024ff7942935690", "35": "23f1d406f6c779ae", "36": "c55f872b3e16ab6f", "37": "3088ae48043ee39d", "38": "c96276581a8c98d4", "39": "932f010dc6115fb4", "40": "444ef0744645f5ac", "41": "386a184c6bd5a40e", "42": "2bfc96d4090afd84", "43": "9a25b1230b5fe649", "44": "8d5f4e992bac9095", "45": "92ab3e5134ed8685", "46": "65718282b3c32109", "47": "01f68dfc34a29d32", "48": "8c471c7baeaaca54", "49": "a54008a71fdd44fa", "50": "bbb2b57d72922b16", "51": "0985ce7473fdd021", "52": "c5a22f1501fe85b7", "53": "287d60115d9acda8", "54": "1331494302f6c136", "55": "f42d242a020b2f05", "56": "2537fe1309d3ab9a", "57": "7862e3ee5a214160", "58": "440ae90e84499b6f", "59": "891f59cda3708718", "60": "a505b7de6257a4e8", "61": "151209871c761759", "62": "d96493a5f110bd4c", "63": "c256b43f75d7809e", "64": "512a2535c88c4284", "66": "e858d75e995c92e5", "71": "cb5ac3401283c378"}
{"0": "796f85041a70fce3", "1": "966174ef01534051", "2": "9cf893b45c314643", "3": "271a5f5154afbdcd", "4": "e8b7c34edb5e6b25", "5": "163ce3e95fc46466", "6": "979dcc63399620ad", "7": "3a3e5d3e70ed45d6", "8": "cf2aba493368e557", "9": "94b2884fbd0d3d50", "10": "d982c7c094e0d01c", "11": "1c4f17c3d154962f", "12": "ab705784bbd1dbdc", "13": "7e3b558a587a4ebe", "14": "a2b13160223b5a98", "15": "5a9014c4a7f87699", "16": "95add6a975c0cb72", "17": "2405e1edb003a83e", "18": "5aa9c1fc3b3c8196", "19": "0a373ad2197fd1a6", "20": "aecf2fce44ba49c5", "21": "8835aeeaa165e9f9", "22": "b683919fcbe30647", "23": "90fac00055070ce2", "24": "f85b5b1634224c86", "25": "46e8db3e6e3f37ea", "26": "3ca8c23d3e8220ec", "27": "eab427ce9a5219e9", "28": "536a3a2cb7285674", "29": "c608f1c6492e1cb1", "30": "73c13793fca09f56", "31": "cd6f168abba94fea", "32": "f6bcf56c4589316b", "33": "75f750c5b7d9f63d", "34": "f024ff7942935690", "35": "23f1d406f6c779ae", "36": "92f5f0a14da5908e", "37": "cb8f26249485324a", "38": "29790cf710874dd0", "39": "fdd95375b4a5ddb3", "40": "3dd68cce72af5314", "41": "bf75bfc99d4f9e34", "42": "ffd960136fde00ad", "43": "9a25b1230b5fe649", "44": "852c1bb2446edd9c", "45": "92ab3e5134ed8685", "46": "65718282b3c32109", "47": "188dd5e33354e35d", "48": "8c471c7baeaaca54", "49": "1f976711cda158dc", "50": "bbb2b57d72922b16", "51": "eb6a182204867275", "52": "2ec3c8c088568ba9", "53": "68c45056378341a7", "54": "c58d41e8e580fdc6", "55": "15606ce5d8eec23a", "56": "880a74c6d255e5cc", "57": "f2a40b5f1b29f669", "58": "de5c2bc5e6fe8070", "59": "891f59cda3708718", "60": "a505b7de6257a4e8", "61": "81661714a80b3097", "62": "1366ae24c7e5897d", "63": "c256b43f75d7809e", "64": "86101547c05f96b9", "65": "cb5ac3401283c378", "66": "46204fb2e4d50c53", "67": "98f88c09f1236577", "68": "7ac475ea9bc280f8", "69": "e511846eeba03076", "71": "0b63a2ad1a11ce27", "72": "c84f196a7bd35861", "73": "2b887bf601ccfb9f", "74": "ae2a154311e1f53a", "75": "69fdd23278518884"}
+176 -149
View File
@@ -1,190 +1,193 @@
# Graph Report - juzi (2026-09-28)
# Graph Report - juzi (2026-10-11)
## Corpus Check
- 31 files · ~1,845,638 words
- 59 files · ~4,180,488 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 900 nodes · 2117 edges · 67 communities (46 shown, 21 thin omitted)
- Extraction: 92% EXTRACTED · 8% INFERRED · 0% AMBIGUOUS · INFERRED: 168 edges (avg confidence: 0.52)
- 1133 nodes · 2496 edges · 75 communities (57 shown, 18 thin omitted)
- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 178 edges (avg confidence: 0.53)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `4e3d915b`
- Built from commit: `ee744b6b`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
## Community Hubs (Navigation)
- face-api.js
- n
- t
- app.js
- skin-score.js
- isTensor
- .toBatchTensor
- getEnv
- FaceLandmarks
- disposeUnusedWeightTensors
- n
- normalize
- drawFaceExpressions
- Box
- admin.js
- __awaiter
- extractWeightEntryFactory
- FaceProcessor
- AgeGenderNet
- lib/accounts.js
- server.js
- files
- extractAllFacesAndComputeResults
- .predictAgeAndGender
- .runAndExtendWithFaceDetection
- 巨子测肤 · 1'me 在线肌肤测试 — UI 设计规范
- extractFaces
- 1'me 在线肌肤测试 H5
- head-pose.js
- build_fixtures.py
- .forwardInput
- disposeUnusedWeightTensors
- .loadFromDisk
- facepp-skinanalyze(旷视皮肤分析专业版调用技能)
- 巨子测肤 · 1'me 语音播报内容设计文档 V1.0
- extractParamsFromWeigthMap$1
- mobile-select.iife.min.js
- wi
- gen_voice.py
- initialize
- i
- face-api.js 本地化依赖(h5/vendor/faceapi/)
- regression.js
- isValidNumber
- ui-20261009/manifest.json
- .toString
- FaceMatcher
- build-fixture.py
- DetectSingleFaceLandmarksTask
- so
- tt
- C
- UI 外发版 10.09 图片资源
- TinyYolov2
- cn
- .computeFaceDescriptor
- SsdMobilenetv1
- dr
- UI交互界面调整
- ComputeAllFaceDescriptorsTask
- .draw
- export_psd_assets.py
- FaceLandmark68Net
- rescaleAndNormalize
- start-local.sh
- PredictAllAgeAndGenderWithFaceAlignmentTask
- PredictAllFaceExpressionsWithFaceAlignmentTask
- PredictSingleAgeAndGenderWithFaceAlignmentTask
- k
- PredictSingleFaceExpressionsWithFaceAlignmentTask
- Yo
- mobile-select/README.md
- call_skinanalyze_3view.sh
- TinyXception
- Vc
- FaceDetection
- ff
- ge
- sa
- po
- 护理建议(全量文本,按需求摘抄)
- UI 对齐 10.09 设计稿:调研与实施计划
- FaceLandmarks68
- .forwardInput
- regression.js
- .dispose
- call_skinanalyze.sh
- .extractWeights
- NeuralNetwork
- 提交前 Review(2026-10-11)
- e2e-browser.mjs
- AgeGenderNet
- FaceExpressionNet
- account-client.js
- PredictSingleFaceExpressionsTask
- .runAndExtendWithFaceDetections
- ui-20261009.mjs
- ComputeSingleFaceDescriptorTask
- misans/README.md
- extractFaceTensors
- build_report_copy.py
## God Nodes (most connected - your core abstractions)
1. `__awaiter()` - 59 edges
2. `__generator()` - 59 edges
3. `n()` - 36 edges
4. `t()` - 33 edges
5. `i()` - 33 edges
6. `r()` - 32 edges
3. `n()` - 37 edges
4. `r()` - 35 edges
5. `t()` - 33 edges
6. `i()` - 33 edges
7. `C()` - 32 edges
8. `toNetInput()` - 27 edges
9. `e()` - 22 edges
10. `f()` - 20 edges
## Surprising Connections (you probably didn't know these)
- `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
- `detectFrame()` --indirect_call--> `d()` [INFERRED]
h5/js/app.js → h5/vendor/faceapi/face-api.js
- `vizCompose()` --indirect_call--> `h()` [INFERRED]
h5/js/app.js → h5/vendor/faceapi/face-api.js
- `vizCompose()` --indirect_call--> `rh()` [INFERRED]
h5/js/app.js → h5/vendor/faceapi/face-api.js
- `vizCompose()` --indirect_call--> `w()` [INFERRED]
h5/js/app.js → h5/vendor/faceapi/face-api.js
- `renderReport()` --indirect_call--> `t()` [INFERRED]
h5/js/app.js → h5/vendor/faceapi/face-api.js
## Import Cycles
- None detected.
## Communities (67 total, 21 thin omitted)
## Communities (75 total, 18 thin omitted)
### Community 0 - "face-api.js"
Cohesion: 0.02
Nodes (38): bn(), ca(), cd(), ce(), dn(), ee(), er(), et() (+30 more)
Nodes (32): cn(), computeReshapedDimensions(), createBrowserEnv(), createFileSystem(), createNodejsEnv(), dr(), en(), extractBoundingBoxes() (+24 more)
### Community 1 - "n"
Cohesion: 0.07
Nodes (85): a(), ae(), ao(), b(), ba(), be(), bf(), bi() (+77 more)
### Community 1 - "t"
Cohesion: 0.08
Nodes (33): be(), bi(), Bo(), ce(), de(), e(), Ef(), er() (+25 more)
### Community 2 - "app.js"
Cohesion: 0.06
Nodes (71): afterCurrent(), applyMirror(), armNudge(), beginCountdown(), beginDetect(), bindBackdropClose(), busyWithFlow(), cancelCountdown() (+63 more)
Nodes (74): applyMirror(), armNudge(), beginDetect(), bindBackdropClose(), busyWithFlow(), captureFromVideo(), checkStill(), closeOverlay() (+66 more)
### Community 3 - "skin-score.js"
Cohesion: 0.12
Nodes (44): acneGrade(), buildViewModel(), calcAcne(), calcContour(), calcSens(), calcSmooth(), calcTone(), calcWrinkles() (+36 more)
### Community 4 - "isTensor"
Cohesion: 0.33
Nodes (5): extractorsFactory$3(), extractParamsFromWeigthMap$4(), isTensor(), isTensor1D(), isTensor2D()
### Community 4 - "n"
Cohesion: 0.17
Nodes (32): a(), ae(), bf(), cf(), d(), drawContour(), dt(), ea() (+24 more)
### Community 5 - ".toBatchTensor"
Cohesion: 0.08
Nodes (30): conv(), conv$1(), convDown(), convLayer(), convLayer$1(), convNoRelu(), convWithBatchNorm(), denseBlock3() (+22 more)
### Community 6 - "getEnv"
### Community 5 - "normalize"
Cohesion: 0.09
Nodes (26): awaitMediaLoaded(), bufferToImage(), createCanvas(), createCanvasFromMedia(), DetectAllFacesTask(), DrawBox(), drawDetections(), drawFaceExpressions() (+18 more)
Nodes (26): conv(), conv$1(), convDown(), convLayer(), convLayer$1(), convNoRelu(), convWithBatchNorm(), denseBlock3() (+18 more)
### Community 7 - "FaceLandmarks"
Cohesion: 0.06
Nodes (16): bgrToRgbTensor(), extendWithFaceLandmarks(), FaceLandmark68NetBase(), FaceLandmarks(), FaceLandmarks5(), FaceLandmarks68(), getCenterPoint(), isDimensions() (+8 more)
### Community 8 - "disposeUnusedWeightTensors"
### Community 6 - "drawFaceExpressions"
Cohesion: 0.22
Nodes (6): disposeUnusedWeightTensors(), extractorsFactory$9(), extractParamsFromWeigthMap(), extractParamsFromWeigthMap$6(), extractParamsFromWeigthMap$7(), extractParamsFromWeigthMapTiny()
Nodes (6): DrawBox(), drawDetections(), drawFaceExpressions(), DrawFaceLandmarks(), FaceExpressions(), isWithFaceExpressions()
### Community 7 - "Box"
Cohesion: 0.13
Nodes (6): Box(), DetectAllFaceLandmarksTask(), extendWithFaceLandmarks(), FaceLandmarks(), minBbox(), ObjectDetection()
### Community 8 - "admin.js"
Cohesion: 0.25
Nodes (23): api(), bind(), closeDetail(), collectFilters(), dimsHtml(), doRetry(), dSec(), el() (+15 more)
### Community 9 - "__awaiter"
Cohesion: 0.22
Nodes (8): __awaiter(), fetchImage(), fetchJson(), fetchNetWeights(), fetchOrThrow(), __generator(), Mtcnn(), toNetInput()
Cohesion: 0.14
Nodes (12): __awaiter(), extendWithFaceDescriptor(), extractSingleFaceAndComputeResult(), FaceRecognitionNet(), fetchImage(), fetchJson(), fetchNetWeights(), fetchOrThrow() (+4 more)
### Community 10 - "extractWeightEntryFactory"
Cohesion: 0.53
Nodes (6): extractorsFactory$7(), extractWeightEntryFactory(), loadConvParamsFactory(), loadParamsFactory(), loadParamsFactory$1(), loadSeparableConvParamsFactory()
### Community 10 - "AgeGenderNet"
Cohesion: 0.10
Nodes (6): AgeGenderNet(), extractParams$1(), FaceExpressionNet(), FaceLandmark68NetBase(), FaceLandmark68TinyNet(), FaceProcessor()
### Community 11 - "FaceProcessor"
Cohesion: 0.24
Nodes (3): extractParams$1(), FaceLandmark68TinyNet(), FaceProcessor()
### Community 11 - "lib/accounts.js"
Cohesion: 0.07
Nodes (40): build(), count(), fill(), numeric(), atomic(), body(), cookie(), cookies() (+32 more)
### Community 12 - "server.js"
Cohesion: 0.14
Nodes (16): callFacepp(), CRED, DATA_DIR, ERR_MSG, fs, handleAnalyze(), http, isUsableB64() (+8 more)
Cohesion: 0.08
Nodes (48): accounts, appendRecord(), callFacepp(), CRED, csvCell(), DATA_DIR, dumpRaw(), ERR_MSG (+40 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 14 - "extractAllFacesAndComputeResults"
Cohesion: 0.15
Nodes (8): extendWithAge(), extendWithFaceExpressions(), extendWithGender(), extractAllFacesAndComputeResults(), extractSingleFaceAndComputeResult(), PredictAllAgeAndGenderTask(), PredictAllFaceExpressionsTask(), PredictSingleAgeAndGenderTask()
### Community 14 - ".predictAgeAndGender"
Cohesion: 0.28
Nodes (4): extendWithAge(), extendWithGender(), PredictAllAgeAndGenderTask(), PredictSingleAgeAndGenderTask()
### Community 15 - ".runAndExtendWithFaceDetection"
Cohesion: 0.23
Nodes (6): allFacesMtcnn(), allFacesSsdMobilenetv1(), allFacesTinyYolov2(), DetectAllFaceLandmarksTask(), detectAllFaces(), DetectSingleFaceTask()
Cohesion: 0.33
Nodes (5): allFacesMtcnn(), allFacesSsdMobilenetv1(), allFacesTinyYolov2(), detectAllFaces(), DetectSingleFaceTask()
### 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 - "extractFaces"
Cohesion: 0.22
Nodes (6): Box(), extractFaces(), extractFaceTensors(), imageTensorToCanvas(), isTensor3D(), isTensor4D()
Cohesion: 0.19
Nodes (19): awaitMediaLoaded(), bufferToImage(), createCanvas(), createCanvasFromMedia(), extractFaces(), extractImagePatches(), getContext2dOrThrow(), getEnv() (+11 more)
### Community 18 - "1'me 在线肌肤测试 H5"
Cohesion: 0.18
Nodes (10): 1'me 在线肌肤测试 H5, Windows 本机部署(提测用), 密钥配置, 已知占位清单, 技术说明, 拍照交互(引导式自动三连拍), 本地运行, 检测流程与评分渲染 (+2 more)
Cohesion: 0.07
Nodes (27): 10.09 新版 H5 实施与验收, 按确认项实现, 文档未定义部分的实施口径, 素材再生成, 验证命令, 公网服务器配置, 公网真机验收清单, 反向代理与后台保护 (+19 more)
### Community 19 - "head-pose.js"
Cohesion: 0.33
@@ -194,13 +197,13 @@ Nodes (8): assertPoints(), check(), clamp(), dist(), estimate(), makeFrontal(),
Cohesion: 0.40
Nodes (9): build_case1(), build_case2(), build_truth(), col(), dump(), main(), parse_value(), set_path() (+1 more)
### Community 21 - ".forwardInput"
Cohesion: 0.22
Nodes (9): boxPredictionLayer(), decodeBoxesLayer(), depthwiseConvLayer(), getCenterCoordinatesAndSizesLayer(), getStridesForLayerIdx(), mobileNetV1(), outputLayer(), pointwiseConvLayer() (+1 more)
### Community 21 - "disposeUnusedWeightTensors"
Cohesion: 0.09
Nodes (24): disposeUnusedWeightTensors(), extractorsFactory$3(), extractorsFactory$5(), extractorsFactory$7(), extractorsFactory$9(), extractParamsFromWeigthMap(), extractParamsFromWeigthMap$1(), extractParamsFromWeigthMap$2() (+16 more)
### Community 22 - ".loadFromDisk"
Cohesion: 0.19
Nodes (5): ComposableTask(), getModelUris(), Gf(), loadWeightMap(), TinyFaceDetector()
Cohesion: 0.25
Nodes (3): ComposableTask(), getModelUris(), TinyFaceDetector()
### Community 23 - "facepp-skinanalyze(旷视皮肤分析专业版调用技能)"
Cohesion: 0.20
@@ -210,101 +213,125 @@ Nodes (9): 1. 凭据(统一管理), 2. 标准调用模板(全可选参数
Cohesion: 0.22
Nodes (8): 1. 音频格式约定(已定), 2. 播报清单(14 条), 3. 播放策略(前端已实现侧约定), 4. 生成验收, A. 步骤引导(进入每个拍照步骤时播,与屏幕步骤文案一致), B. 姿态提示(实时检测不通过时播,同一提示 4 秒内不重复), C. 拍摄与流程, 巨子测肤 · 1'me 语音播报内容设计文档 V1.0
### Community 25 - "extractParamsFromWeigthMap$1"
Cohesion: 0.40
Nodes (3): extractParamsFromWeigthMap$1(), extractParamsFromWeigthMap$3(), seperateWeightMaps()
### Community 25 - "mobile-select.iife.min.js"
Cohesion: 0.20
Nodes (16): _arrayLikeToArray(), _arrayWithHoles(), _arrayWithoutHoles(), _classCallCheck(), _createClass(), _defineProperties(), h(), _iterableToArray() (+8 more)
### Community 26 - "wi"
Cohesion: 0.28
Nodes (9): Ci(), Ei(), Fi(), Ii(), ki(), pe(), ri(), wi() (+1 more)
Cohesion: 0.32
Nodes (8): Ci(), Ei(), Fi(), Ii(), ki(), ri(), wi(), Xt()
### 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 - "initialize"
Cohesion: 0.29
Nodes (7): createBrowserEnv(), createFileSystem(), createNodejsEnv(), initialize(), isBrowser(), monkeyPatch(), setEnv()
### Community 28 - "i"
Cohesion: 0.08
Nodes (32): ba(), bn(), ca(), cl(), da(), dn(), ee(), et() (+24 more)
### Community 29 - "face-api.js 本地化依赖(h5/vendor/faceapi/)"
Cohesion: 0.29
Nodes (6): face-api.js 本地化依赖(h5/vendor/faceapi/), 为什么本地化, 文件清单与体积, 来源与版本, 用法, 许可证
### Community 30 - "regression.js"
Cohesion: 0.60
Nodes (5): diffCtx(), loadJSON(), main(), okNum(), okStr()
### Community 30 - "ui-20261009/manifest.json"
Cohesion: 0.33
Nodes (5): assets, document_size, layers, pages, source
### Community 31 - "isValidNumber"
Cohesion: 0.50
Nodes (4): Dimensions(), isValidNumber(), isValidProbablitiy(), isWithGender()
### Community 31 - ".toString"
Cohesion: 0.33
Nodes (5): FaceMatch(), la(), pr(), pt(), vt()
### Community 33 - "build-fixture.py"
Cohesion: 0.60
Nodes (4): main(), 递归缩放 result 内全部坐标:{left,top,width,height} 矩形与 {x,y} 点,与原数据同为整数。, scale_coords(), to_data_url()
### Community 36 - "so"
Cohesion: 0.50
Nodes (4): Do(), io(), so(), To()
### Community 36 - "C"
Cohesion: 0.08
Nodes (29): ao(), C(), cd(), co(), Do(), eo(), fo(), Ft() (+21 more)
### Community 37 - "tt"
Cohesion: 0.50
Nodes (4): kn(), tt(), wo(), z()
### Community 39 - "cn"
Cohesion: 0.67
Nodes (3): cn(), en(), yn()
### Community 40 - ".computeFaceDescriptor"
Cohesion: 0.18
Nodes (4): ComputeAllFaceDescriptorsTask(), ComputeSingleFaceDescriptorTask(), extendWithFaceDescriptor(), FaceRecognitionNet()
### Community 41 - "SsdMobilenetv1"
### Community 37 - "UI 外发版 10.09 图片资源"
Cohesion: 0.40
Nodes (3): extractorsFactory$5(), extractParamsFromWeigthMap$5(), SsdMobilenetv1()
Nodes (4): UI 外发版 10.09 图片资源, 前端素材对应, 文件位置, 重新导出
### Community 42 - "dr"
Cohesion: 0.67
Nodes (3): dr(), na(), ta()
### Community 39 - "UI交互界面调整"
Cohesion: 0.40
Nodes (4): 1meAI测肤旷视UI问题反馈, UI交互界面调整, 交互, **设计**
### Community 44 - "rescaleAndNormalize"
Cohesion: 0.67
Nodes (3): getSizesForScale(), normalize$1(), rescaleAndNormalize()
### Community 42 - "export_psd_assets.py"
Cohesion: 0.70
Nodes (4): bounds(), layer_at(), main(), save_image()
### Community 49 - "Yo"
Cohesion: 0.67
Nodes (3): qo(), Xo(), Yo()
### Community 44 - "start-local.sh"
Cohesion: 0.50
Nodes (3): HOST, PORT, start-local.sh script
### Community 47 - "k"
Cohesion: 0.18
Nodes (11): b(), gn(), k(), kn(), ne(), tt(), wo(), Yt() (+3 more)
### Community 53 - "护理建议(全量文本,按需求摘抄)"
Cohesion: 0.10
Nodes (19): 5\.1 轮廓(紧塑力), 5\.2 皱纹(紧塑力), 5\.3 肤色(透亮感), 5\.4 平滑度(透亮感), 5\.5 水分(透亮感), 5\.6 泛红(稳韧力), 5\.7 痘痘(稳韧力), 6\.1 轮廓 (+11 more)
### Community 54 - "UI 对齐 10.09 设计稿:调研与实施计划"
Cohesion: 0.11
Nodes (17): 1. 结论和依据, 2. 统一比较口径, 3. 逐页差异和调整内容, 4. 报告数据如何接到新 UI, 5. 登录与“我的报告”的真实能力缺口, 6. 原稿中需要整理的内容, 7. 实施顺序与交付物, 8. 验收定义 (+9 more)
### Community 55 - "FaceLandmarks68"
Cohesion: 0.19
Nodes (3): FaceLandmarks5(), FaceLandmarks68(), getCenterPoint()
### Community 56 - ".forwardInput"
Cohesion: 0.22
Nodes (9): boxPredictionLayer(), decodeBoxesLayer(), depthwiseConvLayer(), getCenterCoordinatesAndSizesLayer(), getStridesForLayerIdx(), mobileNetV1(), outputLayer(), pointwiseConvLayer() (+1 more)
### Community 57 - "regression.js"
Cohesion: 0.60
Nodes (5): diffCtx(), loadJSON(), main(), okNum(), okStr()
### Community 58 - ".dispose"
Cohesion: 0.14
Nodes (13): computeReshapedDimensions(), extractBoundingBoxes(), iou(), isEven(), nonMaxSuppression(), nonMaxSuppression$1(), pyramidDown(), scale() (+5 more)
Cohesion: 0.15
Nodes (12): getSizesForScale(), iou(), nonMaxSuppression(), nonMaxSuppression$1(), normalize$1(), rescaleAndNormalize(), scale(), SsdMobilenetv1() (+4 more)
### Community 61 - ".extractWeights"
Cohesion: 0.08
Nodes (25): createFaceDetectionNet(), createFaceRecognitionNet(), createMtcnn(), createSsdMobilenetv1(), createTinyFaceDetector(), createTinyYolov2(), extractConvParamsFactory(), extractFCParamsFactory() (+17 more)
### Community 61 - "NeuralNetwork"
Cohesion: 0.05
Nodes (32): bgrToRgbTensor(), createFaceDetectionNet(), createFaceRecognitionNet(), createMtcnn(), createSsdMobilenetv1(), createTinyFaceDetector(), createTinyYolov2(), Dimensions() (+24 more)
### Community 62 - "提交前 Review(2026-10-11)"
Cohesion: 0.40
Nodes (4): 仍需公网/业务确认, 已发现并修复, 提交前 Review(2026-10-11), 验证
### Community 63 - "e2e-browser.mjs"
Cohesion: 0.29
Nodes (4): EXPECTED, fails, pageErrors, pwRoot
### Community 64 - "account-client.js"
Cohesion: 0.90
Nodes (4): browser(), init(), read(), request()
### Community 71 - "extractFaceTensors"
Cohesion: 0.18
Nodes (9): extendWithFaceDetection(), extendWithFaceExpressions(), extractAllFacesAndComputeResults(), extractFaceTensors(), isTensor3D(), isWithFaceDetection(), isWithFaceLandmarks(), PredictAllFaceExpressionsTask() (+1 more)
## Knowledge Gaps
- **63 isolated node(s):** `step1-front`, `step2-rightface`, `step3-leftface`, `hint-noface`, `hint-near` (+58 more)
- **152 isolated node(s):** `source`, `document_size`, `pages`, `assets`, `layers` (+147 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **21 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
- **18 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 `val()` connect `skin-score.js` to `extractFaces`?**
_High betweenness centrality (0.083) - this node is a cross-community bridge._
- **Why does `vizCompose()` connect `app.js` to `n`?**
- **Why does `k()` connect `k` to `face-api.js`, `t`, `app.js`, `n`, `lib/accounts.js`, `i`?**
_High betweenness centrality (0.078) - this node is a cross-community bridge._
- **Why does `renderReport()` connect `app.js` to `t`, `k`?**
_High betweenness centrality (0.058) - this node is a cross-community bridge._
- **Why does `Box()` connect `extractFaces` to `face-api.js`, `.dispose`, `isValidNumber`, `FaceLandmarks`?**
_High betweenness centrality (0.058) - this node is a cross-community bridge._
- **Are the 23 inferred relationships involving `n()` (e.g. with `ae()` and `be()`) actually correct?**
_`n()` has 23 INFERRED edges - model-reasoned connections that need verification._
- **Why does `rate()` connect `lib/accounts.js` to `k`?**
_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 `step1-front`, `step2-rightface`, `step3-leftface` to the rest of the system?**
_63 weakly-connected nodes found - possible documentation gaps or missing edges._
- **What connects `source`, `document_size`, `pages` to the rest of the system?**
_152 weakly-connected nodes found - possible documentation gaps or missing edges._
File diff suppressed because one or more lines are too long
+8502 -1480
View File
File diff suppressed because it is too large Load Diff
+744 -14
View File
@@ -40,23 +40,23 @@
"semantic_hash": ""
},
"h5/js/app.js": {
"mtime": 1790531707.8223634,
"ast_hash": "7c3652449c905d9f19ca37a66089766f",
"mtime": 1791646682.4027648,
"ast_hash": "b838a3efa4351bb87d5f17644bf83ca7",
"semantic_hash": ""
},
"h5/js/head-pose.js": {
"mtime": 1790528422.8265557,
"ast_hash": "165cc2ae73d0a9526db0755ec62ffaac",
"mtime": 1791559485.790093,
"ast_hash": "cdfc5962793a4d6e567ffe00be7653e8",
"semantic_hash": ""
},
"h5/js/skin-score.js": {
"mtime": 1790528158.6665542,
"ast_hash": "61d27784c13fc9fd5ea3b4e2f6187756",
"mtime": 1791645379.1321833,
"ast_hash": "12fe3e0e5fd4cbe7f0a79a7da01c380b",
"semantic_hash": ""
},
"h5/server.js": {
"mtime": 1790528158.6705542,
"ast_hash": "e23a541e2ce85e0815616071820b46ef",
"mtime": 1791710640.6026413,
"ast_hash": "a63e26c0f78becff09cc50e427cb0054",
"semantic_hash": ""
},
"h5/test/build_fixtures.py": {
@@ -135,13 +135,13 @@
"semantic_hash": ""
},
"h5/README.md": {
"mtime": 1790531597.4743752,
"ast_hash": "26db3c846af2efc0a4bfb442985e2922",
"mtime": 1791646538.376033,
"ast_hash": "1f8bb2cad20e467a93e1120dc7cf3924",
"semantic_hash": ""
},
"h5/index.html": {
"mtime": 1790531666.4743714,
"ast_hash": "66cb0b0c306fcc9adb4dbed358651d13",
"mtime": 1791646269.975195,
"ast_hash": "c2661595e503e2f166f1be390696ce0c",
"semantic_hash": ""
},
"h5/vendor/faceapi/README.md": {
@@ -770,8 +770,8 @@
"semantic_hash": ""
},
"h5/test/e2e-browser.mjs": {
"mtime": 1790531366.4343376,
"ast_hash": "3ae597baedac698f02f27c5662784348",
"mtime": 1791646391.2915454,
"ast_hash": "dc47c78ddf5de136d59d73fb19d8da81",
"semantic_hash": ""
},
"h5/assets/svg/prod-badge.svg": {
@@ -808,5 +808,735 @@
"mtime": 1790528422.8225558,
"ast_hash": "9f7ec9320aad81e86fbb1677228e6483",
"semantic_hash": ""
},
"design/ui-20261009/manifest.json": {
"mtime": 1791642120.005687,
"ast_hash": "30a5ef4a5abcd6c6c4294e8202a4bad4",
"semantic_hash": ""
},
"h5/js/admin.js": {
"mtime": 1791556943.863973,
"ast_hash": "573a1a971cc3d00a16c8b9d53529f243",
"semantic_hash": ""
},
"h5/js/region-data.js": {
"mtime": 1791559485.790093,
"ast_hash": "9ede70cb3ed9777a62559451e1969b9d",
"semantic_hash": ""
},
"h5/start-local.sh": {
"mtime": 1791559485.790093,
"ast_hash": "f71b1c8e2ada83f6ee607ae4577d0b9a",
"semantic_hash": ""
},
"h5/vendor/mobile-select/mobile-select.iife.min.js": {
"mtime": 1791559485.790093,
"ast_hash": "52578c3b95933f96493d3b879d353421",
"semantic_hash": ""
},
"tools/export_psd_assets.py": {
"mtime": 1791642102.9273047,
"ast_hash": "7cee68c3db2cd4a52b58b8e380e2fe8d",
"semantic_hash": ""
},
"MP_verify_kpx234XimQGtFPo6.txt": {
"mtime": 1791639433.9595106,
"ast_hash": "3acc5e996d0ddc5b2b225b56536d2bf3",
"semantic_hash": ""
},
"design/ui-20261009/README.md": {
"mtime": 1791710791.707398,
"ast_hash": "097628df23775e8d518f9ec83593e211",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988.md": {
"mtime": 1791556943.7718663,
"ast_hash": "d99151ccfc4d73a421f49546feef45fa",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u7b2c\u4e8c\u8f6e2\u53cd\u9988.md": {
"mtime": 1791639433.9595106,
"ast_hash": "7c20a160d9b965ff019445cae51c5628",
"semantic_hash": ""
},
"h5/admin.html": {
"mtime": 1791556943.863973,
"ast_hash": "8dad311cd83b0ec640bcf71ddb9a255c",
"semantic_hash": ""
},
"h5/vendor/mobile-select/README.md": {
"mtime": 1791559485.790093,
"ast_hash": "fe3287899b96f598c60f9bc030a1368e",
"semantic_hash": ""
},
"design/ui-20261009/assets-overview.jpg": {
"mtime": 1791642120.005687,
"ast_hash": "d9475b775e202ae0e0e329b48625529f",
"semantic_hash": ""
},
"design/ui-20261009/pages-overview.jpg": {
"mtime": 1791642119.9744806,
"ast_hash": "1231c4badaf76d859d02c71beb67b5d3",
"semantic_hash": ""
},
"design/ui-20261009/pages/01-\u542f\u52a8\u9875.png": {
"mtime": 1791641925.2282495,
"ast_hash": "9e0086ed5831752589a87e5a4bf41a32",
"semantic_hash": ""
},
"design/ui-20261009/pages/02-\u542f\u52a8\u9875\u5f39\u7a97.png": {
"mtime": 1791641927.5536723,
"ast_hash": "b69f8d3b109472bcffb08dc861bae7ec",
"semantic_hash": ""
},
"design/ui-20261009/pages/03-\u6211\u7684\u62a5\u544a.png": {
"mtime": 1791641931.276532,
"ast_hash": "28b96724cba921c1b996bccf5921fcc4",
"semantic_hash": ""
},
"design/ui-20261009/pages/04-\u6863\u6848\u586b\u5199.png": {
"mtime": 1791641935.9516084,
"ast_hash": "7c702fa5005b0009998da437678d643a",
"semantic_hash": ""
},
"design/ui-20261009/pages/05-\u62cd\u7167\u5f39\u7a97.png": {
"mtime": 1791641938.6036084,
"ast_hash": "949fecb7cf12227e2afc0223977f0774",
"semantic_hash": ""
},
"design/ui-20261009/pages/06-\u6b63\u9762.png": {
"mtime": 1791641940.6992414,
"ast_hash": "9cc466bf5e1e34852a672570eaf075c4",
"semantic_hash": ""
},
"design/ui-20261009/pages/07-\u5de6\u9762.png": {
"mtime": 1791641942.8299313,
"ast_hash": "09f1a2059586cd430e79f21d2abe262f",
"semantic_hash": ""
},
"design/ui-20261009/pages/08-\u53f3\u9762.png": {
"mtime": 1791641945.0379312,
"ast_hash": "1394a72d8fdeb223d2ccab4c7121f542",
"semantic_hash": ""
},
"design/ui-20261009/pages/09-\u62a5\u544a\u9875.png": {
"mtime": 1791641991.6536736,
"ast_hash": "7593a81623b7f56aec5272bf3435132b",
"semantic_hash": ""
},
"design/ui-20261009/pages/10-\u767b\u5f55.png": {
"mtime": 1791641995.750234,
"ast_hash": "193866f312d2652e3bfad47b9cffb41c",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/image 1.png": {
"mtime": 1791556943.775871,
"ast_hash": "26f81b5937eeb366495cb1a8cd6a83a7",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/image 2.png": {
"mtime": 1791556943.7798755,
"ast_hash": "66c1339d62b9ff4cc7e0437625575650",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/image 3.png": {
"mtime": 1791556943.7798755,
"ast_hash": "5f3a5fab25af9f28a73681afcd8163b5",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/image 4.png": {
"mtime": 1791556943.7838802,
"ast_hash": "d6e125783fdd17d64104479ecec6b178",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/image 5.png": {
"mtime": 1791556943.7918894,
"ast_hash": "9ae5ae786e478c26c2cd6a4cd31e8548",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/image 6.png": {
"mtime": 1791556943.7918894,
"ast_hash": "26f81b5937eeb366495cb1a8cd6a83a7",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/image 7.png": {
"mtime": 1791556943.7998989,
"ast_hash": "ff17d0fb064a446a66c80e16c442d1bc",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/image.png": {
"mtime": 1791556943.7998989,
"ast_hash": "4231c15316cf0172bc8a61e3608e4a8b",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/img_v3_0215v_ae6e553b-8196-4962-9529-abfd20b33d3g.jpg": {
"mtime": 1791556943.7998989,
"ast_hash": "80e37fba538c321c72f1e07b1cc01fdc",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/img_v3_0215v_de81e319-a8c7-4ec8-bd78-ae4a127ef30g.jpg": {
"mtime": 1791556943.7998989,
"ast_hash": "2cd1dd131c8e8e6d644c8261b4c48f55",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/img_v3_0216a_45a139b6-f58c-4bab-8ca1-1c29fcde18fg.png": {
"mtime": 1791556943.8039033,
"ast_hash": "68e53d7530b6fc82219497a9c3a4da67",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/img_v3_0216a_5d95bb41-92ae-4fa4-82a5-74f274e58cbg.png": {
"mtime": 1791556943.8159173,
"ast_hash": "4647889d0de806bce9061e475450ca0e",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/img_v3_0216a_71bbe9b7-3add-49ac-a482-294ab995bf8g.png": {
"mtime": 1791556943.819922,
"ast_hash": "de799cb297b18ad7af5dcbedcb7a3af7",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/img_v3_0216a_9c98146e-8996-4191-b21f-077c525ea5eg 1.png": {
"mtime": 1791556943.8239264,
"ast_hash": "2100794ade2e248b74fb725b40772549",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/img_v3_0216a_9c98146e-8996-4191-b21f-077c525ea5eg.png": {
"mtime": 1791556943.8239264,
"ast_hash": "2100794ade2e248b74fb725b40772549",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/img_v3_0216a_d853ee3b-5310-4c90-b34d-ab43b9acff4g.png": {
"mtime": 1791556943.8239264,
"ast_hash": "4be961746f76e410175b22c6cb4a297e",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/img_v3_0216a_d9062dad-94c8-49ca-8f2a-02525fcf6bbg.png": {
"mtime": 1791556943.8279312,
"ast_hash": "6bd46dfccfa2c9eef496406494c28805",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/img_v3_0216a_df6ae147-0add-4863-879f-38f2dc94220g.png": {
"mtime": 1791556943.8279312,
"ast_hash": "0cee77873e56c1d57caf3c30739e4e77",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/\u6211\u7684\u62a5\u544a.jpg": {
"mtime": 1791556943.8279312,
"ast_hash": "a5cb508204efbcc0aa814607b5171b9e",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/\u622a\u5c4f2026-09-28 13.38.51.png": {
"mtime": 1791556943.8359404,
"ast_hash": "3c7b6fe631e0002929548a3c50733f8b",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/\u622a\u5c4f2026-09-28 13.43.25.png": {
"mtime": 1791556943.839945,
"ast_hash": "f54f57c72a1f3ad50fc3ce20f2f72900",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/\u622a\u5c4f2026-09-28 13.44.10.png": {
"mtime": 1791556943.8479543,
"ast_hash": "e7208ae3baa0a3e4677176242f089d7f",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/\u622a\u5c4f2026-09-28 13.45.46.png": {
"mtime": 1791556943.851959,
"ast_hash": "f0590a59b792b30fcbf8e402e12b701c",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/\u622a\u5c4f2026-09-28 13.56.32.png": {
"mtime": 1791556943.8559637,
"ast_hash": "ca8c8ba2e8ddb457a47cd811a1b1e525",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/\u622a\u5c4f2026-09-28 14.13.35.png": {
"mtime": 1791556943.8599682,
"ast_hash": "7b90c45f235da04d0bbbb937728e1e1e",
"semantic_hash": ""
},
"feedback/1meAI\u6d4b\u80a4\u65f7\u89c6UI\u95ee\u9898\u53cd\u9988/\u56fe\u7247\u548c\u9644\u4ef6/\u6863\u6848\u586b\u5199.png": {
"mtime": 1791556943.863973,
"ast_hash": "dd7e776e075a90325e826e6af5a3dc06",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/bg-history.jpg": {
"mtime": 1791642110.8726454,
"ast_hash": "b40384ccab84c686ca7e95f06ef402d1",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/bg-login.jpg": {
"mtime": 1791642107.6766243,
"ast_hash": "7d9428b9c02024b7ba0b9e3845c0811e",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/bg-profile.jpg": {
"mtime": 1791642106.283487,
"ast_hash": "7d9428b9c02024b7ba0b9e3845c0811e",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/bg-report.jpg": {
"mtime": 1791642109.7565744,
"ast_hash": "7d72639b3df259555a0db509555c6e92",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/bg-splash.jpg": {
"mtime": 1791642105.7254517,
"ast_hash": "4d1ef1156513a372f62383d15a0542f0",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/brand-login.png": {
"mtime": 1791642110.9038641,
"ast_hash": "b4a8630878423bd42c9a2ab0178637b3",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/brand-logo.png": {
"mtime": 1791642110.892157,
"ast_hash": "6d3045d44d9fc90850216c6e1291837f",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/camera-mask-front.png": {
"mtime": 1791642116.7875311,
"ast_hash": "de2962a8f6f9851c7076c6e0935a225a",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/camera-mask-left.png": {
"mtime": 1791642117.4116583,
"ast_hash": "0192103bb8e372166a6cd271e8eae9a2",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/camera-mask-right.png": {
"mtime": 1791642117.0878923,
"ast_hash": "40b770583c47ba0f539661cb9a466eee",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/icon-album.png": {
"mtime": 1791642110.9116688,
"ast_hash": "2d819e63db048d874cbc429d3131037d",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/icon-back.png": {
"mtime": 1791642110.9077663,
"ast_hash": "410c4d4e6d363644e9e073fd1cdf5391",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/icon-close.png": {
"mtime": 1791642110.9077663,
"ast_hash": "6dd0c1f1555d55f54ec80b8231089e4d",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/icon-dropdown.png": {
"mtime": 1791642110.9077663,
"ast_hash": "20cb370372a6a3796274703c83a2790a",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/icon-guest.png": {
"mtime": 1791642110.9194734,
"ast_hash": "3f04d7abdf607cfc4c1a737e00a18ba3",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/icon-shutter.png": {
"mtime": 1791642110.935083,
"ast_hash": "6cb6892af9f6ad8828bc65d01fa42a36",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/icon-switch-camera.png": {
"mtime": 1791642110.915571,
"ast_hash": "6197c8000c21156ffecdf77f9c5ed5ba",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/icon-wechat.png": {
"mtime": 1791642110.9194734,
"ast_hash": "42dd3e96cdd78ae90796627321fa9287",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/product-25.png": {
"mtime": 1791642111.5399463,
"ast_hash": "5380d9e7b154bc65e44bfd9816453abe",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/product-35.png": {
"mtime": 1791642112.0158572,
"ast_hash": "06b3d30cfa18f2d0412d5bd0b52d4281",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/product-50.png": {
"mtime": 1791642112.2265003,
"ast_hash": "6c7721402acb3de9a77b89a58bba8e72",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/product-badge.png": {
"mtime": 1791642112.2343018,
"ast_hash": "f345c695ccfa68eda6954f0e9c372566",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/sample-contour.png": {
"mtime": 1791642113.7790165,
"ast_hash": "564023f6104798a65ba176cd0d39fe68",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/sample-lines.png": {
"mtime": 1791642113.8102229,
"ast_hash": "620741bd7da835b9a7e7236bda0eca04",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/sample-redness.png": {
"mtime": 1791642116.4364598,
"ast_hash": "564023f6104798a65ba176cd0d39fe68",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/sample-tone.png": {
"mtime": 1791642114.0988817,
"ast_hash": "aed72b95748480cce62f6a2fb7ed7c24",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/score-ring-base.png": {
"mtime": 1791642112.2616074,
"ast_hash": "4286d187e29909a97aaa178c09fdce30",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/score-ring-value.png": {
"mtime": 1791642112.285012,
"ast_hash": "7677768b6dcc6531a73506f65b21548f",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/skin-0-dry.png": {
"mtime": 1791642110.9780085,
"ast_hash": "9c9ca68325293fd44605c9b03d658306",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/skin-1-mixeddry.png": {
"mtime": 1791642111.0248368,
"ast_hash": "1c282221809cda40e6b74fd98181bdfa",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/skin-2-neutral.png": {
"mtime": 1791642111.0677626,
"ast_hash": "5090258c61d6c52c6e16f77fe91fb86a",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/skin-3-oily.png": {
"mtime": 1791642111.1106884,
"ast_hash": "9ffc7732de8c04507e8917a771f92c91",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/skin-4-mixedoily.png": {
"mtime": 1791642111.153614,
"ast_hash": "e76e01938d93d1a662d01e4713b54c94",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/evidence.json": {
"mtime": 1791642461.0152285,
"ast_hash": "1ea9200cc1dce15c6586edd965ddc0b4",
"semantic_hash": ""
},
"h5/js/account-client.js": {
"mtime": 1791646011.3632386,
"ast_hash": "1aad127f864693ee873d59b177386b33",
"semantic_hash": ""
},
"h5/js/camera-geometry.js": {
"mtime": 1791646239.2012978,
"ast_hash": "08048bc5e491ca47275afe067bedbc1c",
"semantic_hash": ""
},
"h5/js/report-copy.js": {
"mtime": 1791645357.4367466,
"ast_hash": "86f574571b8e882868fce221677cf097",
"semantic_hash": ""
},
"h5/js/report-ui.js": {
"mtime": 1791646198.024173,
"ast_hash": "5cb7f2ac736b6859ed580f5c934b1061",
"semantic_hash": ""
},
"h5/lib/accounts.js": {
"mtime": 1791710640.6026413,
"ast_hash": "e36024ccb6c9d6a2d2a0187942d5c65b",
"semantic_hash": ""
},
"h5/test/accounts.js": {
"mtime": 1791710640.6026413,
"ast_hash": "f036faf880172eb33e3d0fd4e5c462f7",
"semantic_hash": ""
},
"h5/test/report-persistence.mjs": {
"mtime": 1791710640.6026413,
"ast_hash": "92699686424262cfe208355ce040f236",
"semantic_hash": ""
},
"h5/test/ui-20261009.mjs": {
"mtime": 1791646682.4027648,
"ast_hash": "c2754fb520f28a48391662a49860687c",
"semantic_hash": ""
},
"tools/build_report_copy.py": {
"mtime": 1791645357.4060252,
"ast_hash": "e4d2c1e2ab552c08cb271f0ec042668b",
"semantic_hash": ""
},
"tools/prepare_h5_assets.py": {
"mtime": 1791646238.76662,
"ast_hash": "6567fff1561b8cc43ae956b97adffb7e",
"semantic_hash": ""
},
"docs/10.09\u65b0\u7248H5\u5b9e\u65bd\u4e0e\u9a8c\u6536.md": {
"mtime": 1791710850.0228443,
"ast_hash": "e3126d7bce54a235d580778609a46dd3",
"semantic_hash": ""
},
"docs/UI\u5bf9\u9f5010.09\u8bbe\u8ba1\u7a3f-\u8c03\u7814\u4e0e\u5b9e\u65bd\u8ba1\u5212.md": {
"mtime": 1791642695.148235,
"ast_hash": "1061787758ab6ac500ebd8617a211955",
"semantic_hash": ""
},
"docs/\u5fae\u4fe1\u767b\u5f55\u63a5\u5165\u4e0e\u516c\u7f51\u90e8\u7f72\u8bf4\u660e.md": {
"mtime": 1791710640.6026413,
"ast_hash": "70d447aea33b739f438e0c24503c2e49",
"semantic_hash": ""
},
"h5/assets/fonts/misans/README.md": {
"mtime": 1791646269.9287534,
"ast_hash": "9f471a9be8b8ba08e9af70d95f73958b",
"semantic_hash": ""
},
"reference/AI\u6d4b\u80a4\u62a5\u544a\u9875\u8bdd\u672f\u4fee\u6539.md": {
"mtime": 1791644142.8049476,
"ast_hash": "36beb496de948671dd57252803103a9d",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/01-splash.png": {
"mtime": 1791642440.1249583,
"ast_hash": "3da7aac3c729a22044e0bc38a2d0a5e8",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/02-privacy.png": {
"mtime": 1791642440.7098482,
"ast_hash": "b7ad52ea336102a0239497176799243c",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/03-profile.png": {
"mtime": 1791642441.2944968,
"ast_hash": "2ac2495f969b0662fbb0276b9e6f2a80",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/04-guide.png": {
"mtime": 1791642445.54505,
"ast_hash": "4ceb830ca14aa9ee40cc342753012159",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/05-camera-front.png": {
"mtime": 1791642446.0783443,
"ast_hash": "38bce9558d5a92675a34db1921ad02a3",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/06-camera-right.png": {
"mtime": 1791642450.9363437,
"ast_hash": "5b157765b11f784a825058bbf83f0fbc",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/07-camera-left.png": {
"mtime": 1791642454.9502327,
"ast_hash": "a1bad1a71d685011e276bcb11a32bfb5",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/08-report-top.png": {
"mtime": 1791642456.0373278,
"ast_hash": "cc03d71114e67a70be1da597be3a1004",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/09-report-tab-0.png": {
"mtime": 1791642456.5868485,
"ast_hash": "fffafbf39ef5034fd482f7a8913e77a3",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/09-report-tab-1.png": {
"mtime": 1791642457.1358962,
"ast_hash": "a9711819779892e12e4822adea670327",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/09-report-tab-2.png": {
"mtime": 1791642457.6528962,
"ast_hash": "98f3345d71f386432a0abdc4101372c1",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/10-report-full.png": {
"mtime": 1791642457.8252294,
"ast_hash": "75079ede2b0ec48e2a61bf880c3df379",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/comparison-flow.jpg": {
"mtime": 1791642519.1911554,
"ast_hash": "fe2bfa1ccdfa0009a33dea1eb640aa9b",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/comparison-report.jpg": {
"mtime": 1791642519.3780205,
"ast_hash": "c00044e21709055f246aeedaff0e2e1b",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/splash-375x844.png": {
"mtime": 1791642458.8775625,
"ast_hash": "72f3e6d936f46bab4abfc331598c0bc0",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/splash-390x844.png": {
"mtime": 1791642459.9445622,
"ast_hash": "343b642a20aad07ee2998cbe0ff5897b",
"semantic_hash": ""
},
"design/ui-20261009/audit-current/splash-414x844.png": {
"mtime": 1791642461.0152285,
"ast_hash": "a930db67507523cbe3dda1676fd2827e",
"semantic_hash": ""
},
"design/ui-20261009/decisions/01-header.jpg": {
"mtime": 1791643908.9231389,
"ast_hash": "96222db0eafd143c991e3d25ff2b4f83",
"semantic_hash": ""
},
"design/ui-20261009/decisions/02-login.jpg": {
"mtime": 1791643909.0195472,
"ast_hash": "e700914fc28d01fb76f801bbd9bc0b45",
"semantic_hash": ""
},
"design/ui-20261009/decisions/03-history.jpg": {
"mtime": 1791643909.0426853,
"ast_hash": "a3509a51b2487038f4f45e9948286073",
"semantic_hash": ""
},
"design/ui-20261009/decisions/04-score.jpg": {
"mtime": 1791643909.1622317,
"ast_hash": "6794174cba816fd3800f32c1987e6c4c",
"semantic_hash": ""
},
"design/ui-20261009/decisions/05-tabs.jpg": {
"mtime": 1791643909.270209,
"ast_hash": "026049c527dc312bcc569bc3bfd40901",
"semantic_hash": ""
},
"design/ui-20261009/decisions/06-content.jpg": {
"mtime": 1791643909.3781865,
"ast_hash": "ea8f898ddb9edd5ce9f1029078937eb2",
"semantic_hash": ""
},
"design/ui-20261009/decisions/07-products.jpg": {
"mtime": 1791643909.4938765,
"ast_hash": "751604b9f1bbcd77158e7a69e1b46054",
"semantic_hash": ""
},
"design/ui-20261009/decisions/08-camera.jpg": {
"mtime": 1791643909.520871,
"ast_hash": "66e7c9baba319c310828093f6a380646",
"semantic_hash": ""
},
"design/ui-20261009/decisions/09-font.jpg": {
"mtime": 1791643909.6172793,
"ast_hash": "12881243d056472816871ccf0d028b1c",
"semantic_hash": ""
},
"design/ui-20261009/decisions/10-proofreading.jpg": {
"mtime": 1791643909.6674116,
"ast_hash": "927a5d7e5a1460c961a447ac48f184c4",
"semantic_hash": ""
},
"design/ui-20261009/verification/01-login.png": {
"mtime": 1791710678.3993611,
"ast_hash": "546575bd6c19464adfd8033f1416e41f",
"semantic_hash": ""
},
"design/ui-20261009/verification/02-home.png": {
"mtime": 1791710681.0034657,
"ast_hash": "48cb27f9eb1d5f01f3ca00097b31d5b8",
"semantic_hash": ""
},
"design/ui-20261009/verification/03-history-empty.png": {
"mtime": 1791710681.5034268,
"ast_hash": "cf7cc9fdf15a8fe2c2276ffbf01e9356",
"semantic_hash": ""
},
"design/ui-20261009/verification/04-privacy.png": {
"mtime": 1791710682.4802737,
"ast_hash": "349e9841ce4f114a2816c52fea2301c3",
"semantic_hash": ""
},
"design/ui-20261009/verification/05-profile.png": {
"mtime": 1791710683.0148475,
"ast_hash": "2e624c0cb91f96fe84e41878cf9852b5",
"semantic_hash": ""
},
"design/ui-20261009/verification/06-report-top.png": {
"mtime": 1791710685.010846,
"ast_hash": "ad6cbf32ddbb4ef628f8b8bf6f970af9",
"semantic_hash": ""
},
"design/ui-20261009/verification/07-report-full.png": {
"mtime": 1791710685.1146839,
"ast_hash": "8775ce75d26200ab9341f662b8aaf40d",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/bg-history-h5.jpg": {
"mtime": 1791646239.0227692,
"ast_hash": "1dca9bdb3e19bdf837fc317e8dc3d65a",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/bg-login-h5.jpg": {
"mtime": 1791646238.9645536,
"ast_hash": "bbc72a85580326d228e92c0efd0293aa",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/bg-profile-h5.jpg": {
"mtime": 1791646238.9994829,
"ast_hash": "bbc72a85580326d228e92c0efd0293aa",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/bg-report-h5.jpg": {
"mtime": 1791646239.1003904,
"ast_hash": "b49c61b68a714da65fdb706060e1a4f0",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/bg-splash-h5.jpg": {
"mtime": 1791646238.933505,
"ast_hash": "0ab40c14387e86508639e733fea6d168",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/camera-guide-front.png": {
"mtime": 1791642118.1918173,
"ast_hash": "0e487819610ac8aeb58b728f629910df",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/camera-guide-left.png": {
"mtime": 1791642119.9198694,
"ast_hash": "ef6f454709623d7eae301b3d4be52054",
"semantic_hash": ""
},
"h5/assets/img/ui-20261009/camera-guide-right.png": {
"mtime": 1791642119.049992,
"ast_hash": "02af0bb38e2630bcdd00d8349f3c0d44",
"semantic_hash": ""
},
"design/ui-20261009/verification/08-camera-front-layout.png": {
"mtime": 1791710683.453275,
"ast_hash": "b9d04eed0983f1f49fed6c663070ecc1",
"semantic_hash": ""
},
"design/ui-20261009/verification/08-camera-left-layout.png": {
"mtime": 1791710683.5186543,
"ast_hash": "2cb973828c1d18bfbcb5c0cb8ad06d41",
"semantic_hash": ""
},
"design/ui-20261009/verification/08-camera-right-layout.png": {
"mtime": 1791710683.4840417,
"ast_hash": "4b299e86432feb2697dd739dc77a825d",
"semantic_hash": ""
},
"h5/test/wechat-browser.mjs": {
"mtime": 1791710791.703553,
"ast_hash": "7d44f0e7fee4a30c6654db57de57923e",
"semantic_hash": ""
},
"docs/2026-10-11\u63d0\u4ea4\u524dReview.md": {
"mtime": 1791710850.0228443,
"ast_hash": "93bae80d0b6998a1d31616c512261e68",
"semantic_hash": ""
}
}