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.
151 lines
4.9 KiB
JavaScript
151 lines
4.9 KiB
JavaScript
// Closing CTA + Footer.
|
|
|
|
function Closing() {
|
|
return (
|
|
<section className="section closing">
|
|
<style>{`
|
|
.closing {
|
|
padding-block: clamp(100px, 14vh, 180px);
|
|
position: relative; overflow: hidden;
|
|
text-align: center;
|
|
}
|
|
.closing-glow {
|
|
position: absolute; inset: 0;
|
|
pointer-events: none;
|
|
}
|
|
.closing-inner {
|
|
position: relative;
|
|
max-width: 900px; margin: 0 auto;
|
|
}
|
|
.closing-title {
|
|
font-size: clamp(40px, 6vw, 84px);
|
|
font-weight: 500; letter-spacing: -0.03em;
|
|
line-height: 1.02;
|
|
text-wrap: balance;
|
|
}
|
|
.closing-title .accent { color: var(--accent); }
|
|
.closing-title em {
|
|
font-style: normal;
|
|
background: linear-gradient(180deg, var(--accent), oklch(0.62 0.18 18));
|
|
-webkit-background-clip: text;
|
|
background-clip: text;
|
|
color: transparent;
|
|
}
|
|
.closing-sub {
|
|
margin-top: 28px;
|
|
font-size: clamp(17px, 1.6vw, 21px);
|
|
color: var(--fg-dim);
|
|
text-wrap: balance;
|
|
max-width: 640px; margin-inline: auto;
|
|
}
|
|
.closing-cta {
|
|
margin-top: 36px;
|
|
display: inline-flex; flex-direction: column; align-items: center; gap: 14px;
|
|
}
|
|
.closing-cta .btn { height: 56px; padding: 0 28px; font-size: 16px; }
|
|
.closing-cta .row {
|
|
display: flex; gap: 12px; align-items: center; flex-wrap: wrap;
|
|
justify-content: center;
|
|
}
|
|
`}</style>
|
|
|
|
<Glow color="oklch(0.74 0.175 35 / 0.35)" size={1000}
|
|
style={{ top: "20%", left: "50%", transform: "translateX(-50%)" }} />
|
|
<Glow color="oklch(0.45 0.10 35 / 0.20)" size={600}
|
|
style={{ bottom: "-200px", left: "50%", transform: "translateX(-50%)" }} />
|
|
|
|
<div className="wrap closing-inner">
|
|
<h2 className="closing-title">
|
|
If you can <em>describe</em> it,
|
|
<br/>you can <em>build</em> it.
|
|
</h2>
|
|
<p className="closing-sub">
|
|
And you can keep building it — all the way to customers.
|
|
<br />No new tools. No homework. No going back to the wall.
|
|
</p>
|
|
|
|
<div className="closing-cta">
|
|
<div className="row">
|
|
<a href="Beta Signup.html" className="btn btn-primary">
|
|
Request invite <Arrow />
|
|
</a>
|
|
<a href="#how" className="btn btn-ghost">See how it works</a>
|
|
</div>
|
|
<TrustStrip items={["No credit card", "No homework", "No new tools to learn"]} />
|
|
</div>
|
|
</div>
|
|
</section>
|
|
);
|
|
}
|
|
|
|
function Footer() {
|
|
return (
|
|
<footer className="vibn-footer">
|
|
<style>{`
|
|
.vibn-footer {
|
|
position: relative;
|
|
padding: 40px 0 32px;
|
|
border-top: 1px solid var(--hairline);
|
|
background: oklch(0.14 0.008 60);
|
|
}
|
|
.vibn-footer-inner {
|
|
display: flex; align-items: flex-start; justify-content: space-between;
|
|
gap: 32px;
|
|
flex-wrap: wrap;
|
|
}
|
|
.vibn-footer-trust {
|
|
display: flex; gap: 20px; align-items: center;
|
|
flex-wrap: wrap;
|
|
font-family: var(--font-mono);
|
|
font-size: 12px;
|
|
color: var(--fg-mute);
|
|
letter-spacing: 0.03em;
|
|
}
|
|
.vibn-footer-trust .item {
|
|
display: inline-flex; align-items: center; gap: 8px;
|
|
}
|
|
.vibn-footer-trust .sep { color: var(--fg-faint); }
|
|
.vibn-footer-bottom {
|
|
margin-top: 24px;
|
|
padding-top: 20px;
|
|
border-top: 1px solid var(--hairline);
|
|
display: flex; justify-content: space-between; align-items: center;
|
|
gap: 16px;
|
|
flex-wrap: wrap;
|
|
font-family: var(--font-mono);
|
|
font-size: 11px;
|
|
color: var(--fg-faint);
|
|
letter-spacing: 0.04em;
|
|
}
|
|
.vibn-footer-links {
|
|
display: flex; gap: 18px;
|
|
}
|
|
.vibn-footer-links a:hover { color: var(--fg-dim); }
|
|
`}</style>
|
|
<div className="wrap">
|
|
<div className="vibn-footer-inner">
|
|
<Logo />
|
|
<div className="vibn-footer-trust">
|
|
<span className="item">🇨🇦 Built in Canada</span>
|
|
<span className="sep">·</span>
|
|
<span className="item">Your data stays safe</span>
|
|
<span className="sep">·</span>
|
|
<span className="item">No credit card to start</span>
|
|
</div>
|
|
</div>
|
|
<div className="vibn-footer-bottom">
|
|
<span>© 2026 Vibn Inc. · Made for makers, not engineers.</span>
|
|
<div className="vibn-footer-links">
|
|
<a href="#">Privacy</a>
|
|
<a href="#">Terms</a>
|
|
<a href="#">Status</a>
|
|
<a href="#">Changelog</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
);
|
|
}
|
|
|
|
Object.assign(window, { Closing, Footer });
|