feat(web): refresh marketing site — accurate timeline, live changelog, cross-boundary positioning
The site had drifted ~6 months behind the product. Three problems
addressed in one push:
1. Timeline ("Shipped, not promised") topped out at v0.6–0.8 and
claimed "66 npm releases" — both stale. Adds a v0.9 → 1.34 tier
covering daemon, multi-mesh, multi-session correctness train,
refuse-to-kick on control-plane, env-var fallback. Updates count
to "120+ npm releases through v1.34.15." Rewrites the "next"
block from the now-shipped "Daemon redesign · per-topic
encryption" to the actually-pending "HKDF cross-machine identity
· session capabilities · A2A interop · self-host packaging ·
federation."
2. Hero subhead leaned into the original "Claude Code peer mesh"
framing, which is undercut by Anthropic Agent Teams (Feb 2026,
single-machine native mailbox). Now reframes claudemesh as the
encrypted backbone where Claude Code sessions, autonomous
agents, and humans coordinate "across machines, across users,
across organizations" — the four words that distinguish the
product from anything Anthropic structurally can ship from
inside Claude Code.
3. /changelog had three entries from April 2026 (v0.1.2 → v0.1.4)
and was 70+ versions out of date. Replaced with a curated
16-entry timeline from v0.1.0 → v1.34.15, hand-picked to tell
the story (load-bearing ships, not every patch). Adds links
back to docs/roadmap.md, .artifacts/specs/, and GitHub Releases.
New module: apps/web/src/modules/marketing/home/changelog-data.ts
holds the curated entries as a single source of truth. Imported by
both the /changelog page and a new home-page component
LatestReleases (compact 5-entry strip, slotted between Timeline
and Pricing) so they never disagree.
Misc fixes pulled in:
- timeline.tsx had glyph="layers" which isn't in SectionIcon's
valid set; switched to "grid" (changelog-data.ts uses same).
- changelog data extracted to a non-route module so Next.js's
route-export validator stops complaining about exporting
CHANGELOG_ENTRIES from app/.../changelog/page.tsx.
Pre-existing typecheck noise in packages/ui/web/sidebar.tsx
(csstype version mismatch) + billing modules unrelated to this
change. My files all typecheck clean.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -85,6 +85,23 @@ const MILESTONES = [
|
||||
],
|
||||
stat: "43 MCP tools total",
|
||||
},
|
||||
{
|
||||
version: "v0.9 → 1.34",
|
||||
phase: "Daemon · multi-mesh · multi-session",
|
||||
color: "var(--cm-cactus)",
|
||||
items: [
|
||||
"Persistent daemon — long-lived broker WS, durable outbox/inbox",
|
||||
"Universal multi-mesh daemon — one process, every joined mesh",
|
||||
"Per-session IPC tokens — auto-scope to the launched session",
|
||||
"Per-session broker presence — sibling sessions see each other",
|
||||
"Self-healing daemon lifecycle (auto-spawn, version probe)",
|
||||
"Multi-session correctness train — per-recipient SSE demux + inbox scoping",
|
||||
"Refuse-to-kick on control-plane (no more no-op kicks)",
|
||||
"Caller-stable idempotency on every send",
|
||||
"Stale CLAUDEMESH_CONFIG_DIR fallback",
|
||||
],
|
||||
stat: "1.34.15 shipped",
|
||||
},
|
||||
];
|
||||
|
||||
export const Timeline = () => {
|
||||
@@ -94,7 +111,7 @@ export const Timeline = () => {
|
||||
<section className="border-b border-[var(--cm-border)] bg-[var(--cm-bg)] px-6 py-24 md:px-12 md:py-32">
|
||||
<div className="mx-auto max-w-[var(--cm-max-w)]">
|
||||
<Reveal className="mb-6 flex justify-center">
|
||||
<SectionIcon glyph="layers" />
|
||||
<SectionIcon glyph="grid" />
|
||||
</Reveal>
|
||||
<Reveal delay={1}>
|
||||
<h2
|
||||
@@ -109,7 +126,8 @@ export const Timeline = () => {
|
||||
className="mx-auto mt-4 max-w-xl text-center text-[15px] leading-[1.6] text-[var(--cm-fg-secondary)]"
|
||||
style={{ fontFamily: "var(--cm-font-sans)" }}
|
||||
>
|
||||
66 npm releases. Every feature below is in production today.
|
||||
120+ npm releases through v1.34.15. Every feature below is in
|
||||
production today.
|
||||
</p>
|
||||
</Reveal>
|
||||
|
||||
@@ -210,8 +228,8 @@ export const Timeline = () => {
|
||||
className="text-[14px] text-[var(--cm-fg-tertiary)]"
|
||||
style={{ fontFamily: "var(--cm-font-serif)" }}
|
||||
>
|
||||
Daemon redesign · per-topic encryption · self-host
|
||||
packaging · federation
|
||||
HKDF cross-machine identity · session capabilities · A2A
|
||||
interop · self-host packaging · federation
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user