Auto Version Bump:
- Automatically bumps version when PRs are merged to main
- Detects version bump type from commit message:
- feat: → minor bump (v0.1.0 → v0.2.0)
- fix: → patch bump (v0.1.0 → v0.1.1)
- feat!: → major bump (v0.1.0 → v1.0.0)
- [alpha] → alpha bump (v0.1.0-alpha.1 → v0.1.0-alpha.2)
- [beta] → beta bump
- [rc] → rc bump
- default → minor bump (if no type specified)
Automatic Actions:
- Updates VERSION file
- Updates package.json version
- Updates CHANGELOG.md with commit message
- Creates git tag (e.g., v0.2.0)
- Pushes changes back to main
- Adds [skip ci] to prevent infinite loop
Documentation:
- Added VERSION_BUMP_GUIDE.md with examples
- Clear commit message format guidelines
- Manual override instructions
Benefits:
- No manual version bumping needed
- Consistent versioning across the project
- Automatic changelog updates
- Git tags for every release
- Follows semantic versioning conventions
Monorepo Features:
- Root package.json with convenient npm scripts for all agents
- Easy testing from root: npm test, npm run test:openagent, npm run test:opencoder
- Multi-model support: test with Grok, Claude, or GPT-4
- Quick dashboard access: npm run dashboard
- No folder navigation required
Versioning System:
- VERSION file tracking current version (0.1.0-alpha.1)
- CHANGELOG.md with comprehensive version history
- Version bump scripts for alpha, beta, rc, and stable releases
- Semantic versioning with progression: Alpha → Beta → RC → Stable
CI/CD:
- GitHub Actions workflow for automated testing
- Pre-merge validation for agent changes
- Smoke tests for both openagent and opencoder
- Automated test result reporting
- Runs on PRs to main/dev and pushes to main
Helper Scripts:
- scripts/test.sh: Advanced test runner with multi-agent support
- scripts/dashboard.sh: Enhanced dashboard launcher with auto-open
- scripts/bump-version.sh: Version management tool
Documentation:
- QUICK_START.md: Comprehensive testing and usage guide
- Clear examples for all test scenarios
- Multi-agent and multi-model workflows
Benefits:
- Easy testing from root directory
- Automated quality checks before merges
- Clear version tracking and history
- Developer-friendly workflows
- No breaking changes to existing structure
Auto Version Bump:
- Automatically bumps version when PRs are merged to main
- Detects version bump type from commit message:
- feat: → minor bump (v0.1.0 → v0.2.0)
- fix: → patch bump (v0.1.0 → v0.1.1)
- feat!: → major bump (v0.1.0 → v1.0.0)
- [alpha] → alpha bump (v0.1.0-alpha.1 → v0.1.0-alpha.2)
- [beta] → beta bump
- [rc] → rc bump
- default → minor bump (if no type specified)
Automatic Actions:
- Updates VERSION file
- Updates package.json version
- Updates CHANGELOG.md with commit message
- Creates git tag (e.g., v0.2.0)
- Pushes changes back to main
- Adds [skip ci] to prevent infinite loop
Documentation:
- Added VERSION_BUMP_GUIDE.md with examples
- Clear commit message format guidelines
- Manual override instructions
Benefits:
- No manual version bumping needed
- Consistent versioning across the project
- Automatic changelog updates
- Git tags for every release
- Follows semantic versioning conventions
Monorepo Features:
- Root package.json with convenient npm scripts for all agents
- Easy testing from root: npm test, npm run test:openagent, npm run test:opencoder
- Multi-model support: test with Grok, Claude, or GPT-4
- Quick dashboard access: npm run dashboard
- No folder navigation required
Versioning System:
- VERSION file tracking current version (0.1.0-alpha.1)
- CHANGELOG.md with comprehensive version history
- Version bump scripts for alpha, beta, rc, and stable releases
- Semantic versioning with progression: Alpha → Beta → RC → Stable
CI/CD:
- GitHub Actions workflow for automated testing
- Pre-merge validation for agent changes
- Smoke tests for both openagent and opencoder
- Automated test result reporting
- Runs on PRs to main/dev and pushes to main
Helper Scripts:
- scripts/test.sh: Advanced test runner with multi-agent support
- scripts/dashboard.sh: Enhanced dashboard launcher with auto-open
- scripts/bump-version.sh: Version management tool
Documentation:
- QUICK_START.md: Comprehensive testing and usage guide
- Clear examples for all test scenarios
- Multi-agent and multi-model workflows
Benefits:
- Easy testing from root directory
- Automated quality checks before merges
- Clear version tracking and history
- Developer-friendly workflows
- No breaking changes to existing structure
OpenAgent requires text-based approval before executing write/edit tools.
Updated tests to use multi-turn prompts:
1. First prompt: Request the task
2. Second prompt: 'Yes, proceed' to approve
Also added TESTING_CONFIDENCE.md documenting current test reliability:
- Opencoder: HIGH confidence (4/4 tests passing)
- OpenAgent: MEDIUM confidence (multi-turn works, context loading needs verification)
- Create evals/test_tmp/ directory for test-created files
- Update all tests to write files to test_tmp/ instead of project root
- Add cleanup logic to test runner (before and after tests)
- Add comprehensive HOW_TESTS_WORK.md documentation
- Remove src/ directory that was accidentally created by tests
This prevents tests from polluting the project directory with test artifacts.
- Create separate test folder for opencoder agent with 4 tests
- Update openagent tests to use multi-turn prompts for approval workflow
- Fix test runner to properly handle expectedViolations with shouldViolate: true
- Add mustUseAnyOf behavior expectation for flexible tool matching
- Add unit tests for timeline-builder and context-loading-evaluator
- Update documentation to reflect agent-specific test structure
- Remove outdated AGENT_DETECTION_STATUS.md
Opencoder tests: 4/4 passing
Key insight: openagent uses text-based approval, opencoder uses tool permissions only
- Replace planned framework with working SDK implementation using @opencode-ai/sdk
- Add 6 YAML test cases across developer/business/edge-case categories (100% passing)
- Implement 4 evaluators for openagent.md rule compliance (approval-gate, context-loading, delegation, tool-usage)
- Add real-time event streaming and session recording
- Configure opencode/grok-code-fast as default model (zero API costs)
- Add comprehensive documentation (SDK_EVAL_README.md, test-design-guide.md, TEST_SCENARIOS.md)
- Support v2 schema with behavior-based expectations instead of message counts
- Enable model-agnostic test design that works across Claude, GPT-4, and Grok
- Add subagent invocation syntax documentation to openagent.md
- Add explicit task() invocation syntax to codebase-agent with examples
- Include when-to-use guidance for each subagent (4+ files, simple tasks, etc.)
- Add comprehensive OpenCode context reference cheatsheet covering:
- File references with @ symbol (immediate vs lazy loading)
- Agent invocation patterns (task tool vs @ syntax)
- Shell command execution with backtick syntax
- Best practices and anti-patterns
- Complete real-world examples and templates
This improves AI agent reliability in delegating to subagents by providing
clear, explicit invocation patterns following research-backed progressive
disclosure principles.
- Update all subagent references to use full paths (subagents/core/ and subagents/code/)
- Remove @ prefix to fix compatibility issues with some models
- Replace non-existent 'write-test' agent with 'subagents/code/tester'
- Fixes issue reported in GitHub issue
- Add central context index at .opencode/context/index.md (120 tokens)
- Add compact metadata to all 9 context files (10 tokens each)
- Update OpenAgent prompt to reference index system (73% token reduction)
- Update context-guide.md with index usage documentation
Benefits:
- Single index file for context discovery
- Human-readable and machine-parseable format
- Clear dependency tracking (tests→code, review→code+patterns, etc.)
- Priority levels (critical/high/medium) for all contexts
- Reduced prompt overhead from ~200 to ~53 tokens
Context files updated:
- standards/code.md, docs.md, tests.md, patterns.md, analysis.md
- workflows/delegation.md, review.md, task-breakdown.md, sessions.md
This implements a scalable, maintainable context system with
efficient token usage and clear navigation structure.
Add support for custom global installation paths with automatic context
reference transformation. This enables users to install to any location
while maintaining working context references.
Changes:
- Add universal path transformation for ANY global installation path
(not just ~/.config/opencode)
- Implement automatic cleanup trap for temp files on exit/crash/interrupt
- Add early validation for --install-dir argument with clear error messages
- Add developer documentation for context reference convention
Technical Details:
- Path transformation detects local vs global by checking if path ends
in .opencode (local) or not (global)
- Transformation applies to ALL file types during installation
- sed transforms both @ references and shell command paths
- Cleanup trap handles EXIT, INT, and TERM signals
Testing:
- 31 unit and integration tests (100% pass rate)
- All README installation scenarios verified
- Edge cases tested and handled
- Cross-platform compatible (macOS, Linux, Windows Git Bash)
Documentation:
- Added dev/docs/context-reference-convention.md explaining the required
@.opencode/context/ format and why it's necessary
- Includes examples, validation instructions, and test results
Breaking changes: None
New capabilities: Custom global path support
- Add research-backed-prompt-design.md with Stanford/Anthropic patterns
- Add openagent.md documentation with workflow and delegation details
- Add developer guides for slash commands and context system
- Document position sensitivity, nesting limits, and instruction ratios
- Include examples and best practices for prompt optimization
- Add get_install_path() helper to convert registry paths to installation paths
- Fix collision detection to check files in custom install directory
- Fix file installation to use custom directory instead of hardcoded .opencode
- Fix env.example path check in post-install message
- Tested with .test-install-dir and .openffff directories - all files now install to correct location
- Position OpenAgent as recommended default for new users
- Add detailed stage diagrams for all 6 workflow stages
- Replace bright purple colors with softer slate blue for better accessibility
- Update all documentation to show OpenAgent as universal coordinator
- Keep codebase-agent as specialized development alternative
- Fix set -e bug: Change ((variable++)) to variable=$((variable + 1)) to prevent script exit on bash 5.2.21 (Ubuntu 24.04)
- Fix collision handling UX: Display menu options correctly by redirecting to stderr
- Add custom installation directory support with --install-dir flag and OPENCODE_INSTALL_DIR env var
- Add interactive location selection menu (Local/Global/Custom)
- Implement cross-platform path handling (Linux/macOS/Windows) with tilde expansion, backslash conversion, and validation
- Enhance help documentation with comprehensive examples and platform support information
Fixes installation failures on modern Linux systems and enables flexible installation to any directory including ~/.config/opencode
Major Changes:
- Rename repository from opencode-agents to OpenAgents
- Remove all hardcoded model specifications (now model-agnostic)
- Fix documentation: profile names, component counts, add Business profile
- Add future plans note for other AI coding tools
Repository Rename:
- Update all URLs to github.com/darrenhinde/OpenAgents
- Update git remote, README, install scripts, documentation
- 15 files updated with new repository name
Model-Agnostic Framework:
- Remove model specifications from 6 agent files
- Framework now works with any AI provider (Claude, GPT, Gemini, local models)
- Users control model selection via OpenCode CLI settings
Documentation Fixes:
- Correct profile name: Core → Essential
- Add missing Business profile documentation
- Fix component counts: Developer (19), Advanced (32)
- Document all 5 profiles with accurate descriptions
Future Plans:
- Add note about support for other AI tools (Cursor, Claude Code, etc.)
- Clear focus on stabilizing OpenCode integration first
This makes OpenAgents a truly universal, model-agnostic framework
accessible to all users regardless of their AI provider preference.
Problem:
- When running 'curl ... | bash -s core' the screen would clear
- This made it appear like nothing was happening after preview
- Users couldn't see the installation progress
Solution:
- Only call 'clear' in interactive mode
- Skip clear when NON_INTERACTIVE=true
- Allows users to see full output when piped from curl
Now users can see:
- Dependency checks
- Registry fetch
- Installation preview
- 'Installing automatically' message
- Full installation progress
- Completion message
This makes the installation process transparent and debuggable.
Problem:
- Running 'curl ... | bash -s core' showed preview and waited for input
- User had to press Y to proceed even though profile was specified
- Defeats the purpose of one-command installation
Solution:
- Add NON_INTERACTIVE flag to track command-line profile usage
- Set NON_INTERACTIVE=true when profile argument provided
- Skip confirmation prompt when NON_INTERACTIVE=true
- Show 'Installing automatically (profile specified)...' message
Behavior:
Before:
curl ... | bash -s core
→ Shows preview, waits for Y/n input
After:
curl ... | bash -s core
→ Shows preview, installs automatically
Interactive mode still works:
bash install.sh
→ Shows menu, asks for confirmation (as expected)
This makes profile-based installation truly one-command with no interaction needed.
Problem:
- Running 'curl ... | bash' without arguments showed interactive menu
- But stdin was the curl stream, not terminal
- Script couldn't read user input and would exit silently
- Confusing user experience
Solution:
- Add check_interactive_mode() to detect if stdin is a terminal
- If running in pipe without arguments, show helpful error message
- Provide clear instructions for both interactive and profile-based install
- Update README to clarify installation methods
Changes:
- Add [ ! -t 0 ] check to detect non-terminal stdin
- Show helpful error with examples when piped without profile
- Update README to recommend profile-based install (fastest)
- Clarify that interactive mode requires downloading first
User Experience:
Before: Silent exit or confusing behavior
After: Clear error message with exact commands to run
Examples shown to user:
- Download first: curl ... -o install.sh && bash install.sh
- Or use profile: curl ... | bash -s core
This fixes the issue reported when running on another computer.