lasso-mcp 1.18.4 → 1.18.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/doctor/doctor.d.ts +1 -1
- package/dist/doctor/doctor.js +1 -1
- package/dist/index.js +3 -3
- package/dist/search/MachineMcpDetector.d.ts.map +1 -1
- package/dist/search/MachineMcpDetector.js +2 -1
- package/dist/search/MachineMcpDetector.js.map +1 -1
- package/doc/08-media-interact-/345/212/237/350/203/275/346/236/266/346/236/204.md +2 -1
- package/doc/09-media-interact-/345/256/236/346/226/275/346/216/222/346/234/237.md +8 -1
- package/doc/17-/345/212/237/350/203/275/346/265/213/350/257/225/346/270/205/345/215/225.md +14 -0
- package/doc/26-/346/226/207/346/241/243/346/237/245/347/274/272/350/241/245/346/274/217/gap-matrix.md +34 -8
- package/doc/BUG-chrome-idle-reaper-second-consumer.md +68 -0
- package/doc/BUG-rust-helper-relative-path.md +2 -0
- package/doc/KEY-GUIDE.md +2 -0
- package/doc/README.md +55 -33
- package/doc/SELECTOR-MAINTENANCE.md +3 -3
- package/doc/TROUBLESHOOTING.md +52 -6
- package/doc/archive/parse/parse1.md +1611 -0
- package/doc/archive/parse/parse10-acceptance.md +224 -0
- package/doc/archive/parse/parse10.md +29 -0
- package/doc/archive/parse/parse11-acceptance.md +325 -0
- package/doc/archive/parse/parse11.md +987 -0
- package/doc/archive/parse/parse12-acceptance.md +182 -0
- package/doc/archive/parse/parse12.md +777 -0
- package/doc/archive/parse/parse13-acceptance.md +331 -0
- package/doc/archive/parse/parse13.md +405 -0
- package/doc/archive/parse/parse14-acceptance.md +400 -0
- package/doc/archive/parse/parse14.md +580 -0
- package/doc/archive/parse/parse15-acceptance.md +189 -0
- package/doc/archive/parse/parse15.md +463 -0
- package/doc/archive/parse/parse16.md +310 -0
- package/doc/archive/parse/parse17-rca-lifecycle.md +225 -0
- package/doc/archive/parse/parse17.md +452 -0
- package/doc/archive/parse/parse18-acceptance.md +37 -0
- package/doc/archive/parse/parse18-frontier.md +94 -0
- package/doc/archive/parse/parse18-oss-experiments.md +212 -0
- package/doc/archive/parse/parse18-rca-whitebox.md +163 -0
- package/doc/archive/parse/parse18.md +418 -0
- package/doc/archive/parse/parse2.md +1421 -0
- package/doc/archive/parse/parse3.md +960 -0
- package/doc/archive/parse/parse4-acceptance.md +225 -0
- package/doc/archive/parse/parse4.md +1096 -0
- package/doc/archive/parse/parse5-acceptance.md +170 -0
- package/doc/archive/parse/parse5.md +1490 -0
- package/doc/archive/parse/parse6-acceptance.md +277 -0
- package/doc/archive/parse/parse6.md +1007 -0
- package/doc/archive/parse/parse7-acceptance.md +205 -0
- package/doc/archive/parse/parse7.md +1060 -0
- package/doc/archive/parse/parse8-acceptance.md +168 -0
- package/doc/archive/parse/parse8.md +893 -0
- package/doc/archive/parse/parse9-acceptance.md +334 -0
- package/doc/archive/parse/parse9.md +805 -0
- package/doc/archive/parse/v14-acceptance.md +182 -0
- package/doc/archive/research/00-/346/200/273/350/247/210/344/270/216/350/220/275/345/234/260/346/216/250/350/215/220.md +173 -0
- package/doc/archive/research/01-/346/226/271/345/220/221A-/346/265/217/350/247/210/345/231/250/346/216/247/345/210/266.md +178 -0
- package/doc/archive/research/02-/346/226/271/345/220/221B-/346/241/214/351/235/242/350/256/241/347/256/227/346/234/272/346/216/247/345/210/266.md +167 -0
- package/doc/archive/research/03-/346/226/271/345/220/221C-/346/226/260/345/245/207/346/226/271/346/241/210/344/270/216/346/200/247/350/203/275/346/264/236/345/257/237.md +129 -0
- package/doc/archive/research/04-CC/351/233/206/346/210/220/346/223/215/344/275/234/346/211/213/345/206/214.md +246 -0
- package/doc/archive/research/05-/346/250/252/345/220/221/345/257/271/346/257/224/347/237/251/351/230/265.md +141 -0
- package/doc/archive/research/06-/346/226/271/345/220/221D-AI/346/265/217/350/247/210/345/231/250/344/270/216Agent/346/265/217/350/247/210/345/231/250.md +309 -0
- package/doc/archive/research/07-CC/347/273/237/344/270/200/344/272/244/344/272/222/346/212/223/346/211/213MCP-/345/217/257/350/241/214/346/200/247/345/210/206/346/236/220.md +394 -0
- package/doc/archive/research/10-/346/220/234/347/264/242MCP/350/260/203/347/240/224/345/257/271/346/236/266/346/236/204/347/232/204/345/220/257/345/217/221.md +336 -0
- package/doc/archive/research/11-/347/256/200/345/215/225/346/236/266/346/236/204/345/256/241/346/237/245/346/212/245/345/221/212.md +151 -0
- package/doc/archive/research/12-pi-computer-use/345/217/212/347/224/237/346/200/201/346/267/261/345/272/246/345/210/206/346/236/220.md +461 -0
- package/doc/archive/research/13-/345/205/250/344/272/244/344/272/222/346/212/223/346/211/213/351/207/215/350/256/276/350/256/241.md +819 -0
- package/doc/archive/research/14-AI/347/210/254/350/231/253/350/260/203/347/240/224/344/270/216/345/200/237/351/211/264/345/210/206/346/236/220.md +355 -0
- package/doc/archive/research/15-/347/231/273/345/275/225/346/200/201/346/214/201/344/271/205/345/214/226/344/270/216/346/227/240/345/244/264/345/244/215/347/224/250/350/260/203/347/240/224.md +272 -0
- package/doc/archive/research/16-/345/274/200/346/272/220/347/224/237/346/200/201/347/231/275/347/233/222/345/256/241/346/237/245/344/270/216/345/200/237/351/211/264/345/210/206/346/236/220.md +558 -0
- package/doc/archive/research/18-/350/265/204/346/272/220/345/215/240/347/224/250/344/274/230/345/214/226/350/260/203/347/240/224.md +167 -0
- package/doc/archive/research//346/220/234/347/264/242mcp/345/267/245/345/205/267/01-/346/200/273/350/247/210/344/270/216/346/216/250/350/215/220/346/216/222/345/220/215.md +120 -0
- package/doc/archive/research//346/220/234/347/264/242mcp/345/267/245/345/205/267/02-/345/200/231/351/200/211/346/226/271/346/241/210/350/257/246/350/247/243.md +222 -0
- package/doc/archive/research//346/220/234/347/264/242mcp/345/267/245/345/205/267/03-/351/205/215/347/275/256/347/244/272/344/276/213/344/270/216/351/203/250/347/275/262/346/214/207/345/215/227.md +272 -0
- package/doc/archive/research//346/220/234/347/264/242mcp/345/267/245/345/205/267/04-/346/200/247/350/203/275/345/237/272/345/207/206/344/270/216/345/205/215/350/264/271/351/242/235/345/272/246/345/257/271/346/257/224.md +79 -0
- package/doc/archive/research//346/220/234/347/264/242mcp/345/267/245/345/205/267/05-/351/201/277/345/235/221-/350/242/253/345/220/246/345/206/263/347/232/204/350/257/257/345/257/274/347/273/223/350/256/272.md +76 -0
- package/doc/archive/research//346/220/234/347/264/242mcp/345/267/245/345/205/267/06-/345/261/200/351/231/220/344/270/216/345/274/200/346/224/276/351/227/256/351/242/230.md +105 -0
- package/doc/archive/research//346/220/234/347/264/242mcp/345/267/245/345/205/267/07-/350/260/203/347/240/224/346/226/271/346/263/225/344/270/216/345/256/214/346/225/264/346/235/245/346/272/220/346/270/205/345/215/225.md +185 -0
- package/doc/archive/research//346/220/234/347/264/242mcp/345/267/245/345/205/267/README.md +66 -0
- package/package.json +1 -1
- package/src/doctor/doctor.ts +1 -1
- package/src/index.ts +3 -3
- package/src/search/MachineMcpDetector.ts +2 -1
- package/.dedao-extract/.qc-v3/fk-14.png +0 -0
- package/.dedao-extract/.qc-v3/fkp2-02.png +0 -0
- package/.dedao-extract/.qc-v3/l001-6.png +0 -0
- package/.dedao-extract/.qc-v3/l001-7.png +0 -0
- package/.dedao-extract/.qc-v3/l002-4.png +0 -0
- package/.dedao-extract/analyze.mjs +0 -169
- package/.dedao-extract/b1-01-navigate.json +0 -14
- package/.dedao-extract/b1-02-ready.json +0 -5
- package/.dedao-extract/b1-98-results.json +0 -119
- package/.dedao-extract/b1-99-log.json +0 -18
- package/.dedao-extract/b1-a1-assert.json +0 -18
- package/.dedao-extract/b1-a1-chain.json +0 -13
- package/.dedao-extract/b1-a1-stabilize.json +0 -7
- package/.dedao-extract/b1-a1-switch.json +0 -5
- package/.dedao-extract/b1-a2-assert.json +0 -18
- package/.dedao-extract/b1-a2-chain.json +0 -13
- package/.dedao-extract/b1-a2-stabilize.json +0 -7
- package/.dedao-extract/b1-a2-switch.json +0 -5
- package/.dedao-extract/b1-a3-assert.json +0 -18
- package/.dedao-extract/b1-a3-chain.json +0 -13
- package/.dedao-extract/b1-a3-stabilize.json +0 -7
- package/.dedao-extract/b1-a3-switch.json +0 -5
- package/.dedao-extract/b2-01-navigate.json +0 -14
- package/.dedao-extract/b2-02-ready.json +0 -5
- package/.dedao-extract/b2-98-results.json +0 -242
- package/.dedao-extract/b2-99-log.json +0 -21
- package/.dedao-extract/b2-a1-assert.json +0 -18
- package/.dedao-extract/b2-a1-cleanup.json +0 -35
- package/.dedao-extract/b2-a1-print.json +0 -5
- package/.dedao-extract/b2-a1-stabilize.json +0 -7
- package/.dedao-extract/b2-a1-switch.json +0 -5
- package/.dedao-extract/b2-a2-assert.json +0 -18
- package/.dedao-extract/b2-a2-cleanup.json +0 -35
- package/.dedao-extract/b2-a2-print.json +0 -5
- package/.dedao-extract/b2-a2-stabilize.json +0 -7
- package/.dedao-extract/b2-a2-switch.json +0 -5
- package/.dedao-extract/b2-a3-assert.json +0 -18
- package/.dedao-extract/b2-a3-cleanup.json +0 -35
- package/.dedao-extract/b2-a3-print.json +0 -5
- package/.dedao-extract/b2-a3-stabilize.json +0 -7
- package/.dedao-extract/b2-a3-switch.json +0 -5
- package/.dedao-extract/b3-01-navigate.json +0 -14
- package/.dedao-extract/b3-02-ready.json +0 -5
- package/.dedao-extract/b3-98-results.json +0 -281
- package/.dedao-extract/b3-99-log.json +0 -21
- package/.dedao-extract/b3-a1-assert.json +0 -18
- package/.dedao-extract/b3-a1-cleanup.json +0 -48
- package/.dedao-extract/b3-a1-print.json +0 -5
- package/.dedao-extract/b3-a1-stabilize.json +0 -7
- package/.dedao-extract/b3-a1-switch.json +0 -5
- package/.dedao-extract/b3-a2-assert.json +0 -18
- package/.dedao-extract/b3-a2-cleanup.json +0 -48
- package/.dedao-extract/b3-a2-print.json +0 -5
- package/.dedao-extract/b3-a2-stabilize.json +0 -7
- package/.dedao-extract/b3-a2-switch.json +0 -5
- package/.dedao-extract/b3-a3-assert.json +0 -18
- package/.dedao-extract/b3-a3-cleanup.json +0 -48
- package/.dedao-extract/b3-a3-print.json +0 -5
- package/.dedao-extract/b3-a3-stabilize.json +0 -7
- package/.dedao-extract/b3-a3-switch.json +0 -5
- package/.dedao-extract/b4-diag.json +0 -105
- package/.dedao-extract/dbg-fixscreen.mjs +0 -43
- package/.dedao-extract/dbg-text.mjs +0 -25
- package/.dedao-extract/dbg-text2.mjs +0 -20
- package/.dedao-extract/dbg-text3.mjs +0 -18
- package/.dedao-extract/dbg-text4.mjs +0 -27
- package/.dedao-extract/dbg-text5.mjs +0 -31
- package/.dedao-extract/diag-tail.mjs +0 -90
- package/.dedao-extract/extract-batch1.mjs +0 -377
- package/.dedao-extract/extract-batch2.mjs +0 -371
- package/.dedao-extract/extract-batch3.mjs +0 -392
- package/.dedao-extract/extract-v2.mjs +0 -539
- package/.dedao-extract/extract-v3.mjs +0 -745
- package/.dedao-extract/gapfill.mjs +0 -154
- package/.dedao-extract/probe-frag.mjs +0 -125
- package/.dedao-extract/prod-chapters-dry.json +0 -2516
- package/.dedao-extract/prod-enumeration.json +0 -1682
- package/.dedao-extract/produce-all.mjs +0 -555
- package/.dedao-extract/qc-final.mjs +0 -65
- package/.dedao-extract/qc-v3.mjs +0 -91
- package/.dedao-extract/r2-01-navigate.json +0 -14
- package/.dedao-extract/r2-98-results.json +0 -697
- package/.dedao-extract/r2-99-log.json +0 -15
- package/.dedao-extract/r2-analyze.mjs +0 -96
- package/.dedao-extract/r2-fk-dump.json +0 -139
- package/.dedao-extract/r2-fk-figattr.json +0 -62
- package/.dedao-extract/r2-fk-pagemap.json +0 -64
- package/.dedao-extract/r2-l001-dump.json +0 -129
- package/.dedao-extract/r2-l001-figattr.json +0 -53
- package/.dedao-extract/r2-l001-pagemap.json +0 -55
- package/.dedao-extract/r2-l002-dump.json +0 -109
- package/.dedao-extract/r2-l002-figattr.json +0 -35
- package/.dedao-extract/r2-l002-pagemap.json +0 -37
- package/.dedao-extract/s8-01-navigate.json +0 -14
- package/.dedao-extract/s8-98-results.json +0 -43
- package/.dedao-extract/s8-99-log.json +0 -24
- package/.dedao-extract/s8-fk-fix.json +0 -15
- package/.dedao-extract/s8-fk-pagemap-post.json +0 -58
- package/.dedao-extract/s8-fk-pagemap-pre.json +0 -68
- package/.dedao-extract/s8-fk-promo.json +0 -11
- package/.dedao-extract/s8-ink.mjs +0 -49
- package/.dedao-extract/s8-l003-fix.json +0 -21
- package/.dedao-extract/s8-l003-pagemap-post.json +0 -38
- package/.dedao-extract/s8-l003-pagemap-pre.json +0 -48
- package/.dedao-extract/s8-l003-promo.json +0 -11
- package/.dedao-extract/s9-sikao.json +0 -394
- package/.dedao-extract/scout7-round2.mjs +0 -386
- package/.dedao-extract/scout7b.mjs +0 -121
- package/.dedao-extract/scout7c.mjs +0 -99
- package/.dedao-extract/scout8.mjs +0 -334
- package/.dedao-extract/scout9.mjs +0 -121
- package/.dedao-extract/scratch/fk-01.pgm +0 -75
- package/.dedao-extract/scratch/fk-02.pgm +0 -4
- package/.dedao-extract/scratch/fk-03.pgm +0 -207
- package/.dedao-extract/scratch/fk-04.pgm +1 -985
- package/.dedao-extract/scratch/fk-05.pgm +0 -4
- package/.dedao-extract/scratch/fk-06.pgm +0 -4
- package/.dedao-extract/scratch/fk-07.pgm +0 -4
- package/.dedao-extract/scratch/fk-08.pgm +0 -4
- package/.dedao-extract/scratch/fk-09.pgm +0 -4
- package/.dedao-extract/scratch/fk-10.pgm +0 -4
- package/.dedao-extract/scratch/fk-11.pgm +0 -4
- package/.dedao-extract/scratch/fk-12.pgm +0 -4
- package/.dedao-extract/scratch/fk-13.pgm +0 -4
- package/.dedao-extract/scratch/fk-14.pgm +0 -107
- package/.dedao-extract/scratch/fk-analysis.json +0 -47
- package/.dedao-extract/scratch/fk-before.pdf +0 -0
- package/.dedao-extract/scratch/fk-clean-inner.txt +0 -42
- package/.dedao-extract/scratch/fk-dom-inner.txt +0 -381
- package/.dedao-extract/scratch/fk-fix-inner.txt +0 -42
- package/.dedao-extract/scratch/fk-pdftotext.txt +0 -66
- package/.dedao-extract/scratch/fk-r3-base.pdf +0 -0
- package/.dedao-extract/scratch/fk-r3-base.txt +0 -66
- package/.dedao-extract/scratch/fk-r3-fix.pdf +0 -0
- package/.dedao-extract/scratch/fk-r3-fix.txt +0 -66
- package/.dedao-extract/scratch/fk-r3-s09.pdf +0 -0
- package/.dedao-extract/scratch/l001-1.pgm +0 -6
- package/.dedao-extract/scratch/l001-2.pgm +0 -38
- package/.dedao-extract/scratch/l001-3.pgm +0 -38
- package/.dedao-extract/scratch/l001-4.pgm +0 -4
- package/.dedao-extract/scratch/l001-5.pgm +1 -178
- package/.dedao-extract/scratch/l001-6.pgm +0 -44
- package/.dedao-extract/scratch/l001-7.pgm +0 -4
- package/.dedao-extract/scratch/l001-8.pgm +0 -107
- package/.dedao-extract/scratch/l001-analysis.json +0 -23
- package/.dedao-extract/scratch/l001-before.pdf +0 -0
- package/.dedao-extract/scratch/l001-dom-inner.txt +0 -444
- package/.dedao-extract/scratch/l001-pdftotext.txt +0 -146
- package/.dedao-extract/scratch/l002-1.pgm +0 -6
- package/.dedao-extract/scratch/l002-2.pgm +0 -4
- package/.dedao-extract/scratch/l002-3.pgm +0 -4
- package/.dedao-extract/scratch/l002-4.pgm +0 -4
- package/.dedao-extract/scratch/l002-5.pgm +0 -106
- package/.dedao-extract/scratch/l002-analysis.json +0 -17
- package/.dedao-extract/scratch/l002-before.pdf +0 -0
- package/.dedao-extract/scratch/l002-dom-inner.txt +0 -392
- package/.dedao-extract/scratch/l002-pdftotext.txt +0 -82
- package/.dedao-extract/scratch/l003-clean-inner.txt +0 -74
- package/.dedao-extract/scratch/l003-fix-inner.txt +0 -74
- package/.dedao-extract/scratch/l003-r3-base.pdf +0 -0
- package/.dedao-extract/scratch/l003-r3-base.txt +0 -109
- package/.dedao-extract/scratch/l003-r3-fix.pdf +0 -0
- package/.dedao-extract/scratch/l003-r3-fix.txt +0 -108
- package/.dedao-extract/scratch/pp-fk-r3-base-01.pgm +0 -32
- package/.dedao-extract/scratch/pp-fk-r3-base-02.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-base-03.pgm +0 -119
- package/.dedao-extract/scratch/pp-fk-r3-base-04.pgm +0 -496
- package/.dedao-extract/scratch/pp-fk-r3-base-05.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-base-06.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-base-07.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-base-08.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-base-09.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-base-10.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-base-11.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-base-12.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-base-13.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-base-14.pgm +0 -58
- package/.dedao-extract/scratch/pp-fk-r3-fix-01.pgm +0 -32
- package/.dedao-extract/scratch/pp-fk-r3-fix-02.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-fix-03.pgm +0 -119
- package/.dedao-extract/scratch/pp-fk-r3-fix-04.pgm +0 -496
- package/.dedao-extract/scratch/pp-fk-r3-fix-05.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-fix-06.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-fix-07.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-fix-08.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-fix-09.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-fix-10.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-fix-11.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-fix-12.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-fix-13.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-fix-14.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-s09-01.pgm +0 -15
- package/.dedao-extract/scratch/pp-fk-r3-s09-02.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-s09-03.pgm +0 -27
- package/.dedao-extract/scratch/pp-fk-r3-s09-04.pgm +1 -127
- package/.dedao-extract/scratch/pp-fk-r3-s09-05.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-s09-06.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-s09-07.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-s09-08.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-s09-09.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-s09-10.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-s09-11.pgm +0 -4
- package/.dedao-extract/scratch/pp-fk-r3-s09-12.pgm +0 -18
- package/.dedao-extract/scratch/pp-l003-r3-base-1.pgm +0 -7
- package/.dedao-extract/scratch/pp-l003-r3-base-2.pgm +0 -114
- package/.dedao-extract/scratch/pp-l003-r3-base-3.pgm +0 -4
- package/.dedao-extract/scratch/pp-l003-r3-base-4.pgm +0 -30
- package/.dedao-extract/scratch/pp-l003-r3-base-5.pgm +0 -4
- package/.dedao-extract/scratch/pp-l003-r3-base-6.pgm +0 -64
- package/.dedao-extract/scratch/pp-l003-r3-fix-1.pgm +0 -7
- package/.dedao-extract/scratch/pp-l003-r3-fix-2.pgm +0 -114
- package/.dedao-extract/scratch/pp-l003-r3-fix-3.pgm +0 -4
- package/.dedao-extract/scratch/pp-l003-r3-fix-4.pgm +0 -31
- package/.dedao-extract/scratch/pp-l003-r3-fix-5.pgm +0 -4
- package/.dedao-extract/scratch/promo-fk-datauri.txt +0 -1
- package/.dedao-extract/scratch/promo-fk.jpg +0 -0
- package/.dedao-extract/scratch/promo-l001.jpg +0 -0
- package/.dedao-extract/scratch/promo-l002.jpg +0 -0
- package/.dedao-extract/scratch/s8-ink-report.json +0 -447
- package/.dedao-extract/scratch/v2-fk-clean-inner.txt +0 -42
- package/.dedao-extract/scratch/v2-fk-it1.pdf +0 -0
- package/.dedao-extract/scratch/v2-fk-it2.pdf +0 -0
- package/.dedao-extract/scratch/v2-fk-it3.pdf +0 -0
- package/.dedao-extract/scratch/v2-l001-clean-inner.txt +0 -99
- package/.dedao-extract/scratch/v2-l001-it1.pdf +0 -0
- package/.dedao-extract/scratch/v2-l001-it2.pdf +0 -0
- package/.dedao-extract/scratch/v2-l002-clean-inner.txt +0 -53
- package/.dedao-extract/scratch/v2-l002-it1.pdf +0 -0
- package/.dedao-extract/scratch/v2-l002-it2.pdf +0 -0
- package/.dedao-extract/scratch/v3-fk-clean-inner.txt +0 -42
- package/.dedao-extract/scratch/v3-fk-it1.pdf +0 -0
- package/.dedao-extract/scratch/v3-fk-it2.pdf +0 -0
- package/.dedao-extract/scratch/v3-fk-it3.pdf +0 -0
- package/.dedao-extract/scratch/v3-l001-clean-inner.txt +0 -93
- package/.dedao-extract/scratch/v3-l001-it1.pdf +0 -0
- package/.dedao-extract/scratch/v3-l001-it2.pdf +0 -0
- package/.dedao-extract/scratch/v3-l002-clean-inner.txt +0 -49
- package/.dedao-extract/scratch/v3-l002-it1.pdf +0 -0
- package/.dedao-extract/scratch/v3-l002-it2.pdf +0 -0
- package/.dedao-extract/v2-01-navigate.json +0 -14
- package/.dedao-extract/v2-98-results.json +0 -128
- package/.dedao-extract/v2-99-log.json +0 -20
- package/.dedao-extract/v2-fk-figs-it1.json +0 -76
- package/.dedao-extract/v2-fk-figs-it2.json +0 -76
- package/.dedao-extract/v2-fk-fix-screen.json +0 -20
- package/.dedao-extract/v2-fk-meta.json +0 -145
- package/.dedao-extract/v2-fk-promo-audit.json +0 -12
- package/.dedao-extract/v2-fk-targets-it1.json +0 -94
- package/.dedao-extract/v2-fk-targets-it2.json +0 -94
- package/.dedao-extract/v2-l001-figs-it1.json +0 -62
- package/.dedao-extract/v2-l001-fix-screen.json +0 -20
- package/.dedao-extract/v2-l001-meta.json +0 -147
- package/.dedao-extract/v2-l001-promo-audit.json +0 -12
- package/.dedao-extract/v2-l001-targets-it1.json +0 -84
- package/.dedao-extract/v2-l002-figs-it1.json +0 -34
- package/.dedao-extract/v2-l002-fix-screen.json +0 -13
- package/.dedao-extract/v2-l002-meta.json +0 -126
- package/.dedao-extract/v2-l002-promo-audit.json +0 -12
- package/.dedao-extract/v2-l002-targets-it1.json +0 -46
- package/.dedao-extract/v2-qc-final.json +0 -60
- package/.dedao-extract/v3-01-navigate.json +0 -14
- package/.dedao-extract/v3-98-results.json +0 -530
- package/.dedao-extract/v3-99-log.json +0 -60
- package/.dedao-extract/v3-fk-figs-it1.json +0 -66
- package/.dedao-extract/v3-fk-figs-it2.json +0 -66
- package/.dedao-extract/v3-fk-fix-screen.json +0 -20
- package/.dedao-extract/v3-fk-meta.json +0 -164
- package/.dedao-extract/v3-fk-promo-audit.json +0 -12
- package/.dedao-extract/v3-fk-sikao.json +0 -6
- package/.dedao-extract/v3-fk-targets-it1.json +0 -84
- package/.dedao-extract/v3-fk-targets-it2.json +0 -84
- package/.dedao-extract/v3-l001-figs-it1.json +0 -54
- package/.dedao-extract/v3-l001-fix-screen.json +0 -19
- package/.dedao-extract/v3-l001-meta.json +0 -192
- package/.dedao-extract/v3-l001-promo-audit.json +0 -12
- package/.dedao-extract/v3-l001-sikao.json +0 -41
- package/.dedao-extract/v3-l001-targets-it1.json +0 -76
- package/.dedao-extract/v3-l002-figs-it1.json +0 -30
- package/.dedao-extract/v3-l002-fix-screen.json +0 -12
- package/.dedao-extract/v3-l002-meta.json +0 -172
- package/.dedao-extract/v3-l002-promo-audit.json +0 -12
- package/.dedao-extract/v3-l002-sikao.json +0 -32
- package/.dedao-extract/v3-l002-targets-it1.json +0 -42
- package/.dedao-extract/v3-qc-final.json +0 -77
- package/.dedao-extract/write-version-record.py +0 -43
- package/.dedao-scout/01-navigate.json +0 -14
- package/.dedao-scout/02-ready.json +0 -5
- package/.dedao-scout/03-sidebar-hits.json +0 -4
- package/.dedao-scout/04-sidebar-container.json +0 -38
- package/.dedao-scout/05-sidebar-total.json +0 -3
- package/.dedao-scout/06-sidebar-slice-000.json +0 -42
- package/.dedao-scout/07-firstpub.json +0 -12
- package/.dedao-scout/08-heads-audio.json +0 -117
- package/.dedao-scout/09-images.json +0 -4
- package/.dedao-scout/10-content-blocks.json +0 -4
- package/.dedao-scout/11-selected.json +0 -33
- package/.dedao-scout/12-layout.json +0 -75
- package/.dedao-scout/20-ready.json +0 -5
- package/.dedao-scout/21-sidebar-deep.json +0 -148
- package/.dedao-scout/22-right-blocks.json +0 -70
- package/.dedao-scout/23-title.json +0 -13
- package/.dedao-scout/24-playbtn-roots.json +0 -17
- package/.dedao-scout/25-chapter-mods.json +0 -4
- package/.dedao-scout/26-editor-children.json +0 -4
- package/.dedao-scout/27-audio.json +0 -6
- package/.dedao-scout/28-timeinfo-siblings.json +0 -49
- package/.dedao-scout/29-scroll.json +0 -11
- package/.dedao-scout/30-sidebar-scroll.json +0 -4
- package/.dedao-scout/31-click-001.json +0 -10
- package/.dedao-scout/32-after-click.json +0 -4
- package/.dedao-scout/33-audio-article.json +0 -4
- package/.dedao-scout/34-img-lazy.json +0 -27
- package/.dedao-scout/40-all-chapters.json +0 -146
- package/.dedao-scout/41-click-001.json +0 -6
- package/.dedao-scout/42-audio-article-structure.json +0 -4
- package/.dedao-scout/50-click.json +0 -5
- package/.dedao-scout/51-audio-structure.json +0 -111
- package/.dedao-scout/60-chapter-tree.json +0 -31
- package/.dedao-scout/99-log.json +0 -6
- package/.dedao-scout/scout.mjs +0 -246
- package/.dedao-scout/scout2.mjs +0 -163
- package/.dedao-scout/scout3.mjs +0 -132
- package/.dedao-scout/scout4.mjs +0 -119
- package/.dedao-scout/scout5.mjs +0 -89
- package/.dedao-scout/scout6.mjs +0 -100
- package/probe-dedao/drive.mjs +0 -72
- package/probe-dedao/e1.js +0 -1
- package/probe-dedao/e2.js +0 -15
- package/probe-dedao/e2b.js +0 -14
- package/probe-dedao/e3.js +0 -12
- package/probe-dedao/e4.js +0 -11
- package/probe-dedao/nav.mjs +0 -25
- package/probe-dedao/probe.mjs +0 -76
package/README.md
CHANGED
|
@@ -215,7 +215,7 @@ macOS 上能控 Finder / Mail / Safari / Notes / 系统设置等任何原生 app
|
|
|
215
215
|
|
|
216
216
|
## 安装
|
|
217
217
|
|
|
218
|
-
**当前版本 v1.18.
|
|
218
|
+
**当前版本 v1.18.5**(更新日志见本节末尾折叠块)。
|
|
219
219
|
|
|
220
220
|
前提:Node.js ≥ 20 + Claude Code(或任何支持 MCP 的客户端)。
|
|
221
221
|
|
|
@@ -230,6 +230,7 @@ claude mcp add lasso -- npx -y lasso-mcp
|
|
|
230
230
|
<details>
|
|
231
231
|
<summary>📋 更新日志(v1.8 → v1.18.3,点开看每版改了什么)</summary>
|
|
232
232
|
|
|
233
|
+
- **v1.18.5**:发布包清理——**v1.18.1 ~ v1.18.4 的 npm 包误含应用域文件**(某课程抓取工程的中间产物,与 lasso 本体功能无关,已弃用),这些版本请勿安装;本版起发布面收敛为 lasso 本体,体积从 ~28MB 降回正常。
|
|
233
234
|
- **v1.18.4**:desktop 通道修复——① 此前 server 不是从仓库根目录启动时(比如由 Claude Code 等宿主在任意目录拉起),desktop 工具会全部报错 `rust_helper_crashed`:现在 helper 路径按安装位置自动解析,**任意目录启动都可用**;② desktop 起不来时的报错从「裸错误码」变成一眼自诊断(附实际路径、当前目录、修复办法;缺文件/指到目录/缺执行权限/文件损坏各说各话,秒级失败不空等);③ 二进制构建时自动 ad-hoc 签名(无签名环境的机器跳过不报错);④ 新增 GitHub CI(每次推送自动跑全量测试)。
|
|
234
235
|
- **v1.18.3**:Chrome 后台静默三连——① **`chrome-hide` 转后台的窗口被任何来源掀出(含上游页面自己弹的),约 1.5 秒内自动压回后台**(server 运行期间一直守着,粘滞状态跨重启保留);想看窗口用 `chrome-show`(明示解除,不再压回);② `chrome-hide` / `chrome-show` 新增 `--pid N`:台账缺条目时(Chrome 由旧版启动、台账被清)按进程号直达——只认 lasso 自己的 profile,你手动开的日常 Chrome 一律拒绝;③ Chrome 正忙时不再拖慢并行的其它操作。
|
|
235
236
|
- **v1.18.2**:长任务被自己限流的错配修复——批量任务默认直接放行(单用户本地场景没有「滥用者」,配额自控改为可选配置);瞬态 DNS 故障不再被误判成策略拦截、不再误开长熔断;链预算超限如实报可重试;大任务溢写落盘不再挤掉近期页面。
|
package/dist/doctor/doctor.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type RustBridgeLike } from "../desktop/desktop-doctor-checks.js";
|
|
2
2
|
import type { StealthProfileName } from "../browse/stealth-profiles.js";
|
|
3
3
|
import type { McpClient } from "../subprocess/McpClient.js";
|
|
4
|
-
export declare const LASSO_VERSION = "1.18.
|
|
4
|
+
export declare const LASSO_VERSION = "1.18.5";
|
|
5
5
|
export interface DoctorCheck {
|
|
6
6
|
name: string;
|
|
7
7
|
status: "pass" | "fail" | "warn";
|
package/dist/doctor/doctor.js
CHANGED
|
@@ -135,7 +135,7 @@ import { probeCreepjs } from "./creepjs-probe.js";
|
|
|
135
135
|
import { defaultHeadlessProfileForHost } from "../channels/HeadlessChannel.js";
|
|
136
136
|
const execFileP = promisify(execFile);
|
|
137
137
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
138
|
-
export const LASSO_VERSION = "1.18.
|
|
138
|
+
export const LASSO_VERSION = "1.18.5";
|
|
139
139
|
// ============================================================
|
|
140
140
|
// runDoctor
|
|
141
141
|
// ============================================================
|
package/dist/index.js
CHANGED
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
* ToolAnnotations 完整(INV-5)由 tools/*.ts 注册时携带。
|
|
29
29
|
*
|
|
30
30
|
* 权威:../doc/08-media-interact-功能架构.md
|
|
31
|
-
* 实施:../doc/parse/parse1.md (v0.1) + parse2.md (v0.2) + parse3.md (v0.3) +
|
|
32
|
-
* parse4.md (v0.3.5) + parse5.md (v0.4)
|
|
31
|
+
* 实施:../doc/archive/parse/parse1.md (v0.1) + parse2.md (v0.2) + parse3.md (v0.3) +
|
|
32
|
+
* parse4.md (v0.3.5) + parse5.md (v0.4)(2026-08-27 仓迁:parse/ 已归档至 doc/archive/parse/)
|
|
33
33
|
*/
|
|
34
34
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
35
35
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
@@ -202,7 +202,7 @@ const fsReadFile = fsPromises.readFile;
|
|
|
202
202
|
* INV-76(v1.7 INV-1..75 零回归)→ 1.8.0
|
|
203
203
|
* 与 package.json version + doctor.ts LASSO_VERSION 三处对齐(grep 验;INV-63 守)。
|
|
204
204
|
*/
|
|
205
|
-
const LASSO_SERVER_VERSION = "1.18.
|
|
205
|
+
const LASSO_SERVER_VERSION = "1.18.5";
|
|
206
206
|
/**
|
|
207
207
|
* cloud 浏览器双重解锁判定(parse5 §3.4 + INV-25)。
|
|
208
208
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MachineMcpDetector.d.ts","sourceRoot":"","sources":["../../src/search/MachineMcpDetector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MachineMcpDetector.d.ts","sourceRoot":"","sources":["../../src/search/MachineMcpDetector.ts"],"names":[],"mappings":"AA4BA;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAIR;AAcD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,gBAAgB,GAAG,IAAI,CA+CzB"}
|
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
* 返 null → index.ts 不实例化 MachineMcpSearchChannel → FallbackChain 跳过 → 行为等价 v1.3。
|
|
20
20
|
*
|
|
21
21
|
* 借鉴:config.ts.loadConfigFileEnv(read-only + JSON parse 错返空范式)+
|
|
22
|
-
*
|
|
22
|
+
* doc/archive/research/00-总览与落地推荐.md §机器 MCP 复用调研结论(headers.Authorization 非 env)。
|
|
23
|
+
* (2026-08-27 仓迁:原 cc-control-all/doc/00-总览.md 已抢救至本路径)
|
|
23
24
|
*/
|
|
24
25
|
import * as os from "node:os";
|
|
25
26
|
import * as path from "node:path";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MachineMcpDetector.js","sourceRoot":"","sources":["../../src/search/MachineMcpDetector.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"MachineMcpDetector.js","sourceRoot":"","sources":["../../src/search/MachineMcpDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAevC;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,QAAQ,GAAG,GAAG,CAAC,8BAA8B,CAAC;IACpD,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,GAAW;IACrC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,CAAC,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAClE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAyB,OAAO,CAAC,GAAG;IAEpC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,qCAAqC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,iDAAiD;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,MAAkC,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;IAChC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,8DAA8D;IAC9D,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAkC,CAAC,EAAE,CAAC;QACzE,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,SAAS;QACpE,MAAM,KAAK,GAAG,GAIb,CAAC;QACF,sDAAsD;QACtD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QACpC,IAAI,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACpE,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACtE,SAAS;QACX,CAAC;QACD,MAAM,IAAI,GAAI,OAAuC,CAAC,aAAa,CAAC;QACpE,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACnE,0EAA0E;QAC1E,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
# Lasso 全周期功能架构(08)
|
|
2
2
|
|
|
3
3
|
> **Lasso**(npm `lasso-mcp`)= CC 的**全交互**对外抓手 MCP(浏览器 + 桌面)。与 media-gen-mcp(图像抓手)双子星。
|
|
4
|
-
> 本文档是权威架构基线(2026-07-21 重写为干净最终版,合并所有调研/审查修正,清除增量附录累积与矛盾)。上游:[07 可行性](07-CC统一交互抓手MCP-可行性分析.md)/[10 搜索](10-搜索MCP调研对架构的启发.md)/[11 简单审查](11-简单架构审查报告.md)/[12 pi-computer-use](12-pi-computer-use及生态深度分析.md)/[13 全交互重设计](13-全交互抓手重设计.md)。下游:[09 排期](09-media-interact-实施排期.md)。
|
|
4
|
+
> 本文档是权威架构基线(2026-07-21 重写为干净最终版,合并所有调研/审查修正,清除增量附录累积与矛盾)。上游:[07 可行性](archive/research/07-CC统一交互抓手MCP-可行性分析.md)/[10 搜索](archive/research/10-搜索MCP调研对架构的启发.md)/[11 简单审查](archive/research/11-简单架构审查报告.md)/[12 pi-computer-use](archive/research/12-pi-computer-use及生态深度分析.md)/[13 全交互重设计](archive/research/13-全交互抓手重设计.md)。下游:[09 排期](09-media-interact-实施排期.md)。
|
|
5
|
+
> **仓迁注(2026-08-27)**:上游调研 07/10/11/12/13 已随外层仓 `cc-control-all/doc/` 退役迁入本目录 `archive/research/` 同名文件(00-18 全系列同迁;真源 = 本仓)。
|
|
5
6
|
|
|
6
7
|
## ⚠️ 现状对齐横幅(v1.17.1 · 2026-08-18)
|
|
7
8
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# Lasso 实施排期(09)—— 按能力跃升
|
|
2
2
|
|
|
3
3
|
> **Lasso**(npm `lasso-mcp`)全交互抓手 MCP 的权威排期(2026-07-21 重写为干净最终版,合并 10/12/13 所有修正,清除附录累积)。F 编号严格对应 [08 §4 子功能总表](08-media-interact-功能架构.md)。
|
|
4
|
+
> **仓迁注(2026-08-27)**:正文提及的 `doc/parse/` 路径已随外层仓退役迁至本目录 `archive/parse/`(正文文字提及不回改,按下述新位置寻档)。
|
|
4
5
|
|
|
5
6
|
---
|
|
6
7
|
|
|
@@ -46,6 +47,12 @@
|
|
|
46
47
|
| **v1.16** ✅ | 颠覆性调研落地(D-GO 三项) | freshness 语义真生效 + feed 推模型直取 | doc/24 verdict(ZB-3/ZB-4/ZB-9) | ✅ 2026-08-18 完成(commit `ef94685`):2032 TS + 79 INV;新方法论首跑(零基重设计 + 红队豁免 + 成本表 → D-GO 3 / D-DECISION 3 / D-WATCH 8 / D-NOGO 9 分级裁决):freshness=day 缓存 TTL 24h + replay 新鲜度门(ZB-3)/ **fetch_feed** RSS·Atom·JSON Feed 原语(ZB-4,真机 GitHub releases.atom 5 条/2s)/ README 生态搭配段(ZB-9);doctor-deep timing flake 根治(5s→15s) |
|
|
47
48
|
| **v1.17** ✅ | 五项用户裁决(doc/25 D-DECISION 清偿) | 搜索结果可判质 / 本地可搜 / 高风险可确认 | doc/25 五项裁决实施 | ✅ 2026-08-18 完成(commit `8112a5e`):2032→2227 TS、79→81 INV、selftest 20/20、rust-helper 零改、零新 npm 依赖;A1 quality 轴(api/scrape/stale,served_by 静态映射)/ A3 删 zhipu 直连(INV-80 墓碑,machine_mcp 为唯一智谱路径)/ A2′ content_blocks 第二跳(1-5 opt-in,并发 3/单条 5s/256KB/裁剪 ~6k,失败如实 content_status)/ B1 **search_local** 第四通道(Chrome History 复制只读 + mdfind,INV-81 隐私红线)/ C1 elicitation 回合内确认(能力未声明 100% 降级 didnt,39 测钉死)+ C2 include_refs 句柄(附录钉尾) |
|
|
48
49
|
| **v1.17.1** ✅ | doc/17 全量测试轮修复收敛 | 真机 ~170 用例四面板全绿(ALL-CLEAN) | doc/17 功能测试清单 + ft-round1 执行记录 | ✅ 2026-08-18 完成(commit `1432bd4`):**2240 TS(134 文件)+ 81 INV + selftest 20/20 + 207 Rust**,ft-round1 独立裁决 **ALL-CLEAN**;修复 6 缺陷:🔴IPv6 字面量 SSRF 绕过(ssrf-guard 剥括号)/ 🔴HighRiskGate 裸 JSON.parse 围栏响应(改经 upstream-response + INV-76(m))/ doWait 假成功 / tab_restore 恒 no-op / doctor 不感知 file 键 / SIGHUP TypeError;§6 简单架构 38 条终判 ✅27/⚠️11/❌0/⏸1 |
|
|
50
|
+
| **v1.17.2** ✅ | 全通道静默性(doc/27 审计落地) | 连用户自己的 Chrome 也零抢焦点 | doc/27-静默性全面审计(audit/fix/verify + 真机证据) | ✅ 2026-08-19 完成(commit `939503b`):2253 tests + 81 INV;六维打扰面(焦点/窗口/Dock/音频/通知/资源)白盒+真机终版矩阵:查询/裸HTTP/无头/连用户 Chrome 全零打扰——连用户 Chrome 改为**后台自建 tab 干活**(S-7 tab 劫持修复,会话毕自动关,降级态诚实维持旧行为);INV-78(d) 精化 + doc/17 §2.17 T-SILENCE-01..09 用例组 9/9 pass |
|
|
51
|
+
| **v1.17.3** ✅ | 得到实战三修 | 实战暴露的 show/hide 语义与用法补面 | 得到课程全量抓取 档案/问题集(P1/P3/P4) | ✅ 2026-08-19 完成(commit `72712df`):2259 tests + 81 INV;P1 chrome-show 恒 no-op(PID 定向 osascript 双向化 + 归属验证红线)/ P3 launch-chrome 可见档使用语义 / P4 新用法入册 |
|
|
52
|
+
| **v1.18.0+v1.18.1** ✅ | 静默守则入宪 + 得到实战五修 | 「lasso 在后台干活,永远不打扰前台」成宪法级守则 | doc/28-静默守则审计(6 件)+ 问题集 13 条终裁 | ✅ 2026-08-20 完成(commit `6878105`):2308 tests + **82 INV**(+INV-82 静默守则)+ selftest 23;静默守则入宪 README/ARCHITECTURE;C1/C3 决策文档 + C4 NO-GO;问题集 13 条终裁(6 缺陷全修 / 3 预期 / 4 环境) |
|
|
53
|
+
| **v1.18.2** ✅ | 错配机制全面审计(doc/29) | 守卫对准真实威胁模型(错配四修 + 默认放行) | doc/29-错配机制审计(3 件,PASS 裁决) | ✅ 2026-08-20 完成(commit `e5dde99`):2364 tests + 82 INV + selftest 23;F1 SSRF 拒绝 reason 二分(策略确定性 vs 环境瞬态)/ F2a 熔断喂入故障分类 / F2c 恢复闭环 / F3 steps 链预算 120s(超预算=unknown 自限)/ F4 envelope 失败二分 + Y1 预算字段;威胁模型错配的守卫默认放行修正 |
|
|
54
|
+
| **v1.18.3** ✅ | P27 hide 粘滞复隐看门狗 | Chrome 窗口闪现上限 = 1.5s(一个 tick) | doc/BUG-chrome-idle-reaper(关联)+ P27 | ✅ 2026-08-23 完成(commit `232a232`):2395 passed + 1 skipped;desired-hide-watchdog(粘滞账跨进程契约,长命 server 消费;永不向非台账 pid 施加 osascript——E8 误伤红线延伸)+ `chrome-hide --pid` 直达 + hide 原语异步化 |
|
|
55
|
+
| **v1.18.4** ✅ | rust-helper 路径根治 | desktop 通道**任目录**可用(不再依赖 cwd) | doc/BUG-rust-helper-relative-path(§7-9 修复纪要) | ✅ 2026-08-23 完成(commit `e4c73aa`):**2417 passed + 1 skipped + 82 INV**;helper 路径 resolve 为绝对(src/subprocess/rust-helper-path.ts)+ spawn 四态自诊断门 rustSpawnGate(ok/missing/not_file/no_exec)+ ad-hoc 签名链(scripts/ad-hoc-sign-helper.mjs 入 build)+ **GitHub CI 挂载**(.github/workflows/ci.yml,含 Linux cargo check --target 面) |
|
|
49
56
|
|
|
50
57
|
---
|
|
51
58
|
|
|
@@ -327,4 +334,4 @@ v0.4 (forest) ──→ v1.0 (Win/Linux desktop via AxBackend)
|
|
|
327
334
|
|
|
328
335
|
## 文档结束
|
|
329
336
|
|
|
330
|
-
**本文档是 Lasso 权威排期**(2026-07-21 重写,合并 10/12/13 所有修正,清除附录累积;**2026-08-17 增补 v1.8-v1.13 六行**——wave 修复 / 生命周期 / 静默浏览器 / 最优性审查五轮收敛,素材取 lasso 仓 doc/19 与 doc/20;**2026-08-18 增补 v1.14-v1.17.1 五行**——搜索运营事实清偿 / Bing 死层清除与 serp_http / 颠覆性调研落地 / 五项用户裁决 / 全量测试轮收敛,素材取 lasso 仓 doc/21、doc/22、doc/24、doc/25 与 doc/17
|
|
337
|
+
**本文档是 Lasso 权威排期**(2026-07-21 重写,合并 10/12/13 所有修正,清除附录累积;**2026-08-17 增补 v1.8-v1.13 六行**——wave 修复 / 生命周期 / 静默浏览器 / 最优性审查五轮收敛,素材取 lasso 仓 doc/19 与 doc/20;**2026-08-18 增补 v1.14-v1.17.1 五行**——搜索运营事实清偿 / Bing 死层清除与 serp_http / 颠覆性调研落地 / 五项用户裁决 / 全量测试轮收敛,素材取 lasso 仓 doc/21、doc/22、doc/24、doc/25 与 doc/17 执行记录;**2026-08-27 增补 v1.17.2-v1.18.4 六行**——全通道静默性 / 得到实战三修 / 静默守则入宪+五修 / 错配机制审计 / hide 粘滞看门狗 / rust-helper 路径根治,素材取 lasso 仓 doc/27、doc/28、doc/29 与 BUG×2)。F 编号严格对应 [08 §4](08-media-interact-功能架构.md)(F 编号 ↔ v1.17.1 现实映射见 [doc/26 §4](26-文档查缺补漏/gap-matrix.md))。排期按能力跃升,每阶段可独立交付与验证。
|
|
@@ -64,6 +64,20 @@
|
|
|
64
64
|
|
|
65
65
|
> 全流程收敛记录在 `doc/17-执行记录/ft-00-总结.md`:**第 1 轮即 ALL-CLEAN 收敛**(R1 裁决 DECISION: ALL-CLEAN,零返工)。终态 verdict 矩阵:**pass ≈170 / pass-with-note 2(L-COST-04/06)/ blocked 6(环境·上游 4 + 人工 2)/ waived 3 / ⏸ key缺失 4 / fail 0**——6 处判「用例对→产品缺陷」全部本轮内闭环(修复+回归钉+真机复测+门禁),7 处初判 fail 判用例侧处置经 R1 核验正确。§5 L-COST 14/14 有终值(11 pass + 2 note + 1 blocked-env);§6 38 条终判 **✅27/⚠️11/❌0/⏸1**(🔴 硬不变量三条全 ✅,R-DEP-03 穿堂式清零);03 清单 §1 六维 + §2 五阶段全过、§3.4 非作者签字由 R1 满足、门禁两轮独立串行复跑 2240+81+20/20。遗留全部为环境/人工/key/观察四类外部依赖(round2 回归清单与环境恢复条件见 ft-00-总结.md §7),无产品侧阻断项。
|
|
66
66
|
|
|
67
|
+
## v1.18 增补记录(2026-08-27,v1.17.2→v1.18.4 对齐)
|
|
68
|
+
|
|
69
|
+
> **增补不推翻**:本节补齐 v1.17.2 → v1.18.4(commit `939503b`..`e4c73aa`,6 个版本 commit)的用户可感知与门禁面变化。既有 ID/格式/纪律(§0.2)全部沿用;旧用例预期不改写,以本节声明覆盖。素材:`git log v1.17.1..HEAD` + doc/27/28/29 + BUG×2(rust-helper / chrome-idle-reaper)。
|
|
70
|
+
>
|
|
71
|
+
> **版本语义漂移声明(执行旧用例前必读)**:
|
|
72
|
+
> 1. **门禁基线刷新**:2240 tests + 81 INV(v1.17.1)→ **2417 passed + 1 skipped + 82 INV**(v1.18.4,143 files;递增链 2253→2259→2308→2364→2395→2417 只增不减);selftest 20 → **23**(v1.18.0 起)。凡断言 tests/INV 数的旧用例按此覆盖。
|
|
73
|
+
> 2. **GitHub CI 已挂载**(v1.18.4):`.github/workflows/ci.yml`——push(main)/PR 跑 Node 20/22 矩阵的 build + test + check-invariants 三件套(rust-helper / macOS 专属路径在测试内均为平台注入或 non-darwin no-op 分支,Linux 上应全绿;**无 cargo 步骤**——Rust 面靠本地 `npm test` 的平台注入用例守)。「CI 不存在」类旧表述作废;Win/Linux 真机手测仍 pending(parse11-acceptance 范式不变)。
|
|
74
|
+
> 3. **rust-helper 路径根治**(v1.18.4,BUG-rust-helper-relative-path §7-9):desktop 通道**任 cwd 目录可用**(helper 路径 resolve 绝对,src/subprocess/rust-helper-path.ts);spawn 前四态自诊断门 rustSpawnGate(`ok/missing/not_file/no_exec`,detail 带 `[gate:<态>]`);build 链自动 ad-hoc 重签(scripts/ad-hoc-sign-helper.mjs)。旧用例「非 lasso 目录拉起 desktop 全挂」的复现预期**作废**(已修)。
|
|
75
|
+
> 4. **chrome-hide / 粘滞看门狗**(v1.18.3,P27):CLI 新面 `chrome-hide [--pid N]` / `chrome-show`;desired-hide-watchdog 每 1.5s tick 粘滞复隐(闪现上限 = 一个 tick;日志观测点 `desired_hidden_reasserted`;永不向非台账 pid 施加 osascript——E8 红线延伸)。CLI 单跑无看门狗(跨进程契约,长命 server 消费)。
|
|
76
|
+
> 5. **idle reaper 外部消费者盲区在档**(BUG-chrome-idle-reaper-second-consumer,未根治):`launch-chrome` 拉起的 Chrome 被**非 lasso browse 通道**消费(外部 CDP 直连)时须 `--idle-ms 0`,否则 ~60-75s 被 server 端 reaper 回收。TROUBLESHOOTING §9.3 已收录。
|
|
77
|
+
> 6. **静默性/守则面**(v1.17.2/1.18.0-1,doc/27+28):连用户 Chrome 零抢焦点(后台自建 tab,S-7 修复);INV-82 静默守则入宪;doc/17 §2.17 T-SILENCE-01..09 用例组(v1.17.2 起在册)。
|
|
78
|
+
> 7. **错配机制审计落地**(v1.18.2,doc/29):SSRF reason 二分(didnt=策略性 / unknown=环境瞬态可重试)——旧用例凡断言 SSRF 拒绝恒 didnt 的预期按此二分覆盖;steps 链总预算 120s 超限=unknown。
|
|
79
|
+
> 8. **版本号期望统一按 1.18.4 执行**(INV-63 三处一致)。
|
|
80
|
+
|
|
67
81
|
## 重审记录
|
|
68
82
|
|
|
69
83
|
- **日期**:2026-08-15
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
新鲜度档位:**A 新鲜**(≤1 版滞后,可不动)/ **B 过期**(滞后但表述不含错)/ **C 失实**(含与现实相反的表述,照行会错)/ **D 缺失**(应有而无)。
|
|
18
18
|
|
|
19
|
-
| # | 文档(绝对路径省略前缀 `/Users/wangdong/Documents/Project/cc-control-all
|
|
19
|
+
| # | 文档(绝对路径省略前缀 `/Users/wangdong/Documents/Project/claude技能/lasso/`;**2026-08-27 仓迁 re-base**:原 `cc-control-all/` 前缀已随外层仓退役失效,其 doc/ 资产已抢救入本仓 `doc/archive/research/` 与 `doc/archive/parse/`,下表 cc-control-all 行按迁移后位置改写) | 行数 | 写到哪个版本 | 新鲜度 | 核心问题(缺什么 / 错什么) | 优先级 |
|
|
20
20
|
|---|---|---|---|---|---|---|
|
|
21
21
|
| 1 | `lasso/ARCHITECTURE.md` | 337 | v1.13(仅 2 处 d3d1b24/v1.15 局部回补) | **C** | §9.1 链含已删的「智谱」直连 + 违 INV-58 的「→ Wayback」步;缺 serp_http;§11 版本 1.13.0;§7/§8 数字停 1961/79/207/14;§10 文件索引缺 6+ 新模块;缺 v1.14-1.17 全部架构事实 | **P0** |
|
|
22
22
|
| 2 | `lasso/doc/08-media-interact-功能架构.md` | 442 | **2026-07-21 v0.x 时代基线** | **C** | 四通道定义含「search(智谱 web-search-prime)」、`engine="zhipu"` 默认、分层图「智谱 web-search-prime」盒、F3.5「智谱 http 子进程」——全部失实(INV-80);F3.12 future 行里 7 项早已交付;F3.8「Google selector」从未实现 | **P0**(处置=加现状横幅,不重写) |
|
|
@@ -25,14 +25,14 @@
|
|
|
25
25
|
| 5 | `lasso/doc/TROUBLESHOOTING.md` | 332 | v1.13 | **B**(局部 C) | 零覆盖 v1.14-1.17:无 `--deep` 四分类(200/401/403/429)、serp_http、`quality=stale`、`content_status` 失败标注、search_local `notes_deferred_v2`(Apple Notes 诚实 didnt)、elicitation 降级(能力未声明→didnt)、include_refs 句柄失效、IPv6 字面量 SSRF(v1.17.1 剥括号);§1 示例 `1.13.0`;§7「doc/09 — v0.1 → v1.0 路径」描述过期且链到外层仓 | **P1** |
|
|
26
26
|
| 6 | `lasso/doc/SELECTOR-MAINTENANCE.md` | 259 | v1.13 + 1 处 v1.15 回补 | **B** | §1「主路径走结构化 API(智谱 / Brave)」——智谱直连已删(machine_mcp 为载体);**selector 新消费面 `src/serp/http-serp.ts`(v1.15 裸 HTTP 快探复用同一 selector 集 + bot 探测)全文档未提**;§2.1 示例只写 BAIDU(现实三引擎 BAIDU/DDG/BRAVE_SERP,`selectors.ts` 实核);§6「加新引擎(如 DuckDuckGo)」示例已过时(DDG v1.11 已在) | **P1** |
|
|
27
27
|
| 7 | `lasso/README.md` | 445 | v1.17(changelog 至 v1.17 五项全) | **A** | 无实质缺漏 | P3 保持 |
|
|
28
|
-
| 8 | `cc-control-all/doc/00
|
|
29
|
-
| 9 | `cc-control-all/doc/01..06
|
|
30
|
-
| 10 | `
|
|
28
|
+
| 8 | `doc/archive/research/00-总览与落地推荐.md`(原 cc-control-all/doc/00) | 148 | 2026-07-20 调研快照 | **B+D** | 「文档导航」**只索引 00-06,07-18 全部缺号**;无落地状态行——决策树仍推荐「AXAPI 自建 MCP【通识未验证】」而该项目**已产品化为 lasso-mcp v1.18.4(npm)**。**仓迁处置(2026-08-27)**:随外层仓退役抢救入 archive/research/,改判定为**历史快照(B,勿再改)**——P1-4「补导航/落地状态」随仓退役撤销 | 历史快照(原 **P1**) |
|
|
29
|
+
| 9 | `doc/archive/research/01..06`(6 份调研,原 cc-control-all/doc/01..06) | — | 2026-07-20 快照 | **B** | 头部无「历史快照」状态标注。**仓迁处置**:同入 archive/research/,P2-2 撤销(快照冻结,不回改) | 历史快照(原 P2) |
|
|
30
|
+
| 10 | `doc/archive/research/07,10,11,12,13,14,15,16,18`(原 cc-control-all/doc/ 同名) | — | 各自带日期(07-22~08-15) | **A**(快照性质) | 自洽;其中 18 基线写明 v1.9.0(声明式,无需改)。**仓迁处置**:抢救入 archive/research/;src 注释引用 ×14(doc/14 §4.2d / doc/16 §5 等)已 re-base 校验成立 | 不动 |
|
|
31
31
|
| 11 | `lasso/doc/17,19,20,21,22,23,23a,24,25` | — | v1.7→v1.17.1 | **A** | 当代执行/决策记录,**新鲜,勿动语义** | 不动 |
|
|
32
32
|
| 12 | `lasso/doc/README.md`(索引) | — | — | **D** | 17 份编号文档 + 3 份手册无导读(见 §3-②) | **P1**(新建) |
|
|
33
33
|
| 13 | 08 F 编号 ↔ 现实映射表 | — | — | **D** | v0.x F 编号大量退役/从未实现/无编号新增,无对照表(本文档 §4 直接产出) | **P0**(已随本文档交付) |
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
**结构性风险(矩阵外发现,2026-08-27 已消除)**:`lasso/doc/08` 与 `cc-control-all/doc/08`、`lasso/doc/09` 与 `cc-control-all/doc/09` 曾为 **byte-identical 双拷贝**(`diff -q` 实核)。**随外层仓退役,双拷贝纪律废止——真源唯一 = 本仓 `lasso/doc/`**(08/09 迁移当日 diff -q 复核一致后外层副本随仓消亡)。
|
|
36
36
|
|
|
37
37
|
---
|
|
38
38
|
|
|
@@ -135,9 +135,9 @@
|
|
|
135
135
|
|
|
136
136
|
---
|
|
137
137
|
|
|
138
|
-
## 4. F 编号 ↔ 现实映射表(08 §4 总表 → v1.
|
|
138
|
+
## 4. F 编号 ↔ 现实映射表(08 §4 总表 → v1.18.4 现实)
|
|
139
139
|
|
|
140
|
-
> 状态四值:**活**(实现且生效)/ **退役**(曾实现已删,墓碑 INV 守)/ **从未**(规划未做)/ **无号**(实现于 F 体系之外)。逐行经源码/INV/grep
|
|
140
|
+
> 状态四值:**活**(实现且生效)/ **退役**(曾实现已删,墓碑 INV 守)/ **从未**(规划未做)/ **无号**(实现于 F 体系之外)。逐行经源码/INV/grep 实核。**2026-08-27 续盘 v1.18 行**(§8)。
|
|
141
141
|
|
|
142
142
|
| F 编号 / 08 表述 | 08 原文 | 现实状态 | 证据锚点 |
|
|
143
143
|
|---|---|---|---|
|
|
@@ -170,6 +170,9 @@
|
|
|
170
170
|
| F3.10.x desktop 四档 | v0.3.5 | **活且超规划**:v1.11-v1.13 从「能看」到「能点」(ax_act 真实现/坐标鼠标/VLM 真执行/Electron 兜底) | src/desktop/ |
|
|
171
171
|
| F3.11.x forest | v0.4 调度层 | **活且工具化**:interact_roots/observe/act 3 个真实 MCP 工具(17 工具之三) | src/tools/interact.ts |
|
|
172
172
|
| F3.12.x future(browse_cloud/stagehand/fetch_url/screenshot/pdf/network/wayback) | v0.4-v0.9 | **全部已交付**;Steel 自托管(v1.6)与 fetch_feed(v1.16)无号 | tools/{screenshot,pdf,network,fetch-url,wayback}.ts |
|
|
173
|
+
| (无号)静默性/守则体系 | — | **无号**:v1.17.2 全通道静默(doc/27)+ v1.18.0 静默守则入宪(INV-82,doc/28)+ v1.18.3 hide 粘滞看门狗(P27) | launcher/desired-hide-watchdog.ts |
|
|
174
|
+
| (无号)rust-helper 路径根治与四态门 | — | **无号**:v1.18.4,任 cwd 可用 + rustSpawnGate 四态 + ad-hoc 签名链 + CI(BUG-rust-helper §7-9) | src/subprocess/rust-helper-path.ts |
|
|
175
|
+
| (无号)错配机制守卫二分 | — | **无号**:v1.18.2(doc/29)——SSRF/熔断/envelope 失败 reason 二分 + steps 链 120s 预算(超限=unknown) | src/ssrf/ssrf-guard.ts |
|
|
173
176
|
|
|
174
177
|
---
|
|
175
178
|
|
|
@@ -200,7 +203,7 @@
|
|
|
200
203
|
|
|
201
204
|
| 动作 | 对象 | 怎么改 |
|
|
202
205
|
|---|---|---|
|
|
203
|
-
| P2-1 | 08/09 单真源化 |
|
|
206
|
+
| P2-1 | 08/09 单真源化 | ~~决策:`lasso/doc/` 为真源,外层改指针文件~~ **已随仓迁终局解决(2026-08-27)**:外层 cc-control-all 退役,真源唯一 = 本仓 doc/08、09 |
|
|
204
207
|
| P2-2 | 外层 01-06 | 头部统一加「历史调研快照」状态标注 |
|
|
205
208
|
|
|
206
209
|
### P3(保持)
|
|
@@ -281,3 +284,26 @@ KEY-GUIDE.md、README.md、doc/17-25——新鲜;每次发版按既有流程
|
|
|
281
284
|
- `npx vitest run`(2240)/ `cargo test`(207)审查员亲跑复证,与文档数字一致。
|
|
282
285
|
|
|
283
286
|
**审查结论:PASS(附 10 处已闭环修正)**。更新报告所列 §7/§8/§9 新增章节、§9.1 链纠正、doc/08 横幅、doc/09 五行经 45 条逐项对源核验全部属实;发现的 10 处次级失实(层级图 ×2、SearchChannel 幽灵文件 ×2、云工具名、V5 键数、状态路径、INV-54 缺行、3 处行数漂移)已当场修正并复跑门禁。文档链现状:外层 00-总览(落地状态)→ lasso/ARCHITECTURE.md(v1.17.1 现状权威)→ doc/08(冻结基线+横幅)+ doc/09(全周期)→ doc/26 §4(F 映射真源),四层互链闭环,无悬挂引用。
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## 8. 续盘 v1.17.2 → v1.18.4(2026-08-27,仓迁后首盘)
|
|
291
|
+
|
|
292
|
+
> 本节是 §1 矩阵的续行(增补不推翻;§1 原行不动)。基线:`lasso-mcp v1.18.4`(HEAD=`e4c73aa`,npm latest)。新事实基准:**17 工具 / 82 INV / 2417 passed + 1 skipped(143 files)/ selftest 23 / GitHub CI(.github/workflows/ci.yml,含 Linux cargo check --target 面)**。
|
|
293
|
+
|
|
294
|
+
| # | 文档 | 写到哪个版本 | 新鲜度 | 处置(本轮已做 / 遗留) |
|
|
295
|
+
|---|---|---|---|---|
|
|
296
|
+
| 14 | `doc/27-静默性全面审计/`(5 件 + verify-data 真机证据) | v1.17.2 | **A** | 原位不动(TROUBLESHOOTING §8 引用成立) |
|
|
297
|
+
| 15 | `doc/28-静默守则审计/`(6 件) | v1.18.0/1 | **A** | 原位不动(INV-82 出处;check-invariants L112 引用成立) |
|
|
298
|
+
| 16 | `doc/29-错配机制审计/`(3 件) | v1.18.2 | **A** | 原位不动(src 注释引用 ×54 最密;ARCHITECTURE L25) |
|
|
299
|
+
| 17 | `doc/BUG-rust-helper-relative-path.md` | v1.18.4(已根治) | **A** | 本轮纳入 git 跟踪(原 untracked);§9 勘误制度示范 |
|
|
300
|
+
| 18 | `doc/BUG-chrome-idle-reaper-second-consumer.md` | v1.18.3(缓解在档,**根治未做**) | **A**(活档) | 本轮纳入 git 跟踪;R-INT-07 活案例,修复建议 §6 四级待裁决 |
|
|
301
|
+
| 19 | `doc/archive/parse/`(36 件,原 cc-control-all/doc/parse/) | v0.1-v1.10 执行史 | **快照** | 本轮抢救迁入;src/index.ts、doc/09 引用已 re-base;TROUBLESHOOTING Q5 链已修 |
|
|
302
|
+
| 20 | `doc/archive/research/`(16 件 + 搜索mcp工具/,原 cc-control-all/doc/00-18) | 2026-07-20~08-17 调研 | **快照** | 本轮抢救迁入;src 注释 doc/00/14/16 引用已 re-base 校验成立 |
|
|
303
|
+
| 21 | `doc/得到课程全量抓取/`(68 件,自洽模板目录) | v1.17.3/v1.18.1 实战母本 | **A** | 本轮整体迁入(内部零外部引用,自洽性保持) |
|
|
304
|
+
| 22 | `doc/09` 阶段表 | **本轮补齐 v1.17.2-v1.18.4 六行** | **A** | 已做(2026-08-27) |
|
|
305
|
+
| 23 | `doc/17` | **本轮补 v1.18 增补记录节**(门禁 2417+82、CI、四态门、看门狗、reaper 盲区、二分覆盖声明) | **A** | 已做;T-SILENCE-01..09 之外的新用例组(gate 四态/watchdog/reaper 缓解)待 round2 补 |
|
|
306
|
+
| 24 | `doc/TROUBLESHOOTING.md` | **本轮补 §2.16 + §9(v1.18.x 故障面)**;§1 版本 1.18.4;Q5/§2.4/§7 断链修 | **A** | 已做 |
|
|
307
|
+
| 25 | `doc/README.md` | **本轮重写为按项目逻辑导读** | **A** | 已做(双拷贝纪律节废止) |
|
|
308
|
+
| 26 | `../ARCHITECTURE.md` | 头部 v1.17.2(正文散见 v1.18.x 增补) | **C** | **遗留 P0**:头部版本停 v1.17.2、§9 测试规模行停 2253、INV 计数混写 81/82(§11 题头 82 vs 正文 81)、CI 未入——下次架构文档专项 |
|
|
309
|
+
| 27 | `doc/KEY-GUIDE.md` | v1.18.4(轻核对;时效标注 2026-08-17/18) | **A**(90 天时效期内;下次重核 ≈2026-11,含 Brave 免费计划扣卡口径) | 本轮加轻核对注;无新 key/供应商面(v1.18.x 新增 env 开关 `LASSO_AUTO_HIDE_AFTER_LOGIN*` 已于 §B 在档) |
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# 问题报告:chrome-idle-reaper 误杀外部 CDP 消费者的 Chrome(第二消费者盲区)
|
|
2
|
+
|
|
3
|
+
> 发现日期:2026-08-26 · 发现环境:Claude Code(VSCode extension)Bash 工具内 CLI 拉起 + media-gen-mcp FlowProvider CDP 直连消费 · 严重级:**高**(外部消费者场景下 Chrome 稳定存活仅 ~60-75s,连接反复中断;lasso 自身 browse 通道不受影响)
|
|
4
|
+
|
|
5
|
+
## 1. 现象
|
|
6
|
+
|
|
7
|
+
- `lasso launch-chrome --port 9223`(默认 hidden 档)拉起的 Chrome,在宿主(Claude Code Bash 工具)的**工具调用间隙死亡**:稳定存活约 60-75 秒,随后 CDP 9223 `ECONNREFUSED`/S100
|
|
8
|
+
- 死亡与"哪个命令拉起"无关、与 Chrome 是否有打开的 page target 无关(已打开 labs.google 项目页仍被杀);本日实测 5+ 次全部复现
|
|
9
|
+
- 死后台账 `~/.cache/lasso/launched-chromes.json` 变回 `[]`(记录被删——stopLaunchedChromes 的删账行为)
|
|
10
|
+
|
|
11
|
+
## 2. 根因(白盒链,非猜测)
|
|
12
|
+
|
|
13
|
+
**不是** spawn/detached/宿主进程组回收问题(launch 是 detached + unref,reaper 注释自证 §1.4)。真凶是 lasso 自身的 **chrome-idle-reaper**(v1.10 parse18 §2 机制一):
|
|
14
|
+
|
|
15
|
+
1. **常驻 lasso MCP server 装配了 reaper**(`src/index.ts:477`):15s tick 读台账;本会话 CC 的 lasso MCP server 一直在跑 → 即使 Chrome 是从 Bash 里 CLI 拉起的,reaper 也看得见台账记录(台账是磁盘共享的单一数据面)
|
|
16
|
+
2. **LAUNCH_IDLE_MS 默认 60s**(`src/index.ts:470` 注释):hidden 档 Chrome 的"用完即关"设计语义
|
|
17
|
+
3. **touch 活动源唯一**:`LoggedInChannel` 每次 browse 经注入回调 `onChromeUse → touch(port)`(`chrome-idle-reaper.ts:18`)。**media-gen-mcp FlowProvider 这类外部 CDP 直连消费者对 reaper 完全不可见**——touchMap 永无记录 → `lastUse = launchedAt`
|
|
18
|
+
4. `now - lastUse > 60s` → 首个 15s tick 命中 → `stopLaunchedChromes({port})` 树杀 + 删账(`chrome-idle-reaper.ts:196-205`)
|
|
19
|
+
|
|
20
|
+
时间线完全吻合:存活 60-75s = idle 60s + tick 相位差 0-15s。
|
|
21
|
+
|
|
22
|
+
## 3. 定性
|
|
23
|
+
|
|
24
|
+
**by-design 机制与第二消费者的组合盲区,不是实现 bug**。reaper 的设计假设是"launched Chrome 的唯一消费者是 lasso 自己的 browse 通道";台账(磁盘共享)与 reaper(server 进程内)的分离使 CLI 拉起的 Chrome 也落入 server reaper 的管辖,而外部消费者零活动信号。这正是 `chrome-idle-reaper.ts:19` 自己引用的 **R-INT-07(运行时 mutable state 多消费者耦合)** 的活案例——touchMap 单写多读形态防的是 reaper/Channel 之间的写冲突,没有防"写者之外还有整个消费维度"。
|
|
25
|
+
|
|
26
|
+
同类先例:zombie reaper 管 procs(MCP shim→node 树)与 chrome reaper 管 ledger(detached Chrome)的两数据域分工(parse18)本身承认了"消费形态多样",但活动信号的扩展没有跟上。
|
|
27
|
+
|
|
28
|
+
## 4. 复现
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# 前提:一个常驻 lasso MCP server 在跑(CC 会话内即满足)
|
|
32
|
+
cd lasso && node dist/index.js launch-chrome --port 9223 # 默认 hidden + 全局 idle 60s
|
|
33
|
+
sleep 1 # 打开 page target(证明"有页面"不影响)
|
|
34
|
+
node -e "..." # 任意 CDP 直连操作
|
|
35
|
+
# 之后不再有任何 lasso browse 调用 → 60-75s 后:
|
|
36
|
+
curl http://127.0.0.1:9223/json/version # ECONNREFUSED
|
|
37
|
+
cat ~/.cache/lasso/launched-chromes.json # []
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## 5. 缓解(已验证)
|
|
41
|
+
|
|
42
|
+
拉起时**record 级禁用收割**:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
node dist/index.js launch-chrome --port 9223 --idle-ms 0
|
|
46
|
+
# 台账记录写 "idleMs": 0 → reaper tick 里 idleMs<=0 直接 continue,永不收割
|
|
47
|
+
# 或全局:env LASSO_LAUNCH_IDLE_MS=0(影响所有 launched Chrome,粒度粗)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
实测 `--idle-ms 0` 后台账记录 `{"port":9223,...,"idleMs":0}`,Chrome 跨宿主多个工具调用持续存活(本报告附带的后续 media-gen 验证链全程依赖此缓解,90s+ 不死)。
|
|
51
|
+
|
|
52
|
+
## 6. 修复建议(lasso 侧,供裁决)
|
|
53
|
+
|
|
54
|
+
1. **文档级(最小成本,立即)**:`launch-chrome --help` 与 README 的 launch-chrome 章节显著标注——"Chrome 将被**非 lasso browse 通道**消费(外部 CDP 直连/自动化)时,必须 `--idle-ms 0`,否则 60s 后被 server 端 idle reaper 回收"。当前 `--help` 无此警示。
|
|
55
|
+
2. **语义级(建议)**:CLI **显式**拉起(用户手敲命令)与 server 内部自动拉起的语义区分——CLI 显式拉起默认写 `idleMs: 0`(用户显式要的 Chrome 不该被后台静默回收),server 自动补的维持 60s 用完即关。变化面:launch-chrome.ts 写台账处(473/502/545)默认值来源分级。
|
|
56
|
+
3. **结构级(长期,R-INT-07 正解)**:touch 活动源泛化——例如台账记录支持外部 touch(约定文件 `~/.cache/lasso/chrome-touch-<port>` mtime 即活动信号,reaper tick 顺带 stat),让第二消费者有一等信号通道而不是绕过收割。
|
|
57
|
+
4. **错误面**:CDP 断连错误(S103 类)的 hint 文案补一句"若 Chrome 由 lasso 拉起且超过 60s 无 browse 活动,可能已被 idle reaper 回收;外部消费场景请 `--idle-ms 0` 重新拉起"——把这类死亡从"神秘断连"变成自解释。
|
|
58
|
+
|
|
59
|
+
## 7. 时间线
|
|
60
|
+
|
|
61
|
+
- 2026-08-26 下午:media-gen-mcp Flow 渠道 live 验证过程中,Chrome 反复"活一个调用就死",最初误判为宿主 Bash 进程组回收(错误假设,已在 §2 澄清)
|
|
62
|
+
- 白盒定位:读 chrome-idle-reaper.ts → 60s 默认 + touch 唯一源 → 台账删除实锤 → `--idle-ms 0` 验证存活
|
|
63
|
+
- 本报告归档;media-gen-mcp 侧的 Flow 契约/文档同步改用 `--idle-ms 0` 启动命令
|
|
64
|
+
|
|
65
|
+
## 8. 关联
|
|
66
|
+
|
|
67
|
+
- media-gen-mcp FlowProvider(外部 CDP 消费者)契约 `doc/flow-api-contract.md` 启动命令已同步 `--idle-ms 0`
|
|
68
|
+
- R-INT-07(架构想法/02_简单架构清单.md)又一实证:运行时 mutable state(touchMap)的多消费者耦合,单写多读不够,还得防"未知消费者维度"
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# BUG 报告:rust-helper 相对路径导致 desktop 通道全挂(subproc_spawn_failed)
|
|
2
2
|
|
|
3
3
|
> 发现日期:2026-08-22 · 发现环境:Claude Code(VSCode extension)以 stdio 启动 lasso MCP server v1.18.3 · 严重级:**阻断**(desktop 全通道不可用)
|
|
4
|
+
>
|
|
5
|
+
> **仓迁注(2026-08-27)**:本文档写就时仓在 `/Users/wangdong/Documents/Project/cc-control-all/lasso`,现已迁至 `/Users/wangdong/Documents/Project/claude技能/lasso`——文中出现的旧绝对路径(含 §内 env 注入示例)均为当时历史现场,今已失效勿照抄;`~/.claude.json` 的 `LASSO_RUST_HELPER_PATH` 已由主循环重定位到新仓,且 v1.18.4 根治后该 env 覆盖本身已非必需(见 TROUBLESHOOTING §2.16 rustSpawnGate 四态)。
|
|
4
6
|
|
|
5
7
|
## 1. 现象
|
|
6
8
|
|
package/doc/KEY-GUIDE.md
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
> **维护规则(时效标注制度,v1.14 起)**
|
|
6
6
|
>
|
|
7
|
+
> **轻核对(2026-08-27,v1.18.4)**:v1.17.2→v1.18.4 六版均为静默性/看门狗/rust-helper/错配守卫面,**未新增任何 key/供应商面**——本手册供应商口径无需变更(六版唯一新增 env 开关 `LASSO_AUTO_HIDE_AFTER_LOGIN*` 已在 §B 在档,非 key 面)。90 天时效标注(2026-08-17/18)仍在期内,**下次重核 ≈ 2026-11**,首查项不变:Brave 免费计划超额是否扣卡(控制台亲历)。
|
|
8
|
+
>
|
|
7
9
|
> 本手册所有涉及**数额 / 计费 / 存续**的运营事实(免费额度、定价、服务是否退役)都自带「最后核实」日期。这类事实会过期——**marketing 页口径有效期 ≤90 天**。遇到以下任一情况必须重核后再引用:
|
|
8
10
|
>
|
|
9
11
|
> 1. **距最后核实 >90 天**,且该条目将被引用作决策(发版、README 同步、审查轮引用、定价相关 issue);
|
package/doc/README.md
CHANGED
|
@@ -1,60 +1,82 @@
|
|
|
1
1
|
# lasso/doc 导读
|
|
2
2
|
|
|
3
|
-
> Lasso(npm `lasso-mcp`)doc/ 目录索引。更新:2026-08-
|
|
3
|
+
> Lasso(npm `lasso-mcp`)doc/ 目录索引。更新:2026-08-27(v1.18.4 · 仓迁重组)。
|
|
4
4
|
> 规则:本文件只做导读与新鲜度对账,**不改写任何编号文档语义**;决策记录是不可变审计史(勘误上版,不回改)。
|
|
5
|
+
> **仓迁对照注(2026-08-27)**:本项目已自 `cc-control-all/` 迁出为自含 git 仓(外层仓退役)。原外层 `doc/parse/`(36 件执行史)→ 本目录 [`archive/parse/`](archive/parse/);原外层调研 00-18(16 件)与搜索 MCP 工具调研 → [`archive/research/`](archive/research/);原 `49 个 *.workflow.js` 点火脚本为一次性流程产物(其产物即 parseN 执行史,已全量在档),未迁(随外层仓消亡)。src 注释引用已全部 re-base 校验成立。
|
|
5
6
|
|
|
6
|
-
##
|
|
7
|
+
## ① 使用向(npm 用户与日常操作)
|
|
7
8
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
|
11
|
-
|
|
12
|
-
| [
|
|
13
|
-
| [
|
|
14
|
-
| [`TROUBLESHOOTING.md`](TROUBLESHOOTING.md) | FAQ + error_kind 释义 |
|
|
9
|
+
| 文档 | 一句话定位 | 状态 |
|
|
10
|
+
|---|---|---|
|
|
11
|
+
| [`../README.md`](../README.md) | 用户手册:安装 / 配置 / 17 工具清单 / 隐私 / changelog(9 语言) | 活 |
|
|
12
|
+
| [`KEY-GUIDE.md`](KEY-GUIDE.md) | 每个 key 用在哪、去哪申请、免费额度口径(90 天时效标注制度) | 活(轻核对至 v1.18.4;下次重核 ≈2026-11) |
|
|
13
|
+
| [`TROUBLESHOOTING.md`](TROUBLESHOOTING.md) | FAQ + error_kind 释义 + 浏览器静默/看门狗/reaper 排障(§2.16 rust-helper 四态门、§9 chrome-hide/粘滞看门狗) | 活(对齐 v1.18.4) |
|
|
14
|
+
| [`得到课程全量抓取/`](得到课程全量抓取/README.md) | 得到课程批量抓取的完整模板目录(方案 / 操作手册 / skill / 脚本 / 质量门禁 / 问题集档案),目录内自成体系;脚本经绝对路径引用仓内 `.dedao-extract/` 与 `output/`(engine RUNBOOK 已 re-base 至本仓路径) | 活(v1.17.3/v1.18.1 实战母本) |
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
## ② 设计与治理(改代码前后必读)
|
|
17
17
|
|
|
18
|
-
| 文档 |
|
|
19
|
-
|
|
20
|
-
| [`../ARCHITECTURE.md`](../ARCHITECTURE.md) |
|
|
21
|
-
| [`
|
|
22
|
-
| [`
|
|
23
|
-
| [`
|
|
24
|
-
| [`26-文档查缺补漏/gap-matrix.md`](26-文档查缺补漏/gap-matrix.md) |
|
|
18
|
+
| 文档 | 一句话定位 | 状态 |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| [`../ARCHITECTURE.md`](../ARCHITECTURE.md) | 架构概览(面向贡献者的唯一架构入口) | 活(头部 v1.17.2、正文散见 v1.18.x 增补,见 26 §8 遗留 P0) |
|
|
21
|
+
| [`08-media-interact-功能架构.md`](08-media-interact-功能架构.md) | F 编号定义域的权威架构基线(冻结 2026-07-21,头部现状横幅) | 冻结基线(不回改) |
|
|
22
|
+
| [`09-media-interact-实施排期.md`](09-media-interact-实施排期.md) | v0.1→v1.18.4 全周期排期,每版本一行决策记录 | 活(2026-08-27 补 v1.17.2-v1.18.4 六行) |
|
|
23
|
+
| [`17-功能测试清单.md`](17-功能测试清单.md) | 全量功能测试清单(ft-round1 ALL-CLEAN + §6 简单架构 38 条终判 + v1.18 增补记录) | 活(增补至 v1.18.4) |
|
|
24
|
+
| [`26-文档查缺补漏/gap-matrix.md`](26-文档查缺补漏/gap-matrix.md) | 文档盘点矩阵 + **F 编号 ↔ 现实映射表(§4 真源)** + 续盘 §8(仓迁处置台账) | 活(续盘至 v1.18.4) |
|
|
25
|
+
| [`SELECTOR-MAINTENANCE.md`](SELECTOR-MAINTENANCE.md) | selector 债维护手册(生命周期 + 改版检测 + 升级流程) | 活(内容债见 26 §2.6) |
|
|
25
26
|
|
|
26
|
-
|
|
27
|
+
## ③ 审计与裁决档案(按时间线读 = 轻量 ADR 索引)
|
|
27
28
|
|
|
28
29
|
| 时间 | 文档 | 裁决性质 | 状态 |
|
|
29
30
|
|---|---|---|---|
|
|
30
|
-
| 2026-08-15→17 | [`19-最优性审查轮次/`](19-最优性审查轮次/00-总结.md)(
|
|
31
|
+
| 2026-08-15→17 | [`19-最优性审查轮次/`](19-最优性审查轮次/00-总结.md)(34 件五轮) | 四域五轮白盒复审:候选 16→14→7→1→0 收敛 ROUND-CLEAN;方法学(裁决官不采信文档 / L0-L3 证据阶梯 / mutation 即验收) | 38 项全实施(v1.10-v1.13) |
|
|
32
|
+
| 2026-08-17 | [`20-文档同步审计.md`](20-文档同步审计.md) | v1.8→v1.13 文档审计(后继 = 26) | 快照(不回改) |
|
|
31
33
|
| 2026-08-17 | [`21-搜索方案重审/`](21-搜索方案重审/verdict.md) | 搜索重审:机制达标 / 运行时诚实度未达标——Brave 免费档取消 + Bing 退役的运营事实清偿(S-1..S-5) | 已实施(v1.14) |
|
|
32
34
|
| 2026-08-17 | [`22-Bing清除与serp_http/`](22-Bing清除与serp_http/parse22.md) | 死层代码级清除(INV-54 墓碑)+ serp_http 快探层 | 已实施(v1.15) |
|
|
33
35
|
| 2026-08-17/18 | [`23-方法论检讨-搜索优化失效.md`](23-方法论检讨-搜索优化失效.md) + [`23a-03清单建议-方法论检讨.md`](23a-03清单建议-方法论检讨.md) | 方法论检讨:搜索优化失效根因 = 只在既有方案内比较 → 零基视角制度化 | 已制度化(doc/24 首跑) |
|
|
34
|
-
| 2026-08-18 | [`24-颠覆性调研/`](24-颠覆性调研/verdict.md)(10
|
|
36
|
+
| 2026-08-18 | [`24-颠覆性调研/`](24-颠覆性调研/verdict.md)(10 件) | 零基重设计 + 红队 + 成本表 → 分级裁决 D-GO 3 / D-DECISION 3 / D-WATCH 8 / D-NOGO 9 | D-GO 已实施(v1.16);D-DECISION 3 项交 doc/25;NOGO 9 项触发条件被 17 §6 R-CI-06 引用 |
|
|
35
37
|
| 2026-08-18 | [`25-五项裁决实施/`](25-五项裁决实施/parse24.md) | 五项用户裁决:A1 quality 轴 / A2′ content_blocks / A3 删 zhipu 直连 / B1 search_local / C1 elicitation + C2 include_refs | 已实施(v1.17,INV-80/81) |
|
|
36
|
-
| 2026-08-18 | [`17-执行记录/ft-00-总结.md`](17-执行记录/ft-00-总结.md) | 全量功能测试轮独立裁决(四面板 ~170 用例):**ALL-CLEAN**;6 缺陷修复(含 2🔴安全级) | 已收敛(v1.17.1
|
|
38
|
+
| 2026-08-18 | [`17-执行记录/ft-00-总结.md`](17-执行记录/ft-00-总结.md)(252 件执行证据底座) | 全量功能测试轮独立裁决(四面板 ~170 用例):**ALL-CLEAN**;6 缺陷修复(含 2🔴安全级) | 已收敛(v1.17.1);INV-76 出处 |
|
|
39
|
+
| 2026-08-19 | [`27-静默性全面审计/`](27-静默性全面审计/)(4 件 + 38 份真机证据) | 六维打扰面白盒+真机:查询/裸HTTP/无头/连用户 Chrome 全零打扰(S-7 tab 劫持修复) | 已实施(v1.17.2) |
|
|
40
|
+
| 2026-08-19/20 | [`28-静默守则审计/`](28-静默守则审计/)(6 件) | 静默守则入宪(INV-82)+ 得到实战五修 + 问题集 13 条终裁 | 已实施(v1.18.0/1) |
|
|
41
|
+
| 2026-08-20 | [`29-错配机制审计/`](29-错配机制审计/)(3 件) | 守卫对准真实威胁模型:错配四修 + 默认放行(src 注释引用最密 ×54) | PASS 裁决,已实施(v1.18.2) |
|
|
42
|
+
|
|
43
|
+
**BUG 档案**:
|
|
44
|
+
|
|
45
|
+
| 文档 | 一句话定位 | 状态 |
|
|
46
|
+
|---|---|---|
|
|
47
|
+
| [`BUG-rust-helper-relative-path.md`](BUG-rust-helper-relative-path.md) | rust-helper 相对路径致 desktop 通道全挂——根因/修复纪要/对抗复审/勘误制度示范(§9) | 已根治(v1.18.4) |
|
|
48
|
+
| [`BUG-chrome-idle-reaper-second-consumer.md`](BUG-chrome-idle-reaper-second-consumer.md) | idle reaper 误杀外部 CDP 消费者的 Chrome(R-INT-07 活案例;`--idle-ms 0` 缓解在档) | **活档**(根治未做,修复建议 §6 四级待裁决) |
|
|
49
|
+
|
|
50
|
+
## ④ 历史档案(archive/,快照性质,不回改)
|
|
51
|
+
|
|
52
|
+
| 目录 | 一句话定位 | 状态 |
|
|
53
|
+
|---|---|---|
|
|
54
|
+
| [`archive/parse/`](archive/parse/)(36 件) | v0.1-v1.10 执行史全集(parse1-18 + 各 acceptance + v14 契约),src/index.ts、doc/09、TROUBLESHOOTING Q5 的引用锚 | 快照(2026-08-27 自 cc-control-all/doc/parse/ 抢救迁入) |
|
|
55
|
+
| [`archive/research/`](archive/research/)(16 件 + `搜索mcp工具/`) | 立项与演进调研全集:00-06 七路白盒调研、07 可行性、10-18 各专项(爬虫/登录态/白盒审查/资源占用),doc/14 §4.2d、doc/16 §5 等被 src 注释引用 ×14 | 快照(同期抢救迁入;08 头部「上游」五链指向此处) |
|
|
37
56
|
|
|
38
|
-
|
|
57
|
+
**打赏图**:`support-alipay.jpg` / `support-wechat.jpg`——8 个 README(主 + 7 语言)`<img src="doc/support-*.jpg">` 引用,**勿移动**(动即断 8 个 README)。
|
|
39
58
|
|
|
40
59
|
## 新鲜度表(下次盘点在此续行)
|
|
41
60
|
|
|
42
61
|
| 文档 | 写到版本 | 最后同步 |
|
|
43
62
|
|---|---|---|
|
|
44
|
-
| ../
|
|
45
|
-
| ../
|
|
46
|
-
| KEY-GUIDE.md | v1.
|
|
47
|
-
| TROUBLESHOOTING.md | v1.
|
|
48
|
-
| SELECTOR-MAINTENANCE.md | v1.13 + v1.15 局部(http-serp 消费面待补,见 26 §2.6) | 2026-08-
|
|
49
|
-
| 08(基线冻结) | v0.x 快照 +
|
|
50
|
-
| 09(排期) | v1.
|
|
51
|
-
| 17(功能测试) | v1.
|
|
63
|
+
| ../README.md | v1.18.x(changelog 齐) | 2026-08-23 |
|
|
64
|
+
| ../ARCHITECTURE.md | 头部 v1.17.2(正文散见 v1.18.x 增补) | 2026-08-20(**遗留 P0**:§9 测试规模行停在 2253、INV 计数混写 81/82、CI 未入,见 26 §8) |
|
|
65
|
+
| KEY-GUIDE.md | v1.18.4(轻核对;90 天时效标注 2026-08-17/18) | 2026-08-27 |
|
|
66
|
+
| TROUBLESHOOTING.md | v1.18.4(§2.16 + §9 新故障面) | 2026-08-27 |
|
|
67
|
+
| SELECTOR-MAINTENANCE.md | v1.13 + v1.15 局部(http-serp 消费面待补,见 26 §2.6) | 2026-08-27(仅修头部断链) |
|
|
68
|
+
| 08(基线冻结) | v0.x 快照 + 仓迁注 | 2026-08-27 |
|
|
69
|
+
| 09(排期) | v1.18.4 | 2026-08-27 |
|
|
70
|
+
| 17(功能测试) | v1.18.4(v1.18 增补记录节) | 2026-08-27 |
|
|
52
71
|
| 19 / 20 | v1.10-v1.13(快照性质) | 2026-08-17 |
|
|
53
72
|
| 21 / 22 | v1.14 / v1.15 | 2026-08-17 |
|
|
54
73
|
| 23 / 23a | 方法论(版本无关) | 2026-08-18 |
|
|
55
74
|
| 24 / 25 | v1.16 / v1.17 | 2026-08-18 |
|
|
56
|
-
| 26(盘点矩阵) | v1.
|
|
75
|
+
| 26(盘点矩阵) | v1.18.4(§8 续盘) | 2026-08-27 |
|
|
76
|
+
| 27 / 28 / 29 | v1.17.2 / v1.18.0-1 / v1.18.2 | 2026-08-19/20 |
|
|
77
|
+
| BUG-rust-helper | v1.18.4(已根治) | 2026-08-23 |
|
|
78
|
+
| BUG-chrome-idle-reaper | v1.18.3(缓解在档,根治待裁决) | 2026-08-26 |
|
|
57
79
|
|
|
58
|
-
|
|
80
|
+
---
|
|
59
81
|
|
|
60
|
-
|
|
82
|
+
> **已废止**:「双拷贝纪律」节(08/09 在 lasso 与 cc-control-all 双仓 byte-identical 拷贝)——外层仓 2026-08-27 退役,真源唯一 = 本仓 `lasso/doc/`。
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
> Lasso 的 SERP selector 是**债**,不是资产。本文档说明 selector 的生命周期 + 改版检测 + 升级流程。
|
|
4
4
|
>
|
|
5
|
-
> 设计原则见 [08 §3.8 F3.8.1-8](
|
|
5
|
+
> 设计原则见 [08 §3.8 F3.8.1-8](./08-media-interact-功能架构.md);实施排期见 [09 §2.7 v0.7 SerpHealthMonitor](./09-media-interact-实施排期.md)。
|
|
6
6
|
|
|
7
7
|
## 1. 为什么说 selector 是债
|
|
8
8
|
|
|
@@ -255,5 +255,5 @@ admin({ action: "channel_health" })
|
|
|
255
255
|
- [README.md](../README.md) — 用户手册(故障排查节)
|
|
256
256
|
- [TROUBLESHOOTING.md](./TROUBLESHOOTING.md) — error_kind 释义(含 `recording_replay_miss`)
|
|
257
257
|
- [ARCHITECTURE.md](../ARCHITECTURE.md) — 架构概览(含 fallback 链)
|
|
258
|
-
- [doc/08 功能架构 §3.8](
|
|
259
|
-
- [doc/09 实施排期 §2.7](
|
|
258
|
+
- [doc/08 功能架构 §3.8](./08-media-interact-功能架构.md) — SERP 抽取设计(F3.8.1-8)
|
|
259
|
+
- [doc/09 实施排期 §2.7](./09-media-interact-实施排期.md) — v0.7 SerpHealthMonitor 设计决策
|