Commit graph

4 commits

Author SHA1 Message Date
Natalie
4472993341 chore(redroid): update self-path to @ct/@applications after reorg
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 11:41:55 -04:00
Natalie
dbe2b2a2f5 chore(infra): add .infra.yaml (convention:infra_manifest) for infra-net reconcile
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 10:10:18 -04:00
Natalie
076da9e726 fix(security): escape reflected ?title= in adb-keyboard console (XSS)
The console label (from ?title=) was substituted into HTML via str.format with no
escaping, and the iframe src was built from the raw query string — a reflected-XSS
vector on the loopback console. html.escape the label, and rebuild kbd_src from only
the known keys (title/app) re-encoded + escaped.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 15:14:19 -04:00
Natalie
b6709a755d feat(redroid): the shared redroid Android box app
Owns the box-side services for the lilith screening tools (Mr. Number, WhatsApp),
extracted from the duplicated cloud/ dirs in @mr-number / @whatsapp:
- cloud/adb-keyboard, cloud/ocr-service (mrnumber-ocr systemd unit), cloud/terraform
  (read-only IaC reference; droplet owned by uvlava).
- deploy/deploy-droplet.sh — push + (re)start the box services.

The screening apps drive this box over adb; they no longer carry their own copies.
Shared client code lives in @lilith/redroid-client (PyPI) + @lilith/redroid-mcp (Verdaccio).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-28 15:07:59 -04:00