refactor: split large files into focused modules

Split all source files exceeding 500 lines into smaller, focused modules:

- electron/main.ts → mainBootstrapHelpers, mainRuntimeState, mainUpdateIntegration, mainWindowControls
- electron/windows.ts → editorWindows, hudWindows, windowShared
- electron/updater.ts → updaterDialogs, updaterEventHandlers, updaterShared
- electron/preload.ts → preloadExtensionsBridge, preloadUpdateBridge
- electron/ipc/register/recording.ts → recording/ directory with focused handlers
- src/components/video-editor/VideoEditor.tsx → EditorContent, EditorHeader, EditorSidebar, EditorToolbar, hooks/
- src/components/video-editor/SettingsPanel.tsx → settings/ directory with per-section components
- src/components/video-editor/AnnotationSettingsPanel.tsx → tab components
- src/components/video-editor/ExtensionManager.tsx → extension-manager/ directory
- src/components/video-editor/VideoPlayback.tsx → videoPlaybackComponent/ directory
- src/components/video-editor/projectPersistence.ts → projectPersistence{Normalization,Paths,Regions,Shared}.ts
- src/components/video-editor/timeline/TimelineEditor.tsx → TimelineEditor/ directory
- src/components/video-editor/types.ts → focused type modules
- src/components/launch/LaunchWindow.tsx → LaunchWindow/ directory
- src/hooks/useScreenRecorder.ts → useScreenRecorder/ directory
- src/lib/exporter/audioEncoder.ts → audioEncoder/ directory
- src/lib/exporter/frameRenderer.ts → frameRenderer modules
- src/lib/exporter/modernFrameRenderer.ts → filters and lifecycle modules
- src/lib/exporter/modernVideoExporter.ts → modernVideoExporter/ directory
- src/lib/exporter/videoExporter.ts → video-exporter/ directory
- src/lib/exporter/streamingDecoder.ts → streamingDecoderHelpers.ts
- src/lib/extensions/extensionHost.ts → extensionHost{ApiFactory,QueryApi,RegistrationApi,Shared,State}.ts
- src/lib/extensions/types.ts → focused type modules
- electron/native/ScreenCaptureKitRecorder.swift → ScreenCaptureKitRecorder/ directory
- scripts/benchmark-export-queues.mjs → benchmark-export-queues/ directory
- .github/workflows/release.yml → extracted merge-macos-metadata composite action
- scripts/build-native-helpers.mjs → updated for multi-file Swift compilation

Also incorporates upstream default export quality change (good → source).
This commit is contained in:
webadderall
2026-04-20 20:41:42 +10:00
parent 0ccdc449e8
commit 5d040fbf2c
196 changed files with 35649 additions and 34888 deletions
+5 -43
View File
@@ -252,50 +252,12 @@ jobs:
name: macos-arm64-release
path: release-assets/macos-arm64
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install PyYAML
run: python -m pip install pyyaml
- name: Merge latest-mac.yml
shell: bash
run: |
set -euo pipefail
mkdir -p release-assets/merged
python <<'PY'
from pathlib import Path
import yaml
x64_info = yaml.safe_load(Path('release-assets/macos-x64/latest-mac.yml').read_text())
arm64_info = yaml.safe_load(Path('release-assets/macos-arm64/latest-mac.yml').read_text())
merged_files = []
seen_urls = set()
for info in (x64_info, arm64_info):
for file_info in info.get('files', []):
url = file_info.get('url')
if url and url not in seen_urls:
seen_urls.add(url)
merged_files.append(file_info)
if not merged_files:
raise SystemExit('No macOS update files found to merge.')
preferred = next((item for item in merged_files if 'x64' in item.get('url', '')), merged_files[0])
merged = dict(x64_info)
merged['files'] = merged_files
merged['path'] = preferred.get('url', merged.get('path'))
merged['sha512'] = preferred.get('sha512', merged.get('sha512'))
if not merged.get('releaseDate') and arm64_info.get('releaseDate'):
merged['releaseDate'] = arm64_info['releaseDate']
Path('release-assets/merged/latest-mac.yml').write_text(
yaml.safe_dump(merged, sort_keys=False)
)
PY
uses: ./.github/actions/merge-macos-metadata
with:
x64-directory: release-assets/macos-x64
arm64-directory: release-assets/macos-arm64
output-file: release-assets/merged/latest-mac.yml
- name: Upload merged latest-mac.yml artifact
uses: actions/upload-artifact@v4