Skip to content

fix fingerprint use of mutable fields and detection node filtering - #270

Merged
stalep merged 1 commit into
Hyperfoil:mainfrom
willr3:fix_fingerprint_mutability
Aug 21, 2026
Merged

fix fingerprint use of mutable fields and detection node filtering#270
stalep merged 1 commit into
Hyperfoil:mainfrom
willr3:fix_fingerprint_mutability

Conversation

@willr3

@willr3 willr3 commented Aug 19, 2026

Copy link
Copy Markdown
Collaborator

The current implementation for fingerprint stores the source node names in the ValueEntity whenever it calculates a new Value. The name is a mutable field and storing it means having to potentially recalculate all fingerprints whenever a source node name changes. Instead, this PR changes fingerprints to using the source node ids as keys (an immutable field) and recreates the { [name] : value} object whenever it is needed for a DetectionNode's fingerprintFilter.

This PR will also update DetectionNode fingerprintFilters whenever the node name changes for the associated FingerprintNode. This will keep the filter in sync with mutable node name. The update uses the same method we currently use to keep JsNode parameter names in sync with name mutations to their source nodes.

@willr3
willr3 force-pushed the fix_fingerprint_mutability branch from 7b14f3b to 26ddc80 Compare August 19, 2026 11:22

@stalep stalep left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this pr looks good. We probably need to expose a method to fetch the fingerprint names for the cli and web ui.

Comment thread src/main/java/io/hyperfoil/tools/h5m/svc/NodeService.java
@willr3
willr3 force-pushed the fix_fingerprint_mutability branch from 26ddc80 to b1d5d9a Compare August 21, 2026 11:26
@willr3
willr3 force-pushed the fix_fingerprint_mutability branch from b1d5d9a to f695b03 Compare August 21, 2026 11:31
@stalep
stalep merged commit 4a2ded3 into Hyperfoil:main Aug 21, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants