Skip to content

Commit 7449614

Browse files
ralyodioclaude
andcommitted
feat(ext): qrypt.chat tab embeds the live E2EE app (v3.4.0)
The qrypt.chat backend is already deployed (qrypt.chat → 200; CoinPay login + anon-invites merged to master). It's a full quantum-resistant E2EE PWA with SSE/POST messaging, contacts, media, and CoinPay/SMS login — and it has no X-Frame-Options, so it's embeddable. The Chat page's qrypt.chat tab now loads https://qrypt.chat in an iframe (lazy on first open), giving full login / contacts / messaging / media without reimplementing the encryption client. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 5529054 commit 7449614

28 files changed

Lines changed: 35 additions & 27 deletions

File tree

apps/desktop/extensions/ai-sidebar/chat.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ a { color:var(--cyan); }
5858
.composer input { flex:1; background:#04060c; color:var(--fg); border:1px solid var(--line); border-radius:8px; padding:9px; font:inherit; }
5959
.composer button { background:var(--cyan); color:#04060c; border:0; border-radius:8px; padding:0 16px; font-weight:700; cursor:pointer; }
6060

61+
#qrypt-frame { flex:1; width:100%; height:100%; border:0; display:block; background:var(--bg); }
6162
.soon { margin:60px auto; max-width:480px; text-align:center; color:var(--muted); padding:24px;
6263
border:1px dashed var(--line); border-radius:12px; }
6364
.hidden { display:none !important; }

apps/desktop/extensions/ai-sidebar/chat.html

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,12 @@ <h2>Connect to IRC</h2>
4949
</div>
5050
</section>
5151

52-
<!-- ===== qrypt.chat (placeholder) ===== -->
52+
<!-- ===== qrypt.chat (embeds the live E2EE app) ===== -->
5353
<section id="tab-qrypt" class="panel">
54-
<div class="soon">🔒 <strong>qrypt.chat</strong> — quantum-resistant E2EE messaging (CoinPay login, contacts, media). Lands once the qrypt.chat backend is live.</div>
54+
<iframe id="qrypt-frame"
55+
title="qrypt.chat"
56+
allow="camera; microphone; clipboard-write; autoplay; fullscreen"
57+
referrerpolicy="no-referrer"></iframe>
5558
</section>
5659

5760
<script type="module" src="chat.js"></script>

apps/desktop/extensions/ai-sidebar/chat.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ document.querySelectorAll('.tab').forEach((btn) => {
99
document.querySelectorAll('.tab').forEach((b) => b.classList.toggle('active', b === btn));
1010
const name = btn.dataset.tab;
1111
document.querySelectorAll('.panel').forEach((p) => p.classList.toggle('active', p.id === 'tab-' + name));
12+
if (name === 'qrypt') {
13+
const f = document.getElementById('qrypt-frame'); // load the live app on first open
14+
if (f && !f.getAttribute('src')) f.setAttribute('src', 'https://qrypt.chat/');
15+
}
1216
});
1317
});
1418

apps/desktop/extensions/ai-sidebar/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"manifest_version": 3,
33
"name": "TronBrowser",
4-
"version": "3.3.4",
4+
"version": "3.4.0",
55
"description": "TronBrowser — privacy-first, AI-native. Branded new tab, private search, CoinPay login, and a bring-your-own-keys AI sidebar.",
66
"icons": {
77
"16": "icons/icon-16.png",

apps/desktop/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@tronbrowser/desktop",
3-
"version": "3.3.4",
3+
"version": "3.4.0",
44
"private": true,
55
"description": "Desktop shell for the TronBrowser Chromium fork",
66
"type": "module",

apps/docs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@tronbrowser/docs",
3-
"version": "3.3.4",
3+
"version": "3.4.0",
44
"private": true,
55
"description": "Documentation site",
66
"type": "module",

apps/extensions/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@tronbrowser/extensions",
3-
"version": "3.3.4",
3+
"version": "3.4.0",
44
"private": true,
55
"description": "TronBrowser extension store — pay $1, list your MV3 extension (tronbrowser.dev/store)",
66
"type": "module",

apps/mobile/app.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"slug": "tronbrowserdev",
55
"owner": "profullstack",
66
"scheme": "tronbrowser",
7-
"version": "3.3.4",
7+
"version": "3.4.0",
88
"orientation": "portrait",
99
"userInterfaceStyle": "dark",
1010
"platforms": [

apps/mobile/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@tronbrowser/mobile",
3-
"version": "3.3.4",
3+
"version": "3.4.0",
44
"private": true,
55
"description": "TronBrowser mobile (Expo / React Native) — Phase 2",
66
"type": "module",

apps/web/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@tronbrowser/web",
3-
"version": "3.3.4",
3+
"version": "3.4.0",
44
"private": true,
55
"description": "TronBrowser marketing site + web dashboard",
66
"type": "module",

0 commit comments

Comments
 (0)