Commit Graph

12 Commits

Author SHA1 Message Date
Rohit Ghumare 3e90110961 docs(readme): refresh stats + v0.9.26 callout + corrected P@5 (#807)
* docs(readme): refresh stats + v0.9.26 callout + corrected P@5

* docs(website): regen generated-meta.json (v0.9.26)
2026-06-03 11:17:52 +01:00
Rohit Ghumare 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
2026-05-18 21:42:06 +01:00
Rohit Ghumare 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.
2026-05-18 20:34:04 +01:00
Rohit Ghumare 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.
2026-05-16 10:43:30 +01:00
Rohit Ghumare 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.
2026-05-16 10:09:14 +01:00
Rohit Ghumare 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.
2026-05-15 19:23:45 +01:00
Rohit Ghumare 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.
2026-05-15 18:02:33 +01:00
Rohit Ghumare 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).
2026-05-13 00:13:39 +01:00
Rohit Ghumare 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.
2026-05-11 16:18:41 +01:00
Rohit Ghumare 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.
2026-04-24 19:53:07 +01:00
Rohit Ghumare 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).
2026-04-22 16:23:42 +01:00
Rohit Ghumare 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".
2026-04-21 13:36:06 +01:00