-
-
Notifications
You must be signed in to change notification settings - Fork 4
Maintenance
This page describes how to report defects, request features, and contribute to ChessVision against the v5.5.3 stable release on master.
Bug reports are filed as GitHub issues. Two templates are available from the New Issue picker on the repository:
-
Bug Report — A structured form (
bug_report.yml). Use this by default. It collects environment details, reproduction steps, expected and actual behavior, and screenshots in clearly delimited fields. -
Bug Report (Quick) — A minimal plain-Markdown alternative (
bug_report.md). Use this when the structured form is not appropriate.
Every new bug should include:
- A one-sentence summary of the defect.
- Numbered reproduction steps that begin from a clean session.
- The expected behavior.
- The actual behavior, with error messages, stack traces, or console output where applicable.
- The browser and version, the operating system, and whether the issue reproduces on desktop, mobile, or both.
- The ChessVision version or commit hash. v5.5.3 corresponds to the most recent release tag on
master.
Bugs that involve the export pipeline should additionally include the export preset, the requested board size, and whether the canvas was disposed (the canvas.width = 0 invariant after every blob generation must hold).
Bugs are triaged into three classes:
-
Crash-class. Canvas out-of-memory, navigation crashes, regressions in the export pipeline. These are prioritized for backport to
masteras a v5.5.x patch. - Functional. Defects that do not crash or destroy data. Routine fixes ship in the next minor or patch. Non-routine fixes may be deferred to the next major.
- Cosmetic. Visual polish and non-blocking layout issues. Generally deferred to the next major release unless trivial.
All open issues carry an area:*, priority:*, and effort:* label.
| Label family | Values | Meaning |
|---|---|---|
area:* |
area:export, area:ci, area:auth
|
Subsystem affected |
priority:* |
priority:high, priority:low
|
Triage priority |
effort:* |
effort:small, effort:large
|
Expected effort |
Open issues are tracked on the ChessVision project board.
Feature requests are filed through the Feature Request template (feature_request.yml) on the New Issue picker. Each request should describe:
- The problem the feature solves, framed in terms of a user task.
- The proposed behavior.
- Alternatives that have been considered.
- Whether the request applies to the v5.x stable line or to the next major release.
Feature requests against the v5.x line are accepted only when they fall within the maintenance policy stated below. New user-facing features generally land on develop and ship in the next major release.
- Security patches (dependency CVEs, SAST findings).
- Dependabot dependency bumps for direct dependencies, reviewed and merged in batches.
- Documentation corrections, typo fixes, and link-rot repair.
- CI and release-pipeline fixes.
- Build-configuration fixes that do not alter user-facing behavior.
- New user-facing features.
- Schema or API changes.
- Breaking changes to
localStoragekeys, FEN history format, or settings shape. - TypeScript migration of additional files.
- Performance refactors that change observable behavior.
-
master— stable. Receives only the changes described above. -
develop— active development. The next major release accumulates here. - Feature branches target
develop. Patch branches against the v5.x line targetmasterdirectly and must remain within the maintenance scope.
The contribution workflow is documented in CONTRIBUTING.md on master. The summary:
-
Fork the repository and check out the appropriate branch (
developfor new features;masteronly for v5.x patches that fall within the maintenance scope). -
Run
pnpm install. -
Create a feature branch with a Conventional Commits-compatible name (for example,
fix/export-canvas-oomorchore/deps-bump). -
Make changes. Before submitting, run all three quality gates:
pnpm test pnpm lint pnpm format:check -
Commit using Conventional Commits. Commitlint enforces the format on
commit-msg. -
Open a pull request against the appropriate base branch. The pull-request template will populate.
-
Address review comments. Once approved, the PR is merged by a maintainer.
Security-sensitive reports must not be filed as public GitHub issues. The supported disclosure channel is documented in SECURITY.md on master.
The v5.x line treats the following as security invariants:
-
safeJSONParseis mandatory for every untrusted string-to-object conversion. DirectJSON.parseon external data is forbidden. -
sanitizeFileName,sanitizeInput, andsanitizeHexColorare applied at system boundaries before rendering untrusted strings to the DOM or using them in file names. -
MAX_FEN_LENGTH = 93is enforced before any parse attempt; unbounded string processing is not permitted. -
react/jsx-no-target-blankis configured as an ESLint error; outbound links must carryrel="noopener noreferrer".
- Repository: https://github.com/BilgeGates/chess-vision
- Roadmap (v5.5.3 snapshot): https://github.com/BilgeGates/chess-vision/blob/master/ROADMAP.md
- Changelog: https://github.com/BilgeGates/chess-vision/blob/master/docs/CHANGELOG.md
- Contributing: https://github.com/BilgeGates/chess-vision/blob/master/CONTRIBUTING.md
- Code of Conduct: https://github.com/BilgeGates/chess-vision/blob/master/CODE_OF_CONDUCT.md
- Security policy: https://github.com/BilgeGates/chess-vision/blob/master/SECURITY.md
- Project board: https://github.com/users/BilgeGates/projects/4