Architecture Codex

这里记录系统为什么长成现在这样。

Codex 不是普通博客,也不是教程。它保存 Reader、OpenList、MySQL、Graph、视觉语言和书架策展的设计考古,供未来的自己、协作者和 AI 维护者读取。

Systems
16
Active
5
Glossary
25
forming

Content Infrastructure Reduction

不要把博客继续扩成自研 CMS 内核。

Runtime MarkdownObject Index / Quartz / Contentlayer / Meilisearch
future

AI-Native Publishing System

Directus owns content truth; Dify runs AI workflows.

Directus / Postgres / Dify / LangGraph
active

Frontend Runtime Archaeology

前端不是组件树,而是运行时系统。

Astro SSR / React Islands / Inline Runtime Scripts / MyBlog Capability Registry
forming

Frontend Runtime Convergence

前端运行时必须从多头脚本收束成 Runtime Kernel。

Runtime Kernel / Legacy Inline Runtime / React Islands / Command Bus
forming

Runtime Experience Layer

缺的不是组件,而是统一且连续的运行时体验。

Spatial Layer / Runtime Overlay / Interactive Object / Command Runtime
active

Reader System

书籍不是文件入口,而是可阅读知识对象。

Book Drawer Reader / Reader Pool / Runtime Persistence / PDF.js
active

Runtime Architecture

OpenList 是图书馆,MySQL 是目录与状态系统。

OpenList Content Control Plane / Syncthing Hot Mirror / GitHub Content Layer / MySQL Runtime Layer
forming

Content Pipeline

Obsidian 是写作母库,Runtime MarkdownObject 是唯一公开文章线。

Obsidian Authoring Truth / Syncthing / Linux /home/vault/Obsidian Hot Mirror / OpenList Content Control Plane
forming

Composable Service Stack

MyBlog 是展示壳,不是全能后端。

OpenList + Tencent COS / Immich / Directus / Meilisearch
forming

Runtime Federation

克隆成熟系统角色,而不是重写底层引擎。

Obsidian / Syncthing / OpenList + COS / Quark / Quartz 4
forming

Object Layer

文件只是载体,对象才是知识系统的基本单位。

KnowledgeObject / BookObject / VisualObject / PersonObject
forming

Projection Clients

一个 Runtime,多个 Surface。

MyBlog Runtime API / KnowledgeObject Graph / Astro Web Projection / PWA / TWA
forming

Knowledge Runtime

阅读痕迹才是系统最有价值的动态资产。

Reader Memory / Highlights / Annotations / Seals
forming

Visual System

视觉素材不是图片墙,而是 Visual Collection。

Pinterest Visual Shell / Immich Media Runtime / Visual Collection System / Visual Bookmark Sync
active

Design Language

从网页组件转向出版物和阅读空间。

Editorial Metadata / Book Object / Drawer Reader / Publication Layout
active

Collection Stack

书架不是网盘目录,而是知识策展空间。

Bookshelf / Collection Card / Stacked Covers / Knowledge Topic

Glossary

项目自己的词汇系统

Runtime Migration Sprint
历史阶段名;当前已从主架构下线,不再有 runtime-migration.json 机器真源。后续真实 cutover 必须由具体 surface 代码和浏览器证据证明。
Authority Cutover
把某个 runtime surface 的事件、状态、focus、Escape 和渲染 owner 从 legacy owner 切到目标 owner 的过程;依赖安装不算 cutover。
Reader Pool
首页常驻的最近阅读器集合,关闭抽屉时隐藏但不销毁最近 3 本书的 reader runtime。
Frontend Runtime Archaeology
按用户行为追踪 DOM、事件、状态、hydration、网络、动画、authority 和 fallback 的前端审计方法,不等同于组件树说明。
Runtime Kernel
前端 command、keyboard、overlay、drawer、focus、navigation 和 storage classification 的统一交互合同;当前入口是 packages/runtime-kernel。
Runtime Experience Layer
统一 Drawer、Command、Reader、Visuals、Graph 和 runtime shells 的交互质感层;当前入口是 README.md、Architecture Codex 与 packages/design-system。
Spatial Layer
保留上下文的运行时层级,例如 drawer 或 shell 打开时背景被压低但仍保持空间关系。
Interactive Object
把卡片视为可延续的对象,而不是装饰容器;对象应从 card 到 drawer 到 reader 保持身份连续性。
Runtime Split Brain
同一个用户意图由多个 runtime owner 同时解释或兜底,例如 Ctrl/Cmd+K 同时存在 Command Palette 和 fallback search authority。
Knowledge Runtime
负责阅读记忆、高亮、批注、印章、贴纸和关系的动态状态层。
Book Object
把封面作为实体书物件处理的视觉规则,强调尺度、书脊、材质和低透明阴影。
Collection Stack
用 Top 3 堆叠封面表达知识主题或馆藏合集,而不是展示普通文件夹。
Immich Media Runtime
独立部署的 AI 媒体库服务,负责图片 / 视频索引、人脸、物体识别、CLIP embedding、语义搜索、缩略图和时间线;MyBlog 只消费其结果并组织成 Visual Collection。
Editorial Metadata
像出版物目录一样展示分类、格式、年代和主题的小字信息线,不使用 chip 或 badge。
Authoring Truth
写作母库真源;当前唯一真源是 E:\Vaults\Obsidian,服务器 /home/vault/Obsidian 只是 Syncthing 热镜像。
OpenList Public Content Access
公开内容访问层;Runtime MarkdownObject 的 openlistPath/openlistUrl 必须指向 /openlist/Obsidian/...,前端不得把 /home/vault 热镜像裸路径展示为 source。
Publishing Truth
历史术语;当前公开文章只以 public-data/runtime/content-index.json 的 Runtime MarkdownObject 为 active article truth。
Publish Pipeline
从 Obsidian 原稿到 Astro 发布稿的规范化链路,负责过滤、补 frontmatter、解析双链、迁移附件和写入 content collection。
Vault-backed CMS
网页编辑回写同一个 Git 化 Obsidian Vault working copy 的 CMS 形态;TinaCMS 优先,Decap CMS 为轻量备选。
Composable Service Stack
把文件存储、AI 媒体库、metadata 后台、搜索引擎和前台展示分给成熟服务的架构;MyBlog 只做 presentation shell。
Metadata Overlay
覆盖在文件真源之上的人工策展和结构化信息层;目标服务是 Directus,大文件仍留在 OpenList / COS。
Presentation Shell
只负责 Feed、Drawer、Reader、Graph、Visual Collection 和公开路由展示的前台壳,不承担 CMS、媒体库或搜索引擎职责。
Search Runtime
负责动态对象、OpenList 文件索引、Directus metadata 和 Immich 导入结果检索的搜索服务;目标服务是 Meilisearch。
Content Infrastructure Reduction
将自研 content-index、watcher、RSS/build race、search 和 deploy glue 收束到 Quartz、Contentlayer、Meilisearch、Coolify 等成熟底座候选上的减法路线;候选系统未接入前不得写成 active。
folderTags
由 Vault 文件夹路径派生的分类标签,例如 history/korea 生成 history 与 korea,并映射到 Collection / Topic。

Maintenance Protocol

以后新增大系统,先写档案,再写界面。

每个新系统必须回答 Inspiration、Rejected、Runtime、Tradeoff、Future Direction 和 Related Systems。没有这些记录的功能,只能算临时 UI,不算 MyBlog 的长期架构。

查看 Knowledge Graph