Skip to content

Commit 367521d

Browse files
10x-Anitclaude
andcommitted
v2.0.14: Go live — real engine, session persistence, slash commands, UX polish
Critical fixes: - Remove mock engine entirely (~600 lines), connect to real Rust engine via --headless - Fix JSON-RPC protocol: Action enum tuple→struct variants for serde deserialization - Add 6 missing UiEvent variants (Banner, StatusUpdate, SystemMessage, SidebarUpdate, ModelInfo, ContextFilesUpdate) - Session persistence across turns — AI remembers previous exchanges - Wire all 63+ slash commands through headless orchestrator (was no-op) - Fix empty call_id in tool_call_end — tool cards no longer stuck as "running" - StatusUpdate emissions from worker (thinking → tool_name → idle) - Emit Banner + StatusUpdate on engine startup UX polish (Claude Code-style): - "Cooked for Xm Xs" session timer after each AI response - Compact single-line tool cards for completed tools - Assistant messages with filled circle bullet indicator - User messages with chevron prompt - System messages with distinct level icons (info/warning/error) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 0034f6d commit 367521d

42 files changed

Lines changed: 842 additions & 1397 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

bin/cli.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@
99
* This launcher:
1010
* 1. Finds the native Rust engine binary (native/ dir or system PATH)
1111
* 2. Launches the Ink TUI with OA_ENGINE_PATH env var
12-
* 3. Falls back to --mock mode if no binary found (TUI still works)
13-
* 4. Supports --headless flag to bypass TUI and run Rust engine directly
12+
* 3. Supports --headless flag to bypass TUI and run Rust engine directly
1413
*/
1514

1615
const { spawn, execFileSync } = require("child_process");
@@ -130,7 +129,6 @@ if (!tuiEntry) {
130129
const env = {
131130
...process.env,
132131
OA_ENGINE_PATH: binaryPath || "",
133-
OA_MOCK: binaryPath ? "0" : "1",
134132
};
135133

136134
const child = spawn(process.execPath, [tuiEntry, ...args], {

ink-tui/dist/app.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import React from 'react';
1616
import { type BridgeConfig } from './engine/index.js';
1717
export interface AppProps {
18-
/** Engine configuration. Defaults to mock mode if OA_MOCK=1 or --mock flag. */
18+
/** Engine configuration. Defaults to spawning 'openanalyst' binary. */
1919
engineConfig?: BridgeConfig;
2020
}
2121
export declare function App({ engineConfig }: AppProps): React.ReactElement;

ink-tui/dist/app.js

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ink-tui/dist/app.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ink-tui/dist/components/assistant-message.js

Lines changed: 5 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ink-tui/dist/components/assistant-message.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ink-tui/dist/components/status-bar.js

Lines changed: 36 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)