Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: 🐛 Bug Report
description: Something in the Web UI is broken or misbehaving.
labels: []
title: '[Bug] '
body:
- type: checkboxes
id: checks
attributes:
label: Before submitting
description: Issues that fail these checks may be closed without review.
options:
- label: I'm using the latest Stable or Daily version of Shoko Server.
required: true
- label: I'm using the correct Web UI version for my server (Stable Server → Stable WebUI, Daily Server → Daily WebUI).
required: true
- label: I've searched this repository for a similar issue.
required: true

- type: input
id: server-version
attributes:
label: Shoko Server Version
description: Shown in Settings → General (e.g. `5.3.3.0`). If the Web UI crashes before you can reach Settings, the versions are also shown on the crash page.
placeholder: '5.3.3.0'
validations:
required: true

- type: dropdown
id: server-channel
attributes:
label: Server Channel
options:
- Stable
- Daily
validations:
required: true

- type: input
id: webui-version
attributes:
label: Web UI Version
description: Shown in Settings → General, next to the server version (e.g. `2.5.11`); also visible on the crash page.
placeholder: '2.5.11'
validations:
required: true

- type: dropdown
id: webui-channel
attributes:
label: Web UI Channel
options:
- Stable
- Daily
validations:
required: true

- type: textarea
id: description
attributes:
label: Description
description: What happened, and what did you expect to happen instead?
validations:
required: true

- type: textarea
id: steps
attributes:
label: Steps to Reproduce
description: |
Numbered steps starting from a fresh page load. Example:
1. Open `WebUI → Collection`
2. Click `...`
3. See error
validations:
required: true

- type: textarea
id: evidence
attributes:
label: Screenshots
description: Screenshots of the error, including the browser toast if one appears.
validations:
required: false
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Shoko Discord
url: https://discord.gg/vpeHDsg
about: For support questions and general discussion, please use Discord instead of opening an issue.
- name: Shoko Server Issues
url: https://github.com/ShokoAnime/ShokoServer/issues
about: If the problem only appears server-side (importing, AniDB, renaming), report it on ShokoServer instead.
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: ✨ Feature Request
description: Suggest a new feature or an improvement to an existing one.
labels: []
title: '[Feature Request] '
body:
- type: checkboxes
id: checks
attributes:
label: Before submitting
options:
- label: I've searched this repository for a similar feature request.
required: true
- label: This request is not related to allowing Shoko to download anime episodes or rip them from streaming sites.
required: true

- type: textarea
id: description
attributes:
label: Feature Description
description: What do you want to see, and what problem does it solve? Include the relevant page/section of the Web UI (e.g. `Collection`, `Settings → Import`).
validations:
required: true

- type: textarea
id: examples
attributes:
label: Examples / Mockups
description: Mockups, screenshots from other apps, or a concrete example of the behavior you'd expect. Delete this section if not applicable.
validations:
required: false
13 changes: 13 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## Summary

<!-- 1-3 sentences: what this PR does and why. -->
<!-- Link related work: `Fixes #123`, `Relates to #123` (discussion/RFC), or `Depends on #123` for stacked PRs. -->

## Changes

<!-- Bulleted list of notable changes; bold the affected files/modules, e.g. **`EditReleaseInfoModal.tsx`**. -->
<!-- Group under ### Added / ### Fixed / ### Removed headings for larger PRs. -->

## Screenshots

<!-- For UI changes: before/after screenshots or short clips. Delete this section otherwise. -->
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ jobs:
update-manifest:
needs: release-dev-auto
if: success()
uses: ./.github/workflows/Update-Manifest.yml
uses: ./.github/workflows/update-manifest.yml
with:
version: ${{ needs.release-dev-auto.outputs.version_tag }}
prerelease: true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,14 @@ jobs:
runtime: node@24
cache: true

- name: Format Check
run: pnpm dprint

- name: Lint
run: pnpm lint --quiet
run: pnpm oxlint

- name: Stylelint
run: pnpm stylelint

- name: Update version in package.json
run: pnpm version ${{ github.event.inputs.version }} --no-git-tag-version
Expand Down Expand Up @@ -105,7 +111,7 @@ jobs:
update-manifest:
needs: release
if: success()
uses: ./.github/workflows/Update-Manifest.yml
uses: ./.github/workflows/update-manifest.yml
with:
version: ${{ needs.release.outputs.version }}
prerelease: ${{ fromJSON(needs.release.outputs.prerelease) }}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
name: Lint-PR
name: Validate-PR
on:
pull_request:
types: [opened, synchronize]

jobs:
lint-and-build:
validate-pr:
runs-on: ubuntu-latest
name: Lint check PR
name: Validate PR

steps:
- name: Checkout
Expand All @@ -19,8 +19,14 @@ jobs:
runtime: node@24
cache: true

- name: Format Check
run: pnpm dprint

- name: Lint
run: pnpm lint --quiet
run: pnpm oxlint

- name: Stylelint
run: pnpm stylelint

- name: Test
run: pnpm test
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,9 @@ This project uses the **React Compiler** (via `@rolldown/plugin-babel`). The com
## Verification & CI

- **Verification is `pnpm test` (Vitest unit tests) + `pnpm lint` (typecheck: `pnpm tscheck`).** Test coverage is deliberately limited to regression protection of high-risk modules (`filterTree.ts`, auto-match logic/regexes); never add coverage tooling or UI/DOM assertions.
- **Other CI workflows:** `Release-Dev-Auto.yml` (auto build on `master` push), `Release-Manual.yml`, `Update-Manifest.yml`, CodeQL.
- **Other CI workflows:** `release-dev-auto.yml` (auto build on `master` push), `release-manual.yml`, `update-manifest.yml`, CodeQL.
- **Pre-commit:** Husky runs `lint-staged` (configured in `lint-staged.config.js`), which executes `dprint fmt`, `oxlint`, and `stylelint` on staged files. `stylelint` only covers `src/css/*.css` (flat, not recursive).
- **PR CI:** `.github/workflows/Lint-PR.yml` runs `pnpm lint --quiet`, then `pnpm test`.
- **PR CI:** `.github/workflows/validate-pr.yml` runs `pnpm lint --quiet`, then `pnpm test`.
- **Agent lint workflow:**
- After every file edit, run `./node_modules/.bin/dprint fmt <file>` to format just that file.
- After completing edits on a file, run `./node_modules/.bin/oxlint --fix <file>` to catch lint errors early (auto-fixes import order and other fixable rules) — fix any remaining errors before moving on.
Expand Down