Rename the entire workspace:
- Crate packages: quicnprotochat-{core,proto,server,client,gui,p2p,mobile} -> quicproquo-*
- Binary names: quicnprotochat -> qpq, quicnprotochat-server -> qpq-server,
quicnprotochat-gui -> qpq-gui
- Default files: *-state.bin -> qpq-state.bin, *-server.toml -> qpq-server.toml,
*.db -> qpq.db
- Environment variable prefix: QUICNPROTOCHAT_* -> QPQ_*
- App identifier: chat.quicnproto.gui -> chat.quicproquo.gui
- Proto package: quicnprotochat.bench -> quicproquo.bench
- All documentation, Docker, CI, and script references updated
HKDF domain-separation strings and P2P ALPN remain unchanged for
backward compatibility with existing encrypted state and wire protocol.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
55 lines
1.9 KiB
HTML
55 lines
1.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>quicproquo</title>
|
|
<style>
|
|
body { font-family: system-ui, sans-serif; margin: 1rem; }
|
|
button { margin: 0.25rem; padding: 0.5rem 1rem; cursor: pointer; }
|
|
#output { white-space: pre-wrap; background: #f0f0f0; padding: 0.75rem; margin-top: 1rem; min-height: 4rem; border-radius: 4px; }
|
|
.error { color: #c00; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>quicproquo</h1>
|
|
<p>
|
|
<button id="whoami">Whoami</button>
|
|
<button id="health">Health</button>
|
|
</p>
|
|
<label>State path: <input id="statePath" type="text" value="qpq-state.bin" size="32" /></label>
|
|
<br />
|
|
<label>Server: <input id="server" type="text" value="127.0.0.1:7000" size="24" /></label>
|
|
<div id="output">Click Whoami or Health. Results appear here.</div>
|
|
|
|
<script>
|
|
const output = document.getElementById('output');
|
|
const statePath = document.getElementById('statePath');
|
|
const server = document.getElementById('server');
|
|
|
|
function show(result, isError = false) {
|
|
output.textContent = result;
|
|
output.className = isError ? 'error' : '';
|
|
}
|
|
|
|
const invoke = window.__TAURI__?.core?.invoke;
|
|
if (!invoke) {
|
|
show('Tauri API not available (not running inside Tauri?).', true);
|
|
} else {
|
|
document.getElementById('whoami').addEventListener('click', function () {
|
|
show('Running whoami…');
|
|
invoke('whoami', { statePath: statePath.value.trim(), password: null })
|
|
.then(function (s) { show(s); })
|
|
.catch(function (e) { show(String(e), true); });
|
|
});
|
|
document.getElementById('health').addEventListener('click', function () {
|
|
show('Running health…');
|
|
invoke('health', { server: server.value.trim() })
|
|
.then(function (s) { show(s); })
|
|
.catch(function (e) { show(String(e), true); });
|
|
});
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|