Conversation
Owner
Author
|
Superseded by #131 — same change re-committed with the project identity; branch kept. Generated by Claude Code |
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.
Summary
This is related to Kpa-clawbot#2089, but deliberately does not derive the value from the first-ingested raw frame. One content hash can be observed on different routes, so the implementation reports only what CoreScope has actually seen in non-empty
observation.path_jsonvalues. It does not claim to know the sender's permanent configuration.User-facing contract
Observed path hash: 2-byteMixed path hashes: 1/2-byteThe tooltip states that direct zero-hop copies provide no hash-size evidence and that the label is not proof of a permanent sender setting.
Implementation notes
StoreTxuses one byte of existing padding and remains 320 bytes on 64-bit builds.observedPathHashSizes; packet/WebSocket shapes exposeobserved_path_hash_sizes.Verification
Fresh on the final working tree:
-racecmd/servertest suitecmd/ingestortest suitego vet,gofmt, andgit diff --checkpublic/channels.jspublic/channels.jsThe broad
test-frontend-helpers.jssuite still has its two pre-existingfavStarfailures; this change does not touch that code or suppress those failures.Known limitation
MeshCore flood packets encode a hash width even when the route contains zero hops. This implementation intentionally leaves zero-hop/direct observations unknown, because CoreScope did not observe an actual relayed hop whose token width can serve as path evidence. That keeps the label conservative and independent of the first frame retained for a deduplicated transmission.
The existing content-hash migration has a separate legacy issue: after a duplicate collision, deleted rows can remain in several in-memory indexes until restart. This PR explicitly characterizes that behavior and does not rewrite those indexes; it only keeps the new evidence union consistent on every retained copy. A full atomic PacketStore duplicate merge belongs in a separate issue/PR.
An independent review found and drove fixes for client-decrypt cache enrichment and multi-row cross-batch collision evidence, then approved the final diff with no remaining feature blockers.
No staging, production, deployment, or upstream write was performed for this PR.