An Intent-Driven, Deterministic, Spatial-Semantic Terminal UI Protocol and High-Performance Runtime. Aligned with the CommonIntents-144 (
CI-144) Protocol Family. Ecosystem Integrated: Tuck (Security) + Helix-Mind (Memory/Cognition) + Anaphase (Orchestration) + Tentacle (Tool Execution)
| Phase | Content | Status |
|---|---|---|
| P0 | Methodology Init + Code Audit | ✅ Complete |
| P1 | CI-144 v2.0 Alignment (PFP + SAP) | ✅ Complete |
| P2 | Tuck Integration (Audit Log + Security Events) | ✅ Complete |
| P3 | Helix-Mind Integration (Semantic Snapshot + Cognitive Craft) | ✅ Complete |
| P4 | Anaphase Integration (Orchestration + HITL) | ✅ Complete |
| P5 | Tentacle Integration (Tool Execution + Plugin Audit) | ✅ Complete |
| P6 | Production Ready (Config/Logging/Monitoring/Deploy) | ✅ Complete |
Status 2026-09-14 (ADR-0016):
web/assets/is now fully under the 400-line red line.prove_track.html(955 lines) was split by concern into five assets —prove_track.css(style),prove_track.html(skeleton),prove_track.data.js(pure data layer, zero state),prove_track.view.js(view layer, ownsS/HAS) andprove_track.js(control layer: bindings + public API). Cross-asset calls go through thewindow.CxProveTracknamespace (same pattern as ADR-0015 D14'swindow.CxSession); load order data → view → ctrl →script.htmlis a hard constraint, and__proveTrackLoad/__proveTrackClearare unchanged soscript.htmlneeded zero edits. The data layer was made pure:computeRepeats()now takessessionexplicitly instead of reading the closure'sS.Same round fixed a latent defect:
base.htmlline 1 carried a strayr#"prefix — the raw-string opener, dragged in when the asset was extracted out of Rust source. It pushed DOCTYPE off byte 0, forcing the browser into quirks mode and rendering a literalr#"at the top of the page. The missing</head>was restored too. Existing tests only usedcontainsassertions and never checked the first byte, which is why it survived this long;assert!(html.starts_with("<!DOCTYPE html>"))now guards it.cargo test --no-fail-fast= 349 passed / 0 failed / 4 ignored(2026-09-17 实测)。Status 2026-09-09 (ADR-0015 D14): Session management deepened under the 水之波光 · 触境 component language, on a durable-session-log skeleton (the log is the fact; a click resumes progress). Chat sidebar now loads a period's history into the chat space on click (period-head + messages + resume anchor + banner + highlight), inline rename (✎ → edit-in-place on the title row, Enter save / Esc cancel, toast feedback, empty = restore auto name) — no native prompt. "+ 新对话" resets the anchor and restores the honest zero-state. Robustness guards:
sesSeq/histSeqrequest-sequence guards (a slow stale response never clobbers a newer list/history),chatBusyno-double-send,.skskeleton loading, dual-sidebar failure/empty states. 400-line red line enforced: session logic split intoweb/assets/session.html(219 lines), script.html 278. Components sedimented to lumtract aslumtact-sessions.css(183 lines,lumtact-ses-prefix, token-reference-only, verify 25/25). Live test: resume-send "7 的 9 次方" → Helix calc → 40353607 on screen.Cockpit v2 (2026-09-09): old stat cards + plain ledger list are gone — stats bar (episode / ledger count / refresh tick) + Ledger white-box as a structured five-column table (status / time / trace_id / call / note), semantic chips, click-to-expand payload — same table language as the ProveTrack event table (one ledger, two projections). ProveTrack v3 is the 水之波光 Harness v11.2.0 trajectory skeleton: five-column event table (type/summary/status/duration/tokens) + Overview three-track timeline (Input/Model/Tools sharing one horizontal ruler) + toolbar (mono-width / fold turns / unfold calls / replay / search) + bottom stats bar + right inspector drawer (Summary/Payload/Result/ Schema/Timing) — rendered from the standalone asset
web/assets/prove_track.html(e-prefixed tokens, view-scoped isolation). Semantic status (Met/Unmet/PASS/FAIL/ok/fail) keeps semantic colors ([PHYS:L-002]). Selected rows highlight with background only — no colored bold left border ([PHYS:D-003]). Status dots are static (idle animation violates[PHYS:R-003]); degradation ladder covers reduced-motion / high-contrast / narrow screens (卷三 3.5.3).Status 2026-09-08: Web panel (:50050) is now the primary white-box window (ADR-0033): 证轨 ProveTrack (pre-v3) was a turn outline; chat shows a collapsible 思考 (think) row (streamed
thinkfield, display-only, never judged) and the SSE stream is deterministically drained (events before the terminal{done,reply}, reply is authoritative — no truncated answers); sessions are auto-named from the first user message and renameable (✎, sidecar.name, empty = fallback to auto name); 续接 (resume) dropdown in the chat-input's bottom-right continues an explicit experience — selecting one loads that experience's history into the chat space (messages, answers, tool outcomes), then the next sentence continues it.Chain integrity (ADR-0029): the imprint is a closed loop — physical outcome → deterministic check → audited verdict.
tool/resultrows carryoutcome + outcome_sha(byte-verifiable product), every criteria report becomes acheck/statusrow (judge/gate/expect/ evidence_id/reason — no bare labels),VERDICTcarries its reason, andEND.success ≡ (verdict ≠ Unmet)(never self-reported). Private thinking persists asassistant/think(redacted, display-only) and every expandable row uses one fold primitive (click to expand / click to close / hover to preview). Transport faults never interrupt a streamed answer — a partial answer is kept, only a fault with no content toasts.POST /v1/crystallizedistills UNMET rounds into 0-token rule suggestions (machine suggests, human reviews, nothing auto-injected). TUI/Web share one state model (isomorphic display; renderers are thin backends). Start:cargo run --bin upfrom the repo root — Enter through the prompts, the panel opens at http://127.0.0.1:50050/ (orup --restartto restart the whole ecosystem; bind/1-to-1 pairing happens on first launch). 全链路正文回放:Anaphase 设reasoning_trace_path(本地 config)后,ProveTrack 详情可回放每轮 prompt/response(写前脱敏 + 截断);推理经x-tuck-trace头把run-xxxid 传给 Tuck 审计链,链与正文共用一键 join。
Test Coverage: 327 tests (实测 cargo test --workspace --all-features, 2026-09-07, 0 failed)
cellrix-protocol: 137 tests (incl.ProveTrackreal-chain shapes)cellrix-transport: 95 tests (incl.tuck_audit_cliente2e + live gateway)cellrix-ui: 90 tests- cockpit live roundtrip:
transport/tests/anaphase_live.rs(#[ignore], needs live Anaphase) - ProveTrack live gateway:
transport/src/tuck_audit_client.rslive_fetch_from_real_gateway(#[ignore], needs the Tuck gateway on :60052) - cockpit TUI (real render): see §6.4 (stdio/uds, verified 2026-09-06 both channels)
- Other: 5 tests
Helix Ecosystem Full Integration:
- Tuck (Security/Immune System) — Audit Log + Security Events + PFP Visualization
- Helix-Mind (Memory/Cognition) — Semantic Snapshot + Cognitive Craft + Knowledge Graph
- Anaphase (Orchestration) — Task DAG + HITL + Lifecycle + Cognitive Phase
- Tentacle (Tool Execution) — Tool Execution + Plugin Audit + Call Chain
- Production Ready — Config + Logging + Health Check + Metrics
Traditional Terminal UIs (TUIs) and graphical interfaces are designed exclusively for carbon-based visual perception. They render pixels or raw characters in absolute coordinates. When silicon-based agents (AI) interact with them, they must either parse cluttered, non-standard text dumps or execute costly visual OCR.
Cellrix bridges the comprehension gap between carbon and silicon minds.
By treating the terminal screen not as a raw canvas, but as a grid of deterministic, semantic cells, Cellrix implements a dual-aspect spatial-semantic paradigm:
- To Human Eyes: It presents a beautiful, responsive visual layout following the Somatic Monasticism aesthetic.
- To Silicon Agents: It exposes a deterministic topological graph of semantic nodes (
CIN7), allowing the agent to navigate, inspect, and interact without visual friction or screen scraping.
[ Silicon Agent ] [ Carbon Human ]
│ │
(CIN7 / CIB19 Stream) (Crossterm TUI Render)
▼ ▼
┌───────────────────────────────┐ ┌───────────────────────────────┐
│ Semantic Topology │ │ Somatic Visual Grid │
│ { "id": "text_1", │ │ ┌─────────────────────────┐ │
│ "node_type": "text_panel", │ │ │ ● ACTIVE SENSORS │ │
│ "slot": "main" } │ │ │ # Hello from mock agent │ │
└───────────────────────────────┘ └───────────────────────────────┘
Cellrix is the official reference implementation of the CommonIntents-144 (CI-144) protocol family, now upgraded to v2.0 with the Physical Anchor Layer:
CIN7(INTENT-7): Defines the intent schema, structuring snapshots into 7 core semantic fields. It mandates a hard safety limit of 256 nodes and 1MB content per node to prevent DDoS and memory exhaustion (OOM) on resource-constrained devices.CIC13(CAPABILITY-13): Governs capability authorization and confirmation. The Display Server intercepts focus switches and routes downstreamsys_suspendandsys_resumecommands, allowing agents to execute local self-throttling.CIB19(BIND-19): Establishes the transmission binding, mandating a prime-number heartbeat interval of 19 seconds (to prevent multi-agent network resonance) and a client timeout threshold of 40 seconds.
PFP-xCF14(Physical Feature Protocol): 4-byte fixed-offset header carrying physical context for hard real-time security decisions.- Fields: Modality (COGNITIVE/RENDER/EXECUTIVE/SENSOR_FEED), Risk-Level (LOW/MEDIUM/CRITICAL/CATASTROPHIC), Body-Stance, Proximity-Edge, Output-Dest, Override-Flag, Replay-Enable
- Magic number:
0xCF14(2 bytes) + 1 byte protocol ID + 1 byte data - Tuck reads only PFP for sub-millisecond security decisions — no decryption required
SAP-xCF14(Security Attestation Protocol): 28-byte optional security layer loaded on-demand.- Fields: Seq-Counter (16-bit anti-replay), PAH-Hash (112-bit SHA-256 truncated), PAH-Signature (64-bit ECC truncated)
- Rule 6: Replay-Enable=0 forces Risk-Level downgrade to MEDIUM + mandatory PAH verification
- Dual-layer security: 64-bit fast verification (Tuck real-time) + 512-bit full verification (post-hoc audit)
Cellrix is the semantic projection terminal for the Helix ecosystem, integrating with all core components:
| Component | Role | Integration Status |
|---|---|---|
| Tuck | Immune System (Security Gate) | ✅ Audit log consumption + security event visualization |
| Helix-Mind | Memory & Cognition (Brain) | ✅ Semantic snapshot + cognitive craft + metabolism display |
| Anaphase | Orchestration (Torso) | ⏳ P4: Task queue + HITL interaction |
| Tentacle | Tool Execution (Hands) | ⏳ P5: Tool status + plugin audit |
- Audit Log Reader: Consumes Tuck's chain-HMAC tamper-proof audit logs (JSON Lines format)
- Security Event System: 5-level priority queue (Info/Pass/Reject/HITL/HardOverride) with notification banners, confirm dialogs, and emergency full-screen overlays
- PFP Visualization: 7-field color-coded physical feature display with risk-level progress bars and Rule 6 downgrade support
- Cognitive Craft Display: Real-time visualization of CognitiveMode (Skilled/Anchor/Imagination), impasse level (0-5), stages attempted, suggested actions, and activation vectors
- Memory Metabolism Display: Phase state indicator (Gas/Liquid/Crystal ●/○), heat/tension progress bars, concentration (Dissolved/Colloidal), generation count
- Knowledge Graph Display: Node/edge lists with heat-based color coding, phase state tags, and relation type visualization
- Client Trait + Mock:
HelixMindClienttrait with 7 methods (query/remember/forget/helix_query/consolidate/get_snapshot/health_check) +MockHelixMindClientfor testing and development
The workspace is split into decoupled, isolated crates to guarantee maximum portability and WebAssembly (WASM) cross-compilation:
cellrix/ (Workspace Root)
├── cellrix-protocol/ (`protocol`) # Aligns CIN7/CIC13. Zero-dependency, 100% WASM-compilable.
├── cellrix-layout/ (`layout`) # Pure math layout engine & DFS Focus Manager. Exposes WASM bindings.
├── cellrix-ui/ (`ui`) # Modularized UI. AppState is decoupled from Crossterm IO for WASM.
├── cellrix-transport/(`transport`) # Multiplexed UDS/Stdio Display Server implementing CIB19 watchdogs.
└── cellrix-cli/ (`cli`) # The command-line tool launcher (cx).
Unlike traditional TUIs bound to a single process, cellrix-transport implements a UDS Multiplexing Daemon. Cellrix acts as the Wayland-style display server (accepting connections), while your agents connect passively as clients.
- Active client (In focus): Cellrix performs full, high-speed deserialization of the incoming
AgentEvent::Snapshot. - Inactive clients (In background): Cellrix performs lightweight tag peeking using
serde::de::IgnoredAny. It skips the massive snapshot body entirely—resulting in absolute zero heap allocation—and drains the raw bytes safely from the socket buffer to prevent background client thread-blocking.
Cellrix is built on a quiet, high-contrast, low-energy palette where colors represent system states, never decoration:
- Volcano Base Background:
#18181A(RGB: 24, 24, 26) - Paper White Text:
#E4E4E7(RGB: 228, 228, 231) - Monastic Indigo Highlight:
#5B5FC7(RGB: 91, 95, 199) — activated during active reasoning, focused states, or active tab indicators. - Alert Amber:
#D08770(RGB: 208, 135, 112) — triggered during high-risk actions or active Zen modes. - Slate Gray secondary:
#71717A(RGB: 113, 113, 122)
All keybindings and mouse interactions are designed to respect professional developer habits (Vim, Tmux, Claude Code, and Nano):
| Shortcut Key / Action | Behavior | Design Philosophy |
|---|---|---|
Tab |
Focus next interactive panel or button | Standard TUI DFS traversal |
Shift+Tab |
Focus previous interactive panel or button | Reverse TUI DFS traversal |
Alt + Left/Right |
Cycle slot active node (tabbed views) | Claude Code Agent View tab switching |
Alt + n |
Focus next active Agent (swaps active stream) | Dynamic multi-agent active routing |
Alt + p |
Focus previous active Agent (swaps active stream) | Dynamic multi-agent active routing |
Ctrl+O |
Toggle Zen Mode (100% viewport expansion) | Nano (^O WriteOut) & Claude Code view toggle |
Ctrl+L |
Redraw terminal buffer | Readline / Terminal redraw standard |
Ctrl+C |
Graceful exit (Restores alternate screen cleanly) | Nano (^X) & standard Unix interrupt |
Left-Click |
Focus clicked panel immediately | Intuitive spatial hit-testing |
Left-Click + Drag |
Trigger custom high-precision copying | Pillar B: Column-isolated copy, bypassing borders |
Shift + Drag |
Native OS terminal copying bypass | Unix-native bypass standard |
Ensure you have the Rust toolchain and target installed:
rustup default stable
rustup target add wasm32-unknown-unknownTo prevent multi-agent CPU starvation in unoptimized debug-mode loops, we highly recommend building and running in Release mode:
cargo build --release --workspaceTo compile the pure-mathematical cellrix-layout engine for browser WebGL/R3F high-fidelity holographic projection environments, run:
cargo build --target wasm32-unknown-unknown -p cellrix-layout(Alternatively, use wasm-pack build layout --target web to generate standard JS/TS glue bindings).
The cockpit projects the Anaphase conscious-layer snapshot (mode / cognitive
state / episode / ledger) — a white-box window into the agent. Point it at a
running Anaphase (the up launcher below starts one for you).
Two transports (choose one; --mode is the transport, not the app mode):
# stdio: cockpit spawns the agent itself (single terminal, simplest)
cellrix-cli run --mode stdio --exec /path/to/anaphase --anaphase-endpoint http://127.0.0.1:50061
# uds: cockpit is the display server, agent connects to the socket (two terminals)
cellrix-cli run --mode uds --socket /tmp/cellrix.sock --anaphase-endpoint http://127.0.0.1:50061
mock-agent --mode uds --socket /tmp/cellrix.sockCockpit chat (verified 2026-09-06, real LLM round trip): a fixed 3-row chat box is always visible at the bottom — press Enter (with no action button selected) to focus it, type, Enter sends one cognitive period (Mind retrieval → LLM reasoning → Tentacle execution → ledger), Esc blurs (draft kept). The status row shows the result: green ✓ reply / red ✗ failure; sending keeps focus for a continuous conversation. The declarative
needs_inputaction buttons work the same way.
CI-144 stdio closed loop (ADR-0017, verified 2026-09-06): the stdio transport speaks the full ecosystem dialect with the real Anaphase binary — CIB/1.0 handshake → MessagePack frames → Manifest → snapshot push →
send_actionround trips. Anaphase accepts the launcher convention--mode stdio(and its native--stdio);StdioTransport::send_actionroutes ActionResponses through a dedicated channel (single background reader owns stdout — no frame stealing). Verified live end to end:manifest/snapshot/actionsubcommands against the real binary (transport/tests/ci144_anaphase_live.rs, #[ignore]).
Note:
--anaphase-endpointdefaults tohttp://127.0.0.1:50061(Anaphase cap_http). Override withANAPHASE_ENDPOINTfor live tests. The cockpit tab shows: mode bar ([DRIVE]/[PARTNER]/[SURVIVE]), cognitive state, episode status, and the real ledger entries (MET/UNMETwith trace ids) — same snapshot protocol the future Web panel (G2) will consume.
Easiest path: build once, then run everything from anaphase-helix:
cargo run --bin up -- --cockpit # in anaphase-helix: tentacle + anaphase + cockpit浏览器即开的 Anaphase 驾驶舱白盒窗口(ADR-0014)。与 TUI 共享同一 snapshot 协议——模式 / 认知状态 / 经历 / ledger 逐条可查,自动刷新。
cargo run -p cellrix-web # 打开 http://127.0.0.1:50050
# --anaphase-endpoint 默认 http://127.0.0.1:50061(Anaphase cap_http 协议默认)
# --port / WEB_PORT 默认 50050零依赖(std-only HTTP + 单文件 HTML,无构建链)。先起 Anaphase
(cargo run --bin up)再看面板;未起时页面显示离线。
已验证(2026-09-06):anaphase :50061 snapshot → cellrix-web :50050 代理
全链路实测通过——mode / state / episode / ledger / ecosystem 六组件点亮,
2 秒轮询,curl http://127.0.0.1:50050/api/snapshot 返回真实快照。
Web 面板:鼠标点击顶部标签切换(驾驶舱/证轨/对话);对话页输入框打字后
回车发送(或点「发送」)。回复以 SSE 流式逐字渲染(打字机效果)——浏览器
请求带 Accept: text/event-stream,面板按字节管道透传 Anaphase 的流式输出
(delta 增量 + done 收尾行);旧客户端 / curl 不带该头时自动回落一次性
JSON(同一契约两种传输)。
TUI 终端(up 选 2):
- 启动后自动聚焦对话输入(语义树里 agent 声明的 send_message 按钮), 打开即可直接打字;
Enter发送,Esc退出输入框(草稿保留);Tab移动焦点,Ctrl+T开关鼠标捕获,q退出;- 底部面板显示对话记录(谁 + HH:MM + 内容),与 WebUI 消息流同构。
同构契约(TUI ↔ WebUI):同一数据源(Anaphase snapshot / Tuck audit / 同一对话语义),同一视图结构(驾驶舱 / 证轨 / 对话),错误一律不进对话流 (TUI 状态行红字 = WebUI 居中 toast)。差异仅限渲染介质(终端 vs 浏览器): TUI 走 stdio 语义树,WebUI 走 HTTP + SSE——语义一致,传输不同。
up --restart:一条命令重启全部生态,零提问。停止按逆依赖序
(面板 → Tuck → Anaphase → Mind → Tentacle),启动按依赖序
(Tentacle → Mind → Anaphase → Tuck → 面板),每步健康检查后如实报告。
各组件启动命令从固定工作区布局 + 各服务协议默认值推导;~/.cellrix/up.toml
里保存的自定义命令优先(anaphase_cmd / tuck_cmd)。
cd Cellrix
cargo run --bin up -- --restart # 或 target/debug/up --restart生态点亮条(Web 面板顶部):tentacle :50051 / mind :50052 / anaphase
:50061 / tuck :60052 / panel —— 每组件一个状态点:
绿 = 健康 · 黄 = 端口通但健康探测未过 · 灰 = 未运行 · 红 = 错误。
数据源 /api/ecosystem(TCP 探测 + HTTP health 双检,协议默认端口,
无硬编码)。
证轨 ProveTrack v3(水之波光 v11.2.0 轨迹骨架 · 白盒 + 三轨投影 + 检查器,ADR-0015/0033):
左侧经历列表(每会话一条:时间 · 事件数 · 用户输入预览 + 继续按钮),
点击任意经历加载全链路轨迹——五列事件表(类型/摘要/状态/耗时/Tokens)+
Overview 三轨时间线(Input/Model/Tools 共用一根横向标尺:每一列在三轨上
是同一步,空白 = 该轨确实空闲)+ 工具栏(等宽/折叠轮次/展开调用/重放/搜索)+
底部统计栏(TURNS·STEPS·TOOL CALLS·耗时·TOKENS)+ 右侧检查器抽屉
(Summary/Payload/Result/Schema/Timing 五页签)。CONTEXT 行展开
SA-Core 选择白盒:SA-Core 选择 {L1×9 L3×11} + top 节点短 id · heat ·
相态——看到 Helix 从记忆捞了什么、信了几分(provenance only,绝不写节点正文)。
重放轨迹 = 按事件步进高亮(spin 按钮 + 行脉冲),搜索按事件类型/摘要/工具
过滤(命中行高亮)。真实数据无 tokens 字段时显示 —(物理事实优先,不猜数)。
继续 = 显式续聊:带 job_id 发起新一轮,上一轮摘要作为 true history
注入,新轮 context/inject 记 resume_from。会话 = 经历(ADR-0026),
判据与行动同线——这是 Helix 证轨比通用轨迹多出的一层(通用轨迹没有 verdict)。
对话视图同一经历列表(一份数据两个入口)。
up 起界面时问一次:[1] Web 面板(回车) [2] TUI 终端。
Web = 浏览器面板(默认);TUI = 终端交互界面(cellrix-cli run --mode stdio,自带一个 Anaphase 子进程,与 Web 的 daemon 不冲突)。
up 幂等:面板已在运行时再跑 up,会探测到并提示
「面板已在运行(无需重复启动)」+ 打开浏览器,不会报端口占用错误。
打开面板后点「对话 Chat」——输入消息回车即发送。Anaphase /v1/chat
每次请求装配一个全新 Helix 跑单周期(同潜意识、同黑盒),回复走 Tuck
网关审计(ProveTrack 可查)。当前每轮无跨轮记忆(对话连续性属未来 Memory
/L3 情景),Helix 会诚实告诉你"没有之前的记录"。
The one-command path — no flags, no commands to remember:
# 1. Build once
cargo build --release --workspace
# 2. First run: guided — press Enter, and when asked, paste the Anaphase
# start command once (e.g. `ANAPHASE_CONFIG=/path/to/config.toml /path/to/anaphase`).
# It is saved to ~/.cellrix/up.toml (0600) and never asked again.
cargo run -p cellrix-web --bin up
# 3. Every later run: Enter, Enter — browser opens.
cargo run -p cellrix-web --bin upWhat up does, step by step:
- Probes Anaphase (
/v1/health) and Tuck (audit chain). - Healthy →
✅ 运行中; down + saved command →[1] 启动 [2] 跳过(Enter = 1). - Nothing saved yet → asks once for the start command, persists it.
- Launches the cockpit panel and opens the browser. Ctrl+C stops it.
- Fail-closed: if Tuck is configured but unreachable, Anaphase refuses
to reason and tells you (
⚠️ Tuck 不在岗,已停止工作) — restore Tuck and re-run. The panel always shows the honest state. - One-to-one binding (first run asks):
upoffers[1] 绑定 [2] 稍后— Anaphase mints a 6-digit pairing code (one-time, 10 min), you press Enter to confirm (physical presence = HITL), and the device is bound. Every panel request is then signed (Bearer v1.<id>.<ts>.<nonce>.<hmac>): replay dies on ±60s window + one-time nonce; the secret lives only in 0600 files (~/.cellrix/anaphase-identity.jsonon the Anaphase side,~/.cellrix/identity.tomlon the client side — never in git). Unbound = open, honestly reported by/v1/bind/status.
Minimum prerequisites for Anaphase to actually reason:
config.toml:reasoning_endpoint(an OpenAI-compatible LLM — e.g. the Tuck gatewayhttp://127.0.0.1:60052/v1) andreasoning_api_key.- Tuck gateway running (LLM traffic + audit chain,
tuck_endpointset). - Everything else (
/v1/health) reportsnot configuredhonestly until you point it at real organs — no fake green.
Following Google’s strict hermetic testing conventions, all integration tests are isolated inside crate-level tests/ directories.
| Crate | Tests | Coverage |
|---|---|---|
cellrix-protocol |
137 | PFP/SAP parser, snapshot, action protocol, helix_mind data structures, tuck_audit, ProveTrack (real audit-chain shapes) |
cellrix-ui |
90 | State tree, chat input lifecycle, text panel, audit widgets, PFP widgets, security notifications, helix_mind widgets |
cellrix-transport |
95 | UDS multiplexing, stdio frames, action round trips, helix_mind client (trait + mock), tuck_audit_client (e2e + live gateway) |
| Other | 3 | Integration tests |
ProveTrack is the full-chain audit imprint view: what Helix actually did, governed by Tuck's gateway, hash-linked so any tampering breaks the chain.
# Run with the cockpit + ProveTrack (Tuck gateway on :60052 by default):
cellrix-cli run --mode stdio --exec ./target/debug/mock-agent \
--anaphase-endpoint http://127.0.0.1:50061 \
--tuck-endpoint http://127.0.0.1:60052 --tuck-key tk-local-gateCtrl+E— toggle cockpit / ProveTrack view↑/↓— move the timeline selection (virtual list, only visible rows render)f— type a trace_id filter,Enterapplies,Esccancels (filtered locally — the gateway is never spammed)g— jump to the newest entryEsc— back to the cockpit- Detail column shows kind / trace / caller / destination / status / verdicts /
chain
prev_hash/hash— the tamper-evidence link is inspectable, not assumed
Web projection (isomorphic) — the browser renders the same data model
the TUI shows (one truth, two projections; silicon and carbon read the same
picture). cellrix-web proxies /api/snapshot (Anaphase) and /api/audit
(Tuck chain, Bearer injected here — the identity credential never reaches
the browser):
cellrix-web --tuck-endpoint http://127.0.0.1:60052 --tuck-key tk-local-gate
# -> http://127.0.0.1:50050 (WEB_PORT / --port override)- Top bar buttons switch Cockpit ↔ ProveTrack ↔ Chat (mirrors the TUI
Ctrl+E) - Cockpit v2 — Water's Gleam (2026-09-09): stats bar (episode / ledger count / refresh tick) + the Ledger white-box as a structured five-column table (status / time / trace_id / call / note): semantic status chips, click a row to expand the raw payload. Same table language as the ProveTrack event table — silicon and carbon read the same ledger, no ambiguity.
- ProveTrack panel: overview strip / timeline
2fr+ detail1frproportional grid; click a row for the full imprint (caller / destination / status / verdicts / prev_hash / hash + raw payload) - Full-text replay (2026-09-07): clicking an audit row also fetches that
round's bodies via
/api/trace→ Anaphase/v1/trace— prompt + response of the exact round, redacted at write time, rendered under the imprint - trace_id filter box (Enter applies, Esc clears)
- Auto-poll both projections every 2s; audit limit default 200 (CLI contract)
- Up-style self check: on startup the panel probes Anaphase's own
/v1/health(the ecosystem's one watch-table source — Cellrix renders it, Helix-Mind reads it on demand) and the Tuck audit chain, printing ✅/❌ + what is unhealthy before you open a tab --open: after binding, opens the panel in your default browser — one command, then no more commands
Run it and press Enter — that's it. The first run asks once for the start commands, saves them, and every later run is fully automatic:
cargo run -p cellrix-web --bin up
What happens:
upprobes Anaphase (/v1/health) and Tuck (audit chain).- Healthy →
✅ 运行中, nothing to do. - Down + saved command → one choice:
[1] 启动 [2] 跳过(Enter = 1). - Down + nothing saved yet → asked once for the start command
(e.g.
ANAPHASE_CONFIG=/path/to/config.toml /path/to/anaphase); it is saved to~/.cellrix/up.toml(0600, never in git) and used from then on. Enter alone skips — the panel honestly shows ❌. - The panel launches and the browser opens. Ctrl+C stops it.
Advanced knobs (optional — a beginner never needs them):
--anaphase-endpoint / --tuck-endpoint / --tuck-key / --anaphase-cmd / --tuck-cmd / --wait / --port / --no-open. Env equivalents:
ANAPHASE_ENDPOINT, TUCK_ENDPOINT, TUCK_KEY, UP_ANAPHASE_CMD, UP_TUCK_CMD, WEB_PORT. Source chain: flags > env > ~/.cellrix/up.toml > protocol
defaults — up never guesses, 0 hardcoding.
Live gateway verification (needs Tuck running on :60052):
cargo test -p cellrix-transport --all-features -- --ignored liveTo run the robust, panic-prevention test suite for the cellrix-protocol parser (covering corrupted JSON recovery and DDoS payload truncations):
cargo test -p cellrix-protocol --test parser_testTo run the UDS integration tests verifying CIB19 heartbeat watchdog self-healing and symmetrical multi-client handshakes:
cargo test -p cellrix-transport --test uds_testTo run PFP/SAP protocol parser tests (CI-144 v2.0 alignment):
cargo test -p cellrix-protocol pfp
cargo test -p cellrix-protocol sapTo run Helix-Mind integration tests (data structures + client + UI widgets):
cargo test -p cellrix-protocol helix_mind
cargo test -p cellrix-transport helix_mind
cargo test -p cellrix-ui helix_mindTo run Tuck integration tests (audit log + security events + PFP visualization):
cargo test -p cellrix-protocol tuck_audit
cargo test -p cellrix-ui audit
cargo test -p cellrix-ui pfp
cargo test -p cellrix-ui securityTo run the full workspace test suite:
cargo test --workspaceCellrix follows the phyt-DNA (Plant DNA) self-growth methodology, ensuring knowledge doesn't腐化, growth paths stay clear, decisions are traceable, and documentation lifecycle is managed:
| Component | Purpose | Path |
|---|---|---|
| VISION | North Star vision document | docs/VISION.md |
| DNA | Core philosophy & principles | docs/DNA.md |
| RNA | Standard Operating Procedures (SOP) | docs/RNA.md |
| SPEC | Technical specification (5 volumes) | docs/SPEC.md + docs/spec/ |
| PLAN | Current phase navigation card | docs/PLAN.md |
| GROWTH | Last 3 health snapshots | docs/GROWTH.md |
| DEPRECATE | Deprecated features & migration | docs/DEPRECATE.md |
| ADR | Architecture Decision Records | docs/decisions/ADR-XXXX-*.md |
| Archive | Archived growth snapshots | docs/archive/growth/ |
本表由 ADR 文件头部的
状态字段机械提取(共 18 份)。 缺号 0011–0013(未创建;编号不回收,见ECOSYSTEM.md惯例)。
| ADR | Title | Status |
|---|---|---|
| ADR-0001 | 方法论初始化 + phyt-DNA 采用 | ✅ 已采纳 |
| ADR-0002 | CI-144 v2.0 对齐(PFP+SAP) | ✅ 已采纳 |
| ADR-0003 | Tuck 对接架构 | ✅ 已采纳 |
| ADR-0004 | CPPC v1.1.0 作为 Cellrix v2.0 北极星愿景 | ✅ 已采纳 |
| ADR-0005 | Helix-Mind 联调架构 | ✅ 已采纳 |
| ADR-0006 | Anaphase 联调架构 | ✅ 已采纳 |
| ADR-0007 | Tentacle 联调架构决策 | ✅ 已采纳 |
| ADR-0008 | 生产就绪架构决策 | ✅ 已采纳 |
| ADR-0009 | Anaphase 驾驶舱(候选 G)——双端协议 + TUI 先行 | ✅ Accepted |
| ADR-0010 | transport 帧契约对齐(G-3)——mock-agent 对齐双通道字节序 | ✅ Accepted |
| ADR-0014 | Web 面板(G2)——cellrix-web,浏览器白盒窗口 | ✅ Accepted |
| ADR-0015 | WebUI 水之波光化(Lumtact 设计体系) | ✅ Accepted |
| ADR-0016 | 证轨资产解耦(prove_track.html 955 → 5 资产) |
✅ Accepted |
| ADR-0017 | 证轨资产语言统一(源码与界面文案一律英文) | ✅ Accepted |
| ADR-0018 | 事件族装配层——经历与证轨成为同一事件流的两个 target | ✅ Accepted |
| ADR-0019 | 事件流坐标与通道身份 | 🔶 Proposed(含三个决策点) |
| ADR-0020 | 面板的解锁(密码) | 📝 Draft · 未冻结 |
| ADR-0021 | Web 面板的协议投影(Protocol Projection) | 🔶 Proposed |
ADR-0021 摘要(2026-09-17):Web 面板必须成为协议
GridDefinition/GridSlot的投影。 根因可证——协议早已定义GridDefinition/GridSlot(protocol/src/manifest.rs:36-59)、SemanticNode.slot_binding(snapshot.rs:38)、NodeType::Unknown(snapshot.rs:45-54), 而web/src零使用;TUI 走「协议网格 → 布局引擎 →ui」即碳硅同构(DNA 原则 3),cellrix-web整体绕开协议模型。T0 槽位契约(docs/spec/grids.md)+ T1a 装配数据化已完成 (23 次链式replace+ 24 个include_str!→web/assets/boot.json起搏图 +web/src/boot.rs, 输出与旧机制逐字节相同);T1b–T5 待做。
The Cellrix Physical Protocol Charter (CPPC) v1.1.0 defines the long-term vision for Cellrix v2.0:
- Three Physical Laws: Pure Symbolic Contract + Logical State Determinism + Physical Layer Sovereignty
- Dual Universe Architecture: Logic Universe (pure symbols) + Physical Universe (native rendering)
- 12 Core Reserved Tokens: 6 structure types + 5 spatial layout + 1 interaction trigger
- Patch Algebra: INSERT/DELETE/UPDATE/REPLACE/TAKE/PLACE (MOVE abolished)
- Full-Incremental Dual Track: Initial full snapshot + steady-state incremental patches + logical checkpoints (100 patches / 5 minutes)
See docs/vision/cppc-v1.1.0.md for the full charter.
This project is licensed under the MIT License - see the LICENSE file for details.