mirror of
https://github.com/mikeyobrien/ralph-orchestrator.git
synced 2026-04-25 07:05:57 +03:00
[PR #2] [MERGED] feat: add production-ready features with async logging, security, and Rich output #81
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/ralph-orchestrator#81
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/mikeyobrien/ralph-orchestrator/pull/2
Author: @mikeyobrien
Created: 12/13/2025
Status: ✅ Merged
Merged: 12/13/2025
Merged by: @mikeyobrien
Base:
main← Head:fix/async-logger-thread-safety📝 Commits (10+)
9f48831chore: clean up development artifacts for GA releasec20e4d5docs: mark GA cleanup task complete with validation94f96f0docs: final verification of GA release cleanup905be96feat: add SecurityValidator system for input validation and path sanitizationbfe3c73feat: add thread-safe configuration with ConfigValidator38fb0bdfeat: add advanced async logging with rotation and security maskingf3e59c8feat: implement graceful signal handling with subprocess-first cleanupbf94f5ffeat: add error formatter with user-friendly suggestionsb54b7dffeat: add VerboseLogger with session metrics and Rich integration6a82c1dfeat: add memory-efficient IterationStats for per-iteration tracking📊 Changes
43 files changed (+11998 additions, -946 deletions)
View changed files
📝
.gitignore(+2 -0)➖
CLAUDE_TOOLS_UPDATE.md(+0 -141)📝
PROMPT.md(+285 -118)📝
README.md(+45 -13)➖
mkdocs-simple.yml(+0 -66)📝
pyproject.toml(+2 -0)➖
ralph-orchestrator/docs/api/orchestrator.md(+0 -0)📝
src/ralph_orchestrator/__init__.py(+16 -2)📝
src/ralph_orchestrator/__main__.py(+144 -104)📝
src/ralph_orchestrator/adapters/claude.py(+230 -106)📝
src/ralph_orchestrator/adapters/qchat.py(+11 -9)➕
src/ralph_orchestrator/async_logger.py(+472 -0)📝
src/ralph_orchestrator/context.py(+44 -14)➕
src/ralph_orchestrator/error_formatter.py(+235 -0)📝
src/ralph_orchestrator/logging_config.py(+7 -3)📝
src/ralph_orchestrator/main.py(+340 -17)📝
src/ralph_orchestrator/metrics.py(+173 -2)📝
src/ralph_orchestrator/orchestrator.py(+197 -66)➕
src/ralph_orchestrator/output/__init__.py(+121 -0)➕
src/ralph_orchestrator/output/base.py(+404 -0)...and 23 more files
📄 Description
Summary
This PR adds multiple production-ready features to ralph-orchestrator, bringing it from MVP to GA quality.
New Modules
async_logger.pyerror_formatter.pysecurity.pyverbose_logger.pyoutput.pyoutput_formatter.pyEnhanced Modules
metrics.pyIterationStatsfor memory-efficient per-iteration trackingmain.pyConfigValidatorwith validation warningsorchestrator.pyadapters/claude.pycontext.pyprompt_textsupport for inline promptsNew Features
Inline prompt support: Pass prompts directly via
-p/--prompt-textflag instead of requiring a file-p "Build a REST API"for inline text-P task.mdfor file path (renamed from-p)Smart output formatting:
RichTerminalFormatterwith content-type detection for code blocks, diffs, errors, and plain textRalphConsole integration: ClaudeAdapter uses Rich-based console for formatted output
Bug Fixes
test_sync_logging_handles_stderr_failure_silentlyCommits
Test plan
test_concurrent_sync_loggingtesttest_context.pyfor prompt_text feature🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.