You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+8-3Lines changed: 8 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ Thanks for considering a patch. This repo is a small Flask app plus a hash-route
9
9
-**Python 3.12** (matches CI)
10
10
-**Node 20+** (only if you change `static/js/` or run frontend unit tests)
11
11
12
-
CI runs **`pytest`**, **integration tests**, and **Vitest** on **ubuntu-latest** and **windows-latest** (Python 3.12, Node 20). Type-check (`mypy`) and production install smoke run on Ubuntu only.
12
+
CI runs **`ruff check`**, **`ruff format --check`**, **`pip-audit`**, **`pytest`**, **integration tests**, and **Vitest** on **ubuntu-latest** and **windows-latest** (Python 3.12, Node 20). Type-check (`mypy`) and production install smoke run on Ubuntu only.
13
13
14
14
### Bootstrap (Windows PowerShell)
15
15
@@ -58,6 +58,9 @@ When changing JSON response shapes, update the API reference stability column an
58
58
### Python
59
59
60
60
```bash
61
+
ruff check .# lint (E, F, W, I) — same gate as CI
62
+
ruff format --check .# formatting gate; run `ruff format .` to fix
63
+
pip-audit -r requirements.txt # production dependency audit (CI gate)
61
64
pytest -q # full suite + coverage (see pyproject.toml)
62
65
pytest tests/test_api_integration.py -v
63
66
pytest tests/test_search.py -v
@@ -85,7 +88,8 @@ npm run test:coverage # optional
85
88
|**Exception leakage**|`5xx` bodies are generic messages only. Log full tracebacks with `current_app.logger.exception(...)`. Never put `str(e)` or class names in HTTP JSON (issue #25). |
86
89
|**Path safety**| Use `safe_join()` from `utils/session_path.py` for any path built from URL segments. |
87
90
|**Imports**| stdlib → third-party → local, blank line between groups. |
88
-
|**Line length**|~100 characters; no enforced formatter yet. |
91
+
|**Lint / format**|`ruff check .` and `ruff format --check .` (CI gates). Config in `pyproject.toml`; run `ruff format .` to apply formatting locally. |
92
+
|**Line length**| 100 characters (`line-length` in `pyproject.toml`). |
89
93
90
94
## Tests required for common changes
91
95
@@ -105,9 +109,10 @@ npm run test:coverage # optional
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -157,7 +157,7 @@ npm ci && npm test # only if you changed static/js/
157
157
158
158
## Continuous integration
159
159
160
-
Every push and pull request runs **`ruff`**, **`pip-audit`**, **`pytest`**, **mypy**, **API integration tests**, and **vitest** on **Ubuntu and Windows** (Python 3.12, Node 20) via [`.github/workflows/ci.yml`](.github/workflows/ci.yml). A separate job verifies that `pip install -r requirements.txt` (production-only) is sufficient to import and boot the app.
160
+
Every push and pull request runs **`ruff check`**, **`ruff format --check`**, **`pip-audit`**, **`pytest`**, **mypy**, **API integration tests**, and **vitest** on **Ubuntu and Windows** (Python 3.12, Node 20) via [`.github/workflows/ci.yml`](.github/workflows/ci.yml). A separate job verifies that `pip install -r requirements.txt` (production-only) is sufficient to import and boot the app.
Copy file name to clipboardExpand all lines: SECURITY.md
+5-1Lines changed: 5 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,11 @@ This project is pre-release. Security fixes are applied to the **latest `master`
13
13
14
14
**Please do not open public GitHub issues for security vulnerabilities.**
15
15
16
-
Report vulnerabilities privately via [GitHub Security Advisories](https://github.com/cppalliance/claude-code-chat-browser/security/advisories/new). Private vulnerability reporting must be enabled on the repository (Settings → Security → Private vulnerability reporting). If you cannot use that form, contact the repository maintainers through an existing private channel.
16
+
**Primary path (always works):** Contact a [repository maintainer](https://github.com/cppalliance/claude-code-chat-browser/graphs/contributors) through a private channel you already use with the project (for example a direct message or private email). Include steps to reproduce, affected version/commit, and impact.
17
+
18
+
**GitHub Security Advisories (when enabled):** Once **Private vulnerability reporting** is turned on for this repository (Settings → Security → Private vulnerability reporting), external researchers may use the [private advisory form](https://github.com/cppalliance/claude-code-chat-browser/security/advisories/new). If that link returns 404 or the form is unavailable, use the primary path above — the advisory URL only works when the setting is enabled.
19
+
20
+
**Repository admins:** Enable private vulnerability reporting before merge if you want the advisory form to be the default reporter path; until then, maintainers should treat the primary path as authoritative.
0 commit comments