Skip to content

Develop - #480

Merged
cristibleotiu merged 4 commits into
mainfrom
develop
Aug 4, 2026
Merged

Develop#480
cristibleotiu merged 4 commits into
mainfrom
develop

Conversation

@toderian

@toderian toderian commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

No description provided.

aledefra and others added 4 commits July 29, 2026 13:11
* feat: gate dauth by registry oracles

* fix: code quality

* fix: new plugin stop method

* chore: inc ver
* feat: add dauth job secret endpoints

* fix: require job_secrets bundle shape

* fix: simplification

* fix: protect dAuth secret requests from replay

* fix

* feat: sync dAuth secrets through registry peers

* fix: refresh dAuth registry authorization

* refactor: simplify dAuth registry refresh

* chore: inc ver
* feat(red_mesh): geographic vantage-point comparison + origin countries

Stamp per-node origin country into the job archive and add a durable per-country/per-node comparison for comparison-mode jobs.

- WorkerReportMeta.country; UiAggregate.country_breakdown + node_comparison
- comparison_mode launch flag with tiered port assignment (mirror a bounded comparison tier + slice the bulk). Mirror keeps the operator's full-range choice; Slice tiers. Reuses COMMON_PORTS + new COMPARISON_MIRROR_PORT_CAP
- graybox standard bundle mirrored in comparison mode
- node_comparison captures reachability/timeouts/latency incl. fully-failed nodes; country resolved via netmon CT: tags
- unit tests for tiered/full-mirror assignment and node_comparison

* fix(red_mesh): Slice splits the chosen range, mirror only standard ports

Comparison mode no longer mirrors small ranges. Slice mirrors just the standard COMMON_PORTS (the compared set) and splits the operator's chosen range across nodes for coverage; Mirror scans the whole range on every node. Removes the port cap constant. Tests updated: a 1-33 range now slices 33/33/32 across 3 nodes; Mirror = 52 on each.

* fix(red_mesh): separate blocking signals from reachability

What changed:
- Keep node comparison status focused on whether a vantage point returned reachable results.
- Preserve blocking and rate-limiting detections as advisory metrics instead of overriding reached status.

Why:
- A reachable node can still detect blocking behavior; folding both concepts into one status produced misleading comparison results.

Validation:
- docker exec rm3 python3 -m unittest test_finalization_aggregation test_launch_service: 22 tests passed
- git diff --check: pass

* feat(red_mesh): add thorough network timeout profile

Persist and validate an opt-in network-only timeout profile while keeping Standard as the archive-compatible default. Route ordinary target waits through the capped resolver and retain timing probes, Dune pacing, and orchestration waits unchanged.

* fix(red_mesh): preserve worker comparison evidence

Capture per-worker finding counts and signatures before aggregate deduplication. Base traffic signals on qualified responsive-outcome windows, merge count evidence across threads, and recompute node/pass flags while retaining legacy fields.

* fix(red_mesh): default probe timeout fixtures to standard

* fix(red_mesh): preserve responsive evidence semantics

* fix(red_mesh): canonicalize numeric finding evidence

* feat(red_mesh): capture per-vantage response evidence

Geographic comparison exists to answer whether a target responds
differently depending on where the request originates, but no per-vantage
response content was ever recorded — only scanner telemetry.

Add a comparison-only worker phase that probes the mirrored comparison
tier and records what the target answered: DNS resolution, TLS certificate
identity, HTTP status/final URL/title/headers/body hash, and a scrubbed
body excerpt. Reuses the existing TLS connect, SAN parse, requests.get and
<title> helpers, and routes every wait through _target_timeout so the
THOROUGH profile applies without new literals.

comparison_ports was computed and archived but never reached the worker;
it is now passed to the index-0 worker only, because the tier is node-wide
evidence rather than per-thread work. The phase carries no completion
marker, since the progress denominator counts feature markers.

Excerpts are capped at 512 bytes on a UTF-8 boundary, gated to textual
content types, and redacted before truncation so a credential straddling
the cap cannot survive as a prefix.

response_evidence is deliberately not a cross-worker aggregated field: a
deep merge would collapse every vantage into one colliding structure, the
defect RM-049 had to repair for findings.

Refs RM-050

* chore: increment version
@cristibleotiu
cristibleotiu merged commit 04b82ed into main Aug 4, 2026
4 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.

4 participants