Skip to content

v0.1.0 — First public release

Latest

Choose a tag to compare

@jbrahy jbrahy released this 27 Jul 21:32

First public release of HuShield: a community-driven, privacy-first spam call and text filter for iOS.

What works

Backend (Go + MySQL) — production-ready and tested at 86.7% coverage.

  • App Attest challenge / verify / assert, with strictly-increasing counter replay protection
  • Trust-weighted, time-decaying scoring (30-day half-life) resolving to suspected (>= 2.0) and blocked (>= 5.0) tiers; admin overrides always win
  • Blocklist delta with keyset pagination, neighbor-spoof widening, crowd-sourced caller ID, and action:"unblock" tombstones so removals are not silently dropped by clients
  • On-demand single-number reputation lookup
  • APNs silent push to nudge clients to resync
  • Cold-start seeding from FTC/FCC public complaint data
  • Five migrations, go:embeded and applied automatically at startup

iOS client (native Swift) — builds and tests green on simulator.

  • SpamFilterKit: API client, App Attest enrollment/refresh, blocklist delta sync, keychain-backed token store
  • Call Directory extension for blocking and labeling calls
  • SMS Filter extension for fully offline message classification
  • SwiftUI app: Report / Lookup / Status / Setup
  • 100 unit tests plus view-model, integration, and XCUITest suites

Privacy

The only identity anywhere in this system is an Apple App Attest key_id. No accounts, no phone numbers tied to reporters, no contact upload, no analytics identifiers. This is the product, not a setting.

What is NOT yet verified

Being explicit, because these matter:

  • Real App Attest has never verified a genuine device attestation. ATTEST_MODE=apple has only been exercised against injected test material. See #8.
  • The extensions have never run on physical hardware. Simulator only.
  • The Dockerfile has never been built. See #1. Production deploys use the systemd pattern instead.
  • ATTEST_MODE=mock accepts any attestation and must never be used outside development.

Contributing

Genuinely wanted — there are 10 open issues, most labeled good-first-issue, drawn from real gaps rather than filler. Start with CONTRIBUTING.md.

Licensed Apache-2.0. The HuShield name is reserved — see TRADEMARK.md.