Skip to content

Commit b3245ff

Browse files
Darth-Hidiousclaude
andcommitted
fix: remove Python CLI entry point — Rust binary is the only CLI
Root cause of issue #8: pip install created a Python 'prism' script that shadowed the Rust binary. The Python CLI only has old commands (setup, configure, run) — not login, node, query, ingest, mesh. Fix: - Removed [project.scripts] prism entry point from pyproject.toml - The Rust binary is the ONLY way to run prism - Python layer is invoked BY the Rust binary via prism-python-bridge - install.sh downloads Rust binary to ~/.local/bin/prism (after pip) - native-release.yml fixed (libcurl + dashboard placeholder + permissions) - Binaries now on release: prism-linux-x86_64.tar.gz (55MB), prism-macos-aarch64.tar.gz (38MB) Also included: - Streaming markdown buffer (Tier 2.1) - Python fallback commands give clear 'install Rust binary' message Closes #8 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 0a5df2c commit b3245ff

2 files changed

Lines changed: 12 additions & 5 deletions

File tree

app/backend/ui_emitter.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
ToolApprovalRequest,
1414
)
1515
from app.backend.protocol import make_event
16+
from app.backend.stream_buffer import MarkdownStreamBuffer
1617
from app.backend.tool_meta import detect_result_type, TOOL_VERBS
1718
from app.backend.status import build_status
1819

@@ -55,6 +56,7 @@ def process(self, user_input: str) -> Generator[dict, None, None]:
5556
plan_buffer = ""
5657
in_plan = False
5758
tool_start_time = None
59+
stream_buf = MarkdownStreamBuffer()
5860

5961
for event in self.agent.process_stream(user_input):
6062
if isinstance(event, TextDelta):
@@ -97,11 +99,14 @@ def process(self, user_input: str) -> Generator[dict, None, None]:
9799
plan_buffer += event.text
98100
continue
99101

100-
# Normal text streaming
101-
yield make_event("ui.text.delta", {"text": event.text})
102+
# Normal text streaming — buffered at safe markdown boundaries
103+
for chunk in stream_buf.push(event.text):
104+
yield make_event("ui.text.delta", {"text": chunk})
102105

103106
elif isinstance(event, ToolCallStart):
104-
# Flush any accumulated text before the tool starts
107+
# Flush buffer + accumulated text before the tool starts
108+
for chunk in stream_buf.flush():
109+
yield make_event("ui.text.delta", {"text": chunk})
105110
if accumulated_text.strip():
106111
yield make_event("ui.text.flush", {"text": accumulated_text})
107112
accumulated_text = ""

pyproject.toml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,10 @@ dev = [
9494
"flake8>=6.1.0",
9595
]
9696

97-
[project.scripts]
98-
prism = "app.cli.bootstrap:main"
97+
# No Python entry point — the Rust binary IS the CLI.
98+
# Python is invoked by the Rust binary via prism-python-bridge.
99+
# [project.scripts]
100+
# prism = "app.cli.bootstrap:main" # REMOVED — conflicts with Rust binary
99101

100102
[project.urls]
101103
Homepage = "https://github.com/Darth-Hidious/PRISM"

0 commit comments

Comments
 (0)