latest updates

This commit is contained in:
Mark Gregory
2026-11-03 14:31:32 +00:00
parent 83acfc63c9
commit 1668361e83
16 changed files with 888 additions and 341 deletions
+19 -11
View File
@@ -1,13 +1,21 @@
# KJMix Pro 0.5.0 — verified 3 November 2026
# KJMix Pro 0.6.4 (build 15) verification
- Real shared macOS Xcode project/scheme, SwiftUI app, SQLite migration to schema 9 and XCTest target. Existing bundle/module/data identity retained.
- **51 XCTest cases passed, zero failures, TEST SUCCEEDED.** Added tests cover cyclic singer interleave/empty singers/departed cursor, per-venue roster/settings and individual pitch/tempo/rating persistence, atomic batch edits, saved playlist order, targeted/quoted/exact search, persisted 1920×1080 ShowScreens with pause/seek/end callback, timed/manual fades without changing global mixing, MP3 ID3 changes with byte-identical original backup and unchanged decoded audio, MP4 passthrough tags retaining audio/video, authenticated singer API isolation/revocation/venue scope, parser bounds and duplicate/chunked/pipeline rejection, a real NWListener/URLSession loopback server, all four store profiles and catalogue validation. Earlier 39 regressions remain passing.
- Live public Apple metadata request returned three usable title/artist candidates. No account login, purchase or media download occurred. App lookup is user-initiated and reviewed before applying.
- Release succeeded for arm64/x86_64, version 0.5.0 build 10, CFBundleName KJMix Pro, complete AppIcon.icns/Assets.car. Tested on Apple Silicon macOS 27.2 with Xcode 27.2/Swift 6.4.2; Intel/older macOS execution not validated.
- Actual SwiftUI content captured at standard/minimum main window sizes and new rotation, ShowScreens, singer server and batch metadata panes, plus the shared rendered slide. Temporary original demo data only. Offscreen content captures omit the system titlebar/toolbar. Native pointer/touch/keyboard end-to-end control and external display/audio latency are not certified.
- Singer HTML JavaScript syntax checked with JavaScriptCore. An actual WKWebView loaded the local NWListener page with a temporary invitation, authenticated as the demo singer and rendered the Tonight list at 430×850; snapshot inspected. Browser keyboard/touch flows are not exhaustively automated.
- Singer server remains off by default. Real local HTTP catalogue/page/unauthorised requests tested; browser/device/firewall/network configurations and sustained concurrent-show use are not exhaustively validated. No public TLS/account hosting, QR code or kJams Cue compatibility is claimed.
- Store profiles and imported catalogue/browser workflows exist. **Direct store purchasing, subscription streaming, encrypted offline cache and previous-purchase sync are NOT implemented or verified.** Those require partner integration documentation/SDKs and application credentials. This is not full Music Store reference parity.
- Source archive checks: CRC, expected project.pbxproj/shared scheme and implementation files, executable build/test/release scripts, SHA-256 manifest, byte-identical extraction, extracted Xcode project/scheme recognition. App archive checks: CRC, product/version/bundle identifier, icon resources and both architectures. Only whitelisted original fixtures are packaged; no personal songs, databases, invitation tokens, imported real catalogues, credentials, waveform caches or backups are included.
Verified on 3 November 2026.
See README.md for workflows, exact tag/search/media support and remaining limitations. Unsigned and unnotarised release. Full kJams parity is not claimed.
- 73 XCTest cases passed, zero failures. See verification/xcode-test.log.
- Coverage includes actual mouse clicks on singer Songs, Add to Tonight, reorder arrow and Start Rotation; both singer and song NSItemProviders routed through the unified drop handler; persisted manual/smart order; start/pause/resume/stop; singer chevron and navigation via actual mouse events in an isolated native window; independent singer preferences; SQLite persistence; rotation drag validation; atomic singer-plus-Tonight creation; automatic next-singer playback at a real audio end; automatic background resume after the queue empties; manual background override; saved settings restored without launch autoplay; cue/jog/loop/stop; rapid CDG seeks; and prior media, server, import, tags and library regressions.
- Actual SwiftUI views rendered with isolated original demo data at 1320 × 900 and 1060 × 760. Rotation, settings and library screenshots accompany this report.
- Release builds both arm64 and x86_64. Source ZIP includes canonical KJMix Pro.xcodeproj/project.pbxproj and shared scheme, source, tests, executable scripts, icon assets and original test media only.
- ZIP CRC checks, extracted file hashes and extracted Xcode project listing are checked during packaging. Personal media, library databases, invitations, bookmarks and user settings are excluded.
This is an unsigned, unnotarised development release. Intel/older macOS runtime, broad commercial media, hardware/display latency, large-library show stress and every native drag/keyboard interaction are not exhaustively validated. Music-store profiles/catalogue imports are not provider purchase or subscription integrations. See README.md for feature limits.
The complete operating-system drag gesture is not automated end to end. Drop payload delivery and ordering are tested with real NSItemProviders, and visible reorder arrows provide an independently mouse-tested alternative.
Background seeking is tested while playing, paused and paused for a singer, including negative/end/nonfinite positions and resuming at the chosen position.
Configurable background fade times persist; tests inspect the real mixer output gain during fade-in and after fade-out, and verify cancellation when scrubbing or starting singer playback.
Fade-out handoff regression checks inspect actual mixer gain while it decreases, assert the singer audio node has not started during the fade and starts after silence, and verify Pause/unload cancel the pending singer start. Manual background fade-out also has an intermediate gain check.
Batch waveform checks verify cache reuse versus forced regeneration, deduplication of tracks sharing audio, missing-file reporting, ShowScreen skipping, cancellation retaining completed caches, selected-track versus whole-library scope, and unchanged playback/history/library metadata. The release contains no Spotify support.