chore: stage all in-progress work before repo split
CI / test (push) Has been cancelled

Web app: new entities (Image, RenderedAsset, SharedImage, Token,
DeviceImageHistory), enums, repositories, controllers, message handlers,
migrations, tests, frontend upload/library/sticker UI, Vue components.

Firmware: EPD background screen binaries + gen scripts, setup_bg header.

Infra: ddev config, test bundle, gitignore coverage dir.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-06 12:11:31 -04:00
parent dd0970ed7c
commit 4002ff9fbf
156 changed files with 27333 additions and 92 deletions
@@ -0,0 +1,32 @@
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"></head>
<body style="font-family:system-ui,sans-serif;background:#fdf6ee;margin:0;padding:2rem 1rem">
<div style="max-width:480px;margin:0 auto;background:#fff;border-radius:12px;overflow:hidden;border:1px solid #e8d9c4">
<div style="padding:1.5rem">
<p style="color:#8a7060;font-size:.875rem;margin-bottom:.5rem">pictureFrame</p>
<h1 style="font-size:1.25rem;font-weight:700;color:#3a2e22;margin-bottom:.5rem">{{ sharer.email }} shared a photo with you</h1>
<p style="color:#8a7060;font-size:.875rem;margin-bottom:1.25rem">Add it to your frame or decline — it's up to you.</p>
</div>
<img src="{{ absolute_url('/api/images/' ~ image.id ~ '/thumbnail') }}"
alt="Shared photo" width="480"
style="display:block;width:100%;max-width:480px;height:auto">
<div style="padding:1.5rem;display:flex;flex-direction:column;gap:.75rem">
<a href="{{ absolute_url('/token/' ~ approveToken.uuid ~ '/approve') }}"
style="display:block;padding:1rem;background:#c97c3a;color:#fff;border-radius:10px;text-align:center;text-decoration:none;font-weight:700;font-size:1rem">
Add to my frame
</a>
<a href="{{ absolute_url('/token/' ~ declineToken.uuid ~ '/decline?back=' ~ approveToken.uuid) }}"
style="display:block;padding:1rem;background:transparent;color:#8a7060;border:1.5px solid #e8d9c4;border-radius:10px;text-align:center;text-decoration:none;font-weight:600;font-size:.9rem">
No thanks
</a>
</div>
<div style="padding:1rem 1.5rem;border-top:1px solid #e8d9c4;font-size:.75rem;color:#aaa">
These links expire in {{ (approveToken.expiresAt.timestamp - 'now'|date('U')) // 86400 }} days.
</div>
</div>
</body>
</html>
@@ -0,0 +1,9 @@
{{ sharer.email }} shared a photo with you on pictureFrame.
Add to my frame:
{{ absolute_url('/token/' ~ approveToken.uuid ~ '/approve') }}
No thanks (decline):
{{ absolute_url('/token/' ~ declineToken.uuid ~ '/decline?back=' ~ approveToken.uuid) }}
These links expire in {{ (approveToken.expiresAt.timestamp - 'now'|date('U')) // 86400 }} days.