HuShield

Changelog

Every release, newest first. Pulled live from GitHub Releases.

  1. v0.1.0 — First public release

    v0.1.0

    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.