Opencode-Cli / CONTRIBUTING.md
Hermes Agent
feat: completely remove Open WebUI and streamline multi-service container hub
58d7eda
|
Raw History Blame Contribute Delete
2.25 kB

Contributing to OpenCode CLI

Thank you for your interest in contributing to OpenCode CLI! We welcome contributions, bug reports, feature requests, and pull requests.


πŸ“‹ Table of Contents

  1. Code of Conduct
  2. How to Contribute
  3. Development Setup
  4. Pull Request Process
  5. Coding & Architecture Standards

πŸ“œ Code of Conduct

Please be polite, respectful, and collaborative in all communications.


🀝 How to Contribute

  • Reporting Bugs: Open an issue on GitHub describing the steps to reproduce, expected behavior, actual behavior, and container logs.
  • Feature Requests: Open an issue detailing the use case, proposed architecture, and benefit to the community.
  • Pull Requests: Fork the repository, create a topic branch, implement your changes with tests/validations, and submit a PR.

πŸ› οΈ Development Setup

  1. Clone the repository:
    git clone https://github.com/JishnuPG-tech/Project.git
    cd Project
    
  2. Environment File: Copy .env.example to .env and set local test secrets.
  3. Syntax Checks:
    • Python: python -m py_compile gateway/*.py proxy.py tg_streamer.py
    • Shell: bash -n entrypoint.sh

πŸ”€ Pull Request Process

  1. Branch Naming: Use descriptive branch names like feat/new-router, fix/hermes-config, docs/update-readme.
  2. Commit Messages: Follow Conventional Commits:
    • feat(gateway): add new endpoint for agent metrics
    • fix(hermes): resolve port binding configuration
    • docs(readme): add client integration examples
  3. Architecture Verification: Ensure your changes adhere to the locked architecture documents (ARCHITECTURE.md, HERMES_ARCHITECTURE.md).

πŸ”’ Coding & Architecture Standards

  • No Hardcoded Secrets: Secrets must be loaded via environment variables or secret store.
  • Persistent Volume Safety: All writable state must sync to /data/ volumes to survive container restarts.
  • Non-Blocking Proxies: Use async HTTP client (httpx / aiohttp) for high-throughput routing.