mirror of
https://github.com/rohitg00/agentmemory.git
synced 2026-09-14 20:16:33 +08:00
v0.9.21
22 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
f1e7b2c577 |
fix(website): move Product Hunt badge into FeaturedIn (correct post_id 1144164)
Earlier PH badge URL pointed at post_id 773058 which returned 404 — the WebFetch I pulled the ID from grabbed a wrong number. Correct post_id is 1144164 per the official embed snippet from the PH "Embed" tab. Badge now resolves with HTTP 200 + Content-Type image/svg+xml against api.producthunt.com. Position fix: pulled the badge out of the Testimonials section (wrong place — buried below the fold) and added Product Hunt as a fourth entry in the existing FeaturedIn "AS FEATURED IN" bar at the top of the page where it sits naturally alongside AlphaSignal, Agentic AI Foundation, and Trendshift. - FeaturedIn ITEMS: Product Hunt entry added with the canonical featured.svg embed URL (theme=neutral to match the existing badges, no t= cache-buster since CDN cache is fine for a marketing surface) - FeaturedIn grid: 3-col → 4-col at desktop, 2-col at 980px, 1-col at 540px so the four cells stay balanced - next.config: api.producthunt.com added to remotePatterns so the Next image loader accepts the SVG badge - Testimonials: removed the broken badge row + the now-unused CSS (.badgeRow / .badgeLink / .badge); section keeps the use-cases + endorsements grid as before |
||
|
|
af1ba5b5e9 |
fix(website): update Peter Neyra quote to Cursor-backfill use case
PH discussion comment #5379518 is the specific, meatier framing of how Peter is using agentmemory: backfilled a full month of Cursor agent transcripts and saw the system pick up on pivots that he had moved away from. Concrete tool name + concrete time horizon reads much harder than the generic "tracking product pivots" framing that ended up in the earlier card. Also pointed the use-case card's href at the specific comment ID so hover-target lands on the right reply, not the thread top. |
||
|
|
255d8030e9 |
feat(website): split Testimonials into use-cases + endorsements + PH badge
The launch-thread quotes broke into two natural shapes — concrete use cases (Peter Neyra tracking product pivots, Pranav Prakash on two weeks of production use) deserve more weight than the shorter positioning endorsements. Top of section now embeds the official Product Hunt featured.svg badge so the live upvote count + day rank stays current without any client refresh. - Featured "HOW THEY USE IT" row: 2 large cards with a gold use-case tag chip + larger quote type - "WHAT THEY SAY" row: 4 compact cards in a 4-col grid - PH badge embedded at api.producthunt.com/widgets/embed-image/v1/ featured.svg?post_id=773058&theme=dark — live, no client JS - Responsive: use-cases 2→1 col at 980px, endorsements 4→2→1 |
||
|
|
57ceaf45c7 |
feat(website): add Testimonials section with PH launch-thread quotes
Six verbatim quotes pulled from the Product Hunt launch discussion, each linked back to the source comment for verification. Quotes cover the spectrum: concrete use cases (Peter Neyra on product-pivot tracking, Pranav Prakash on two weeks of production use), framing endorsements (Alper Tayfur, Mia Taylor on agentmemory's intent versus storage-only tools), and onboarding feel (Zoe Alexandra). Section header: "BUILDERS USING AGENTMEMORY" with the title "IN THE WILD." in the gold accent. 3-column grid above 980px, 2-column at tablet, single-column on mobile. Cards are clickable and route to the original PH comment thread. Slotted between Compare and Agents — social proof after the comparison table, before the agent-list grid. Matches the existing FeaturedIn aesthetic (charcoal border + iron fill + gold hover) so the section feels native, not bolted on. website/lib/generated-meta.json also picked up the v0.9.20 bump + the two new MCP tools shipped via #498 (memory_commit_lookup, memory_commits) — clean by-product of `npm run build`. - website/components/Testimonials.tsx: 6 verbatim quotes + attribution - website/components/Testimonials.module.css: 3/2/1 grid + card chrome - website/app/page.tsx: wired between Compare and Agents - website/lib/generated-meta.json: regenerated against v0.9.20 Site builds clean. |
||
|
|
6f228bd8c0 |
fix(website): compare section polish (#427)
User caught the section looking bad on the live merge: 1. Title "AGENTMEMORY VS. THE FIELD." was redundant (eyebrow already reads VS.) and wrapped ugly with FIELD. dangling on its own line. Shortened to "VS. THE FIELD." Eyebrow + title now read together as "VS. · VS. THE FIELD." which is still on-brand and fits one line at every viewport above 480px. 2. Added `text-wrap: balance` to .section-title globally so titles that DO need to wrap break at a balanced point instead of leaving orphan words. Affects every section's heading; net win — already verified other titles (Features TWELVE THINGS, CommandCenter TWO UIs, Agents SIX FIRST-PARTY, etc) render correctly. 3. Comparison NATIVE PLUGINS cell value was "6 (Claude/Codex/ OpenClaw/Hermes/pi/OpenHuman)" — that's 49 chars stuffed into a ~180px grid column, forcing multi-line wrap that looked cramped. Cell now reads just "6"; the agent names are already visible in the dedicated Agents grid two sections above. 4. Row grid: bumped agentmemory column from 1fr → 1.3fr at the expense of the label column (1.6fr → 1.4fr) so the longer cell values (95.2%, YES (APACHE-2.0), 2 (Qdrant, Neo4j)) have breathing room. Added `word-break: break-word` as a safety net for future entries. Padded the row 24px horizontally so cells don't kiss the section edge. Build clean. |
||
|
|
f1fbea3c08 |
feat(website): hero rebuild — npx CTA + inline validation + SSR star count (#425)
Five user-reported issues against agent-memory.dev v0.9.16: 1. AGENT/MEMORY title was clamp(54px, 12vw, 160px) — eating ~half the viewport on most desktop widths and forcing FeaturedIn below the fold. Reduced to clamp(44px, 9vw, 124px). Mobile-stacked variant now clamp(40px, 14vw, 72px) — cleaner. 2. Primary CTA was a generic "START IN 30 SECONDS" button that anchored to #install. Replaced with a copyable terminal command — `$ npx @agentmemory/agentmemory` rendered as a gold-bordered cell with "CLICK TO COPY" affordance. Copy → clipboard, transient "COPIED" state. Matches what users actually type. 3. FeaturedIn was a standalone section below the fold. Now inlined inside the hero (compact mode — no border, no own padding, transparent background) so AlphaSignal / Agentic AI Foundation / Trendshift validation lands above the fold. 4. Star count was missing from the hero CTA button. The component only fetched client-side from unauthenticated github.com/api which is rate-limited to ~60 req/hr/IP — first paint had no count, often forever on mobile (which is what the user screenshot showed). Hero is now an async server component; calls lib/github.ts fetchRepoStats (same path Nav already uses), passes the SSR'd count into GitHubStarButton via new optional initialStars prop. Client-side refetch still fires in useEffect as a best-effort refresh. 5. Mobile layout was unverified. Tightened all clamp() values, added explicit @media (max-width: 760px) breakpoint that drops padding, stacks the title, and reduces the chip size. The new HeroNpxCommand has its own mobile breakpoint at 640px that hides the "CLICK TO COPY" hint and stretches to full width. CTA stacks vertically now: copyable command (primary, gold border) on row 1, then "SEE IT MOVE" + STAR-with-count on row 2. FeaturedIn strip sits below row 2 as part of the above-the-fold validation. Build clean. No new deps. |
||
|
|
9ba346789b |
docs(website): refresh agent-memory.dev for v0.9.15+ (#415)
* docs(website): refresh agent-memory.dev for v0.9.15+ DevEx surface Drift accumulated across the website from v0.9.0 through v0.9.15. Each section caught up: CommandCenter: - "iii CONSOLE · OPTIONAL" → "iii CONSOLE · FIRST-CLASS". User pushback: the console gives engine-level visibility (workers, functions, queues, traces) and is now installed inline by the agentmemory CLI on first run from v0.9.16. Not optional. - Bullet "49 HTTP TRIGGERS" → "107 HTTP ENDPOINTS" to match generated-meta.json restEndpoints count. Dropped the stale "33 REGISTERED FUNCTIONS" subhead. - Section lede now mentions both UIs are first-class + inline- installed. Compare: - MCP TOOLS our column 44 → 51 (matches generated-meta.json). - New REST ENDPOINTS row (107) — competitors don't ship a REST shape per their docs, so dashes for mem0/letta/cognee. - New NATIVE PLUGINS row listing the 6 first-party agents + Cursor/Gemini CLI. Agents: - FEATURED expanded from 4 to 6 (added pi + OpenHuman). Codex CLI pitch updated to "6 hooks + MCP · native plugin" reflecting the hooks addition in PR #383. - Section title "FOUR FIRST-PARTY" → "SIX FIRST-PARTY". - Section lede now mentions `agentmemory connect <agent>` (shipped in v0.9.15 PR #402). Hero: - "START IN 60 SECONDS" CTA → "START IN 30 SECONDS". Cold install + engine spawn measured 8-12s on v0.9.15 with the native binary path; 60s was the v0.9.0-era Docker-first claim. generated-meta.json regenerated by the build (auto-derive rule). Website build clean. * chore(website): refresh generated-meta timestamp * feat(website): AS FEATURED IN bar — AlphaSignal, AAIF, Trendshift Wedges between Hero and Stats. Three text-cells in a 3-col row (1-col on mobile), each links to the source article. Matches the existing brutalist mono aesthetic — no logo files, no marquee animation, no JS. Border + small ↗ glyph on each card; gold border on hover. Sources chosen for brand authority + independence: - AlphaSignal (180K technical subscribers) → alphasignalai.substack.com/p/how-agentmemory-works-and-how-to - Agentic AI Foundation (Linux Foundation backed) → aaif.io - Trendshift "NEW 2026 · Position #19" → trendshift.io/repositories/25123 Static, server-rendered, no client bundle impact. * feat(website): real logos in AS FEATURED IN bar Replaced text-only treatment with actual brand marks: - AlphaSignal — github.com/Alpha-Signal org avatar (verified) https://avatars.githubusercontent.com/u/64016073?s=200&v=4 - Agentic AI Foundation — aaif.io's own favicon PNG (verified by fetching their site) - Trendshift — their official badge endpoint trendshift.io/api/badge/repositories/25123 — bakes the repo's live star + position count into the image, so the cell tracks the Trendshift state automatically Layout split: AlphaSignal + AAIF render logo-left / text-right with ↗ arrow. Trendshift renders centered with the full badge image (it's already a wide brand mark with the rank + stars baked in, so making it text-bound looks cramped). next.config.ts adds the three new image hosts to remotePatterns (aaif.io, trendshift.io, raw.githubusercontent.com). Existing unoptimized={true} per image so we don't proxy through Vercel's optimizer. Build clean. No new deps. * feat(website): use real AAIF wordmark logo + center 3-card grid User pushed the actual Agentic AI Foundation wordmark — 838x203 PNG on transparent background, black artwork. Dropped the favicon and self-hosted the wordmark at /featured/aaif-logo.png so the brand reads cleanly on the dark cell. Rendered as a badge-style cell (centered, wide-form) like Trendshift, with a `filter: invert(1) brightness(1.05)` so the black artwork inverts to white-on-dark and matches the site palette without shipping a second asset. Grid template balanced: 1fr / 1.3fr / 1fr — gives AAIF the extra horizontal room its wordmark needs while keeping AlphaSignal and Trendshift consistent on either side. Max width bumped to 1000px. `badgeImg` got `object-fit: contain` and an explicit `max-height` so the AAIF + Trendshift badges sit at the same vertical baseline. * fix(website): coderabbit PR #415 — meta drift + a11y + dead CSS Five findings, all valid against the branch: 1. CommandCenter line 48 hardcoded "107 HTTP ENDPOINTS" but website/lib/generated-meta.json reports restEndpoints: 121. Bumped to 121. The meta file is the source of truth (auto-derived from src/triggers/api.ts at build via scripts/derive-meta.js). 2. Compare.tsx REST ENDPOINTS row same drift: "107" → "121". 3. Compare.tsx NATIVE PLUGINS row claimed "6" in the label but the parenthesized list had 8 names (Cursor + Gemini included). Per README: those two are MCP-server tier, not native plugin. List trimmed to the actual 6 native-plugin agents: Claude/Codex/OpenClaw/Hermes/pi/OpenHuman. 4. FeaturedIn.module.css .cell had :hover only — keyboard users tabbing through saw no focus indicator (WCAG 2.4.7). Added :focus-visible with gold border + outline. 5. .cellBadge declared `grid-template-columns: none` while using display: flex. Dead property removed. |
||
|
|
9344cfd502 |
fix(cli): rerender splash banner + README npx caveat (#411)
* fix(cli): rerender splash banner with clean figlet output + README npx caveat
Two small fixes from local v0.9.15 testing:
1. The hand-drawn ASCII in `src/cli/splash.ts` was rendering "agentmemory"
with broken middle glyphs — `_ _` instead of `_ __` around the 'n'
and merged 'tm/me' segments. Replaced with verified `figlet
agentmemory` standard-font output (70 cols, 6 rows, regenerable).
Compact + minimal banners untouched.
2. Added a "Recommended: install globally" section to README's Quick
Start. Explains the npx per-version cache gotcha (running
`npx ...@0.9.14` then `npx @agentmemory/agentmemory` may serve the
stale cached version) and the three workarounds:
- `npm install -g @agentmemory/agentmemory` (recommended)
- `npx -y @agentmemory/agentmemory@latest` (forces fresh fetch)
- `rm -rf ~/.npm/_npx && npx ...` (one-shot cache clear)
Notes that v0.9.16 ships an interactive global-install prompt
inline on first npx run.
Build clean (44.46 kB cli.mjs). All 954 tests pass.
* docs: hoist install section to top of README + update website Install card
README: install was buried at line 306 below benchmarks, comparison
tables, and the agents grid. Moved a 4-line install block right under
the nav anchors at the top, with the bare `agentmemory` command from
the global install path leading. Kept the deeper Quick Start section
below — this is the "front door" version.
website (Install.tsx): the three-card install flow now leads with
`npm install -g @agentmemory/agentmemory` (step 1), then bare
`agentmemory` + `agentmemory demo`. Section title changed from "THREE
COMMANDS. ANY AGENT." to "ONE INSTALL. ANY AGENT." and the lede notes
the npx fallback for users who want zero-install.
website/lib/generated-meta.json refreshed by the build (auto-derived
from package.json + walked test count; pre-existing feedback rule).
Build clean (website + main both pass).
* docs: address coderabbit PR #411 review
README: annotate `rm -rf ~/.npm/_npx` as POSIX-only, point Windows
users at `Remove-Item ...\npm-cache\_npx`. Mark `npx -y @...@latest`
as the cross-platform option. Applies to both install-section and
quick-start blocks (lines 87, 363).
website Install.tsx: hint on step 1 now says "STEPS 2/3 NEED THIS"
so users who skip can't get stuck on `agentmemory` not found. Added
a fourth card "PREFER ZERO-INSTALL? USE NPX" with the bare npx
command and a pointer to the README caveat — covers the skip path
without making step 1 ambiguous.
Skipped (verified-false): coderabbit flagged the splash banner's
"70 columns wide" comment as wrong (claimed rows 3+5 are 76/77). They
counted source-string chars including the `\\` escapes; runtime is 70
on all 6 rows (node length check), which is what alignment cares
about. Comment is accurate, no change needed.
|
||
|
|
eb5f7e6895 |
chore(deps): bundle 10 Dependabot bumps (claude-agent-sdk 0.3, dotenv 17, vitest 4, ts 6, types/node 25, react 19.2.6, checkout/setup-node v6) (#390)
* chore(deps): bundle 10 Dependabot bumps + README agents grid refresh Closes the open Dependabot wave in one PR. Root npm bumps: - @anthropic-ai/claude-agent-sdk ^0.2.56 → ^0.3.142 (closes #389 group) - dotenv ^16.4.7 → ^17.4.2 (closes #356) - @types/node ^22 → ^25.7.0 (closes #357) - typescript ^5.7 → ^6.0.3 (closes #358) - vitest ^3 → ^4.1.6 (closes #359) Website npm bumps: - @types/node 22.10.2 → ^25.7.0 (closes #354) - typescript 5.7.2 → ^6.0.3 (closes #353) - react/react-dom ^19.2.5 → ^19.2.6 (closes #352 group) github-actions bumps: - actions/checkout v4 → v6 (closes #351) - actions/setup-node v4 → v6 (closes #350) Verified: - npm run build clean against new TypeScript 6 + vitest 4 stack - npm test 903 / 903 pass - website npm run build clean (next 16.2.6 + react 19.2.6 + ts 6 stack generates 5 static pages, finalises optimisation) - No source changes were needed for any breaking-version bump — the agent-sdk 0.3.x removal of unstable_v2_createSession etc. is not on any path agentmemory exercises (we use query() + the existing AgentSDKProvider shape). Plus README refresh on the Works-with-every-agent grid: - Added OpenHuman entry (tinyhumansai/openhuman) pointing at the recently-landed Memory trait backend (PR tinyhumansai/openhuman#1743) - Added pi as a native-plugin entry (we already ship integrations/pi/security.ts and the plugin file in-tree) - Reordered the grid so native-plugin agents sit in row 1 and MCP-only / REST-only agents sit in row 2 - Updated sub-text on Claude Code / Codex CLI / OpenClaw / Hermes / pi to consistently say "native plugin" rather than mixing "plugin", "skills", "hooks". Counter on assets/tags/section-agents.svg moved from "16 integrations" to "15 integrations" because we dropped the meta "Any agent" + "Claude SDK" cells that double-counted REST and the AgentSDKProvider path already represented by Claude Code. * docs(readme): swap pi logo to first-party SVG Drops the generic GitHub-org avatar for the brand-mark SVG. Lives in assets/agents/ so the README + future grid renders reach it directly. |
||
|
|
96c0ed017d |
chore(security): add dependabot config + close 14 open advisories (#348)
- Add .github/dependabot.yml covering npm (root, website, 3 integrations) + github-actions. Weekly cadence, grouped minor/patch, scoped commit prefixes. - Bump website next ^16.2.4 → ^16.2.6: closes 13 open advisories (middleware/proxy bypass, SSRF, DoS, CSP-nonce XSS, image-opt DoS, cache poisoning, beforeInteractive XSS, segment-prefetch routes). - Pin website postcss → ^8.5.10 via overrides: closes XSS via unescaped </style> in CSS stringify output (resolves to 8.5.14). Verified: - `npm audit --omit=dev` → 0 vulnerabilities. - `npm run build` clean on Next 16.2.6 (Turbopack). |
||
|
|
3f661d2e42 |
feat(website): add Star on GitHub button to hero CTA row (#316)
Hero only had START IN 60 SECONDS + SEE IT MOVE. Missing the obvious
CTA for visitors who landed via X/Reddit and want to bookmark before
installing.
Adds GitHubStarButton component next to the existing ghost button:
- ghost-style button matching the existing visual register
(no new design surface introduced)
- star icon (inline SVG, currentColor) + STAR label + live
star count
- count fetches once on mount from api.github.com/repos/<repo>
(unauthenticated, 60 req/h limit per IP — fine for a marketing page)
- 30-minute localStorage cache keyed by repo so repeat visits don't
re-hit the API
- graceful degradation: if fetch fails (offline, rate-limited,
blocked), button still renders without the count
Only client-side ("use client") because we want the live count.
No deps added. Build clean (Next 16 static export).
|
||
|
|
ec84ff8fd3 |
docs: merge guidance + per-host shapes for MCP install snippets (#282)
Real-world failure mode: users paste the README's universal mcpServers
JSON into an existing config file (e.g. ~/.cursor/mcp.json with
firecrawl/linear/drawio already wired) and end up with two top-level
objects, breaking the host's MCP loader with "Expected double-quoted
property name in JSON at position 386". Plus the README doesn't tell
them where each host actually reads its config from, doesn't include
the AGENTMEMORY_URL env block that the website snippet ships, and
quotes a stale "43 memory tools" count in the OpenClaw and Hermes
paste-prompts (the server has been at 51 since the v0.7 essential-set
expansion).
This commit fixes the install copy on README and website together so
the two don't drift again.
README:
- Replace per-host table with a single canonical agentmemory block
that includes the AGENTMEMORY_URL env (matches the website's
UNIVERSAL_JSON), plus an explicit "merge into existing mcpServers,
do not replace the file" line.
- Per-host table now lists exact config file path per host (e.g.
~/.cursor/mcp.json, claude_desktop_config.json,
~/.codeium/windsurf/mcp_config.json, ~/.gemini/settings.json)
and flags the non-mcpServers shapes (OpenCode uses mcp + array
command; Codex uses TOML).
- Adds Roo Code and Windsurf (previously absent), keeps Cline /
Goose / Kilo Code / pi / Hermes / OpenClaw / Aider.
- Adds sandboxed-client paragraph pointing AGENTMEMORY_FORCE_PROXY=1
+ AGENTMEMORY_URL=<LAN-IP> at the v0.9.7 escape hatch (closes the
Flatpak / Snap repro from #234).
- Stale "43 memory tools" -> "51 memory tools" in the OpenClaw and
Hermes paste-prompt blocks.
- OpenClaw paste-prompt JSON now ships the env block too.
- The "Standalone MCP" section's universal JSON ships AGENTMEMORY_URL
and lists Roo Code + Windsurf + Gemini CLI alongside Cursor /
Claude Desktop / Cline.
Website (AgentInstall.tsx):
- "WORKS FOR CLAUDE DESKTOP · CURSOR · CLINE · WINDSURF · GEMINI CLI
· OPENCODE" -> "CLAUDE DESKTOP · CURSOR · CLINE · ROO CODE ·
WINDSURF · GEMINI CLI — MERGE INTO EXISTING mcpServers". OpenCode
does NOT use mcpServers (top-level `mcp` key, command-as-array,
`environment` rather than `env`), so removing it from the
universal label.
- Adds an OPENCODE snippet with the correct `mcp` shape and
`environment.AGENTMEMORY_URL`.
- Adds a VS CODE (mcp.json) snippet — VS Code's .vscode/mcp.json
uses `servers` (not `mcpServers`), `type: "stdio"`, and the
standard `env`. The vscode:mcp/install deeplink already worked
via its own flat config shape; this snippet covers the copy-JSON
path for VS Code users editing mcp.json by hand.
- "+ HERMES · OPENCLAW · MORE" toggle relabeled to "+ OPENCODE ·
VS CODE · CODEX · HERMES · OPENCLAW" so the catalog is visible
before opening it.
No new dependencies. Website typechecks and builds clean (Next 16
App Router, static export). Repo tests 859/859.
|
||
|
|
4bd0ceb72e |
release: v0.9.3 — DX patch (feature-flag visibility + doctor command)
Every disabled feature flag is now visible everywhere: viewer banner, CLI status, doctor output, and REST error responses. New `agentmemory doctor` command runs 10 diagnostic checks in one shot, each failure includes a concrete fix hint. Viewer gains first-run hero pointing at `demo` command and a footer with preset issue-report link. Bumps across 8 files per release checklist: package.json, plugin/.claude-plugin/plugin.json, src/version.ts, src/types.ts, src/functions/export-import.ts, test/export-import.test.ts, packages/mcp/package.json, CHANGELOG.md See CHANGELOG for full details. |
||
|
|
baa5fec2ca |
docs: refresh README + website stats after #186/#187/#188/#189
- README provider table: surface the no-op default and call out the opt-in Claude-subscription fallback with AGENTMEMORY_ALLOW_AGENT_SDK (from #187) instead of listing 'Claude subscription' as the default. - README env block: document OPENAI_BASE_URL / OPENAI_EMBEDDING_MODEL (#186) and OPENAI_EMBEDDING_DIMENSIONS (#189), plus MINIMAX_API_KEY. - Hero stat-tests SVG: 654 -> 827 (both dark and light variants) to match current suite size after recursion guard + idempotent lesson/crystal tests + openai dimension tests landed. - website/lib/generated-meta.json regenerated by website/scripts/gen-meta.mjs (v0.9.1, 51 tools, 12 hooks, 119 endpoints, 848 tests). |
||
|
|
c43c6ff44a |
fix(website): render stat targets in SSR, animate on scroll
The Stats component rendered "0" as initial text for every metric, then animated up to the real target via IntersectionObserver on scroll. For real users on a real browser, the animation fires and the numbers count up correctly. For anything that doesn't scroll — SEO crawlers, headless automation, link previewers, screenshot bots — the page permanently shows 0% retrieval, 0 MCP tools, 0 hooks, 0 tests. Fix: initial SSR text is the target value (44, 12, 809, 95.2%, 92%, 0). The count animation still plays on scroll because the RAF tick in the IntersectionObserver callback overwrites the text unconditionally. No behaviour change for human users — just stops crawlers seeing zeros. Also ignore .gstack/ (local session data from the gstack browse skill). |
||
|
|
c36aedf3a0 |
fix(website): bake meta at build time, stop falling back to v0.0.0
The landing page kept reverting to "V0.0.0" on every release. Root cause: website/lib/meta.ts resolved repo files at runtime via import.meta.url, and after Next.js compiles server components the URL resolves inside .next/server/. `../..` from there lands in the build cache, not at the repo root, so the package.json read fails silently and `pkg?.version ?? "0.0.0"` kicks in. - website/scripts/gen-meta.mjs: new build-time script. Runs from website/scripts/, walks one level up to find the real repo root, reads package.json + src/mcp/tools-registry.ts + src/triggers/api.ts + src/types.ts + test/ and writes website/lib/generated-meta.json. Fails loud if version is missing (no silent 0.0.0 ever again). - website/package.json: `predev` and `prebuild` hooks run gen-meta. - website/lib/meta.ts: collapsed from 117 lines of runtime file resolution to a static JSON import. Next.js bundles the values directly into the server component output. - website/lib/generated-meta.json: seeded with current values so editors don't complain about the missing import target. Verified locally: `.next/server/app/index.html` now contains "ZERO EXTERNAL DATABASES · v0.9.1" instead of "v0.0.0". |
||
|
|
197aa8d0e8 |
fix(website): mobile overflow + add OG/Twitter preview images
Mobile (375px) had ~55px horizontal scroll caused by grid tracks defaulting to min-content across nowrap text in Install, AgentInstall, and CommandCenter sections. Replace implicit/`1fr` tracks with `minmax(0, 1fr)` so tracks can shrink below their content and let `overflow: hidden` / `text-overflow: ellipsis` actually clip. Also tightens padding, font-size, and letter-spacing at <=640px for Install boxes, AgentInstall snippet head/code/copy row, CommandCenter tabs and launch strip, and Stats tiles so dense uppercase content stops crowding itself at mobile widths. Adds app/opengraph-image.tsx and app/twitter-image.tsx using next/og ImageResponse, statically prerendered at build (no edge runtime) so socials get a real 1200x630 preview instead of the blank card the site was shipping before. |
||
|
|
9520a9f564 |
fix(website/meta): address CodeRabbit review on auto-derived counts
- testsPassing no longer hardcoded to 777. New countTestCases() walks
the test/ tree and counts it()/test() call sites at build. Prerender
now shows the live count (currently 795) instead of a stale literal.
- restEndpoints regex tightened from /api_path:/ to
/config:\s*\{\s*api_path:\s*"/. Comments, example strings, and
docstrings no longer inflate the count.
- Fallback defaults consolidated into one exported DEFAULT_META
constant. Each count applies its fallback in exactly one place (at
the return, if the safeCountMatches result is 0). No more double
defaults.
- Hook counting no longer divides quote characters by 2. It parses
the HookType union body, splits on '|', and filters to string-
literal members — robust to inline comments or quotes elsewhere in
the union.
- Stats, Features, and LiveTerminal props are now required and take
their fallbacks from DEFAULT_META via getProjectMeta(). No
per-component duplication.
- Stats effect resets data-done on every rerun so a meta change at
build replays the count animation against the new target instead
of stranding a stale value.
|
||
|
|
b99c9ec5d6 |
feat(website): derive version + MCP/hook/REST counts from source at build
Website chip + stats + terminal + features were hardcoded to 0.8.13, 44, 12, 49 — they drifted every release. Now every one of them is read at build time from the real source of truth: - lib/meta.ts (server-only) reads package.json, src/triggers/api.ts (api_path count), src/mcp/tools-registry.ts (memory_* name count), and the HookType union in src/types.ts. - Hero chip, Stats, LiveTerminal, and Features all consume the computed counts via props; no more literal strings in component bodies. - Fallback defaults (44 / 12 / 49) kick in only if the source files cannot be read, so a monorepo re-root still boots. Result: cutting a release bumps the website hero to v<new> automatically, and any new MCP tool or REST endpoint raises the displayed count without an edit. next build stays clean — single static page prerendered. |
||
|
|
3338f9d039 |
feat(website): live GitHub stars, logo-based agent showcase, simpler MCP install
Nav - Replace overlay hamburger with a solid horizontal bar. - Use the real agentmemory icon from assets/icon.svg as the brand mark. - Single GitHub pill: GH icon + GITHUB label + gold star + live count, the entire pill links to the repo. No more separate icon button. - Server-rendered count pulled from api.github.com/repos/... with revalidate 3600. Falls back to 0 on rate limit. - Mobile (<720px) collapses to a hamburger sheet with sections + links. Command Center (new) - Tabbed section showing the shipped viewer (:3113), the iii console (:3114), the raw KV state browser, and OTel traces. - Real screenshots vendored into public/ (dashboard.png, states.png, traces-waterfall.png, demo.gif). - Each tab ships with a description, 4-5 capability bullets, and a copy-ready launch command. Features (new) - 12-tile grid covering 12 auto-hooks, 44 MCP tools, 49 REST endpoints, BM25+vector+graph recall, auto consolidation, JSONL replay, knowledge graph extraction, mesh federation, Obsidian export, 5 LLM providers, OTel observability, 0 external DBs. Agents - Replaced the flat tile grid with an agents.md-style two-tier layout. - Top row: 4 featured first-party integrations (Claude Code, OpenClaw, Hermes, Codex CLI) as big cards with real logos, brand accent colors, and integration pitch. - Bottom row: CSS keyframe marquee of every other supported agent (Claude Desktop, Cursor, Gemini CLI, OpenCode, Cline, Roo, Kilo, Goose, Aider, Windsurf) with real logos + brand borders on hover. Pauses on hover. Edges fade into the page. Respects prefers-reduced-motion. Install · step 3 · MCP wiring - Dropped the 10-tab toggle and the Cursor-only gold hero button. - Left column: equal-weight agent chips in a 2x3 grid — Cursor, VS Code, Claude Code, Claude Desktop, Gemini CLI, Codex CLI. Click copies the right snippet (JSON / CLI command / TOML) or fires the one-click deeplink where one exists. - Right column: UNIVERSAL MCP JSON — paste-ready block that works for Claude Desktop, Cursor, Cline, Windsurf, Gemini CLI, OpenCode. - Expando reveals Hermes, OpenClaw, and Codex TOML shapes. Infrastructure - lib/github.ts server-only fetch for repo stats. - lib/format.ts (client-safe) formatCompact. - next.config.ts: turbopack.root pinned to silence workspace warning, images.remotePatterns for github.com / GH avatars / Cursor / Windsurf logos. - layout.tsx: icon metadata wired to /icon.svg. Build: next build clean, 3 routes prerendered static, 0 vulns. |
||
|
|
7193361b67 |
refactor(website): rebuild as Next.js 16 App Router app for Vercel
Replaces the vanilla HTML/CSS/JS landing with a production Next.js 16.2 app router build. Deploy target is Vercel; root directory should be set to 'website/' in the Vercel project settings. Stack: - Next.js 16.2 + React 19 + TypeScript 5.7 - next/font for Archivo + JetBrains Mono (no external fetch) - CSS Modules per component + one globals.css for tokens - No Tailwind, no bundler config, no client-side routing Component layout: - app/layout.tsx — <html>, font vars, metadata, viewport - app/page.tsx — composes all landing sections - app/globals.css — design tokens + shared utilities - components/Nav.tsx — hexagonal bull mark + menu - components/Hero.tsx — title, lede, CTAs - components/MemoryGraph.tsx — client canvas animation + hex pause - components/ScrollProgress.tsx — fixed top gold progress rail - components/Stats.tsx — counter-up on first intersect - components/Primitives.tsx — three cards with 3D mouse tilt - components/LiveTerminal.tsx — typewriter memory.recall demo - components/Compare.tsx — vs Mem0/Letta/Cognee table - components/Agents.tsx — supported-agents grid - components/Install.tsx — click-to-copy npm + console boxes - components/Footer.tsx — source / changelog / license links Interactive elements are "use client" islands; static sections render on the server. prefers-reduced-motion gated throughout. Upgraded Next from 15.1.3 to 16.2.4 to clear CVE-2025-66478 during setup. next build completes clean, all 3 routes prerender static. Deploy: 1. Import repo on Vercel, set Root Directory = website/ 2. Or: cd website && npx vercel |
||
|
|
8db6da43d7 |
feat(website): lamborghini-inspired landing page
Single-page marketing site for agentmemory generated from the getdesign@latest 'lamborghini' design system. - DESIGN.md at repo root: the full 288-line design brief (black canvas, gold accent, Neo-Grotesk display, zero border-radius, hexagonal motifs). Future UI PRs should read this file first. - website/index.html: hero + stats + primitives + live terminal + competitor comparison + agents grid + install + footer. - website/styles.css: black-first palette (#000 canvas, #FFC000 accent, #202020 surface), Archivo display at 160px hero, JetBrains Mono for the terminal, sharp-edge buttons, reveal-on-intersect. - website/script.js: vanilla, zero deps. - animated canvas memory graph in the hero with a hexagonal pause control - stat counters that run on first intersect - 3D mouse-tilt on primitive cards - typewriter terminal demo of memory.recall and memory.consolidate with a REPLAY button - click-to-copy install boxes with success feedback - top scroll progress rail in gold - full prefers-reduced-motion short-circuit No framework, no build step. Drop behind any static host. |