-
Notifications
You must be signed in to change notification settings - Fork 452
Add custom agents: creation, : trigger, CLI agent compatibility, and Plan mode abort fix #82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Open source release of 1Code - Best UI for Claude Code with Local and Remote agent execution. Apache License 2.0
## What's New in v0.0.11 ### Changes - Renamed app from Agents to 1Code - Fixed appId to dev.21st.agents for auto-update compatibility - Prevent todo list flickering and improve streaming UX - Handle stale lock files from crashed instances - Show Open PR button when no uncommitted changes - Improved auto-update UX
## What's New in v0.0.12
### Features
- Drafts section in sidebar with preview and delete functionality
- Interrupted state for tools - shows "{toolName} interrupted" when stopping agent with ESC
- Tooltip with full file path when hovering over truncated filenames
- "See what's new" banner after app updates with link to changelog
### Improvements & Fixes
- Fixed sub-chat renaming not persisting to database
- Fixed editor focus after drag & drop image insertion
- Pending questions now bound to specific sub-chat (no longer appear in wrong chat)
- Fixed duplicate text in todo tool when status is in_progress
- Renamed "Premium support" button to "Feedback"
- Performance optimizations for pending questions
## What's New in v0.0.16 ### Improvements & Fixes - Fixed authentication redirect URL for packaged app - Fixed sidebar workspace timestamps updating on message send - Exclude session/plan files from changed files status bar - Reduced stop button icon size in send button
Adds ability to clone repos directly from GitHub by entering a URL or owner/repo format.
Repos are stored in userData/repos/{owner}/{repo}.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Stores cloned repos alongside worktrees for consistency. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Shows "Clone from GitHub" button alongside "Select folder" during first-time setup. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
## What's New in v0.0.18 ### Improvements & Fixes - Fixed sidebar flickering when switching between chats
## What's New ### Features - Added Cmd+Enter shortcut for "Implement plan" button - Improved archive popover: auto-unarchive on selection, input clears on revisit ### Fixes - Fixed sidebar flickering when switching between chats
## What's New ### Features - Added Cmd+Enter shortcut for "Implement plan" button - Improved archive popover: auto-unarchive on selection, input clears on revisit
## What's New ### Fixes - Fixed z-index layering for sticky user message bubble - Removed MCP servers indicator from header
Prevent message submission during IME composition (Chinese/Japanese/Korean input). Users can now use Enter to confirm IME candidate selection without triggering message send. Added isComposing check to both AgentsMentionsEditor and PromptInputTextarea components. Changes: - agents-mentions-editor.tsx: Add !e.nativeEvent.isComposing check - prompt-input.tsx: Add !e.nativeEvent.isComposing check
## What's New ### Fixes - Fixed scroll behavior: users can now scroll up freely during streaming - Fixed input lag by deferring trigger detection to next frame
Add animated GIF demos for key features: - Worktree isolation and background agent execution - Cursor-like UI with diff previews and git client - Plan mode with clarifying questions and structured plans Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Fix IME composition issue with Enter key
Add animated GIF demos for key features: - Worktree isolation and background agent execution - Cursor-like UI with diff previews and git client - Plan mode with clarifying questions and structured plans Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Move GIF assets to root assets/ directory and update paths in README. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
## What's New ### Fixes - Fixed scroll behavior: users can now scroll up freely during streaming - Fixed input lag by deferring trigger detection to next frame - Fixed tool display state during streaming
## What's New ### Features - Added scroll-to-bottom button with Cmd+↓ hotkey - Archive now kills terminal processes and deletes worktree ### Fixes - Fixed excessive re-renders in sidebar during scroll - Restored copy and play buttons for AI messages - ESC now skips AskQuestion instead of stopping stream - Show full command in collapsed tool view - Fixed tool display state during streaming
Update download URL to include binary name
fix: Add author email in package.json for .deb package generation
Add clone from GitHub feature
## What's New ### Features - API key & custom provider authentication - Message queue system - Automatic ENV file copying to worktrees with customizable commands - GitHub client in diff sidebar - Clone from GitHub (thanks to [@caffeinum](https://github.com/caffeinum)) - Mention AI response parts (select text and add to context) - CMD+F chat search - Custom responses for Claude questions (not just predefined options) - Styled Clone from GitHub dialog with motion animations ### Improvements - Major performance upgrade across the app - Auto-scroll to newly sent messages - Auto-scroll to bottom during AI responses - Improved markdown rendering and visuals ### Fixes - Auto-update banner no longer shows for open source users
## What's New in v0.0.25 ### Features - **Beta: Message Rollback** - Added experimental rollback feature to restore chat state to previous messages. Enable in Settings → Beta to try it out - **Auto-detection of Claude Code Auth** - App now automatically detects local Claude Code authentication and won't prompt for re-login if already authorized ### Improvements & Fixes - Fixed sub-chat functionality and improved reliability of nested conversations - Improved authentication flow to reduce unnecessary re-authorization prompts --- **Note:** Auto-updates are enabled. Existing users will be notified automatically.
## What's New ### Features - **Ollama Offline Mode (Beta)** - Run Claude Desktop completely offline using Ollama. Enable in Settings → Debug - **Batched Auto-Expand for Large Diffs** - Intelligently batch-expand file diffs for better performance with large changesets ### Performance Improvements - **60s MCP Initialization Delay Eliminated** - Smart server filtering removes long startup delays - **Faster App Startup** - MCP cache warmup and optimized session initialization - **Reduced Network Requests** - Skip unnecessary MCP server loads on first message in new sessions ### Fixes - Fixed diff display and added auto-refresh on window focus - Fixed mention menu positioning with portal rendering - Removed verbose debug logs from Claude router
## What's New ### Features - **Text Selection from Code Blocks** — Select any text from code changes and diffs to reference in your follow-up messages - **Viewed Files Tracking** — GitHub-style checkmarks in the Changes sidebar. Press `V` to mark files as reviewed - **Faster Question Responses** — Press Enter to send your answer immediately, your selections are now preserved ### Improvements & Fixes - Changes sidebar now opens 5x faster - Fixed search highlighting when using CMD+F - Fixed messages not updating properly in background tabs - Fixed Force Push button appearing when it shouldn't - Fixed display issues with new files in Changes view - Fixed line breaks not rendering correctly in messages - Image-only messages now show "Using image" indicator - Better loading indicators for Git operations
## What's New ### Features - **Model Selector** — Choose between different AI models - **Workspace Icon Toggle** — Show or hide workspace icons in appearance settings ### Improvements & Fixes - Faster sidebar and sub-chats hover transitions - Cmd+D now opens Changes sidebar even without changes - Hide sub-chat tab when there's only one chat - Fixed ESC key stopping stream when closing image preview or full-page diff - Fixed attaching files while Claude is responding - Improved image-only message styling - Added toast notification for reply actions
* Windows Build Fixes - Using platform.binary to properly set Claude.exe on Windows platforms - Added missing build/icon.ico * On Windows, process.env.HOME is not set - Windows uses USERPROFILE instead. Use os.homedir()
## What's New ### Features - **Windows Support (Experimental)** — 1Code now runs on Windows! Big thanks to [@jesus-mgtc](https://github.com/jesus-mgtc) and [@evgyur](https://github.com/evgyur) for their contributions making this possible. ### Improvements & Fixes - Fixed sidebar loading spinners synchronization - Fixed token metadata reading from flat structure
Removed aggressive abort in claude.ts to fix issue on follow up when in plan mode.
serafimcloud
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice feature set! The /create-agent wizard and : trigger are well thought out.
A few observations:
1. Token retrieval duplication
getClaudeCodeToken() in agents.ts duplicates the one in claude.ts. Would it make sense to extract this to a shared utility?
2. Agent generation flow
The agents.generate mutation exists but handleCreateAgentSubmit sends a prompt to chat instead. Is there a reason for preferring the chat-based approach over the direct API call?
3. Space after @ closes dropdown
The check afterAt.startsWith(" ") will close the dropdown when typing @ — this differs from the previous behavior that allowed multi-word searches. Was this intentional?
4. Project agents in Settings
The Settings UI now only shows user agents (filtering by source === "user"). Should project agents still be visible there, perhaps in a separate section?
5. Plan mode abort removal
The comment explains the rationale well. Just confirming: with the abort removed, does the Claude process terminate naturally via planCompleted flag, or does it continue running in the background?
You're right that getClaudeCodeToken() is duplicated in both agents.ts (line 33) and claude.ts (line 109). I kept it separate to avoid touching unrelated files in this PR, but it definitely makes sense to extract it to a shared utility.
The chat-based approach was intentional. When the agent is created through the chat interface, the user can see exactly what was generated in the expandable tool steps section. It also allows for quick iteration - if they want to tweak the agent, they can just send a follow-up message. The direct API call would work too, but the chat flow felt more transparent and interactive.
Yes, this was intentional. Previously, if you typed '@' and kept typing, the dropdown would keep searching even when you weren't trying to mention a file - which felt disruptive. With the current behaviour, '@file name' still works perfectly as long as there's no immediate space after '@'. If you type '@ ' (with a space), it assumes you're just using the @ symbol normally.
Showing project-specific agents in the global Settings felt a bit odd to me, so I opted to only show user-level agents there. My thinking was that project-related agents, skills, etc. could live in the Project tab in settings instead. We could also show all agents in one place, though it might get cluttered over time if users have many projects.
Yes, the Claude process terminates cleanly. When 'ExitPlanMode' completes, we set a 'planCompleted' flag and break out of the stream loop. JavaScript automatically triggers cleanup when you break from an async iterator - this is part of the language spec (the engine calls '.return()' on the iterator). The session is then removed from our tracking map in the 'finally' block. |
Custom Agent Creation (/create-agent)
New slash command registered in builtin-commands.ts
CreateAgentForm component with multi-step wizard (name, scope, tools, model, description)
Generates a prompt and sends it to the active chat session to create the agent file
":" Trigger for Agents
Typing : in the chat input opens the agents dropdown directly (skips file/skill categories)
Supports search filtering (:work filters to matching agents)
Selecting an agent inserts a mention pill and removes the trigger text
@ followed by a space now dismisses the dropdown
CLI Agent Compatibility
Added parseFrontmatterFallback() in agent-utils.ts — a regex-based line-by-line parser for when gray-matter fails on complex YAML (unquoted colons, literal \n, XML tags in descriptions)
Added a check: if gray-matter "succeeds" but returns an empty description, fall through to the fallback parser (gray-matter has inconsistent behavior across calls)
Tooltip height limited with line-clamp-3 for large agent descriptions