Conversation
There was a problem hiding this comment.
Pull request overview
Adds the initial implementation of the blades local AI agent CLI, including workspace bootstrapping, toolchain, scheduling, and multi-channel I/O.
Changes:
- Introduces a file-based workspace/home layout with embedded templates and
blades init. - Adds built-in tools (notably
execwith guards andcronscheduling) plus session persistence and memory store. - Implements interactive CLI channel and a Lark/Feishu daemon channel with streaming output.
Reviewed changes
Copilot reviewed 61 out of 344 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| cmd/blades/main.go | Adds the CLI entrypoint that executes the root command. |
| cmd/blades/go.mod | Defines module dependencies and Go version for the CLI module. |
| cmd/blades/README.md | Documents features, directory layout, and CLI usage (English). |
| cmd/blades/README_CN.md | Documents features, directory layout, and CLI usage (Chinese). |
| cmd/blades/cmd/root.go | Adds root command, global flags, and root logger initialization. |
| cmd/blades/cmd/root_test.go | Tests root logger path resolution and daily log writing. |
| cmd/blades/cmd/helpers.go | Adds shared wiring: loading config/workspace/memory/MCP, building runner/tools, loading skills. |
| cmd/blades/cmd/helpers_test.go | Tests init skill availability, message limit logic, and exec working dir defaults. |
| cmd/blades/cmd/init.go | Implements blades init with separate home/workspace and optional git init. |
| cmd/blades/cmd/init_test.go | Tests init path resolution and separate home/workspace creation. |
| cmd/blades/cmd/chat.go | Implements interactive chat command using the CLI channel and streaming handler. |
| cmd/blades/cmd/run.go | Implements single-turn run command with streaming output and optional log persistence. |
| cmd/blades/cmd/memory.go | Adds memory subcommands (show/add/search) backed by memory store. |
| cmd/blades/cmd/cron.go | Adds cron CLI commands (list/add/remove/run/heartbeat) and delay parsing. |
| cmd/blades/cmd/cron_test.go | Tests delay parsing, heartbeat job creation, and cron add behavior. |
| cmd/blades/cmd/cron_run.go | Adds helper to run a scheduled job immediately with a fully built runner. |
| cmd/blades/cmd/cron_heartbeat.go | Adds heartbeat job ensure/run-now logic. |
| cmd/blades/cmd/daemon.go | Implements daemon mode running cron + optional Lark channel, with reload and auditing. |
| cmd/blades/cmd/daemon_test.go | Tests shutdown waiting behavior used by daemon. |
| cmd/blades/cmd/doctor.go | Adds doctor command to validate workspace/home health and integrations. |
| cmd/blades/internal/workspace/workspace.go | Implements workspace/home pathing, initialization, and template copying via embed.FS. |
| cmd/blades/internal/workspace/templates/config.yaml | Provides default config template for providers and tool overrides. |
| cmd/blades/internal/workspace/templates/mcp.json | Provides default MCP config template. |
| cmd/blades/internal/workspace/templates/workspace/AGENTS.md | Adds agent startup rules, memory rules, and security restrictions template. |
| cmd/blades/internal/workspace/templates/workspace/SOUL.md | Adds assistant identity/principles template. |
| cmd/blades/internal/workspace/templates/workspace/IDENTITY.md | Adds quick reference identity template. |
| cmd/blades/internal/workspace/templates/workspace/USER.md | Adds user profile template. |
| cmd/blades/internal/workspace/templates/workspace/MEMORY.md | Adds long-term memory template. |
| cmd/blades/internal/workspace/templates/workspace/TOOLS.md | Adds local environment notes template. |
| cmd/blades/internal/workspace/templates/workspace/HEARTBEAT.md | Adds heartbeat checklist template. |
| cmd/blades/internal/workspace/templates/skills/blades-cron/SKILL.md | Adds a built-in cron skill description template. |
| cmd/blades/internal/tools/exec.go | Adds guarded shell command execution tool implementation. |
| cmd/blades/internal/tools/cron.go | Adds cron management tool exposed to the agent. |
| cmd/blades/internal/tools/cron_test.go | Tests cron tool backward-compatible payload/id handling and errors. |
| cmd/blades/internal/cron/types.go | Defines cron job/schedule/payload persisted types. |
| cmd/blades/internal/cron/service_test.go | Tests cron handler compatibility, workdir behavior, timers, and file watching. |
| cmd/blades/internal/session/session.go | Adds file-based session persistence and list/delete support. |
| cmd/blades/internal/session/session_test.go | Tests session save/reload, history preservation, and list/delete. |
| cmd/blades/internal/memory/store.go | Adds memory store (MEMORY.md + daily logs + knowledges injection/search). |
| cmd/blades/internal/model/provider.go | Adds provider factory for anthropic/openai/gemini from config. |
| cmd/blades/internal/config/config.go | Adds config schema and YAML aliases/default handling. |
| cmd/blades/internal/config/load.go | Adds config loading with env expansion and defaults. |
| cmd/blades/internal/config/expand.go | Adds env expansion helper used across config and MCP. |
| cmd/blades/internal/config/expand_test.go | Tests env expansion helper. |
| cmd/blades/internal/config/mcp.go | Adds MCP config loader compatible with Claude Desktop schema + env expansion. |
| cmd/blades/internal/logger/logger.go | Adds runtime/audit logger writing to daily log files. |
| cmd/blades/internal/command/command.go | Adds unified slash-command processor and handlers used across channels. |
| cmd/blades/internal/command/command_test.go | Tests command processor behavior for built-in commands. |
| cmd/blades/internal/channel/channel.go | Defines channel interfaces, streaming writer, and event model. |
| cmd/blades/internal/channel/registry.go | Adds registry for daemon channels. |
| cmd/blades/internal/channel/registry_test.go | Tests channel registry build/start behavior. |
| cmd/blades/internal/channel/cli/channel.go | Adds interactive CLI channel (TUI + simple mode). |
| cmd/blades/internal/channel/cli/model.go | Implements bubbletea model and streaming state for CLI channel. |
| cmd/blades/internal/channel/cli/update.go | Implements CLI input, slash commands, streaming bridge, and stop behavior. |
| cmd/blades/internal/channel/cli/view.go | Implements CLI viewport rendering and cursor positioning adjustments. |
| cmd/blades/internal/channel/cli/styles.go | Centralizes TUI styling based on detected background. |
| cmd/blades/internal/channel/lark/channel.go | Adds Lark/Feishu WebSocket channel with slash commands and dedupe. |
| cmd/blades/internal/channel/lark/channel_test.go | Tests Lark channel options/name and dedupe logic. |
| cmd/blades/internal/channel/lark/card_writer.go | Adds streaming card writer with tool panels and reactions. |
| cmd/blades/internal/channel/lark/card_writer_test.go | Tests tool code block rendering and tool command parsing. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
Adds the new blades CLI agent, including workspace initialization/templates, tool + cron scheduling support, session/memory persistence, and CLI/Lark channels.
Changes:
- Introduces the
bladesCLI entrypoint and command tree (init,chat,run,cron,memory,daemon,doctor). - Adds workspace/home directory management with embedded templates (agent/workspace files, skills, config, MCP).
- Implements core runtime components: exec tool with guards, cron tool/service, session persistence, memory store, channels (CLI TUI + Lark).
Reviewed changes
Copilot reviewed 64 out of 347 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| cmd/blades/main.go | Adds blades CLI entrypoint. |
| cmd/blades/go.mod | Defines module + dependencies for the CLI. |
| cmd/blades/README.md | Documents CLI features, layout, and commands. |
| cmd/blades/README_CN.md | Chinese documentation for the CLI. |
| cmd/blades/cmd/root.go | Root command, flags, and root logger setup. |
| cmd/blades/cmd/root_test.go | Tests log-root behavior (always ~/.blades/logs). |
| cmd/blades/cmd/helpers.go | Loads config/workspace, builds runner, skills/tools wiring. |
| cmd/blades/cmd/helpers_test.go | Tests init skill loading + exec working dir defaults. |
| cmd/blades/cmd/init.go | Implements blades init (home + workspace init, optional git). |
| cmd/blades/cmd/init_test.go | Tests custom/default init path behavior and generated files. |
| cmd/blades/cmd/chat.go | Implements interactive chat wiring (runner, cron tool handler, CLI channel). |
| cmd/blades/cmd/run.go | Implements one-shot run command with streaming output. |
| cmd/blades/cmd/memory.go | Adds memory subcommands (show/add/search). |
| cmd/blades/cmd/cron.go | Implements cron CLI (add/list/remove/run) and delay parsing. |
| cmd/blades/cmd/cron_test.go | Tests cron CLI helpers and delay support. |
| cmd/blades/cmd/cron_run.go | Implements cron run via runner-backed immediate execution. |
| cmd/blades/cmd/cron_heartbeat.go | Adds cron heartbeat helper job ensuring + run-now option. |
| cmd/blades/cmd/daemon.go | Implements daemon mode wiring cron + channel + reload. |
| cmd/blades/cmd/daemon_test.go | Tests daemon shutdown helper. |
| cmd/blades/cmd/doctor.go | Adds doctor command for workspace health checks + MCP connectivity. |
| cmd/blades/internal/workspace/workspace.go | Adds workspace/home path API + init/template copying logic. |
| cmd/blades/internal/workspace/templates/config.yaml | Provides default config template (providers/channels/exec). |
| cmd/blades/internal/workspace/templates/mcp.json | Provides default global MCP config template. |
| cmd/blades/internal/workspace/templates/agent.yaml | Provides default agent spec template (currently home-level). |
| cmd/blades/internal/workspace/templates/skills/blades-cron/SKILL.md | Adds built-in cron skill documentation. |
| cmd/blades/internal/workspace/templates/workspace/AGENTS.md | Adds workspace behavior rules template. |
| cmd/blades/internal/workspace/templates/workspace/SOUL.md | Adds assistant identity/principles template. |
| cmd/blades/internal/workspace/templates/workspace/IDENTITY.md | Adds assistant quick-reference template. |
| cmd/blades/internal/workspace/templates/workspace/USER.md | Adds user profile template. |
| cmd/blades/internal/workspace/templates/workspace/MEMORY.md | Adds long-term memory template. |
| cmd/blades/internal/workspace/templates/workspace/TOOLS.md | Adds local setup notes template. |
| cmd/blades/internal/workspace/templates/workspace/HEARTBEAT.md | Adds proactive heartbeat checklist template. |
| cmd/blades/internal/tools/exec.go | Implements guarded exec tool for shell commands. |
| cmd/blades/internal/tools/cron.go | Implements cron tool surface for the agent. |
| cmd/blades/internal/tools/cron_test.go | Tests cron tool compatibility/aliases and error messaging. |
| cmd/blades/internal/tools/registry.go | Adds a basic named tool registry. |
| cmd/blades/internal/cron/types.go | Defines cron job types (schedule/payload/state/store). |
| cmd/blades/internal/cron/service_test.go | Tests cron scheduler behavior (timers + file watcher). |
| cmd/blades/internal/session/session.go | Adds file-persisted session manager. |
| cmd/blades/internal/session/session_test.go | Tests session persistence behavior. |
| cmd/blades/internal/memory/store.go | Adds MEMORY.md + daily log + knowledge injection store. |
| cmd/blades/internal/logger/logger.go | Adds runtime logging helper writing to daily log files. |
| cmd/blades/internal/model/registry.go | Adds provider/model reference resolver. |
| cmd/blades/internal/model/provider.go | Adds provider factory for Anthropic/OpenAI/Gemini. |
| cmd/blades/internal/config/config.go | Defines config schema (providers/exec/channels). |
| cmd/blades/internal/config/load.go | Loads config.yaml with ${ENV_VAR} expansion + tilde expansion helper. |
| cmd/blades/internal/config/expand.go | Implements env expansion. |
| cmd/blades/internal/config/expand_test.go | Tests env expansion. |
| cmd/blades/internal/config/mcp.go | Loads MCP servers from mcp.json (Claude Desktop-like schema + env expansion). |
| cmd/blades/internal/channel/channel.go | Defines channel interfaces + streaming writer/events. |
| cmd/blades/internal/channel/registry.go | Adds channel registry and factory wiring. |
| cmd/blades/internal/channel/registry_test.go | Tests channel registry behavior. |
| cmd/blades/internal/channel/lark/channel.go | Implements Lark WebSocket channel + command handling + dedupe. |
| cmd/blades/internal/channel/lark/channel_test.go | Tests Lark channel basic behaviors. |
| cmd/blades/internal/channel/lark/card_writer.go | Implements Lark interactive card streaming writer (+ tool panels). |
| cmd/blades/internal/channel/lark/card_writer_test.go | Tests tool block parsing/rendering. |
| cmd/blades/internal/channel/cli/channel.go | Implements CLI channel (TUI + simple mode fallback). |
| cmd/blades/internal/channel/cli/model.go | Bubbletea model for CLI channel. |
| cmd/blades/internal/channel/cli/update.go | Event loop, streaming bridge, slash command wiring, stop handling. |
| cmd/blades/internal/channel/cli/view.go | Renders viewport + input + cursor placement fixes. |
| cmd/blades/internal/channel/cli/styles.go | Defines lipgloss styles for TUI. |
| cmd/blades/internal/command/command.go | Adds shared slash command processor and handlers. |
| cmd/blades/internal/command/command_test.go | Tests command processing and help output. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
- Introduced a new YAML parser and emitter in `yamlh.go` and `yamlprivateh.go` files, providing comprehensive support for YAML document processing. - Implemented various data structures and constants for handling YAML tokens, events, nodes, and documents. - Added utility functions for character checks and buffer management to facilitate parsing and emitting processes. - Updated `modules.txt` to reflect new dependencies and versions, including updates to `github.com/go-kratos/blades` and `gopkg.in/yaml.v3`.
There was a problem hiding this comment.
Pull request overview
Adds the new blades CLI application: a local-first personal agent with a file-based workspace, built-in tools (exec/cron), channels (CLI + optional Lark), and bootstrap/config/runtime plumbing.
Changes:
- Introduces the
bladesCLI command tree (init/chat/run/memory/cron/daemon/doctor) and bootstrap/runtime wiring. - Adds core subsystems: workspace templates/layout, cron scheduler, exec tool, model/provider registry, session persistence, logging, and channel abstractions.
- Adds extensive unit/integration tests and user documentation (EN + CN).
Reviewed changes
Copilot reviewed 92 out of 403 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| cmd/blades/main.go | Adds blades CLI entrypoint. |
| cmd/blades/internal/workspace/workspace_test.go | Tests workspace initialization, layout, and file reads. |
| cmd/blades/internal/workspace/templates/workspace/USER.md | Adds workspace template for user profile. |
| cmd/blades/internal/workspace/templates/workspace/TOOLS.md | Adds workspace template for local tool setup notes. |
| cmd/blades/internal/workspace/templates/workspace/SOUL.md | Adds workspace template describing assistant principles. |
| cmd/blades/internal/workspace/templates/workspace/MEMORY.md | Adds workspace template for long-term memory. |
| cmd/blades/internal/workspace/templates/workspace/IDENTITY.md | Adds workspace template for assistant identity quick ref. |
| cmd/blades/internal/workspace/templates/workspace/HEARTBEAT.md | Adds workspace template for heartbeat checklist. |
| cmd/blades/internal/workspace/templates/workspace/AGENTS.md | Adds primary workspace instruction/safety template. |
| cmd/blades/internal/workspace/templates/skills/blades-cron/SKILL.md | Adds cron skill template documentation. |
| cmd/blades/internal/workspace/templates/config.yaml | Adds example home config template. |
| cmd/blades/internal/workspace/templates/agent.yaml | Adds example agent recipe template. |
| cmd/blades/internal/tools/registry.go | Adds tool registry for resolving tools by name. |
| cmd/blades/internal/tools/more_test.go | Adds tests covering registry + cron tool helper branches. |
| cmd/blades/internal/tools/exec_test.go | Adds tests for exec tool guards and handle branches. |
| cmd/blades/internal/tools/exec.go | Adds exec tool with regex guards and schema metadata. |
| cmd/blades/internal/tools/cron_test.go | Adds tests for cron tool legacy inputs and errors. |
| cmd/blades/internal/session/session_test.go | Adds tests for session manager persistence and helpers. |
| cmd/blades/internal/model/registry_test.go | Adds tests for model registry resolution semantics. |
| cmd/blades/internal/model/registry_more_test.go | Adds more tests for registry/provider branches. |
| cmd/blades/internal/model/registry.go | Adds provider-name-based model resolution. |
| cmd/blades/internal/model/provider.go | Adds provider factory for anthropic/openai/gemini. |
| cmd/blades/internal/memory/store_test.go | Adds tests for memory store read/write/search/instruction. |
| cmd/blades/internal/logger/logger_test.go | Adds tests for runtime log file output. |
| cmd/blades/internal/logger/logger.go | Adds runtime logger and conversation audit logging. |
| cmd/blades/internal/cron/types.go | Defines cron schedule/payload/job types. |
| cmd/blades/internal/cron/service_test.go | Adds cron service tests (timer, watcher, handler behavior). |
| cmd/blades/internal/config/load_test.go | Adds config load tests (defaults, validation, path resolution). |
| cmd/blades/internal/config/load.go | Adds config loading and tilde expansion. |
| cmd/blades/internal/config/expand_test.go | Adds tests for env expansion. |
| cmd/blades/internal/config/expand.go | Adds ${VAR} expansion helper for templates/config. |
| cmd/blades/internal/config/config.go | Adds config schema and normalization/validation. |
| cmd/blades/internal/command/command_test.go | Adds tests for slash command processor and handlers. |
| cmd/blades/internal/command/command.go | Adds unified slash command processor + built-in commands. |
| cmd/blades/internal/channel/lark/helpers_test.go | Adds tests for Lark message parsing and HTTP-backed paths. |
| cmd/blades/internal/channel/lark/factory_test.go | Adds tests for Lark config/env fallback behavior. |
| cmd/blades/internal/channel/lark/factory.go | Adds Lark channel factory from config with env fallbacks. |
| cmd/blades/internal/channel/lark/channel_test.go | Adds tests for Lark channel basics and dedupe/session override. |
| cmd/blades/internal/channel/lark/card_writer_test.go | Adds tests for tool card rendering helpers. |
| cmd/blades/internal/channel/cli/view.go | Adds TUI view rendering + cursor handling for IME/CJK. |
| cmd/blades/internal/channel/cli/styles.go | Adds lipgloss styles derived from dark/light detection. |
| cmd/blades/internal/channel/cli/model.go | Adds bubbletea model: streaming turns/tools, state, styling. |
| cmd/blades/internal/channel/cli/channel.go | Adds CLI channel with TUI and simple (no altscreen) mode. |
| cmd/blades/internal/channel/channel.go | Introduces channel interfaces and streaming event model. |
| cmd/blades/internal/app/runtime_test.go | Adds tests for turn execution and tool event correlation. |
| cmd/blades/internal/app/runtime.go | Adds runtime wiring, turn execution, streaming collector/recorder. |
| cmd/blades/internal/app/runner_test.go | Adds tests for runner construction and registries. |
| cmd/blades/internal/app/runner.go | Adds recipe runner builder, tool/middleware registries, skill loading. |
| cmd/blades/internal/app/doctor_test.go | Adds tests for doctor context/printing behavior. |
| cmd/blades/internal/app/bootstrap_test.go | Adds tests for bootstrap init paths, config, memory, runtime load. |
| cmd/blades/internal/app/bootstrap.go | Adds bootstrap layer for config/workspace/memory/runtime/cron. |
| cmd/blades/go.mod | Defines module deps for the cmd/blades submodule. |
| cmd/blades/cmd/text_writer.go | Adds minimal streaming writer for run output. |
| cmd/blades/cmd/test_helpers_test.go | Adds CLI command test helpers (workspace setup, stdout capture). |
| cmd/blades/cmd/runtime_command.go | Adds helper to run commands with loaded runtime + signal ctx. |
| cmd/blades/cmd/run.go | Adds blades run command. |
| cmd/blades/cmd/root_test.go | Adds tests for root logging + doctor behavior. |
| cmd/blades/cmd/root.go | Adds root command, global flags, and root logger wiring. |
| cmd/blades/cmd/options.go | Adds --config/--workspace/--debug option plumbing via context. |
| cmd/blades/cmd/memory_command_test.go | Adds tests for memory subcommands. |
| cmd/blades/cmd/memory.go | Adds blades memory subcommands (add/show/search). |
| cmd/blades/cmd/init_test.go | Adds tests for init path resolution and separated dirs. |
| cmd/blades/cmd/init_git_test.go | Adds tests for git init + .gitignore helpers. |
| cmd/blades/cmd/init.go | Adds blades init command and optional git initialization. |
| cmd/blades/cmd/doctor.go | Adds blades doctor command. |
| cmd/blades/cmd/daemon_test.go | Adds tests for daemon shutdown wait helper. |
| cmd/blades/cmd/daemon.go | Adds blades daemon command (cron + optional Lark channel). |
| cmd/blades/cmd/cron_run.go | Adds cron run command helper to trigger jobs immediately. |
| cmd/blades/cmd/cron_heartbeat.go | Adds heartbeat job ensure/upsert and run-now logic. |
| cmd/blades/cmd/cron_command_integration_test.go | Adds integration tests for cron commands and flag parsing. |
| cmd/blades/cmd/cron.go | Adds cron command group (list/add/heartbeat/remove/run). |
| cmd/blades/cmd/command_tree_test.go | Adds tests validating command tree and required flags. |
| cmd/blades/cmd/command_helpers.go | Adds shared helpers for command I/O, cron/memory wiring, upserts. |
| cmd/blades/cmd/chat.go | Adds blades chat interactive command (TUI/simple). |
| cmd/blades/cmd/bootstrap.go | Adds cmd-level wrappers around bootstrap loading helpers. |
| cmd/blades/README_CN.md | Adds Chinese documentation for blades CLI. |
| cmd/blades/README.md | Adds English documentation for blades CLI. |
| agent.go | Adjusts agent invocation message assembly helper. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
Introduces the blades CLI: a local-first, file-backed personal AI agent with workspace bootstrapping, built-in tools (exec/cron), multiple model providers, and optional channels (CLI + Lark), alongside extensive tests and templates.
Changes:
- Added CLI commands (
init,chat,run,memory,cron,daemon,doctor) plus runtime bootstrap/loading. - Implemented core subsystems: config loading/normalization, model provider registry, exec/cron tools, session persistence, and runtime logging.
- Added workspace and skill templates plus broad automated test coverage across components.
Reviewed changes
Copilot reviewed 91 out of 404 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| cmd/blades/main.go | Adds the blades CLI entrypoint. |
| cmd/blades/internal/workspace/workspace_test.go | Tests workspace layout/initialization and file reads. |
| cmd/blades/internal/workspace/templates/workspace/USER.md | Adds user profile template for workspace initialization. |
| cmd/blades/internal/workspace/templates/workspace/TOOLS.md | Adds local setup notes template for workspace initialization. |
| cmd/blades/internal/workspace/templates/workspace/SOUL.md | Adds assistant identity/principles template for workspace initialization. |
| cmd/blades/internal/workspace/templates/workspace/MEMORY.md | Adds long-term memory template for workspace initialization. |
| cmd/blades/internal/workspace/templates/workspace/IDENTITY.md | Adds assistant “quick reference” template for workspace initialization. |
| cmd/blades/internal/workspace/templates/workspace/HEARTBEAT.md | Adds heartbeat checklist template for proactive polling. |
| cmd/blades/internal/workspace/templates/workspace/AGENTS.md | Adds workspace “operating manual” and safety restrictions. |
| cmd/blades/internal/workspace/templates/skills/blades-cron/SKILL.md | Adds cron skill template documentation. |
| cmd/blades/internal/workspace/templates/config.yaml | Adds example config template (providers + channels + exec). |
| cmd/blades/internal/workspace/templates/agent.yaml | Adds default agent recipe template. |
| cmd/blades/internal/tools/registry.go | Adds a named tool registry compatible with recipe tooling. |
| cmd/blades/internal/tools/more_test.go | Adds tests covering tool registry and additional cron-tool branches. |
| cmd/blades/internal/tools/exec_test.go | Adds tests for exec tool helpers, guard behavior, and handle branches. |
| cmd/blades/internal/tools/exec.go | Implements exec tool with regex guards, timeout, and optional traversal restriction. |
| cmd/blades/internal/tools/cron_test.go | Adds tests for cron-tool legacy aliases and identifier handling. |
| cmd/blades/internal/session/session_test.go | Tests session manager persistence and helper branches. |
| cmd/blades/internal/model/registry_test.go | Tests model registry provider-name resolution behavior. |
| cmd/blades/internal/model/registry_more_test.go | Adds additional model registry and provider factory branch coverage. |
| cmd/blades/internal/model/registry.go | Implements provider-name-based model resolution and fallback construction. |
| cmd/blades/internal/model/provider.go | Implements provider factory for anthropic/openai/gemini. |
| cmd/blades/internal/memory/store_test.go | Tests memory store persistence, logs, knowledge sizing, and search. |
| cmd/blades/internal/logger/logger_test.go | Tests runtime logger output and conversation logging format. |
| cmd/blades/internal/logger/logger.go | Adds runtime logging utility for audits and conversation events. |
| cmd/blades/internal/cron/types.go | Defines cron schedule/payload/job persistence types. |
| cmd/blades/internal/cron/service_test.go | Tests cron service execution, watching, handlers, and scheduling constraints. |
| cmd/blades/internal/config/load_test.go | Tests config loading defaults, normalization, and path resolution. |
| cmd/blades/internal/config/load.go | Implements config loading with env expansion and tilde expansion utility. |
| cmd/blades/internal/config/expand_test.go | Tests env expansion helper. |
| cmd/blades/internal/config/expand.go | Adds env expansion helper via os.ExpandEnv. |
| cmd/blades/internal/config/config.go | Defines config schema + normalization and provider validation. |
| cmd/blades/internal/command/command_test.go | Tests slash-command processor behaviors and handler branches. |
| cmd/blades/internal/command/command.go | Implements slash-command processor + built-in commands. |
| cmd/blades/internal/channel/lark/helpers_test.go | Adds tests for Lark parsing, formatting, and HTTP-backed paths. |
| cmd/blades/internal/channel/lark/factory_test.go | Tests Lark factory env fallbacks and required credentials. |
| cmd/blades/internal/channel/lark/factory.go | Implements Lark channel factory from config with env fallback. |
| cmd/blades/internal/channel/lark/channel_test.go | Tests Lark channel basics (name, config, dedupe, session override). |
| cmd/blades/internal/channel/lark/card_writer_test.go | Tests Lark tool code block rendering and tool command parsing. |
| cmd/blades/internal/channel/cli/view.go | Implements TUI rendering, cursor positioning, and tool sections. |
| cmd/blades/internal/channel/cli/styles.go | Defines cached lipgloss styles for performance/stability. |
| cmd/blades/internal/channel/cli/model.go | Defines CLI model state and initialization. |
| cmd/blades/internal/channel/cli/channel.go | Implements CLI channel (TUI + simple mode). |
| cmd/blades/internal/channel/channel.go | Defines Channel, Writer, and streaming handler contract. |
| cmd/blades/internal/app/runtime_test.go | Tests turn execution, tool event correlation, and session persistence. |
| cmd/blades/internal/app/runtime.go | Adds runtime assembly and turn execution with streaming + recording. |
| cmd/blades/internal/app/runner_test.go | Tests runner build pieces (tool/middleware registry, spec loading). |
| cmd/blades/internal/app/runner.go | Builds runner from spec, config, tools, middlewares, and skills. |
| cmd/blades/internal/app/doctor_test.go | Tests doctor context building and output formatting. |
| cmd/blades/internal/app/bootstrap_test.go | Tests bootstrap path resolution and runtime loading. |
| cmd/blades/internal/app/bootstrap.go | Implements bootstrap for config/workspace/memory/runtime initialization. |
| cmd/blades/go.mod | Adds module definition and dependencies for the cmd/blades module. |
| cmd/blades/cmd/text_writer.go | Adds a minimal Writer implementation for command output streaming. |
| cmd/blades/cmd/test_helpers_test.go | Adds shared test helpers for CLI command tests. |
| cmd/blades/cmd/runtime_command.go | Adds wrapper to execute cobra commands with a loaded runtime. |
| cmd/blades/cmd/run.go | Implements blades run command and session ID generation. |
| cmd/blades/cmd/root_test.go | Tests root logger setup, doctor flow, and doctor output behavior. |
| cmd/blades/cmd/root.go | Implements root command, flags, and root logger setup. |
| cmd/blades/cmd/options.go | Implements passing resolved options through cobra context. |
| cmd/blades/cmd/memory_command_test.go | Integration tests for memory add/show/search commands. |
| cmd/blades/cmd/memory.go | Implements blades memory command group. |
| cmd/blades/cmd/init_test.go | Tests init path resolution and custom workspace initialization behavior. |
| cmd/blades/cmd/init_git_test.go | Tests git init + gitignore utilities for workspace initialization. |
| cmd/blades/cmd/init.go | Implements blades init including optional git init and next steps output. |
| cmd/blades/cmd/doctor.go | Implements blades doctor command that runs health checks. |
| cmd/blades/cmd/daemon_test.go | Tests daemon shutdown waiting helper. |
| cmd/blades/cmd/daemon.go | Implements daemon mode running cron + optional Lark channel. |
| cmd/blades/cmd/cron_run.go | Implements cron run wiring to load runtime and trigger a job. |
| cmd/blades/cmd/cron_heartbeat.go | Implements heartbeat job upsert + optional run-now. |
| cmd/blades/cmd/cron_command_integration_test.go | Integration tests across cron subcommands and schedule parsing. |
| cmd/blades/cmd/cron.go | Implements cron command group, schedule parsing, and add/remove/list. |
| cmd/blades/cmd/command_tree_test.go | Verifies command tree and required flags/args behaviors. |
| cmd/blades/cmd/command_helpers.go | Adds shared helpers for command I/O, signal contexts, and cron upserts. |
| cmd/blades/cmd/chat.go | Implements blades chat command with TUI/simple mode. |
| cmd/blades/cmd/bootstrap.go | Wires cmd-layer helpers to bootstrap/runtime/config/service loading. |
| cmd/blades/README_CN.md | Adds Chinese documentation for the new CLI and features. |
| cmd/blades/README.md | Adds English documentation for the new CLI and features. |
| agent.go | Refactors message selection/append logic for invocations via helper. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
# Conflicts: # agent.go # context/window/window.go # context/window/window_test.go # flow/loop.go
There was a problem hiding this comment.
Pull request overview
Adds the initial blades CLI application with a filesystem-backed workspace layout, tool/cron/runtime integrations, and comprehensive tests/docs for the new command set.
Changes:
- Introduces the
bladesCLI entrypoint and command tree (init/chat/run/memory/cron/daemon/doctor). - Adds workspace management (home + workspace layout) and embedded template files.
- Implements core runtime pieces (exec tool, cron scheduler plumbing, model/tool registries, CLI/Lark channels) with broad unit test coverage.
Reviewed changes
Copilot reviewed 90 out of 389 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
| cmd/blades/main.go | Adds CLI entrypoint wiring to cobra command tree |
| cmd/blades/internal/workspace/workspace.go | Implements home/workspace layout creation + embedded template copying |
| cmd/blades/internal/workspace/workspace_test.go | Tests workspace init/load and expected file structure |
| cmd/blades/internal/workspace/templates/config.yaml | Provides default config template (providers/channels/exec) |
| cmd/blades/internal/workspace/templates/agent.yaml | Provides default agent recipe template |
| cmd/blades/internal/workspace/templates/workspace/AGENTS.md | Adds workspace startup rules template |
| cmd/blades/internal/workspace/templates/workspace/SOUL.md | Adds assistant persona template |
| cmd/blades/internal/workspace/templates/workspace/IDENTITY.md | Adds identity quick reference template |
| cmd/blades/internal/workspace/templates/workspace/USER.md | Adds user profile template |
| cmd/blades/internal/workspace/templates/workspace/MEMORY.md | Adds long-term memory template |
| cmd/blades/internal/workspace/templates/workspace/TOOLS.md | Adds local tooling notes template |
| cmd/blades/internal/workspace/templates/workspace/HEARTBEAT.md | Adds heartbeat checklist template |
| cmd/blades/internal/tools/registry.go | Adds simple name→tool resolver |
| cmd/blades/internal/tools/exec.go | Implements exec tool with basic safety guards + schemas |
| cmd/blades/internal/tools/exec_test.go | Tests exec helper branches and guard behavior |
| cmd/blades/internal/tools/cron_test.go | Adds additional cron tool behavior tests |
| cmd/blades/internal/tools/more_test.go | Adds extra tool/crontool branch coverage tests |
| cmd/blades/internal/model/registry.go | Adds provider/model resolution from config providers |
| cmd/blades/internal/model/provider.go | Builds provider implementations for anthropic/openai/gemini |
| cmd/blades/internal/model/registry_test.go | Tests provider name resolution and prefix rejection |
| cmd/blades/internal/model/registry_more_test.go | Tests additional resolution/error branches |
| cmd/blades/internal/config/config.go | Adds config structs + normalization/validation |
| cmd/blades/internal/config/load.go | Adds config loader with default path discovery + env expansion |
| cmd/blades/internal/config/expand.go | Adds env expansion helper |
| cmd/blades/internal/config/load_test.go | Tests config defaults, normalization, validation, tilde expansion |
| cmd/blades/internal/config/expand_test.go | Tests ExpandEnv behavior |
| cmd/blades/internal/channel/channel.go | Defines channel interfaces and event writer API |
| cmd/blades/internal/channel/cli/channel.go | Implements interactive CLI channel (TUI + simple mode) |
| cmd/blades/internal/channel/cli/model.go | Implements bubbletea model and state |
| cmd/blades/internal/channel/cli/view.go | Implements rendering + cursor positioning |
| cmd/blades/internal/channel/cli/styles.go | Adds centralized TUI styles |
| cmd/blades/internal/channel/lark/factory.go | Adds Lark channel creation from config + env fallbacks |
| cmd/blades/internal/channel/lark/factory_test.go | Tests Lark config env fallback behavior |
| cmd/blades/internal/channel/lark/channel_test.go | Tests Lark channel basics and session mapping |
| cmd/blades/internal/channel/lark/helpers_test.go | Tests Lark helper parsing + HTTP-backed call paths |
| cmd/blades/internal/channel/lark/card_writer_test.go | Tests tool panel/codeblock formatting helpers |
| cmd/blades/internal/cron/types.go | Adds cron domain types (schedule/payload/job) |
| cmd/blades/internal/cron/service_test.go | Adds scheduler/handler behavior tests |
| cmd/blades/internal/logger/logger.go | Adds runtime file logger for audit-style logs |
| cmd/blades/internal/logger/logger_test.go | Tests runtime logger output |
| cmd/blades/internal/memory/store_test.go | Tests memory store read/write/log/search behaviors |
| cmd/blades/internal/session/session_test.go | Tests session persistence and part restoration branches |
| cmd/blades/internal/app/bootstrap.go | Adds runtime bootstrap for config/workspace/memory loading |
| cmd/blades/internal/app/bootstrap_test.go | Tests bootstrap path handling and runtime load |
| cmd/blades/internal/app/runner.go | Builds runner/tool/middleware registries + loads agent spec/skills |
| cmd/blades/internal/app/runner_test.go | Tests runner build paths and workspace instruction injection |
| cmd/blades/internal/app/runtime.go | Adds TurnExecutor, streaming collector, tool events, persistence hooks |
| cmd/blades/internal/app/runtime_test.go | Tests turn execution persistence and tool event correlation |
| cmd/blades/internal/app/doctor_test.go | Tests doctor context and output path behavior |
| cmd/blades/cmd/root.go | Adds root command, flags, and root logger setup |
| cmd/blades/cmd/root_test.go | Tests root logging and doctor config path behavior |
| cmd/blades/cmd/options.go | Adds command option plumbing via context |
| cmd/blades/cmd/bootstrap.go | Wires CLI commands to bootstrap loader helpers |
| cmd/blades/cmd/command_helpers.go | Adds shared command helpers and cron/memory plumbing |
| cmd/blades/cmd/command_tree_test.go | Validates command tree and run command required flags |
| cmd/blades/cmd/runtime_command.go | Adds helper to run commands with loaded runtime and signal ctx |
| cmd/blades/cmd/init.go | Adds blades init (home/workspace init + optional git init) |
| cmd/blades/cmd/init_test.go | Tests init paths and custom workspace layout |
| cmd/blades/cmd/init_git_test.go | Tests git init helper behavior |
| cmd/blades/cmd/chat.go | Adds interactive chat command wiring |
| cmd/blades/cmd/run.go | Adds single-turn run command |
| cmd/blades/cmd/text_writer.go | Adds minimal stream writer adapter for run command |
| cmd/blades/cmd/memory.go | Adds memory subcommands (add/show/search) |
| cmd/blades/cmd/memory_command_test.go | Tests memory subcommands end-to-end against temp workspace |
| cmd/blades/cmd/cron.go | Adds cron command + schedule parsing and validation |
| cmd/blades/cmd/cron_run.go | Adds cron run-now command plumbing |
| cmd/blades/cmd/cron_heartbeat.go | Adds cron heartbeat ensure/update and run-now support |
| cmd/blades/cmd/daemon.go | Adds daemon mode wiring cron + optional Lark channel |
| cmd/blades/cmd/daemon_test.go | Tests daemon channel shutdown helper |
| cmd/blades/cmd/doctor.go | Adds doctor command wiring to app doctor checks |
| cmd/blades/go.mod | Introduces dedicated Go module and dependencies for blades CLI |
| cmd/blades/README.md | Adds English docs for CLI usage and layout |
| cmd/blades/README_CN.md | Adds Chinese docs for CLI usage and layout |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…into feat/cmd_blades
There was a problem hiding this comment.
Pull request overview
Introduces the new blades CLI for a file-system-based local AI agent, including workspace bootstrapping, interactive chat/run flows, persistent scheduling, and provider-backed model execution.
Changes:
- Adds the
bladescommand tree (init/chat/run/memory/cron/daemon/doctor) plus bootstrap/runtime wiring. - Implements built-in tools (
read,write,edit,bash,cron) and supporting utilities/tests. - Adds workspace templates and configuration/model-provider resolution with extensive unit tests.
Reviewed changes
Copilot reviewed 95 out of 396 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| cmd/blades/main.go | Adds CLI entrypoint wiring to cmd.Execute(). |
| cmd/blades/go.mod | Introduces a standalone Go module for the CLI and its dependencies. |
| cmd/blades/README.md | Documents installation, layout, and CLI usage for the new tool. |
| cmd/blades/README_CN.md | Chinese documentation for the same CLI/features. |
| cmd/blades/internal/workspace/workspace_test.go | Adds coverage for workspace init/load/layout behavior. |
| cmd/blades/internal/workspace/templates/config.yaml | Provides default provider/channel/exec template config. |
| cmd/blades/internal/workspace/templates/agent.yaml | Provides default agent recipe template (loop + action/review agents). |
| cmd/blades/internal/workspace/templates/workspace/AGENTS.md | Defines workspace behavior/safety rules loaded into the agent. |
| cmd/blades/internal/workspace/templates/workspace/HEARTBEAT.md | Provides default heartbeat checklist template. |
| cmd/blades/internal/workspace/templates/workspace/IDENTITY.md | Adds identity quick-reference template. |
| cmd/blades/internal/workspace/templates/workspace/MEMORY.md | Adds long-term memory template. |
| cmd/blades/internal/workspace/templates/workspace/SOUL.md | Adds assistant “principles/boundaries” template. |
| cmd/blades/internal/workspace/templates/workspace/TOOLS.md | Adds local machine setup notes template. |
| cmd/blades/internal/workspace/templates/workspace/USER.md | Adds user profile/preferences template. |
| cmd/blades/internal/tools/bash.go | Implements guarded bash tool execution with schemas. |
| cmd/blades/internal/tools/bash_test.go | Tests bash guard + handler branches. |
| cmd/blades/internal/tools/edit.go | Implements exact string-replacement edit tool. |
| cmd/blades/internal/tools/file_tools_test.go | Adds tests for read/write/edit tools and workspace path restriction. |
| cmd/blades/internal/tools/fileutil.go | Adds path resolution, text reading, and atomic write helpers. |
| cmd/blades/internal/tools/more_test.go | Adds extra tests for tool registry + cron tool branches. |
| cmd/blades/internal/tools/read.go | Implements the read tool with optional line slicing. |
| cmd/blades/internal/tools/registry.go | Adds tool registry resolver used by recipe runtime. |
| cmd/blades/internal/tools/write.go | Implements atomic write tool with overwrite/error modes. |
| cmd/blades/internal/tools/cron_test.go | Adds cron tool behavior/schema tests. |
| cmd/blades/internal/model/provider.go | Adds provider factory for anthropic/openai/gemini. |
| cmd/blades/internal/model/registry.go | Resolves model refs using provider config. |
| cmd/blades/internal/model/registry_test.go | Tests provider-name based registry resolution. |
| cmd/blades/internal/model/registry_more_test.go | Adds extra resolution-path and provider factory branch coverage. |
| cmd/blades/internal/config/config.go | Adds config schema + normalization/validation. |
| cmd/blades/internal/config/expand.go | Adds env expansion helper for templates/config. |
| cmd/blades/internal/config/expand_test.go | Tests env expansion behavior. |
| cmd/blades/internal/config/load.go | Adds config load (default path + env expand + normalize). |
| cmd/blades/internal/config/load_test.go | Tests config load defaults, path selection, and validation. |
| cmd/blades/internal/cron/types.go | Defines cron schedule/payload/job types. |
| cmd/blades/internal/cron/service_test.go | Tests cron service execution, reload/watcher behavior, and cancellation handling. |
| cmd/blades/internal/logger/logger.go | Adds runtime logger writing to daily log files. |
| cmd/blades/internal/logger/logger_test.go | Tests runtime logger output formatting. |
| cmd/blades/internal/session/session_test.go | Adds session persistence/compression tests. |
| cmd/blades/internal/channel/channel.go | Defines channel + streaming writer/event abstraction. |
| cmd/blades/internal/channel/cli/channel.go | Implements interactive CLI channel (TUI + simple mode). |
| cmd/blades/internal/channel/cli/model.go | Adds bubbletea model state, streaming tracking, tool sections. |
| cmd/blades/internal/channel/cli/styles.go | Centralizes TUI styles computed from dark/light background. |
| cmd/blades/internal/channel/cli/view.go | Implements rendering, viewport content building, cursor/IME handling. |
| cmd/blades/internal/channel/lark/channel_test.go | Tests Lark channel session overrides and dedupe behavior. |
| cmd/blades/internal/channel/lark/card_writer_test.go | Tests tool code block rendering/parsing for cards/messages. |
| cmd/blades/internal/channel/lark/factory.go | Builds Lark channel from config with env fallbacks. |
| cmd/blades/internal/channel/lark/factory_test.go | Tests env fallback behavior for required Lark credentials. |
| cmd/blades/internal/app/bootstrap.go | Adds bootstrap for config/workspace/memory/runtime creation. |
| cmd/blades/internal/app/bootstrap_test.go | Tests bootstrap init paths and runtime loading. |
| cmd/blades/internal/app/doctor_test.go | Tests doctor context + result printing behavior. |
| cmd/blades/internal/app/runner.go | Builds runner/tool/middleware registries and session manager from spec/config/workspace. |
| cmd/blades/internal/app/runner_test.go | Tests runner building, exec defaults, and context application. |
| cmd/blades/internal/app/runtime_test.go | Tests tool event correlation + session persistence in executor/stream handler. |
| cmd/blades/cmd/bootstrap.go | Wires command-layer bootstrap/load helpers. |
| cmd/blades/cmd/chat.go | Adds blades chat command (TUI/simple) and session handling. |
| cmd/blades/cmd/command_helpers.go | Adds shared helpers for signal contexts, output, memory/cron subcommands, and cron upsert logic. |
| cmd/blades/cmd/command_tree_test.go | Verifies root command tree shape and required flags. |
| cmd/blades/cmd/cron.go | Adds cron CLI with add/list/remove/run/heartbeat parsing and validation. |
| cmd/blades/cmd/cron_heartbeat.go | Adds heartbeat job ensure/upsert logic and optional run-now. |
| cmd/blades/cmd/cron_run.go | Adds immediate job run command wiring through runtime. |
| cmd/blades/cmd/daemon.go | Adds daemon mode (cron + optional Lark channel) with graceful shutdown. |
| cmd/blades/cmd/daemon_test.go | Tests daemon shutdown waiting helper. |
| cmd/blades/cmd/doctor.go | Adds workspace health check command wiring to app doctor logic. |
| cmd/blades/cmd/init.go | Adds workspace init + optional git init, plus printed next steps. |
| cmd/blades/cmd/init_git_test.go | Tests git init + gitignore/hint helpers. |
| cmd/blades/cmd/init_test.go | Tests init path resolution and custom workspace separation behavior. |
| cmd/blades/cmd/memory.go | Adds memory subcommands (add/show/search) backed by memory store. |
| cmd/blades/cmd/memory_command_test.go | Tests memory command behavior end-to-end. |
| cmd/blades/cmd/options.go | Adds command options propagation via cobra context values. |
| cmd/blades/cmd/root.go | Adds root command, global flags, and root logger configuration. |
| cmd/blades/cmd/root_test.go | Tests root logger placement and doctor/config path behaviors. |
| cmd/blades/cmd/run.go | Adds single-turn run command using executor + streaming writer. |
| cmd/blades/cmd/runtime_command.go | Adds helper to load runtime under a signal-aware context. |
| cmd/blades/cmd/test_helpers_test.go | Adds shared test helpers for command tests. |
| cmd/blades/cmd/text_writer.go | Adds minimal channel.Writer adapter for streaming to CLI output. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
There was a problem hiding this comment.
Pull request overview
Adds a new blades CLI agent with workspace scaffolding, built-in tools (read/write/edit/bash/cron), multi-provider model resolution, and channel integrations (CLI TUI + Lark), plus extensive unit tests.
Changes:
- Introduces the
bladesCLI entrypoint/command tree with init/chat/run/memory/cron/daemon/doctor flows. - Adds workspace templates (AGENTS/SOUL/USER/IDENTITY/MEMORY/TOOLS/HEARTBEAT) plus config/agent templates.
- Implements core runtime components: local tools, cron scheduler, session persistence, logging, and model provider registry.
Reviewed changes
Copilot reviewed 97 out of 402 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| cmd/blades/main.go | Adds the CLI entrypoint that dispatches to the cobra command tree. |
| cmd/blades/internal/workspace/workspace_test.go | Tests workspace init/load behavior and template outputs. |
| cmd/blades/internal/workspace/templates/workspace/USER.md | Adds user profile template for workspace bootstrapping. |
| cmd/blades/internal/workspace/templates/workspace/TOOLS.md | Adds local tool/setup notes template. |
| cmd/blades/internal/workspace/templates/workspace/SOUL.md | Adds assistant persona/principles template. |
| cmd/blades/internal/workspace/templates/workspace/MEMORY.md | Adds long-term memory template. |
| cmd/blades/internal/workspace/templates/workspace/IDENTITY.md | Adds assistant identity template. |
| cmd/blades/internal/workspace/templates/workspace/HEARTBEAT.md | Adds heartbeat checklist template. |
| cmd/blades/internal/workspace/templates/workspace/AGENTS.md | Adds workspace “operating manual” and safety rules template. |
| cmd/blades/internal/workspace/templates/config.yaml | Adds default provider/channel/exec config template. |
| cmd/blades/internal/workspace/templates/agent.yaml | Adds default agent recipe template. |
| cmd/blades/internal/tools/write.go | Implements atomic text file write tool. |
| cmd/blades/internal/tools/registry.go | Adds named-tool registry resolver. |
| cmd/blades/internal/tools/read.go | Implements read tool with optional line ranges. |
| cmd/blades/internal/tools/more_test.go | Adds additional tool and cron-tool branch coverage tests. |
| cmd/blades/internal/tools/fileutil.go | Adds path resolution, safe text reading, and atomic write helpers. |
| cmd/blades/internal/tools/file_tools_test.go | Tests read/write/edit tools and path restriction behavior. |
| cmd/blades/internal/tools/edit.go | Implements exact string replacement edit tool. |
| cmd/blades/internal/tools/cron_test.go | Adds cron tool schema and behavior tests. |
| cmd/blades/internal/tools/bash_test.go | Tests bash tool guards, parsing branches, and timeout. |
| cmd/blades/internal/tools/bash.go | Implements bash execution tool with allow/deny guards and workspace restrictions. |
| cmd/blades/internal/session/session_test.go | Tests session persistence, history, and compression behavior. |
| cmd/blades/internal/model/registry_test.go | Tests provider-name-based model resolution behavior. |
| cmd/blades/internal/model/registry_more_test.go | Adds more registry/provider branch tests. |
| cmd/blades/internal/model/registry.go | Implements provider/model resolution logic. |
| cmd/blades/internal/model/provider.go | Implements provider factory for OpenAI/Anthropic/Gemini. |
| cmd/blades/internal/memory/store_test.go | Tests memory store read/write/search/instruction building. |
| cmd/blades/internal/logger/logger_test.go | Tests runtime log writing and conversation audit logging. |
| cmd/blades/internal/logger/logger.go | Implements runtime logger and conversation audit logging. |
| cmd/blades/internal/cron/types.go | Adds cron schedule/payload/job types. |
| cmd/blades/internal/cron/service_test.go | Tests cron service timers, reload watcher, and handler behavior. |
| cmd/blades/internal/config/load_test.go | Tests config loading, defaults, provider normalization, and tilde expansion. |
| cmd/blades/internal/config/load.go | Implements config load with default path and env expansion. |
| cmd/blades/internal/config/expand_test.go | Tests env expansion helper. |
| cmd/blades/internal/config/expand.go | Adds env expansion helper. |
| cmd/blades/internal/config/config.go | Implements config structures + normalization/validation. |
| cmd/blades/internal/command/command_test.go | Tests slash-command processor behaviors. |
| cmd/blades/internal/command/command.go | Implements unified slash-command processor and handlers. |
| cmd/blades/internal/channel/lark/factory_test.go | Tests Lark channel config env fallback behavior. |
| cmd/blades/internal/channel/lark/factory.go | Implements Lark channel creation from config. |
| cmd/blades/internal/channel/lark/channel_test.go | Adds Lark channel unit tests for message/session behaviors. |
| cmd/blades/internal/channel/lark/card_writer_test.go | Tests tool-output formatting for Lark cards. |
| cmd/blades/internal/channel/cli/view.go | Implements bubbletea view rendering and cursor positioning logic. |
| cmd/blades/internal/channel/cli/styles.go | Adds lipgloss style builder with dark/light support. |
| cmd/blades/internal/channel/cli/model.go | Implements CLI TUI model state and streaming tracking structures. |
| cmd/blades/internal/channel/cli/channel.go | Implements TUI vs simple-mode CLI channel and wiring to command processor. |
| cmd/blades/internal/channel/channel.go | Defines channel interfaces and streaming event protocol. |
| cmd/blades/internal/app/runtime_test.go | Tests turn execution, session persistence, and tool event correlation. |
| cmd/blades/internal/app/runner_test.go | Tests runner bootstrapping, tool registry, and context behavior. |
| cmd/blades/internal/app/doctor_test.go | Tests doctor checks runner and printing behavior. |
| cmd/blades/internal/app/bootstrap_test.go | Tests bootstrap path resolution and runtime loading. |
| cmd/blades/internal/app/bootstrap.go | Implements bootstrapping of config/workspace/memory/runtime/cron service. |
| cmd/blades/go.mod | Adds a Go module for the cmd/blades subproject and its dependencies. |
| cmd/blades/cmd/text_writer.go | Adds a minimal streaming writer adapter for run. |
| cmd/blades/cmd/test_helpers_test.go | Adds shared helpers for CLI command tests. |
| cmd/blades/cmd/runtime_command.go | Adds helper to load runtime with signal-aware context. |
| cmd/blades/cmd/run.go | Implements blades run command. |
| cmd/blades/cmd/root_test.go | Tests root logger configuration and doctor behavior with explicit config. |
| cmd/blades/cmd/root.go | Implements root command, global flags, and root log wiring. |
| cmd/blades/cmd/options.go | Implements options extraction/injection via cobra command context. |
| cmd/blades/cmd/memory_command_test.go | Tests memory subcommands end-to-end. |
| cmd/blades/cmd/memory.go | Implements memory command group (add/show/search). |
| cmd/blades/cmd/init_test.go | Tests init path resolution and init behaviors with custom workspace. |
| cmd/blades/cmd/init_git_test.go | Tests git init helpers and .gitignore creation. |
| cmd/blades/cmd/init.go | Implements blades init plus optional git initialization. |
| cmd/blades/cmd/doctor.go | Implements doctor command wiring. |
| cmd/blades/cmd/daemon_test.go | Tests daemon shutdown waiting helper. |
| cmd/blades/cmd/daemon.go | Implements daemon command (cron + optional Lark) with graceful shutdown. |
| cmd/blades/cmd/cron_run.go | Implements cron run helper to load runtime and trigger a job. |
| cmd/blades/cmd/cron_heartbeat.go | Implements cron heartbeat job upsert and optional run-now behavior. |
| cmd/blades/cmd/cron.go | Implements cron command group and schedule/payload flag parsing. |
| cmd/blades/cmd/command_tree_test.go | Tests root command tree composition and run required flags. |
| cmd/blades/cmd/command_helpers.go | Adds shared command helpers, cron upsert, and payload/schedule builders. |
| cmd/blades/cmd/chat.go | Implements blades chat channel wiring and session defaulting. |
| cmd/blades/cmd/bootstrap.go | Adds cmd-layer wrappers around internal bootstrap loaders. |
| cmd/blades/README_CN.md | Adds Chinese documentation for the CLI and architecture. |
| cmd/blades/README.md | Adds English documentation for the CLI and architecture. |
| agent_exit_tool_test.go | Adds test ensuring agent loop exits immediately after exit tool action. |
| agent.go | Updates agent loop to append ephemeral messages and stop iteration on loop-exit tool action. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 103 out of 405 changed files in this pull request and generated 7 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
No description provided.