7 Commits

Author SHA1 Message Date
chahinebrini
e14a36f95a fix(backend): keep mdmId when device exists but is disenrolled; add exists flag 2026-06-18 06:28:03 +02:00
chahinebrini
bb8e0d3f62 fix(backend): mdm.get always returns full status shape even when not enrolled 2026-06-18 06:10:33 +02:00
chahinebrini
6245fc4573 fix(magic): real MDM supervised state, mdmId matching, MDM status for unknown USB devices 2026-06-17 23:47:33 +02:00
chahinebrini
b87ec08431 feat(mdm): remove mdm_lock type, derive lockProfileInstalled from nefilter state 2026-06-17 22:32:40 +02:00
chahinebrini
4ee6849f3f feat(backend): add cooldown and cancel-cooldown endpoints 2026-06-16 20:24:57 +02:00
chahinebrini
77edd67cbe fix(magic): explicit imports + staging defaults + sheet height
- backend/api/magic/register: explicit import of MAGIC_DEVICE_LIMIT
  and createAdGuardClient (Nitro auto-import was missing them
  → ReferenceError → HTTP 500 on /api/magic/register)
- mac-app: default backendBaseUrl falls back to staging.rebreak.org
  (app.rebreak.org serves wrong TLS cert)
- native MagicSheet: fallback download/dmg URLs point to staging
- native settings: Magic sheet capped at detents=[0.85] so AppHeader
  stays visible
- bundles all in-flight Magic feature work (pair create/redeem,
  device endpoints, schema, adguard utils, mac-app, locales)
2026-06-03 08:25:02 +02:00
chahinebrini
c1edef8abd feat(magic): RebreakMagic device-binding + DNS profile
- backend: /api/magic/{register,devices,profile,release} + AdGuard provisioning + 24h cooldown
- prisma: magic_binding_fields migration (additive on UserDevice)
- mac-app: Phase 2 - Login + MacRegistration + Profile install
- marketing: landing section + /download/rebreakmagic + DMG
- lyra: forbidden phrases + RebreakMagic coach guidance
2026-06-02 09:15:19 +02:00