fix(verification): report full literal decoding coverage explicitly

This commit is contained in:
Luis Taffelli committed 2026-10-11 18:46:16 -03:00
1 parent 8ea0432ffc
commit 97b76aa20a
2 files changed
+17 -10

No files matched your search

+7 -5
View File
@@ -372,15 +372,17 @@ cover active and queued expiry, late replies and timer cleanup.
The Linux demo lane remains a separate `verify:hopper:linux` command. Hopper The Linux demo lane remains a separate `verify:hopper:linux` command. Hopper
6.4.2's ELF loader did not recognize the original 4,119-byte literal or three 6.4.2's ELF loader did not recognize the original 4,119-byte literal or three
non-ASCII byte strings in the measured fixtures. The lane retains complete raw non-ASCII byte strings in the measured fixtures. The lane retains complete raw
byte checks for those literals through source-owned symbols and reports absent byte checks for those literals through source-owned symbols. Recognition of the
recognition with decoded-object coverage explicitly unverified. Recognized original full-length literal is bound to its exact source address; its decoded
objects must still match their source bytes, encoding, filters and searches. object coverage remains explicitly unverified on Linux even when recognized.
Absent non-ASCII recognition also reports decoded-object coverage as unverified.
Recognized non-ASCII and control-text objects must still match their source
bytes, encoding, filters and searches.
A separate 548-byte ASCII literal requires native fragmentation, shortened A separate 548-byte ASCII literal requires native fragmentation, shortened
provider display, complete decoded fragments and dossier provenance on Linux; provider display, complete decoded fragments and dossier provenance on Linux;
the macOS lane retains the original full-length recognition requirement. These the macOS lane retains the original full-length recognition requirement. These
are observed fixture/build capabilities, not universal Hopper length limits. are observed fixture/build capabilities, not universal Hopper length limits.
Its Its lifecycle checks attempt competing CLI launches for the active target and a
lifecycle checks attempt competing CLI launches for the active target and a
different target, requiring rejection before either can change the owning different target, requiring rejection before either can change the owning
MCP session's documents or procedures. Lease boundary tests also preserve MCP session's documents or procedures. Lease boundary tests also preserve
unresponsive or malformed live endpoints while allowing confirmed stale unresponsive or malformed live endpoints while allowing confirmed stale
+10 -5
View File
@@ -125,6 +125,7 @@ async function verifySearchModes(call, address) {
(item) => long.startsWith(item.value) && item.value.startsWith("REA_"), (item) => long.startsWith(item.value) && item.value.startsWith("REA_"),
); );
assert.ok(longItem, "fixture omitted its real long literal"); assert.ok(longItem, "fixture omitted its real long literal");
if (!linux) assert.equal(longItem.address, raw.address);
assert.ok(long.startsWith(longItem.value)); assert.ok(long.startsWith(longItem.value));
assert.ok(longItem.provider_value.endsWith("…")); assert.ok(longItem.provider_value.endsWith("…"));
assert.equal(longItem.string.termination, "missing"); assert.equal(longItem.string.termination, "missing");
@@ -218,11 +219,15 @@ async function verifySearchModes(call, address) {
return { return {
fullLiteralSourceBytes: fullBytes.length, fullLiteralSourceBytes: fullBytes.length,
fragmentedLiteralSourceBytes: Buffer.byteLength(long), fragmentedLiteralSourceBytes: Buffer.byteLength(long),
fullLiteralRecognition: strings.some((item) => fullLiteralRecognition: {
item.value.startsWith("REA_LONG_LITERAL_"), address: raw.address,
) state: strings.some((item) => item.address === raw.address)
? "observed" ? "observed"
: "not_observed", : "not_observed",
// Linux validates the original through raw bytes; its required decoded
// fragment/dossier checks exercise the separate supported-size literal.
decodedObject: linux ? "unverified" : "verified",
},
...objects, ...objects,
}; };
} }