fix(derive): count only parser-marked speakers - #190
Open
titanwings wants to merge 3 commits into
Open
titanwings wants to merge 3 commits into
titanwings wants to merge 3 commits into
Conversation
Document and note units no longer become participants. stats.participant_count and voice speakers share participantsFromUnits.
A second harvest can leave a body with no ledger row. A colon in that body is a label, not a parser-marked speaker. doc and note still produce no participants. The C-SPAN after-retrospect count is 14, and the acceptance shape line is the measured speakers=14 attributed=86.
A row with locations.text owns that path only. A row with no text path still owns the bytes it hashed, which is how the hand-written fixture records kind. A second file that merely shares those bytes does not inherit the row.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
派生层用「最多 24 个非冒号字符加冒号」把正文标签当成说话人。多来源人物的参与者因此多出根因、时间线、动作、遗留、写文档的顺序固定、用途。这是 F7。文档来源(kind 为 doc 或 note)不再产生参与者。没有账本 kind 的正文也不产生参与者。第二次 harvest 留下的许可文档与字幕孤儿属于这一类。
stats.participant_count与voice.json的 speakers 走同一个函数participantsFromUnits。Scope
src/derive/retrospect.mjs。只读解析层写在轮次前缀上的说话人。doc 与 note 的单元不记参与者。账本行没有 kind 时,该正文不记参与者。有 kind 且不是 doc 或 note 的文件照旧,例如 subtitle。tests/retrospect.test.mjs与tests/text-attribution.test.mjs。文档标签不算参与者。tests/audit/retrospect-doctor.test.mjs。只改测试名以R24 after retrospect开头的那条,speakers 从 18 改为 14。R24 Step 1.5未改。tests/gates/acceptance-us-house.json。stdout_contains里的形状谓词改为实测行FAIL · units=2744 speakers=14 attributed=86。tests/gates/baseline/audit-tests.txt。删掉 T41 那一行。Blast Radius
synthetic-multisource 的参与者是 6 个真人,
participant_count为 6。synthetic-interview 仍是林工与面试官。单次 harvest 的 C-SPAN,doctor 的 speakers 是 14,attributed_units 是 81,top_speaker 仍是THE SPEAKER PRO TEMPORE,理由句仍是「只有 3%」。少掉的 4 个名字是许可文档标签,不是议员。双次 harvest 后账本仍是 2 条。孤儿正文不再把那 4 个标签加回 voice,也不再多算一份议员。acceptance 实测形状行是FAIL · units=2744 speakers=14 attributed=86。Verification
T40 保持绿。T41 由红转绿。父提交
9c8f1ceb464988f4273b2c5fc4bfc4bbe33af3ec的 TAP 里,ok 40是面试两人,not ok 41是文档标签那条。现头bc809f0eba1424625887d700aa395f2f3f595d25上,node scripts/run-gates.mjs --id audit-tests含在--without playwright的输出里。Node 20.20.2 与 Node 22.14.0 都是PASS audit-tests,ratchet failing 21, baseline 21。基线从父提交的 22 条已知失败减到 21 条。没有新失败。删掉的基线只有这一行。
R28 a document's labels (根因:/ 时间线:) are not counted as participants in a multi-source person。R24 Step 1.5那一行留在基线里。Node 20.20.2 与 Node 22.14.0 的
node scripts/run-gates.mjs --without playwright都是8/8 gates passed。Node 22.14.0、DISTILLY_PLAYWRIGHT_ROOT=/tmp/pw-root的--requires playwright是3/3 gates passed。三份 acceptance 都打印验收结果:18/18 通过。us-house 含FAIL · units=2744 speakers=14 attributed=86,且「retrospect 两次产物字节相同」仍通过。Rollback
回退本分支相对
9c8f1ceb464988f4273b2c5fc4bfc4bbe33af3ec的三笔提交。栈停在 dot-skill-test,dot-skill 保留。