Problem
#1970 (opt-in federated fleet intelligence) needs self-hosted instances to import an anonymized signal/signature bundle from a peer or a chosen collector and fold it into local calibration + a "your gate precision vs peer median" benchmark. #1970's own Requirements already settle the shape (opt-in only, HMAC-anonymized, never sends code/diffs/logins), but the one piece deliberately left open is: what stops a malicious or compromised peer from poisoning another operator's calibration by submitting a fabricated bundle? That's the actual trust-gating design this issue exists to resolve — everything else in #1970 can and should proceed in parallel without presupposing the answer (see the sibling export/collector-client/docs issues, none of which are blocked by this one).
Area
src/selfhost/orb-collector.ts, src/orb/analytics.ts (existing local calibration this bundle draws from), the future import/validation path this design will be implemented against (a sibling contributor-open issue, filed once this design lands).
Proposal (open questions this design pass needs to answer — not yet decided)
- Signature scheme: HMAC keyed on what — a per-instance long-lived key established at opt-in time, a rotating key, or something else? How does a receiving instance obtain/trust a sender's public verification material without a central authority (matches
ORB_AIR_GAP's existing no-central-service posture)?
- Poisoning resistance: what makes a single bad actor's bundle unable to meaningfully skew another operator's local calibration or the peer-median benchmark — outlier rejection, a reputation/trust score per peer built up over time, a cap on how much any single peer's data can move the aggregate, or some combination? State the actual rule, not "detect anomalies."
- Peer/collector trust model: when an operator points at a self-run collector vs. a peer-to-peer bundle exchange, does the trust-gating rule differ between the two modes?
- Abuse recovery: if an operator later discovers they imported a poisoned bundle, is there a way to identify and discount it retroactively, or is prevention-only sufficient for v1?
Deliverables
- A written design spec: the signature/key-trust scheme, the concrete poisoning-resistance rule (with justification), and whether peer vs. collector modes differ.
- Explicit sign-off before the import+validation implementation issue (sibling to this one, blocked by it) is unblocked for a contributor.
Resources
Boundaries
Problem
#1970 (opt-in federated fleet intelligence) needs self-hosted instances to import an anonymized signal/signature bundle from a peer or a chosen collector and fold it into local calibration + a "your gate precision vs peer median" benchmark. #1970's own Requirements already settle the shape (opt-in only, HMAC-anonymized, never sends code/diffs/logins), but the one piece deliberately left open is: what stops a malicious or compromised peer from poisoning another operator's calibration by submitting a fabricated bundle? That's the actual trust-gating design this issue exists to resolve — everything else in #1970 can and should proceed in parallel without presupposing the answer (see the sibling export/collector-client/docs issues, none of which are blocked by this one).
Area
src/selfhost/orb-collector.ts,src/orb/analytics.ts(existing local calibration this bundle draws from), the future import/validation path this design will be implemented against (a sibling contributor-open issue, filed once this design lands).Proposal (open questions this design pass needs to answer — not yet decided)
ORB_AIR_GAP's existing no-central-service posture)?Deliverables
Resources
src/selfhost/orb-collector.ts(existing local calibration export surface,ORB_AIR_GAPposture)src/orb/analytics.tsBoundaries