agor-pro Tauri 2.x plugin (feature-gated via --features pro), commercial Tauri config overlay, asymmetric test setup, CI workflows (leak-check, commercial-build, PAT health), pre-push hook, Makefile, CONTRIBUTING/MAINTENANCE/LICENSE-COMMERCIAL.
3.3 KiB
Contributing to Agent Orchestrator
Dual-Repository Model
This project uses a dual-repo structure:
| Repository | License | Purpose |
|---|---|---|
DexterFromLab/agent-orchestrator |
MIT | Community edition (open source) |
agents-orchestrator/agents-orchestrator |
MIT + Commercial | Commercial edition (this repo) |
Community contributions target the community repo. Commercial development happens
exclusively in this repo. The two share a common main branch that is synced
periodically.
Community Contributions
All community contributions go to DexterFromLab/agent-orchestrator. Do not open PRs against this repo for community features.
Contributor License Agreement (CLA)
Every community contributor must sign the CLA before their first PR is merged. CLA signing is automated via CLA-assistant.io on the community repository. The bot will prompt you on your first PR.
The CLA grants the project maintainers a perpetual, irrevocable license to use your contribution in both the community and commercial editions.
Commercial Development
Commercial features are developed only in this repository. Access is restricted to authorized team members.
SPDX License Headers
All commercial source files must include the following header as the first line:
// SPDX-License-Identifier: LicenseRef-Commercial
For CSS/HTML files:
/* SPDX-License-Identifier: LicenseRef-Commercial */
For Rust files:
// SPDX-License-Identifier: LicenseRef-Commercial
Community-shared code uses the MIT identifier:
// SPDX-License-Identifier: MIT
Commercial Directories
Files under these paths are always commercial-only:
agor-pro/src/lib/commercial/
Branch Model
| Branch | Purpose |
|---|---|
main |
Shared with community edition. Never commit commercial code here. |
commercial/* |
Commercial-only features. Merged into the commercial release branch. |
feature/*, fix/* |
Standard development branches. |
Sync Flow
The community repo's main is merged into this repo's main periodically:
community/main --> origin/main --> commercial branches
Use make sync to pull community changes. Never force-push main.
Commit Conventions
Use Conventional Commits:
type(scope): description
feat(dashboard): add team analytics panel
fix(sidecar): handle timeout on agent restart
docs(api): update webhook payload reference
chore(deps): bump tauri to 2.3.1
Types: feat, fix, docs, style, refactor, perf, test, chore, ci, build.
Breaking changes use type!: prefix or include BREAKING CHANGE: in the footer.
Testing
Both editions must pass their respective test suites before merge:
# Community tests (must always pass on main)
npm run test:all
# Commercial tests (includes commercial-specific tests)
npm run test:all:commercial
Do not merge a PR if either suite is red. If a community sync introduces failures in commercial tests, fix them before merging.
Code Review
- All PRs require at least one approval.
- Commercial PRs must be reviewed by a team member with commercial repo access.
- Verify no commercial code leaks into community-bound branches before approving.