Stop a stale server from answering for this tree

The smoke script's build fingerprint asserted on the MCP reply, but the Go
layer decodes the HTTP answer into its own struct and re-emits a missing field
as zero, so a server from before the memory tiers still passed. Point the
fingerprint at the Python answer instead: /api/memory/working answers 404 on
4c6af87 and 200 here, both measured by starting each build myself.

Record the miss side of the rename rule. Whether a bare number renames its
subject depends on that memory's own sentence, so 「温度」 and 「温度24」 never
compare and an update goes unnoticed; both memories stay on the answer page,
so the miss costs a notice rather than a wrong number. Pin it with a test and
keep the mechanism, since comparing an unrenamed subject as a fallback would
put room numbers back in the ring as readings.

Correct the direction of the rule in the record: the rename slot is the token
after the subject word, not before it. A leading number becomes the subject
rather than fusing forward, which 「3 room holds 22 degrees」 shows by taking
「3」 as its subject.

门禁:pytest 384 passed;六文件 83(conflicts 27);三文件 35;ruff clean;
filesize clean;audit 32/2/6 clean;mypy 冷缓存 24 errors / 9 files(净 0);
pyright 0;go 全套 + gofmt 空;npm 产物未变;smoke PASS。
This commit is contained in:
ZacharyZhang-NY committed 2026-10-09 12:54:06 -04:00
1 parent 11e31eb7e3
commit 3d131e6a7e
3 files changed
+31 -5

No files matched your search

+13
View File
@@ -318,3 +318,16 @@ def test_an_identifier_with_no_reading_after_it_reads_as_a_quantity(tmp_path) ->
"3 and 4 are compared as one quantity that moved, so this pair is recorded and the holder "
"settles it — the boundary the rule does not cross, and the price of not hiding a disagreement"
)
def test_a_second_number_in_one_memory_hides_the_update(tmp_path) -> None:
service, database = _lane(tmp_path, ["温度 22 度", "温度 24 度 湿度 40"])
assert service.conflicts("wife") == [], (
"whether a bare number renames its subject depends on that memory's own sentence, so 「温度」 "
"and 「温度24」 never compare — the temperature moved and the store did not notice"
)
assert sorted(_search(tmp_path, database, "温度")) == ["温度 22 度", "温度 24 度 湿度 40"], (
"the fail-closed side of the boundary: nothing is suppressed, the reader sees both readings "
"and decides for themselves"
)