From 28308a14d6b4f266abb6eb5f234f88147b5a1ff7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Boschi?= Date: Tue, 10 Mar 2026 13:32:43 +0100 Subject: [PATCH] doc: split blog index into Hindsight and Hindsight Cloud sections (#534) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc: split blog index into Hindsight and Hindsight Cloud sections - Tag the document upload post with `hindsight-cloud` - BlogListPage renders two sections, capping Cloud at 3 posts with a "View all →" link - Swizzle BlogTagsPostsPage so /blog/tags/hindsight-cloud uses the custom grid layout * doc: attribute blog posts to Nicolò Boschi with GitHub profile image Replace the generic "Hindsight Team" author with the real author entry (nicoloboschi) across all 15 blog posts. GitHub profile image is loaded from https://github.com/nicoloboschi.png. * doc: add Hindsight Team title to nicoloboschi author * doc: assign blog posts to correct authors based on git blame - Add benfrank241 (Ben Bartholomew) and chrislatimer (Chris Latimer) to authors.yml - Assign 7 posts to Ben, 1 post to Chris, remainder stay with Nicolò --- .../blog/2026-01-28-learning-capabilities.md | 2 +- .../2026-02-09-resolving-memory-conflicts.md | 3 +- .../blog/2026-02-13-version-0-4-11.md | 2 +- .../blog/2026-02-18-version-0-4-12.md | 2 +- hindsight-docs/blog/2026-02-26-chat.md | 2 +- .../blog/2026-02-27-version-0-4-13-0-4-14.md | 2 +- hindsight-docs/blog/2026-03-02-crewai.md | 3 +- hindsight-docs/blog/2026-03-03-litellm.md | 3 +- .../blog/2026-03-03-version-0-4-15.md | 2 +- .../blog/2026-03-04-mcp-agent-memory.md | 3 +- ...-03-05-add-memory-to-openai-application.md | 2 +- .../blog/2026-03-05-version-0-4-16.md | 2 +- ...dding-memory-to-openclaw-with-hindsight.md | 2 +- .../2026-03-09-hindsight-document-upload.md | 4 +- ...026-03-09-pydantic-ai-persistent-memory.md | 2 +- hindsight-docs/blog/authors.yml | 18 ++++ .../src/theme/BlogListPage/index.tsx | 59 +++++++++++-- .../src/theme/BlogListPage/styles.module.css | 43 ++++++++++ .../src/theme/BlogTagsPostsPage/index.tsx | 86 +++++++++++++++++++ 19 files changed, 221 insertions(+), 21 deletions(-) create mode 100644 hindsight-docs/src/theme/BlogTagsPostsPage/index.tsx diff --git a/hindsight-docs/blog/2026-01-28-learning-capabilities.md b/hindsight-docs/blog/2026-01-28-learning-capabilities.md index 1f56b205..b089c822 100644 --- a/hindsight-docs/blog/2026-01-28-learning-capabilities.md +++ b/hindsight-docs/blog/2026-01-28-learning-capabilities.md @@ -1,7 +1,7 @@ --- slug: learning-capabilities title: "Agent memory that learns: observations and mental models" -authors: [hindsight] +authors: [nicoloboschi] image: /img/reflect-operation.webp hide_table_of_contents: true --- diff --git a/hindsight-docs/blog/2026-02-09-resolving-memory-conflicts.md b/hindsight-docs/blog/2026-02-09-resolving-memory-conflicts.md index 9a1023c8..e30b1dfa 100644 --- a/hindsight-docs/blog/2026-02-09-resolving-memory-conflicts.md +++ b/hindsight-docs/blog/2026-02-09-resolving-memory-conflicts.md @@ -1,7 +1,8 @@ --- title: How We Solved Memory Conflicts in Hindsight description: Learn how Hindsight handles contradictory information by tracking temporal evolution and preserving history in its memory consolidation system. -authors: [hindsight] +authors: [chrislatimer] + image: /img/blog/2026-02-09/consolidation-pipeline.png date: 2026-02-09 hide_table_of_contents: true diff --git a/hindsight-docs/blog/2026-02-13-version-0-4-11.md b/hindsight-docs/blog/2026-02-13-version-0-4-11.md index 57c7d9a6..72fb69b4 100644 --- a/hindsight-docs/blog/2026-02-13-version-0-4-11.md +++ b/hindsight-docs/blog/2026-02-13-version-0-4-11.md @@ -1,7 +1,7 @@ --- title: "What's new in Hindsight 0.4.11" description: New features and improvements in Hindsight 0.4.11 -authors: [hindsight] +authors: [nicoloboschi] date: 2026-02-13 hide_table_of_contents: true --- diff --git a/hindsight-docs/blog/2026-02-18-version-0-4-12.md b/hindsight-docs/blog/2026-02-18-version-0-4-12.md index 5887a015..720acb6a 100644 --- a/hindsight-docs/blog/2026-02-18-version-0-4-12.md +++ b/hindsight-docs/blog/2026-02-18-version-0-4-12.md @@ -1,7 +1,7 @@ --- title: "What's new in Hindsight 0.4.12" description: New features and improvements in Hindsight 0.4.12 -authors: [hindsight] +authors: [nicoloboschi] date: 2026-02-18 hide_table_of_contents: true --- diff --git a/hindsight-docs/blog/2026-02-26-chat.md b/hindsight-docs/blog/2026-02-26-chat.md index 6ec51770..073b9580 100644 --- a/hindsight-docs/blog/2026-02-26-chat.md +++ b/hindsight-docs/blog/2026-02-26-chat.md @@ -1,6 +1,6 @@ --- title: "Your Vercel Chat SDK bot forgets everything. Hindsight fixes that." -authors: [hindsight] +authors: [nicoloboschi] date: 2026-02-26 tags: [chat-sdk, slack, discord, typescript, memory] image: /img/blog/vercel-chat.png diff --git a/hindsight-docs/blog/2026-02-27-version-0-4-13-0-4-14.md b/hindsight-docs/blog/2026-02-27-version-0-4-13-0-4-14.md index 7b215a16..4dcab909 100644 --- a/hindsight-docs/blog/2026-02-27-version-0-4-13-0-4-14.md +++ b/hindsight-docs/blog/2026-02-27-version-0-4-13-0-4-14.md @@ -1,7 +1,7 @@ --- title: "What's new in Hindsight 0.4.13 and 0.4.14" description: New features and improvements in Hindsight 0.4.13 and 0.4.14 -authors: [hindsight] +authors: [nicoloboschi] date: 2026-02-27 hide_table_of_contents: true --- diff --git a/hindsight-docs/blog/2026-03-02-crewai.md b/hindsight-docs/blog/2026-03-02-crewai.md index cb43ff73..9dfd1684 100644 --- a/hindsight-docs/blog/2026-03-02-crewai.md +++ b/hindsight-docs/blog/2026-03-02-crewai.md @@ -1,6 +1,7 @@ --- title: "Your CrewAI Agents Forget Everything Between Runs. Here's the Fix." -authors: [hindsight] +authors: [benfrank241] + date: 2026-03-02 tags: [crewai, agents, python, memory, tutorial] image: /img/blog/crewai-memory.png diff --git a/hindsight-docs/blog/2026-03-03-litellm.md b/hindsight-docs/blog/2026-03-03-litellm.md index 7220ec17..359cfcd6 100644 --- a/hindsight-docs/blog/2026-03-03-litellm.md +++ b/hindsight-docs/blog/2026-03-03-litellm.md @@ -1,6 +1,7 @@ --- title: "I Gave 100+ LLMs a Permanent Memory With One Python Package" -authors: [hindsight] +authors: [benfrank241] + date: 2026-03-03 tags: [litellm, python, memory, openai, anthropic, tutorial] image: /img/blog/litellm-memory.png diff --git a/hindsight-docs/blog/2026-03-03-version-0-4-15.md b/hindsight-docs/blog/2026-03-03-version-0-4-15.md index a366a0a6..93f498b0 100644 --- a/hindsight-docs/blog/2026-03-03-version-0-4-15.md +++ b/hindsight-docs/blog/2026-03-03-version-0-4-15.md @@ -1,7 +1,7 @@ --- title: "What's new in Hindsight 0.4.15" description: New features and improvements in Hindsight 0.4.15 -authors: [hindsight] +authors: [nicoloboschi] date: 2026-03-03 hide_table_of_contents: true image: /img/blog/release0415.png diff --git a/hindsight-docs/blog/2026-03-04-mcp-agent-memory.md b/hindsight-docs/blog/2026-03-04-mcp-agent-memory.md index ca877ba6..976e6fb2 100644 --- a/hindsight-docs/blog/2026-03-04-mcp-agent-memory.md +++ b/hindsight-docs/blog/2026-03-04-mcp-agent-memory.md @@ -1,6 +1,7 @@ --- title: "The Open-Source MCP Memory Server Your AI Agent Is Missing" -authors: [hindsight] +authors: [benfrank241] + date: 2026-03-04 tags: [mcp, memory, agents, docker, tutorial] image: /img/blog/mcp-agent-memory.png diff --git a/hindsight-docs/blog/2026-03-05-add-memory-to-openai-application.md b/hindsight-docs/blog/2026-03-05-add-memory-to-openai-application.md index 521e0a31..b7f78584 100644 --- a/hindsight-docs/blog/2026-03-05-add-memory-to-openai-application.md +++ b/hindsight-docs/blog/2026-03-05-add-memory-to-openai-application.md @@ -1,6 +1,6 @@ --- title: "Give Your OpenAI App a Memory in 5 Minutes" -authors: [hindsight] +authors: [benfrank241] date: 2026-03-05 tags: [memory, openai, python, docker, rag, llm, vector, embedding] image: /img/blog/add-memory-to-openai-application.png diff --git a/hindsight-docs/blog/2026-03-05-version-0-4-16.md b/hindsight-docs/blog/2026-03-05-version-0-4-16.md index 6ed700a6..f40606cd 100644 --- a/hindsight-docs/blog/2026-03-05-version-0-4-16.md +++ b/hindsight-docs/blog/2026-03-05-version-0-4-16.md @@ -1,7 +1,7 @@ --- title: "What's new in Hindsight 0.4.16" description: New features and improvements in Hindsight 0.4.16 -authors: [hindsight] +authors: [nicoloboschi] date: 2026-03-05 hide_table_of_contents: true image: /img/blog/release0416.png diff --git a/hindsight-docs/blog/2026-03-06-adding-memory-to-openclaw-with-hindsight.md b/hindsight-docs/blog/2026-03-06-adding-memory-to-openclaw-with-hindsight.md index 7b686b2d..03947fb1 100644 --- a/hindsight-docs/blog/2026-03-06-adding-memory-to-openclaw-with-hindsight.md +++ b/hindsight-docs/blog/2026-03-06-adding-memory-to-openclaw-with-hindsight.md @@ -1,6 +1,6 @@ --- title: "The Memory Upgrade Every OpenClaw User Needs" -authors: [hindsight] +authors: [benfrank241] date: 2026-03-06 tags: [openclaw] image: /img/blog/adding-memory-to-openclaw-with-hindsight.png diff --git a/hindsight-docs/blog/2026-03-09-hindsight-document-upload.md b/hindsight-docs/blog/2026-03-09-hindsight-document-upload.md index 051be9bf..968d0b52 100644 --- a/hindsight-docs/blog/2026-03-09-hindsight-document-upload.md +++ b/hindsight-docs/blog/2026-03-09-hindsight-document-upload.md @@ -1,8 +1,8 @@ --- title: "What's New in Hindsight Cloud: Document File Upload" -authors: [hindsight] +authors: [benfrank241] date: 2026-03-09 -tags: [release, memory] +tags: [hindsight-cloud, release, memory] hide_table_of_contents: true --- diff --git a/hindsight-docs/blog/2026-03-09-pydantic-ai-persistent-memory.md b/hindsight-docs/blog/2026-03-09-pydantic-ai-persistent-memory.md index 38849b3d..d3e1d1db 100644 --- a/hindsight-docs/blog/2026-03-09-pydantic-ai-persistent-memory.md +++ b/hindsight-docs/blog/2026-03-09-pydantic-ai-persistent-memory.md @@ -1,6 +1,6 @@ --- title: "Pydantic AI Persistent Memory: Add It in 5 Lines of Code" -authors: [hindsight] +authors: [benfrank241] date: 2026-03-09 tags: [memory, openai, anthropic, gemini, python, rust, agents, rag, vector, pydantic-ai, knowledge-graph] image: /img/blog/pydantic-ai-persistent-memory.png diff --git a/hindsight-docs/blog/authors.yml b/hindsight-docs/blog/authors.yml index 273f91e3..f2dbf11b 100644 --- a/hindsight-docs/blog/authors.yml +++ b/hindsight-docs/blog/authors.yml @@ -1,3 +1,21 @@ hindsight: name: Hindsight Team url: https://github.com/vectorize-io/hindsight + +nicoloboschi: + name: Nicolò Boschi + title: Hindsight Team + url: https://github.com/nicoloboschi + image_url: https://github.com/nicoloboschi.png + +benfrank241: + name: Ben Bartholomew + title: Hindsight Team + url: https://github.com/benfrank241 + image_url: https://github.com/benfrank241.png + +chrislatimer: + name: Chris Latimer + title: Hindsight Team + url: https://github.com/chrislatimer + image_url: https://github.com/chrislatimer.png diff --git a/hindsight-docs/src/theme/BlogListPage/index.tsx b/hindsight-docs/src/theme/BlogListPage/index.tsx index 367ae894..63f6a928 100644 --- a/hindsight-docs/src/theme/BlogListPage/index.tsx +++ b/hindsight-docs/src/theme/BlogListPage/index.tsx @@ -5,6 +5,9 @@ import type {Props} from '@theme/BlogListPage'; import type {PropBlogPostContent} from '@docusaurus/plugin-content-blog'; import styles from './styles.module.css'; +const CLOUD_TAG = 'hindsight-cloud'; +const CLOUD_PREVIEW_COUNT = 3; + function formatDate(dateString: string): string { const date = new Date(dateString); return date.toLocaleDateString('en-US', {month: 'short', day: 'numeric', year: 'numeric'}); @@ -38,9 +41,32 @@ function BlogCard({content}: {content: PropBlogPostContent}) { ); } +function SectionHeader({title, subtitle, viewAllHref}: {title: string; subtitle?: string; viewAllHref?: string}) { + return ( +
+
+

{title}

+ {viewAllHref && ( + + View all → + + )} +
+ {subtitle &&

{subtitle}

} +
+ ); +} + export default function BlogListPage({items, metadata}: Props): React.ReactElement { const {blogTitle, blogDescription, totalPages, page, nextPage, previousPage} = metadata; + const cloudPosts = items.filter(({content}) => + (content.metadata.tags ?? []).some((t) => t.label === CLOUD_TAG), + ); + const hindsightPosts = items.filter(({content}) => + !(content.metadata.tags ?? []).some((t) => t.label === CLOUD_TAG), + ); + return (
@@ -49,11 +75,34 @@ export default function BlogListPage({items, metadata}: Props): React.ReactEleme {blogDescription &&

{blogDescription}

} -
- {items.map(({content: BlogPostContent}) => ( - - ))} -
+ {cloudPosts.length > 0 && ( +
+ CLOUD_PREVIEW_COUNT ? `/blog/tags/${CLOUD_TAG}` : undefined} + /> +
+ {cloudPosts.slice(0, CLOUD_PREVIEW_COUNT).map(({content: BlogPostContent}) => ( + + ))} +
+
+ )} + + {hindsightPosts.length > 0 && ( +
+ +
+ {hindsightPosts.map(({content: BlogPostContent}) => ( + + ))} +
+
+ )} {totalPages > 1 && (