Conversation
feat: merge dev branch
# [1.0.0-alpha.9](v1.0.0-alpha.8...v1.0.0-alpha.9) (2025-09-12) ### Bug Fixes * **homepage:** Fix UI desynchronization issue after deleting video records + i18n support ([#120](#120)) ([7879ef4](7879ef4)) * **player:** Fix subtitle navigation when activeCueIndex is -1 ([#119](#119)) ([b4ad16f](b4ad16f)) * **player:** Fix subtitle overlay dragging to bottom and improve responsive design ([#122](#122)) ([d563c92](d563c92)) * **player:** Prevent subtitle overlay interactions from triggering video play/pause ([#128](#128)) ([9730ba1](9730ba1)) * **ui:** Remove white border shadow from modal buttons in dark mode ([#124](#124)) ([29f70f6](29f70f6)) ### Features * **performance:** implement video import performance optimization with parallel processing and warmup strategies ([#121](#121)) ([2c65f5a](2c65f5a)) * **player:** Implement fullscreen toggle functionality with keyboard shortcuts ([#127](#127)) ([78d3629](78d3629)) * **scripts:** optimize FFmpeg download progress display ([#125](#125)) ([be33316](be33316))
This reverts commit b75ffc9.
WalkthroughIntroduces a manual “Dev Release Build” GitHub Actions workflow for platform-specific Electron builds; updates version to 1.0.0-alpha.9; adds corresponding CHANGELOG entry; updates README acknowledgements formatting to a table. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant U as User
participant GH as GitHub Actions
participant J as Job (macOS/Linux/Windows)
participant N as Node+pnpm
participant B as Build (pnpm build)
participant EB as electron-builder
participant A as Artifacts
U->>GH: Trigger "Dev Release Build" (workflow_dispatch)<br/>inputs: platform, version?
GH->>J: Start job matching selected platform
J->>N: Checkout, setup Node 20, pnpm, pnpm store cache
N->>N: pnpm install
alt version provided
J->>J: Update package.json version
end
J->>B: Run pnpm build
B->>EB: Run electron-builder (--mac/--linux/--win)<br/>env: GH_TOKEN, ELECTRON_BUILDER_CHANNEL=dev, publish=never
EB-->>J: Build artifacts in dist/
J->>A: Upload artifacts (platform-specific globs)
A-->>U: Artifacts retained 30 days
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Pre-merge checks (3 passed)✅ Passed checks (3 passed)
Poem
✨ Finishing touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 8
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (4)
.github/workflows/dev-release.yml(1 hunks)CHANGELOG.md(1 hunks)README.md(1 hunks)package.json(1 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.17.2)
CHANGELOG.md
3-3: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
🪛 actionlint (1.7.7)
.github/workflows/dev-release.yml
44-44: the runner of "actions/cache@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
117-117: the runner of "actions/cache@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
190-190: the runner of "actions/cache@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: test (macos-latest, 20)
- GitHub Check: test (ubuntu-latest, 20)
- GitHub Check: test (windows-latest, 20)
🔇 Additional comments (5)
package.json (1)
3-3: Approve — package.json bumped to 1.0.0-alpha.9; verify lockfile
- package.json and CHANGELOG.md show 1.0.0-alpha.9 — OK.
- pnpm-lock.yaml contains postject@1.0.0-alpha.6; regenerate/update the lockfile if you expect all references to move to alpha.9.
README.md (1)
159-162: Acknowledgments table renders correctly.Good formatting and links; nothing else to change here.
CHANGELOG.md (1)
1-16: Changelog entry is well-formed and matches the version/date.Links, sections, and date (2025-09-12) are coherent.
.github/workflows/dev-release.yml (2)
217-219: Apply the same no-sign setting for Windows.env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - ELECTRON_BUILDER_CHANNEL: dev + ELECTRON_BUILDER_CHANNEL: dev + CSC_IDENTITY_AUTO_DISCOVERY: falseLikely an incorrect or invalid review comment.
66-90: Verify update-channel expectations for generated YAML.File: .github/workflows/dev-release.yml (lines 66-90). ELECTRON_BUILDER_CHANNEL=dev will emit latest-dev.yml; unable to verify — repo contains no dist/ artifacts and searches found no latest-*.yml, ELECTRON_BUILDER_CHANNEL, or auto-update usage. Confirm CI produces latest-dev.yml and that the app's auto-update config reads the same 'dev' channel (not latest-alpha.yml).
| on: | ||
| workflow_dispatch: | ||
| inputs: | ||
| platform: | ||
| description: 'Target platform' | ||
| required: true | ||
| type: choice | ||
| options: | ||
| - macos | ||
| - linux | ||
| - windows | ||
| version: | ||
| description: 'Version to set (optional)' | ||
| required: false | ||
| type: string | ||
|
|
There was a problem hiding this comment.
🛠️ Refactor suggestion
Add minimal permissions and concurrency to reduce risk and duplicate builds.
Tighten token scope and auto-cancel overlapping runs per platform.
on:
workflow_dispatch:
inputs:
platform:
description: 'Target platform'
required: true
type: choice
options:
- macos
- linux
- windows
version:
description: 'Version to set (optional)'
required: false
type: string
+
+permissions:
+ contents: read
+
+concurrency:
+ group: dev-release-${{ github.workflow }}-${{ inputs.platform || 'all' }}
+ cancel-in-progress: true📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| on: | |
| workflow_dispatch: | |
| inputs: | |
| platform: | |
| description: 'Target platform' | |
| required: true | |
| type: choice | |
| options: | |
| - macos | |
| - linux | |
| - windows | |
| version: | |
| description: 'Version to set (optional)' | |
| required: false | |
| type: string | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| platform: | |
| description: 'Target platform' | |
| required: true | |
| type: choice | |
| options: | |
| - macos | |
| - linux | |
| - windows | |
| version: | |
| description: 'Version to set (optional)' | |
| required: false | |
| type: string | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: dev-release-${{ github.workflow }}-${{ github.event.inputs.platform || 'all' }} | |
| cancel-in-progress: true |
🤖 Prompt for AI Agents
In .github/workflows/dev-release.yml around lines 3 to 18, add minimal
permissions and a concurrency key: set a minimal permissions block (for example
"permissions: contents: read" or the smallest permission set required by the
jobs that follow) directly under the workflow header, and add a concurrency
section to cancel overlapping runs per platform (e.g., concurrency: group: "${{
github.workflow }}-${{ github.event.inputs.platform || 'default' }}" and
cancel-in-progress: true) so token scope is tightened and duplicate builds for
the same platform are auto-cancelled.
| runs-on: macos-latest | ||
| if: ${{ inputs.platform == 'macos' }} | ||
|
|
There was a problem hiding this comment.
🧹 Nitpick (assertive)
Set a job timeout to prevent hung builds.
build-macos:
runs-on: macos-latest
+ timeout-minutes: 60
if: ${{ inputs.platform == 'macos' }}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| runs-on: macos-latest | |
| if: ${{ inputs.platform == 'macos' }} | |
| runs-on: macos-latest | |
| timeout-minutes: 60 | |
| if: ${{ inputs.platform == 'macos' }} |
🤖 Prompt for AI Agents
In .github/workflows/dev-release.yml around lines 21 to 23, the job lacks a
timeout setting which can allow hung builds to run indefinitely; add a
timeout-minutes field to the job definition (e.g., timeout-minutes: 30 or
another team-approved value) directly under the runs-on line so the job will be
automatically cancelled after the specified time.
| uses: actions/cache@v3 | ||
| with: |
There was a problem hiding this comment.
Upgrade actions/cache to v4 to avoid runner warnings.
actionlint flags v3 as too old on current runners.
Apply across all jobs:
- - name: Setup pnpm cache
- uses: actions/cache@v3
+ - name: Setup pnpm cache
+ uses: actions/cache@v4Also applies to: 117-118, 190-191
🧰 Tools
🪛 actionlint (1.7.7)
44-44: the runner of "actions/cache@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
🤖 Prompt for AI Agents
.github/workflows/dev-release.yml lines 44-45 (and also update occurrences at
117-118 and 190-191): the workflow is using actions/cache@v3 which triggers
runner warnings; update the uses entries to actions/cache@v4 for each
occurrence, ensure the with: block parameters remain compatible with v4, and run
a quick lint or dry-run of the workflow to confirm no additional changes are
required.
| - name: Build macOS package | ||
| run: | | ||
| pnpm build | ||
| pnpm exec electron-builder --mac --publish never | ||
| env: | ||
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| ELECTRON_BUILDER_CHANNEL: dev | ||
|
|
||
| - name: List build artifacts | ||
| shell: bash | ||
| run: | | ||
| echo "Build artifacts:" | ||
| find dist -type f -name "*" | head -20 | ||
|
|
||
| - name: Upload artifacts | ||
| uses: actions/upload-artifact@v4 | ||
| with: | ||
| name: macos-dev-artifacts | ||
| path: | | ||
| dist/*.dmg | ||
| dist/*.zip | ||
| dist/*.yml | ||
| dist/*.yaml | ||
| dist/*.blockmap | ||
| retention-days: 30 |
There was a problem hiding this comment.
🧹 Nitpick (assertive)
Optional: reduce duplication with a strategy matrix.
You can parameterize platform, build flags, and artifact globs to one job. This will simplify maintenance as patterns evolve.
I can provide a matrix-based rewrite if you'd like to adopt it.
Also applies to: 139-165, 212-236
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| ELECTRON_BUILDER_CHANNEL: dev | ||
|
|
There was a problem hiding this comment.
🛠️ Refactor suggestion
Prevent accidental macOS code signing lookups in dev builds.
Avoids delays/failures if a signing identity is present on hosted runners.
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- ELECTRON_BUILDER_CHANNEL: dev
+ ELECTRON_BUILDER_CHANNEL: dev
+ CSC_IDENTITY_AUTO_DISCOVERY: false📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| ELECTRON_BUILDER_CHANNEL: dev | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| ELECTRON_BUILDER_CHANNEL: dev | |
| CSC_IDENTITY_AUTO_DISCOVERY: false |
🤖 Prompt for AI Agents
In .github/workflows/dev-release.yml around lines 71 to 73, prevent accidental
macOS code signing lookups by adding the environment variable
CSC_IDENTITY_AUTO_DISCOVERY: 'false' to the workflow env (next to GH_TOKEN and
ELECTRON_BUILDER_CHANNEL) so electron-builder won’t attempt to discover signing
identities on hosted macOS runners; ensure the value is the literal string
'false'.
| runs-on: ubuntu-latest | ||
| if: ${{ inputs.platform == 'linux' }} | ||
|
|
There was a problem hiding this comment.
🧹 Nitpick (assertive)
Mirror the timeout on Linux.
build-linux:
runs-on: ubuntu-latest
+ timeout-minutes: 60
if: ${{ inputs.platform == 'linux' }}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| runs-on: ubuntu-latest | |
| if: ${{ inputs.platform == 'linux' }} | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| if: ${{ inputs.platform == 'linux' }} |
🤖 Prompt for AI Agents
.github/workflows/dev-release.yml around lines 94-96: the Linux job lacks the
timeout setting present for other platforms; add a timeout-minutes entry to this
job (directly under runs-on) using the same numeric value used for the other
platform job in this workflow so the Linux run mirrors the same timeout
behavior.
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| ELECTRON_BUILDER_CHANNEL: dev | ||
|
|
There was a problem hiding this comment.
🧹 Nitpick (assertive)
Apply the same no-sign setting for Linux (harmless, keeps parity).
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- ELECTRON_BUILDER_CHANNEL: dev
+ ELECTRON_BUILDER_CHANNEL: dev
+ CSC_IDENTITY_AUTO_DISCOVERY: false🤖 Prompt for AI Agents
In .github/workflows/dev-release.yml around lines 144-146, the Linux job is
missing the no-sign environment flag; add the same no-sign env var used for
other platforms (e.g., NO_SIGN: "true" or the repository's existing no-sign
variable) under the job's env section so the Linux build runs without signing
and stays consistent with the other platforms.
| runs-on: windows-latest | ||
| if: ${{ inputs.platform == 'windows' }} | ||
|
|
There was a problem hiding this comment.
🧹 Nitpick (assertive)
Mirror the timeout on Windows.
build-windows:
runs-on: windows-latest
+ timeout-minutes: 60
if: ${{ inputs.platform == 'windows' }}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| runs-on: windows-latest | |
| if: ${{ inputs.platform == 'windows' }} | |
| runs-on: windows-latest | |
| timeout-minutes: 60 | |
| if: ${{ inputs.platform == 'windows' }} |
🤖 Prompt for AI Agents
.github/workflows/dev-release.yml around lines 167 to 169: the Windows job block
lacks the timeout-minutes setting that other platform jobs use, so add the same
timeout-minutes value under this job (matching the timeout used for Linux/macOS
jobs) with correct YAML indentation so the Windows job is subject to the same
workflow timeout.
Summary
Sync latest updates from alpha branch to dev branch, including development workflow improvements, documentation updates, and version bumps.
Changes
Files Changed
.github/workflows/dev-release.yml- New development release workflowREADME.md- Enhanced documentation with acknowledgments tableCHANGELOG.md- Updated release notespackage.json- Version bump to 1.0.0-alpha.9Commit History
Test Plan
Impact
This sync brings dev branch up to date with alpha, providing the latest development tools, documentation improvements, and version alignment for continued development work.
Summary by CodeRabbit
New Features
Bug Fixes
Documentation
Chores