Timeline

Changelog

记录 Refinex-DevHub 的重要演进,包括功能上线、文档系统完善、交互优化与体验修正, 方便持续追踪每一轮产品与内容能力的变化。

8 条更新
0.9

站点级 AI Assistant 正式接入

导航栏新增全局 Assistant 入口,支持结合当前页面内容进行上下文问答、总结解释与后续阅读引导。

AIAssistantExperience
  • 导航栏新增 Assistant 入口,支持从站点任意页面右侧自然滑出,不打断当前阅读路径。
  • Assistant 会自动结合当前页面内容建立上下文,支持直接总结当前页面、用更直白的话解释这一页,以及给出下一步阅读建议。
  • 文档与博客场景的上下文推荐逻辑已经区分处理:文档优先引导到当前系列的下一篇,博客优先关联同主题内容,减少问答跑偏。
  • 对话支持 Markdown 渲染、流式响应与图片输入,阅读体验更接近站内内容本身,而不是割裂的外置聊天窗口。
  • 页面切换后会自动切换到新的上下文会话,避免把上一页的背景信息错误带入当前页面。
这次上线的重点
0.8

OpenCode 系列文档专栏正式上线

Vibe Coding 专栏首个系列发布,围绕 OpenCode 补齐从入门、配置到自动化扩展的完整专题入口。

DocsOpenCodeVibe Coding
  • 文档导航新增 Vibe Coding 专栏,并将 OpenCode 作为该专栏首个系统化系列正式发布。
  • OpenCode 首批 10 篇专题已全部开放入口,覆盖安装入门、TUI 工作流、配置体系、权限系统、自定义 Agent、MCP、Commands / Tools、Skills、CLI / Server API 等核心主题。
  • 这组内容面向“从零建立 OpenCode 使用框架”的读者,可以直接按目录顺序阅读,也可以按具体问题跳转到对应专题。
  • 后续该系列会在现有路径上持续补充正文深写、案例和配置样板,保持统一的阅读入口与更新节奏。
这次发布的重点
Text
Vibe Coding
└── OpenCode
    ├── 安装与首次运行:5 分钟从零到第一次对话
    ├── TUI 核心工作流:Build / Plan 双模式与日常高频操作
    ├── opencode.json 配置体系:一份配置搞定全局与项目
    ├── AGENTS.md 与 /init:让 AI 真正理解你的项目
    ├── 权限系统深度配置:安全与效率的平衡术
    ├── 自定义 Agent:打造你的专属 AI 编程团队
    ├── MCP Server 集成:让 OpenCode 连接一切外部工具
    ├── Custom Commands + Custom Tools:两套扩展机制一次讲透
    ├── Agent Skills:可复用的知识模块化
    └── CLI 模式 + Server API:脚本化与远程驱动 OpenCode
0.7

首页内容区完成一轮结构化重构

收敛 Featured、Latest 与 Explore 的展示语言,补齐摘要信息,并把首页内容拆成可复用组件与独立数据层。

HubHomepageRefactor
  • 首页 FeaturedLatestExplore 的标题行统一收口,避免同类结构在页面里重复维护。
  • Latest 从大卡片改成两列横向列表,Featured 右列也同步收敛到同一套列表语言,首页视觉节奏更一致。
  • 首页卡片补齐文章 description 展示,并通过行数限制控制信息密度,避免摘要把布局撑散。
  • 顶部三张入口卡片数据、首页文章分组逻辑、列表项和 featured 主卡都拆成独立模块,后续再调首页时不需要反复修改 page.tsx
这次重构的重点
src/lib/home-content.tsTypeScript
export async function getHomePagePostSections(): Promise<HomePagePostSections> {
  const allPosts = await getAllPosts('blog');
  const featuredAll = allPosts.filter((post) => post.featured === true).slice(0, 4);

  return {
    featured: {
      all: featuredAll,
      ...(featuredAll[0] ? { hero: featuredAll[0] } : {}),
      list: featuredAll.slice(1),
    },
    latest: allPosts.slice(0, 6),
  };
}
0.6

Spring AI 专栏与左侧目录交互完成收敛

新增 Spring AI 文档专栏,占位页面全部落位,并优化左侧目录的展开记忆、单行截断与悬浮提示。

DocsSidebarNavigation
  • 新增 Spring AI 专栏,并按既定顺序补齐 12 个专题占位页,后续可以直接在对应目录继续填充内容。
  • 文档解析链路补上目录式 README.mdx 支持,让 /docs/spring-ai/... 这类层级路径能稳定生成页面。
  • 左侧目录修复分组重复展示问题,Spring AI 下面直接显示专题条目,不再出现额外的中间层级。
  • 左侧目录补上展开状态持久化,切换到博客或其他页面后返回文档区,不再把用户已展开的分组全部折叠。
  • 侧边栏标题统一改为单行截断,过长标题使用悬浮提示显示完整名称,避免多行换行把导航节奏打散。
这次为什么先做结构优化
src/components/layout/Sidebar.tsxTSX
<Tooltip>
  <TooltipTrigger asChild>{content}</TooltipTrigger>
  <TooltipContent side="right" align="start">
    {title}
  </TooltipContent>
</Tooltip>
0.5

全局搜索切换到站内检索引擎

移除运行时 Algolia 查询,改为 section 级站内检索、锚点跳转与更稳定的搜索弹窗结果。

SearchDocsBlog
  • 全局搜索不再依赖第三方运行时查询,改为站内 /api/search 驱动的自建检索链路。
  • 搜索索引从“文章标题 + 摘要”升级为 H2 / H3 section 级记录,结果可直接跳到文内锚点。
  • 调整搜索排序逻辑,优先返回标题、章节标题和标签的高质量命中,降低长文正文噪音。
  • 收敛同一篇文章的重复搜索结果,弹窗内每篇内容仅保留一个最佳命中。
这次重构解决了什么
src/app/api/search/route.tsTypeScript
export async function GET(request: Request) {
  const { searchParams } = new URL(request.url);
  const query = searchParams.get('q')?.trim() ?? '';

  if (!query) {
    return NextResponse.json({ docs: [], blogs: [] });
  }

  const results = await getSearchResults(query);
  return NextResponse.json(results);
}

0.4

文档渲染系统完成一轮集中打磨

补齐 Mermaid、数学公式、图片预览、列表与表格细节,让渲染样本页更接近真实生产状态。

DocsRenderingMDX
  • 为 Mermaid 增加 Diagram / Code 切换、缩放、全屏查看与拖拽交互。
  • 修复引用块中的有序列表、无序列表与任务列表标记缺失问题。
  • 统一 ParamTable 与普通 Markdown 表格的视觉规则,移除多余背景,保留必要分割线。
  • 优化 ImageFigure 的亮暗主题预览体验,补齐点击空白关闭等交互细节。
为什么先做这部分
src/components/mdx/CodeBlock.tsxTSX
if (normalizedLang === 'mermaid') {
  return <MermaidBlock code={normalizedCode} filename={resolvedFilename} className={className} />;
}
0.3

阅读区与目录行为继续收敛

减少阅读视图中的视觉噪音,让滚动、目录高亮和长内容浏览更稳定。

LayoutTOCUX
  • 隐藏 docs / blog 阅读主区内部滚动条,仅保留滚动阴影提示。
  • 调整目录激活态实现,避免重复边框造成的视觉抖动。
  • 收敛任务列表子项缩进,修复嵌套层级在引用块中的偏移。

0.2

首页与内容入口结构初步成形

完成 Hub、Docs、Blog 的基础分层,给后续内容扩展留出稳定入口。

HubBlogDocs
  • 首页卡片入口、精选内容区与最新内容区完成首版落地。
  • Blog 与 Docs 路由切换到统一导航体系,建立基础的内容分发路径。
  • 内容系统正式采用 MDX 驱动,后续文档、博客和更新页都可共享同一套渲染组件。
1
先搭结构
明确 Hub、Docs、Blog 三层入口,保证站点信息架构清晰。
2
再补内容管线
让 MDX 渲染能力优先可用,而不是先堆积页面外壳。