This commit addresses the issue where DeepSeek's raw XML markup (like <tool_calls> and <think>) was leaking into chat history, causing hallucinations in subsequent turns. It also patches a vulnerability in the git commit tool where arbitrary shell injection was possible. Additionally, it includes UX copy and color contrast adjustments for the marketing homepage breadcrumbs.
168 lines
6.5 KiB
HTML
168 lines
6.5 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<title>Vibn — Request an invite</title>
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
<link rel="icon" type="image/png" href="assets/logo-black.png" />
|
|
<link href="https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&family=Geist+Mono:wght@400;500&display=swap" rel="stylesheet" />
|
|
|
|
<style>
|
|
:root {
|
|
--bg: oklch(0.155 0.008 60);
|
|
--bg-1: oklch(0.185 0.009 60);
|
|
--bg-2: oklch(0.225 0.010 60);
|
|
--hairline: oklch(0.32 0.010 60 / 0.55);
|
|
--hairline-2: oklch(0.40 0.012 60 / 0.35);
|
|
--fg: oklch(0.97 0.005 80);
|
|
--fg-dim: oklch(0.78 0.006 80);
|
|
--fg-mute: oklch(0.58 0.006 80);
|
|
--fg-faint: oklch(0.42 0.006 80);
|
|
|
|
--accent: oklch(0.74 0.175 35);
|
|
--accent-soft: oklch(0.74 0.175 35 / 0.18);
|
|
--accent-glow: oklch(0.74 0.175 35 / 0.35);
|
|
--accent-fg: #1a0f0a;
|
|
|
|
--ok: oklch(0.78 0.16 155);
|
|
|
|
--font-sans: "Geist", ui-sans-serif, system-ui, -apple-system, sans-serif;
|
|
--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;
|
|
}
|
|
|
|
* { box-sizing: border-box; }
|
|
html, body { margin: 0; padding: 0; min-height: 100%; }
|
|
body {
|
|
background: var(--bg);
|
|
color: var(--fg);
|
|
font-family: var(--font-sans);
|
|
line-height: 1.45;
|
|
-webkit-font-smoothing: antialiased;
|
|
text-rendering: optimizeLegibility;
|
|
overflow-x: hidden;
|
|
}
|
|
body::before {
|
|
content: "";
|
|
position: fixed; inset: 0;
|
|
background-image:
|
|
linear-gradient(to right, oklch(0.30 0.01 60 / 0.10) 1px, transparent 1px),
|
|
linear-gradient(to bottom, oklch(0.30 0.01 60 / 0.10) 1px, transparent 1px);
|
|
background-size: 56px 56px;
|
|
mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, #000 30%, transparent 80%);
|
|
-webkit-mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, #000 30%, transparent 80%);
|
|
pointer-events: none;
|
|
z-index: 0;
|
|
}
|
|
body::after {
|
|
content: "";
|
|
position: fixed; inset: 0;
|
|
pointer-events: none;
|
|
z-index: 1;
|
|
opacity: 0.035;
|
|
mix-blend-mode: overlay;
|
|
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.85'/></svg>");
|
|
}
|
|
|
|
a { color: inherit; text-decoration: none; }
|
|
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
|
|
h1, h2, h3 { margin: 0; font-weight: 500; letter-spacing: -0.02em; line-height: 1.05; }
|
|
p { margin: 0; }
|
|
::selection { background: var(--accent); color: var(--accent-fg); }
|
|
|
|
.wrap {
|
|
position: relative;
|
|
width: 100%;
|
|
max-width: 1200px;
|
|
margin: 0 auto;
|
|
padding-inline: clamp(20px, 4vw, 56px);
|
|
z-index: 2;
|
|
}
|
|
|
|
.nav {
|
|
position: sticky; top: 0; z-index: 50;
|
|
backdrop-filter: blur(12px) saturate(140%);
|
|
background: oklch(0.155 0.008 60 / 0.55);
|
|
border-bottom: 1px solid transparent;
|
|
transition: border-color .2s;
|
|
}
|
|
.nav.scrolled { border-bottom-color: oklch(0.30 0.01 60 / 0.4); }
|
|
.nav-inner {
|
|
display: flex; align-items: center; justify-content: space-between;
|
|
height: 64px;
|
|
}
|
|
.logo {
|
|
display: inline-flex; align-items: center; gap: 9px;
|
|
font-weight: 600; font-size: 17px; letter-spacing: -0.02em;
|
|
}
|
|
.logo-mark {
|
|
width: 26px; height: 26px; border-radius: 50%;
|
|
background: linear-gradient(135deg, var(--accent) 0%, oklch(0.65 0.20 18) 100%);
|
|
box-shadow: 0 0 22px var(--accent-glow), inset 0 1px 0 oklch(1 0 0 / 0.25);
|
|
display: grid; place-items: center;
|
|
color: var(--accent-fg);
|
|
flex-shrink: 0;
|
|
}
|
|
.logo-mark svg { display: block; }
|
|
.logo-caret { animation: caret-blink 1.4s steps(2) infinite; }
|
|
@keyframes caret-blink { 50% { opacity: 0.25; } }
|
|
.nav-back {
|
|
color: var(--fg-mute); font-size: 14px;
|
|
display: inline-flex; align-items: center; gap: 6px;
|
|
}
|
|
.nav-back:hover { color: var(--fg); }
|
|
|
|
.eyebrow {
|
|
display: inline-flex; align-items: center; gap: 8px;
|
|
font-family: var(--font-mono);
|
|
font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
|
|
color: var(--fg-mute);
|
|
}
|
|
.eyebrow::before {
|
|
content: ""; width: 5px; height: 5px; border-radius: 50%;
|
|
background: var(--accent); box-shadow: 0 0 12px var(--accent-glow);
|
|
}
|
|
|
|
.mono { font-family: var(--font-mono); }
|
|
|
|
.btn {
|
|
display: inline-flex; align-items: center; justify-content: center;
|
|
gap: 10px;
|
|
height: 50px; padding: 0 22px;
|
|
border-radius: 999px;
|
|
font-weight: 500;
|
|
transition: transform .12s, box-shadow .2s, background .2s;
|
|
white-space: nowrap;
|
|
}
|
|
.btn-primary {
|
|
background: var(--accent);
|
|
color: var(--accent-fg);
|
|
box-shadow:
|
|
0 0 0 1px oklch(0.84 0.16 35 / 0.5) inset,
|
|
0 10px 40px -10px var(--accent-glow),
|
|
0 0 50px -8px var(--accent-glow);
|
|
}
|
|
.btn-primary:hover { transform: translateY(-1px); }
|
|
.btn-primary[disabled] { opacity: .55; cursor: not-allowed; transform: none; }
|
|
.btn-primary .arrow { transition: transform .15s; }
|
|
.btn-primary:hover .arrow { transform: translateX(3px); }
|
|
.btn-ghost {
|
|
color: var(--fg-dim);
|
|
border: 1px solid var(--hairline);
|
|
background: oklch(0.20 0.009 60 / 0.4);
|
|
backdrop-filter: blur(8px);
|
|
}
|
|
.btn-ghost:hover { color: var(--fg); border-color: var(--hairline-2); }
|
|
</style>
|
|
|
|
<script src="https://unpkg.com/react@18.3.1/umd/react.development.js" integrity="sha384-hD6/rw4ppMLGNu3tX5cjIb+uRZ7UkRJ6BPkLpg4hAu/6onKUg4lLsHAs9EBPT82L" crossorigin="anonymous"></script>
|
|
<script src="https://unpkg.com/react-dom@18.3.1/umd/react-dom.development.js" integrity="sha384-u6aeetuaXnQ38mYT8rp6sbXaQe3NL9t+IBXmnYxwkUI2Hw4bsp2Wvmx4yRQF1uAm" crossorigin="anonymous"></script>
|
|
<script src="https://unpkg.com/@babel/standalone@7.29.0/babel.min.js" integrity="sha384-m08KidiNqLdpJqLq95G/LEi8Qvjl/xUYll3QILypMoQ65QorJ9Lvtp2RXYGBFj1y" crossorigin="anonymous"></script>
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
<script type="text/babel" src="beta.jsx"></script>
|
|
</body>
|
|
</html>
|