-
Notifications
You must be signed in to change notification settings - Fork 5
Project Mode
Project Mode is JoyBoy's Codex-style local development workflow.
The goal is to let a user attach a local workspace to a conversation, then use JoyBoy as a project-aware assistant that can inspect files, reason about the repository, and eventually help make controlled code changes.
Normal chat is not enough for repository work.
A useful local coding assistant needs:
- A selected workspace.
- A clear project conversation.
- Tool calls that are visible and bounded.
- File reads that do not spiral forever.
- Cancellable runs.
- Recoverable state.
- A UI that still feels like a conversation, not a raw terminal dump.
Project Mode should feel closer to a guided local agent workflow than a generic command runner.
The intended flow is:
- The user clicks the project/workspace entry point.
- JoyBoy asks the user to choose a local folder.
- JoyBoy creates a new project conversation named after the workspace.
- The project name appears clearly in the conversation header.
- The assistant can inspect the repository through controlled tools.
- Tool progress is shown in the conversation without taking over the whole UI.
- The user can stop a run and recover cleanly.
The design should stay close to the normal JoyBoy chat experience, with enough visual difference to show that the conversation is project-aware.
- Prevent project-mode runs from continuing after the conversation is deleted.
- Improve stop/cancel behavior.
- Keep tool loops bounded.
- Avoid repeated useless file scans.
- Make workspace selection more natural.
- Keep project messages aligned and styled like normal chat messages.
- Add better empty states and setup guidance.
- Make code blocks render properly when local models output code.
Project Mode should follow a few hard rules:
- One workspace per project conversation.
- No project tools without a selected workspace.
- No infinite tool loops.
- No destructive filesystem actions without explicit user intent.
- Tool output should be summarized when it is too long.
- A stopped run should actually stop.
The long-term goal is a local agent mode that can:
- Analyze a repository.
- Maintain lightweight task context.
- Propose concrete changes.
- Apply patches safely.
- Run tests and report results.
- Keep the user in control.
This should be developed carefully. Reliability matters more than looking impressive for one demo.