Thanks for your interest in StratoSort Stack. Please read this document fully before opening an issue or a pull request — contributions are accepted under the terms below so ownership stays clear.
- License and Contribution Terms
- Code of Conduct
- Reporting Issues
- Security Disclosures
- Development Setup
- Development Workflow
- Testing
- Pull Request Checklist
StratoSort Stack is licensed under the PolyForm Noncommercial License 1.0.0. Personal and other noncommercial use is free. Commercial use requires a paid license.
We do, however, accept community bug reports, feature requests, and pull requests under the following terms:
- Bug reports and feature requests are welcome from anyone. Use GitHub Issues — no special permission is required.
- Pull requests are accepted at the maintainers' discretion. By opening a pull request that
contains code, documentation, configuration, or any other content (a "Contribution"), you agree
that:
- The Contribution is your original work, or that you have the right to submit it.
- You grant the project's rights holder (Kennedy Applied Sciences, Inc.) a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license to use, reproduce, modify, sublicense, and distribute the Contribution as part of the project under any terms the rights holder chooses, including the PolyForm Noncommercial License 1.0.0 currently applied to this repository.
- The Contribution does not infringe any third party's intellectual property rights.
- You understand that you retain copyright to your Contribution but cannot revoke the license granted in (2) once the Contribution has been merged.
- Trivial fixes (typos, link fixes, dependency bumps with no behavior change) are encouraged and the bar above is intentionally low for them.
If you cannot agree to the above terms, please do not open a pull request — open an issue describing what you would change instead, and a maintainer can implement it.
This project follows the Contributor Covenant. By participating in any project space — issues, pull requests, discussions — you agree to abide by it.
Open a GitHub issue: https://github.com/iLevyTate/StratoSortStack/issues. Include:
- Clear reproduction steps
- Expected vs actual behavior
- App version and platform (you can grab this from Settings → About → Copy Version Info)
- Relevant logs (the directory is
app.getPath('userData')/logs/, which resolves to%APPDATA%\StratoSort Stack\logs\on Windows,~/Library/Application Support/StratoSort Stack/logs/on macOS, and~/.config/StratoSort Stack/logs/on Linux). Use Settings → Diagnostics → Export Logs for a redacted archive suitable for sharing.
From Settings → About you can use Copy Version Info to grab your runtime details, then open a new GitHub issue, or use Email Support to send them directly.
Do not report security vulnerabilities through public GitHub issues. Follow the process in SECURITY.md — use the repository's Security tab to file a private advisory.
| Requirement | Version | Notes |
|---|---|---|
| Node.js | See .nvmrc |
Use nvm for version management |
| npm | >=8.0.0 | Comes with Node.js |
| OS | Windows 10/11 | Recommended; other OS builds are best-effort |
git clone https://github.com/iLevyTate/StratoSortStack.git
cd StratoSortStack
npm ci
npm run dev| Document | Purpose |
|---|---|
| Onboarding | Clone to first PR |
| Glossary | Project terminology |
| Architecture | System design and data flow |
| DI Patterns | Dependency injection patterns |
| Error Handling | Error handling standards |
| Code Quality | Style and review expectations |
- Create a feature branch from the current default branch.
- Make focused changes that keep scope tight and tests relevant.
- Run tests and linting (see below).
- Open a PR with a clear description and test results.
npm run format:check
npm run lint
npm testUse npm run ci for the full quality gate (it already includes the IPC channel and contract
checks); cloud CI additionally runs native-module verification and an E2E smoke subset.
npm run local:gate adds the native-module check locally.
See docs/TESTING.md for test patterns, priorities, and the manual QA checklist.
- Formatting passes (
npm run format:check) - Lint passes (
npm run lint) - Tests pass (
npm test) - Manual checklist reviewed/completed when user flows change (
docs/TESTING.md) - Docs updated for new behavior or configuration
- PR template is fully completed with clear test notes
Thank you for helping make StratoSort Stack better!