Enhance conversational features, file handling, and UI improvements#20
Merged
hoangsonww merged 9 commits intomasterfrom Apr 24, 2026
Merged
Enhance conversational features, file handling, and UI improvements#20hoangsonww merged 9 commits intomasterfrom
hoangsonww merged 9 commits intomasterfrom
Conversation
…tool/test handling - Implement conversational task fast-path: direct model response for pure questions, bypassing plan/approval/execute/review pipeline - Add per-process file mutex and atomic write primitives to prevent concurrent file-edit/write races - Update write_file and edit_file tools to use atomic writes and file locking - Enhance classifier with looksConversational heuristic and tests - Update reviewer to handle analysis/informational tasks without requiring file changes - Improve run-tests tool: auto-detect node:test, prefer npm when both present - Refine permission manager to honor cached grants for execute/network tools - Add streaming model delta events for real-time UI updates - Improve markdown rendering for inline code fences - Update planner and executor prompts for more precise tool mapping and file operation guidance - Bump package version to 0.1.2 and update install scripts for new package name - Add and update tests for new behaviors and edge cases - Refine styles for streaming log lines and conversation follow-up input in UI
…ust code block handling
…streaming, and robust path handling - Add launch banner and progress breadcrumbs to REPL for parity with CLI - Refine completion and error summary rendering for consistent UX across surfaces - Improve markdown renderer: renumber ordered lists, normalize inline code fences, and handle indented code blocks - Expand tilde (~) in user-supplied paths for file operations and UI directory picker - Add /api/dir endpoint for safe directory browsing in UI, confined to $HOME - Support inline plan editing in interactive hosts (UI plan editor) - Ensure consistent task IDs between orchestrator and UI runner for reliable event streaming - Replay model deltas to late WebSocket subscribers for seamless live streaming - Update styles for log lines, markdown, directory picker, and chat bubbles for improved readability and UX - Add live demo section to documentation with video showcases of REPL, CLI, and UI
Contributor
There was a problem hiding this comment.
Code Review
This pull request introduces significant enhancements to the Forge runtime, including a conversation fast-path for general Q&A, a narrator agent for analysis tasks, and model "warming" to hide cold-load latency. It also adds robust file-locking and atomic-write primitives to prevent race conditions. The Web UI and CLI now support live streaming of model output and improved markdown rendering. Feedback identifies a potential character corruption issue in the streaming logic of the Anthropic, Ollama, and OpenAI providers when handling multi-byte UTF-8 characters, and suggests expanding markdown fence detection in the progress display to include tildes.
| let outputTokens: number | undefined; | ||
| let finishReason: 'stop' | 'length' = 'stop'; | ||
|
|
||
| for await (const chunk of res.body as AsyncIterable<Buffer>) { |
Contributor
| let finishReason: 'stop' | 'length' = 'stop'; | ||
|
|
||
| for await (const chunk of res.body as AsyncIterable<Buffer>) { | ||
| buffer += chunk.toString('utf8'); |
Contributor
| let finishReason: 'stop' | 'length' | 'tool_call' = 'stop'; | ||
|
|
||
| for await (const chunk of res.body as AsyncIterable<Buffer>) { | ||
| buffer += chunk.toString('utf8'); |
Contributor
| // render a partial code block as markdown, it'll mangle. Counts triple | ||
| // backticks at line starts; odd count = open fence. | ||
| const hasOpenFence = (text: string): boolean => { | ||
| let count = 0; |
Contributor
There was a problem hiding this comment.
… with inline demos and links
…ies in CI, nightly, and release workflows
Removed table of demo links and replaced with video links.
Replaced video elements with links to external video files.
…ies in CI, nightly, and release workflows
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a Makefile to the project, improves documentation around installation, system requirements, and model capabilities, and clarifies the project's positioning as "plan-first" and local-first. The changes aim to streamline developer workflows, make system requirements explicit, and guide users in selecting appropriate models for different tasks.
Key changes include:
Developer Tooling
Makefilethat wraps common npm, Docker, and utility commands, providing short aliases, grouped help, and idempotent recipes for building, testing, running, and maintaining the project. This is intended as a developer convenience layer overpackage.jsonscripts and Docker, not as the canonical build system.Documentation Improvements
README.mdanddocs/INSTALL.mdto include a detailed "System requirements" section, specifying Node.js, OS, RAM, disk, Docker, and model source requirements, as well as recommended (but optional) dependencies likeripgrepandgit. [1] [2]README.mdanddocs/ARCHITECTURE.mdto clarify the minimum model capabilities required for various tasks, including a table mapping model size/type to supported workflows and failure modes, with explanations of runtime guards that prevent silent failures when using smaller models. [1] [2]Project Positioning and Clarity
README.mdand related docs to emphasize "plan-first" in addition to "local-first", clarifying Forge's unique approach and differentiating it from hosted assistants. [1] [2]README.mdto point to the correct documentation locations on GitHub and the project wiki.Minor Documentation Cleanup
RELEASES.mdfor a cleaner appearance.docs/INSTALL.md.These changes collectively make the project more accessible to new contributors, clarify what is needed to run and develop Forge, and help users select the right models for their workflows.