01
项目总览面板
ZhikunCode · Web IDE · 浏览器 + 后端服务 + 分析服务
Java 后端主源码
93,118 行 / 622 文件
Java 测试代码
40,974 行 / 208 文件
React 前端
33,642 行 / 209 文件
Python 服务与 CLI
8,066 行 / 32 文件
技术概览
| 项目名称 | ZhikunCode |
| 产品形态 | AI-Powered Web IDE |
| 产品源代码 | 134,826 行 / 863 个 Git 跟踪文件 · ea0170c / 2026-08-09(不统计本地忽略文件) |
| 测试规模 | Java + Python 43,176 行 / 226 文件;前端 E2E 24 specs |
| 后端框架 | Spring Boot 3.4 + Java 21 |
| 前端框架 | React 18.3 + Vite 5.4 + Zustand 4.5 |
| 分析服务 | FastAPI + uvicorn + tree-sitter |
| UI 工具链 | Tailwind 3.4 + Monaco 0.52 + xterm.js 5.5 |
| 可视化 | Mermaid 11.14 + 15个自定义图表组件 |
代码量分布
Java 主源码93,118
Java 测试40,974
React 前端33,642
Python + CLI8,066
02
三端分离架构总览
核心通信链路
▸ 三端分离架构全景插画
▶ 5条通信链路详情
| # | 链路 | 协议 | 关键文件 |
| 1 | 前端 → Java 后端 | REST API + WebSocket/STOMP | dispatch.ts + stompClient.ts |
| 2 | 前端 → Python 服务 | Vite Proxy 转发 | /api/git, /api/files, /api/code-quality, /api/analysis → :8000 |
| 3 | Java → LLM | HTTP/SSE Stream | LlmProviderRegistry → Anthropic / OpenAiCompatible |
| 4 | Java → MCP Server | 4种传输 | McpClientManager — STDIO/SSE/HTTP/WS |
| 5 | Java → Docker | Docker API | SandboxManager — 容器隔离执行 |
02.5
全链路数据流 — 从用户输入到流式响应
dispatch.ts → STOMP/WS → QueryEngine 8步循环 → 流式工具执行 → Zustand 实时更新
基于源码验证的端到端请求闭环:用户消息经 STOMP 发送至后端 Agent Loop,LLM 流式响应与工具执行结果通过 WebSocket 实时推送回前端 Zustand Store。
02b
全局数据流与模块依赖全景图
03
Agent Loop — 8步循环引擎
engine/ · QueryEngine.java · Agent Loop 与 Run 编排
压缩级联 ContextCascade
AutoCompact 状态回写 · 上下文窗口管理 · 触发条件: token数 > 阈值
创建流式执行会话 StreamingToolExecutor.newSession
初始化工具执行上下文 · 并行通道就绪
API 调用 + 模型降级 LlmProvider.streamChat
流式工具执行(立即启动) · 413二阶段恢复 · 模型降级链
收集 API 响应 StreamCollector.buildAssistantMessage
流式chunk聚合 · 工具调用提取 · thinking块处理
消费工具结果 并行执行,异步等待
StreamingToolExecutor 调度 → 每个调用进入统一授权/Gateway → 结果按序收集
继续/终止判定
end_turn 信号检测 · max_tokens 恢复机制 · StopHook 自定义拦截
工具摘要注入 ToolResultSummarizer
长结果截断摘要 · LLM辅助压缩 · 上下文预算控制
状态更新 → 回到 Step 1 LOOP
消息历史追加 · 统计更新 · 压缩指标评估 · 循环继续
▸ Agent Loop 8步循环引擎
▶ 引擎关键特性
413二阶段恢复首次截断context → 二次仍失败则模型降级
自纠错检测 — 错误感知与自动恢复
▸ Step 5.5 Self-Correction Detection · SelfCorrectionLoop.java 395行 · MAX_ATTEMPTS_DEFAULT=3 / MAX_ATTEMPTS_SWE_BENCH=7(场景动态选择)
Run 控制与运行中 Steering
▶ RunExecutionRegistry + RunControlService 运行中输入CAS 终态
注册活跃执行
QueryEngine 启动 Run 时向 RunExecutionRegistry 注册 runId、sessionId 与 AbortContext;Registry 只维护当前进程内的活跃映射和取消上下文。
运行中输入与 Steering 回执
前端向 /app/run-input 发送 requestId/text,服务端按已认证 Session 查找活跃 Run 并进入内存队列;客户端事件统一为 queued / applied / rejected。
取消、进程终止与 checkpoint 分工
AbortContext 提供协作式取消,ManagedProcessRunner 负责超时后的梯度终止;CheckpointService 独立保存子 Agent checkpoint,不属于 Registry 输入队列。
CAS 单一终态
RunControlService 通过 compare-and-set 只接受一个 COMPLETED / FAILED / CANCELLED / INTERRUPTED 终态,迟到回调不能覆盖权威结果。
04
统一权限分析、授权与执行准入
authorization/ · V015 Durable Interaction · V019 Permission Grant · V020 Project
▶ STAGE 1: 统一授权与执行主链 11 个职责边界
Schema / Tool / PreToolUse
输入补全后执行 Hook;Hook 改写输入时重新执行完整 Schema 与 Tool 校验
冻结规范输入
FrozenToolInput · canonical JSON · inputHash
Subject + Operation Analyzer
从 Run ancestry 解析 root identity,再按显式 toolName → analyzerId 选择 Analyzer
OperationDescriptor + invariant
effect/resource/environment/network/risk;拒绝非法资源字符与敏感继承环境
只收紧 Security Hook
只读取冻结输入和已生成事实;可以拒绝,但不能修改输入或扩大授权
SAFE_INTERNAL / Grant
精确 SAFE_INTERNAL 由内建策略放行,否则匹配 scope、profile、Analyzer 版本与约束
权限模式裁决
DEFAULT / PLAN / ACCEPT_EDITS / DONT_ASK / AUTO_APPROVE;自动批准只替代人工确认,不绕过硬拒绝、安全 Hook、SSRF 防护或部署沙箱。
Durable Interaction v3
optionId / descriptorHash / scopeOptions / expectedVersion / deliveryGeneration;ACK 只确认投递,用户决定由数据库 CAS 产生唯一终态
声明输出规划
planOutputs() 在 Gateway 前生成无副作用的产物声明;工具并发/work lease 由上游 StreamingToolExecutor 管理
最终动态与 Grant 复检
仅在路径、符号链接、风险或授权约束发生安全退化,或 Grant 撤销/过期时拒绝;无害环境变化不得误拒绝
ToolExecutionGateway
短事务提交 execution_admitted/tool_started 与声明输出,事务外调用冻结输入对应的 Tool.call()
▶ Grant 能力与继承矩阵 策略参考
高风险与复杂 Shell
只允许 ONCE,不创建可复用 Grant
Guarded exact Bash
只支持 RUN / SESSION,不支持 WORKSPACE
受约束文件能力
安全读与 typed edit 可按约束支持 WORKSPACE
未知 MCP / 动态 Tool
GenericMcpAnalyzer · exact ONCE
子代理受控继承
root session/root run + DIRECT_ONLY/ROOT_AND_DESCENDANTS
▶ 权限模式与授权范围 5 模式 · ONCE决策 + 3持久Grant范围
授权结果与作用域
权限模式:DEFAULT PLAN ACCEPT_EDITS DONT_ASK AUTO_APPROVE
授权范围:ONCE(一次性决策,不持久化) RUN SESSION WORKSPACE (后三者为持久 Grant 范围)
核心组件: AuthorizationService · OperationAnalyzerRegistry · PermissionGrantRepository · DurableInteractionService · ToolExecutionGateway
证据边界 源码、测试与运行交叉核验
架构事实来源
权限模式、Grant 范围、Project 边界和执行前复检以当前提交中的枚举、服务实现、数据库迁移与自动化测试为权威依据。
运行证据边界
运行日志仅用于内部交叉核验关联上下文、工具链和恢复路径;不公开任务内容、路径、会话标识、时间窗口或运行统计,也不将未覆盖能力标记为日志已验证。
▸ 统一授权与执行准入全景流程
Grant、权限模式与持久交互
▸ AuthorizationService 裁决与 V015/V019 数据权威
V020 Project 工作空间信任边界
▶ Project 授权、Session 工作目录与路径归一化 V020Fail Closed
选择并持久授权 Project
直连本机且显式启用时可使用原生目录选择器;远程、反向代理和生产部署只浏览配置的 allowed roots。服务端保存可查询、切换和撤销的 V020 Project 记录。
绑定 Session 默认相对路径根
服务端解析真实、规范化绝对路径并拒绝根目录、符号链接别名、身份重绑定及规范化失败;Session 只接受 projectId,客户端任意 workingDirectory 会被拒绝。
越界重新进入授权链
Project 内普通文件读取或编辑是否自动允许取决于权限模式和 Grant;Project 外资源重新经过 Analyzer、AuthorizationService 与 Gateway 最终复检。
边界说明
Project 是持久、可撤销的信任范围和默认相对路径根,不是通用 OS 沙箱;Bash、敏感文件和高风险操作始终受独立安全控制。
05
Bash 安全模块 — 6层 AST 解析
tool/bash/ · 语义分析、分类、路径和执行前复检
AST 解析架构 (递归下降)
parseProgram()
└─ parseStatements(terminator)
└─ parseAndOr()
└─ parsePipeline()
└─ parseCommand()
├─ parseSimpleCommand()
├─ parseIf / While / For
├─ parseFunction
└─ subshell / compound
核心组件
BashParserCore1,116 行 — 递归下降解析器
BashCommandClassifier1,235 行 — 命令分类引擎
BashLexer824 行 — 词法分析器
BashSecurityAnalyzer771 行 — AST 安全扫描
PathValidator341 行 — 路径安全校验
SedValidator204 行 — sed 命令校验
HeredocExtractor196 行 — heredoc 提取
安全分析结果模式:
Simple(commands)
TooComplex(reason)
ParseUnavailable
Bash 安全模块 AST 解析流水线 — 6层纵深防御 · 17文件 5,620行
Docker 沙箱隔离 — 容器级安全边界 — SandboxManager.java · SandboxConfig.java
06
LLM 多提供商架构
llm/ · Provider注册、能力目录、重试与降级
▶ Provider 抽象层
LlmProviderRegistry (233行) — 提供商注册中心
├── AnthropicProvider (338行) → Claude 系列
└── OpenAiCompatibleProvider (641行)
├── OpenAI GPT
├── 通义千问 (Qwen)
├── DeepSeek(含 deepseek-v4-flash-vision-exp 图片兜底)
├── Moonshot / Kimi
├── 智谱 GLM-5.3
└── Ollama 本地部署
模型别名:
light → qwen3.7-max
standard → qwen3.7-max
premium → qwen3.7-max
百炼 Token Plan → qwen3.8-max / qwen3.8-flash / deepseek-v4-pro-0813 / deepseek-v4-flash-0731(独立 Provider,不进入默认降级链)
▶ 辅助组件
ModelRegistry
125行 · 模型配置注册
MessageParamConverter
272行 · 消息参数转换
ThinkingBudgetCalculator
104行 · thinking预算
LlmErrorClassifier
126行 · 错误分类
RetryPolicy
104行 · 重试策略
ApiKeyRotationManager
密钥轮换管理
模型降级与容错 — 多 Provider 自动切换
API 密钥轮换 — ApiKeyRotationManager · 150行
06a
Token 预算与模型策略
▶ IncrementalCollapseManager 增量折叠 · 175行
注解@Service @ConditionalOnProperty(name="context.cascade.incremental-collapse.enabled")
shouldCollapse()累计 turnCount,每10轮触发折叠
recordCollapse()记录折叠段元数据
状态管理会话级 ConcurrentHashMap · 30分钟超时自动清理
▶ ModelTierService 模型降级 · 155行
注解@Service
resolveModel()选择最佳可用层级
triggerCooldown()API容量错误 → 冷却管理
reportSuccess()健康探测恢复(3次成功阈值)
冷却策略30分钟默认 · retry-after感知 · 短期重试豁免
WebSocket/STOMP 实时通信时序 — 前端↔后端双向通信全景 · 基于源码实证
WebSocket/STOMP 实时通信 — 双向消息、结构化卡片与重连对账
▸ WebSocket/STOMP 实时通信协议栈 — 源码验证
08
MCP 双向协议架构
mcp/ 30文件 5,219行(main/源码,含测试则34文件/6,325行)
McpClientManager · 586行 · 4协议
Client/Server 双向支持
MCP 2024-11-05 规范
生命周期: connect→init→ready→close
STDIO · SSE · HTTP · WebSocket
09
工具系统
40+ 内置工具 · MCP / 插件 / 平台条件工具动态扩展
▶ 工具分类树
文件操作
ReadFile
WriteFile
EditFile
ListDir
SearchFiles
执行 & 终端
BashTool → Sec §5
TaskTool
NotebookTool
搜索 & 分析
GrepTool
GlobTool
CodeSearchTool
Agent & 协作
SubAgentTool
MemoryTool → §11
McpTool → §7
Web & Git
WebFetchTool
WebSearchTool
GitTool
共 51 个工具实现 · 工具提供 Schema/元数据,生产授权由 Analyzer + AuthorizationService + Gateway 统一负责
▸ 工具分类与执行管道全景
▸ 工具执行 9 阶段管道 · ToolExecutionPipeline · StreamingToolExecutor · VirtualThread并发
插件生命周期 — 发现 · 隔离加载 · 注册 · 执行 · 卸载 — PluginManager 422行 · PluginLoader 330行 · PluginClassLoader 89行
▸ 工具权限决策模型 — 5种权限模式 · ONCE一次性决策 + 3种持久Grant范围 · 执行前复检
▸ LSP 协议与编辑器集成 · lsp/ 8文件 · 9种操作 · JSON-RPC over stdio · 多语言支持
9b
CLI 斜杠命令系统 — 7层交互式框架
command/ 9个核心类 + impl/ 37个实现· 88个已注册命令 · WebSocket STOMP 驱动
Frontend Web UI
WebSocket STOMP
Parser 69行
Registry 253行
Router 100行 · 6层安全
Execute ×3 模型
CommandResult 5种·CommandType 3种·Virtual Thread 异步
▶ 文件路径与核心类
command/ 核心接口
Command.java 基础接口
CommandType.java LOCAL / PROMPT / LOCAL_JSX
CommandContext.java 不可变命令上下文 record
CommandResult.java 5 种结构化结果
PromptCommand.java 提示词接口
command/ 调度与解析
SlashCommandParser.java parse()
CommandRegistry.java 命令注册与发现
CommandRouter.java 6 层安全路由
command/impl/ 命令实现集合
websocket/WebSocketController handleSlashCommand()
09c
运行时验证 — 双模 Verifier 多态分发
VerifyJourneyTool · VerifierFactory · Browser/HTTP API · Evidence + STOMP
Java Verifier 接口
Python httpx 异步
能力域感知
8 Action 策略字典
MAX_STEPS=500
Browser 120s · HTTP API 60s · Evidence + STOMP verify_progress
▸ 运行时验证多态分发机制 — VerifierFactory 双模选择
▸ HTTP API 验证执行管道 — 8 Action 策略字典分发
验证产物归属与显式发布链路
▶ Artifact declare → seal/hash → verified entry → PublishArtifact → OSS Verified / Partial显式高风险
工具先声明预期输出,执行完成后封存并计算哈希;Manifest 状态可以是 verified,也可以是包含目标已验证条目的 partial。目标条目还需在发布前再次匹配哈希,并在用户明确提出发布和通过一次高风险授权后才能进入 OSS。生成、预览或完成 Run 均不会自动上传。
10
上下文管理 — 6层压缩策略
L0 SnipL1 MicroCompact 183行L2 AutoCompact 1,058行L3 IncrementalCollapse 174行L4 ReactiveCompact 148行
ContextCascade 348行 · 六级级联编排
ContextCascade 正常执行流程 — executePreApiCascade
三区划分 — Protected / Compressible / Tail
▎Agent Loop 任务执行全链路 — Session 7675c534 实例
11
辅助系统
▶ 记忆系统 memdir/ · Project记忆与检索
MemdirService598行 — 核心记忆目录管理
MemorySearchEngine197行 — BM25检索(K1=1.2, B=0.75)
MemoryRerankService128行 — LLM精排(3000ms超时降级)
MemoryTool117行 — 工具接口
▶ Skill 系统 14 个内置 Skill · 动态扩展
SkillRegistry14 个内置 Skill,按 BUNDLED / PROJECT / USER / PLUGIN / MANAGED / MCP 六层来源合并,WatchService 热重载
Bundled Catalogcommit · review · fix · test · pr · debug · verify · stuck · remember · software-architecture · csv-data-summarizer · prompt-engineering · test-driven-development · publish-oss
SkillDefinition95行 — record 类型 · SkillSource 枚举 6 值
FrontmatterParser241行 — 简化 YAML 解析 (key: value / 列表项)
FrontmatterData75行 — 16 个 frontmatter 字段
SkillExecutor177行 — inline/fork 分发 · 120s 超时 · Token 预算检查
SkillToolValidator97行 — 参数注入检测 + fork 嵌套深度 ≤3 (allowed-tools 白名单仅声明,运行时未拦截)
▶ 安全模块 security/ · Hook与敏感路径
CommandBlacklistService377行 — 命令黑名单
PathSecurityService433行 — 路径安全
SensitivePathRegistry300行 — 敏感路径注册
SensitiveDataFilter68行 — 数据过滤
SecurityAuditLogger70行 — 审计日志
▶ Docker 沙箱 sandbox/ · 容器隔离
记忆系统架构 — BM25检索 · LLM重排序 · 会话历史
记忆检索-精排流水线 — Query → BM25 召回 → LLM Rerank → Context 注入
插件系统 SPI 发现与沙箱隔离架构 — plugin/ 14文件 + hook/ 5文件 · ServiceLoader SPI · URLClassLoader 隔离
Skill 系统加载与执行架构 — 14 个内置 Skill · inline/fork 双模式 · 动态来源合并
Skill 系统源码级实现细节 — 按源码字段/常量/路径直引
▸ FrontmatterData 字段 (16)
description · name · allowedTools · argumentHint · arguments · whenToUse · version · model · disableModelInvocation · userInvocable · hooks · effort · context · agent · paths · shell
默认: context=inline · shell=bash · userInvocable=true
▸ SkillExecutor 执行模式
• inline (默认): 渲染后的 prompt 作为用户消息注入当前对话
• fork: 返回 prompt + metadata (agent/model/effort) 供外层 AgentService 创建子代理
• Token 预算检查: 调用 SkillTokenBudget.canConsume()
• 超时: SKILL_TIMEOUT_SECONDS = 120 (CompletableFuture.orTimeout)
▸ SkillToolValidator 安全检查
• MAX_ARG_LENGTH = 2000 字符
• MAX_FORK_NESTING_DEPTH = 3
• 6 个 shell 注入正则: $(...) · `...` · ; cmd · | cmd · && rm · ${...}
• SkillExecutor 集成: validateArgs() ✓ · validateForkPermission() ✓
• allowed-tools 白名单声明 (运行时验证规划中,validate() 当前仅测试覆盖)
▸ WatchService 热重载
• 监听目录: 项目 .zhikun/skills/ (含一级子目录)
• 事件类型: ENTRY_CREATE · ENTRY_MODIFY · ENTRY_DELETE
• 防抖间隔: DEBOUNCE_MS = 500 ms (ScheduledExecutorService)
• 守护线程: skill-file-watcher · skill-watcher-debounce
• CREATE/MODIFY → register · DELETE → 反注册
• PreDestroy 时关闭 WatchService 并停止线程池
稳定职责锚点:
SkillRegistry(六层来源与热重载) · SkillDefinition(来源和元数据) · SkillExecutor(预算、超时和 fork) · SkillToolValidator(参数、嵌套和注入检查)。具体源码行号随提交变化,不作为架构契约。
结构化观测、Session 恢复投影与断线恢复
▶ BestEffortObservabilityRecorder、结构化结果与恢复投影 职责分离故障隔离
统一 MDC 关联上下文
sid / rid / prid / agent / turn / tool / llm 由整体日志上下文贯穿 Run、父子 Agent、工具和模型调用,不归因于单个 Recorder。
结构化外部资源
工具结果投影为可折叠卡片;下载、Artifact 和 OSS 地址携带来源、状态与权威链接,不从日志文本猜测资源。
Recorder 故障隔离
BestEffortObservabilityRecorder 使用有界异步队列写补充事件,并记录丢弃、写失败和队列深度指标;失败不升级为工具或 Run 执行失败。
重连恢复
session_restored 返回完整 Session 消息、最近活动、最新 Run snapshot/event sequence 和活跃工具状态,并重放待处理的持久交互;前端按绑定代次替换投影。
12
多Agent协调系统
5 类内置 Agent · Team / Swarm / SubAgent 三种协作模式
Team模式Swarm模式SubAgent模式
general-purpose · explore · verification · plan · guide
根 Session 身份、授权与验证产物归属
子 Agent 通过 root session / root run 身份匹配受约束 Grant,不建立第二套授权权威。Artifact 保留 agent 与 parent run 关联;显式发布候选来自同一持久化根 Session 的根 Run 与授权后代 Run,目标条目必须已验证且发布前哈希仍匹配。
▸ 多Agent协作系统 — Team / Swarm / SubAgent 三模式全景
三模式协调对比 — Team · Swarm · SubAgent
▸ CoordinatorWorkflowEngine 统一调度 — 三模式对比与转换
▸ 多Agent协调深度执行流 · coordinator/ 19文件 4,138行 · Team/Swarm/SubAgent 三模式
13
React 前端架构
209 文件 · 33,642 行 · 117 TSX 文件(109 非测试)· 36 Store
▶ 组件层 117 TSX 文件(109 非测试)· 24 子目录
visualization ×14
message ×19
status ×9
layout ×6
input ×6
common ×5
settings ×4
dialog ×4
theme ×3
permission ×2
git ×2
browser ×3
apos ×2
command ×2
compact ×1
cost ×1
dashboard ×1
diff ×1
doctor ×1
help ×1
memory ×1
plan ×1
plugins ×1
▶ 15个可视化组件
CodeComplexityTreemap663行
CodePathTracer621行
ChangeImpactGraph570行
APIContractViewer527行
CodeDiagramGenerator407行
AgentDAGChart531行
GitTimeline369行
APISequenceDiagram255行
SchemaViewer235行
MermaidBlock204行
BlameView186行
AgentDAGNode103行
ToolProgressBar99行
MiniLogViewer67行
▶ 状态管理 — 36 个 Store 文件 Zustand + 配套状态模块
coordinatorStoremcpStoreconfigStoreswarmStoremessageStoreplanStoretaskStoresessionStoretoolStorepermissionStore
+ 26 more store files
▸ 36 个 Store 文件分类与依赖关系
▸ Store 依赖关系 — dispatch.ts · 消息分发中枢
▸ 可视化组件矩阵 — 代码分析 · API契约 · Agent执行
▸ 前端路由架构 — 页面组织与导航结构
▶ API 通信层
dispatch.ts
REST API 统一调度层 · 请求/响应拦截 · 错误重试
stompClient.ts
WebSocket/STOMP 实时通信 · 消息订阅 · 重连机制
技术栈
React 18.3Vite 5.4Zustand 4.5Monaco Editor 0.52xterm.js 5.5Tailwind 3.4Mermaid 11.14
14
Python 分析服务架构
服务 + CLI · 32 文件 · 8,066 行 · 7 能力域
▶ 分析引擎 analyzers/ · 调用图、影响和路径分析
flow_chart_generator.py657 行
code_path_tracer.py622 行
call_graph_builder.py582 行
sequence_diagram_generator.py527 行
change_impact_analyzer.py416 行
▶ 业务服务 services/ · 浏览器、Git与文件服务
browser_service.py浏览器会话与自动化服务
complexity_analyzer.py515 行
tree_sitter_service.py237 行
browser_models.py119 行 — Pydantic 浏览器数据模型
▶ API 路由 routers/ · 核心与条件路由
/api/analysis434行
/api/browser315行
/api/files276行
/api/code-intel213行
/api/git125行
/api/v1/tokens97行
/api/code-quality95行
/api/tokenizer73行
7个能力域 支持优雅降级
CODE_INTELFILE_PROCESSINGCODE_QUALITYANALYSISGIT_ENHANCEDBROWSER_AUTOMATIONHTTP_API
▸ Python 代码分析引擎架构
代码分析能力域 — 分析器 · 服务 · API 端点
▸ Java ↔ Python 服务完整调用流 · PythonCapabilityAwareClient · 7能力域 · 指数退避重试
15
部署架构 — 单容器多进程
Single Container · Java主进程托管Python子进程 · 前端静态资源集成 · 日志按日滚动
Docker
docker-compose.yml · 单容器多进程架构
Dockerfile + docker-entrypoint.sh → 多阶段构建
Scripts
start.sh / stop.sh · 一键启停
Java + Python + 前端三进程统一管理
Logging
日志滚动 · app-YYYY-MM-DD-N.log.gz
按日期+序号自动滚动,gzip 压缩归档
Config
环境配置 · .env + .env.example
集中管理数据库、API Key、端口等环境变量
ZhikunCode Architecture Reference · ea0170c · 2026-08-09 · 134,826 Product Lines · 863 Git-Tracked Files