Skip to content

Latest commit

 

History

337 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ContextForge Console

CI Release License: MIT

ContextForge Core 套一个**本地优先(local-first)**的可视化控制台 —— 把「索引 → 检索 → rerank → memory → Agent 回答 → citation → eval」整条链路可视化、可操作、可观测。

ContextForge Console 是一个面向自建 ContextForge Core 的个人开发者与 1-5 人 AI 应用团队的领域专属控制平面。 它不是通用 LLM observability 平台,而是以 workspace / index job / source file / source chunk / retrieval method / rerank result / memory item / agent scope / citation / eval run / Core adapter 为一等对象, 帮助开发者:

  • 单 query 召回排查从 10-20 分钟降到 < 3 分钟
  • Agent 答错时 1 分钟内下钻到对应 retrieval trace / citation / source chunk
  • 新成员半天内跑通 workspace / index / search / eval 基础流程

v1.0 产品形态为 Local Console / 单用户模式(团队成员各自本地运行);不做公网 SaaS / 多用户 RBAC / SSO / 移动原生。

五大核心场景

  1. Workspace & Index 控制平面 —— 触发并监控索引任务,展示 parse / chunk / embed / index 阶段进度
  2. Search Lab(核心 happy path)—— 端到端检索调试,vector / keyword / hybrid 对比 + rerank 前后排名
  3. MemoryOps 记忆治理 —— pin / deprecate / soft delete,破坏性操作二次确认
  4. Eval 评估报告 —— 默认对比最近 5 次 run,指标 recall@k / precision + 用例级 diff
  5. 统一可观测性 —— SSE 实时推送,版本化 Core Integration Contract v1 + 多 Adapter 隔离

技术栈

技术
前端 console-web/ Next.js 16 + React 19 + TypeScript 6.0 + Tailwind CSS v4 + Radix UI + TanStack Query
后端 console-api/ Go 1.26 + Gin + PostgreSQL(lib/pq)+ Redis(go-redis)+ OpenAPI 3.0.3(kin-openapi 程序化生成)
编排边界 coreadapter —— Console ↔ Core 唯一适配层(mock / http / grpc / cli 四形态,ADR-001)
测试 Go testify + Vitest + Playwright(Mock Adapter 作 Core 替身,ADR-006)
部署 Docker Compose 一键起全栈(ADR-007);后端 distroless 静态镜像,前端 Node alpine

快速开始

一键起全栈(推荐)

cp .env.example .env              # 按需修改(POSTGRES_PASSWORD 等)
docker compose up -d              # 起 postgres + redis + core-mock + console-api + console-web

打开 http://localhost:3000 即可访问控制台。服务拓扑:

服务 端口(仅 localhost bind) 说明
console-web 3000 Next.js 前端
console-api 8080 Gin BFF,默认 mock 模式
postgres —(内部) 持久化(store=pg 时消费)
redis —(内部) ADR-003 预留(v1.0 尚未消费)
core-mock —(内部) 占位服务

接真实 ContextForge daemon(默认不启):编辑 .envCONSOLE_API_CORE_MODE=http + CONSOLE_API_CORE_HTTP_BASE_URL=http://contextforge:48181,然后:

docker compose --profile contextforge pull contextforge
docker compose --profile contextforge up -d contextforge
docker compose up -d console-api console-web

首启会在挂载的 console-token volume 生成 local access token(crypto/rand,权限 0600)。

开发态单跑(前后端分离)

# 后端 BFF(默认 mock 模式,:8080)
cd console-api
go run ./cmd/console-api

# 前端(:3000,热更新)
cd console-web
pnpm install
pnpm dev

环境变量详见 .env.example(每个变量均有用途与默认值注释)。

项目结构

ContextForge-Console/
├── console-api/          # Go BFF 后端(Gin + coreadapter 单一边界)
│   ├── cmd/console-api/  # 程序入口(main 装配序)
│   └── internal/         # coreadapter / httpapi / jobs / memory / eval / search / workspace
│                         #   / store / security / observability / platform
├── console-web/          # Next.js + React 前端
│   └── src/              # app (App Router) / features / components / hooks / lib
├── docs/                 # PRD / ADR / phase & task specs / 设计与集成文档
├── test/                 # 跨模块 BDD features/*.feature + fixtures
├── tools/                # s2v 聚合脚本(install / typecheck / unit-test)
├── docker-compose.yml    # 一键起全栈
└── AGENTS.md             # 协作约定(S2V 方法论 + worktree + PR 规范)

开发

验证三件套(仓库根目录运行)

bash tools/s2v-install.sh       # 前后端依赖安装
bash tools/s2v-typecheck.sh     # go vet + tsc --noEmit
bash tools/s2v-unit-test.sh     # go test + vitest(强制 required)

CI(.github/workflows/ci.yml)在 PR / push 到 master 时自动跑这三步。

前端单测 / e2e

cd console-web
pnpm test                       # Vitest 单元测试
pnpm exec playwright test       # Playwright e2e(需先起 stack + 配 PLAYWRIGHT_TOKEN)

文档导航

文档 说明
docs/prds/contextforge-console.prd.md 产品需求文档(Vision / Users / Core Capabilities / Out-of-Scope)
架构决策(ADR)
docs/decisions/adr-001-coreadapter-single-boundary.md coreadapter 单一边界
docs/decisions/adr-002-frontend-go-stack.md 前端 Next.js/React + 后端 Go/Gin 选型
docs/decisions/adr-003-postgres-redis-persistence.md PostgreSQL + migration + schema_version / Redis 任务态
docs/decisions/adr-004-rest-openapi-sse.md REST + OpenAPI + SSE 协议选型
docs/decisions/adr-005-secure-by-default.md secure-by-default 默认收敛
docs/decisions/adr-006-test-toolchain-mock.md 测试工具链 + Mock Adapter
docs/decisions/adr-007-docker-compose-release.md v1.0 主发布 Docker Compose
docs/decisions/adr-008-contract-v1-adapters.md Contract v1 + 四 Adapter 形态
规格(SDD/BDD/TDD)
docs/specs/phases/ 7 个 Phase spec(foundation → platform-baseline → workspace-index → search-lab → memory-ops → eval-reports → integration)
docs/specs/tasks/ 24 个 Task spec(每个含 AC / Behavior Contract / Traceability / Verification Plan)
docs/s2v-adapter.md S2V 适配层(项目结构 / 命令 / Task 总索引)

协作约定

本项目使用 S2V(Spec-Driven + Behavior-Driven + TDD) 方法论,协作档位 solo-autonomous。 任何 Agent / 贡献者进入本仓库第一件事:读完 AGENTS.md(worktree 隔离 + R1-R7 铁律 + PR-only merge gate + commit 节律)。简要:

  • 分支命名feat/<phase>-<name> / feat/task-<X.Y>-<name> / chore/<scope> / fix/<scope>
  • PR-only:所有改动经 PR merge --no-ff 合入 master,禁止主 repo 直接 commit
  • worktree 隔离:实施在独立 worktree(ContextForge-Console-wt-<scope>/),主 repo HEAD 恒在 master
  • 三段 commit:RED(test)→ GREEN(feat)→ REFACTOR + docs 回填

About

ContextForge Core 的本地优先(local-first)可视化控制台 —— 索引/检索/rerank/memory/citation/eval 全链路调试与可观测

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages