Thanks for contributing.
- Read the project README.md.
- Search existing issues and PRs to avoid duplicates.
- For security vulnerabilities, use SECURITY.md instead of public issues.
Requirements:
- macOS 13+
- Xcode Command Line Tools or full Xcode
Build:
bash build.sh
./quickTerminal- Keep changes focused and reviewable.
- Preserve the single-file architecture unless there is a strong reason to split.
- Add comments only where logic is non-obvious.
- Avoid unrelated refactors in bugfix PRs.
- Keep naming and style consistent with existing code.
- PR title explains the change clearly.
- Include a short rationale: what changed and why.
- Include manual test notes with exact steps.
- Update docs when behavior or shortcuts changed.
- Confirm the project still builds with
bash build.sh.
Small commits are preferred. Suggested format:
scope: short summary
Examples:
parser: fix OSC 52 clipboard response handlingui: prevent split ratio from being overwritten on restore
For maintainers publishing a new GitHub Release:
- Bump version in
kAppVersion(quickTerminal.swift),build_app.sh,build_zip.sh— all three must match. - Run
bash build.sh— all tests must pass (0 failed). - Run
bash build_zip.sh— confirms.appbundle +install.sh+FIRST_READ.txtare in the ZIP. - Generate SHA256 checksum and upload alongside the ZIP:
Both files must be attached to the GitHub Release. The updater downloads
shasum -a 256 quickTerminal.zip > quickTerminal.zip.sha256quickTerminal.zip.sha256and verifies the ZIP before installing. Missing the file downgrades the update to unverified (no hash check). - Update
CHANGELOG.mdwith the new version section. - Tag the release:
git tag vX.Y.Z && git push origin vX.Y.Z.
- Stability and correctness of terminal behavior.
- Performance under sustained PTY output.
- Minimal binary size and fast startup.
- UX consistency for tray/toggle workflows.