|
18 | 18 | provider_loading = (SCRIPTS / "augment_native_provider_loading.py").read_text(encoding="utf-8") |
19 | 19 | mobile_suite = (SCRIPTS / "run_native_corpus_mobile_suite.sh").read_text(encoding="utf-8") |
20 | 20 | desktop_suite = (SCRIPTS / "run_native_corpus_desktop_suite.sh").read_text(encoding="utf-8") |
| 21 | +desktop_player = (SCRIPTS / "augment_native_desktop_player.py").read_text(encoding="utf-8") |
21 | 22 | desktop_workflow = (ROOT / ".github/workflows/native-desktop-reader-acceptance.yml").read_text(encoding="utf-8") |
22 | 23 | tv_bootstrap = (SCRIPTS / "nuvio_tv_test_bootstrap.py").read_text(encoding="utf-8") |
23 | 24 | reader_acceptance = (SCRIPTS / "prepare_native_reader_acceptance.py").read_text(encoding="utf-8") |
|
98 | 99 | assert "adb shell pm path com.nuviodebug.com" in mobile_suite |
99 | 100 | assert "FIELD_NATIVE_MOBILE_APP_INSTALLED" in mobile_suite |
100 | 101 |
|
101 | | -# Desktop evidence must run under the same ordinary JVM/module policy as the real |
102 | | -# NuvioDesktop application. A test-only --add-opens can make a lab pass while the |
103 | | -# actual application still fails, creating exactly the parallel-runtime logic the |
104 | | -# native acceptance architecture is designed to eliminate. If an official HEAD |
105 | | -# requires forbidden reflective access, the real Desktop lab must expose it. |
| 102 | +# Desktop evidence must run under the same ordinary JVM/module policy and |
| 103 | +# composition-local contract as the real NuvioDesktop UI. The current production |
| 104 | +# PlatformPlayerSurface reads LocalNuvioPlatformDensity, which is intentionally |
| 105 | +# unavailable outside NuvioTheme; a bare ComposePanel is therefore not production. |
106 | 106 | for forbidden in ( |
107 | 107 | "--add-opens=java.desktop/java.awt.peer=ALL-UNNAMED", |
108 | 108 | "--add-opens=java.desktop/sun.awt=ALL-UNNAMED", |
|
113 | 113 | assert "No test-only --add-opens/JVM privilege relaxation" in desktop_workflow |
114 | 114 | assert "root_execution_forbidden" in desktop_suite |
115 | 115 | assert "privilege=ordinary-user" in desktop_suite |
| 116 | +assert "import com.nuvio.app.core.ui.NuvioTheme" in desktop_player |
| 117 | +assert "NuvioTheme {" in desktop_player |
| 118 | +assert "desktopThrowableChain" in desktop_player |
| 119 | +assert "exception_chain64=${b64(reader.exceptionChain)}" in desktop_player |
116 | 120 |
|
117 | 121 | print( |
118 | 122 | "native reader runtime bootstrap contract passed: " |
119 | 123 | "tv_explicit_pairs=true generated_empty_generics_typed=true tv_single_owner_hilt_imports=true " |
120 | | - "tv_version_agnostic_bootstrap=true mobile_real_app=true desktop_ordinary_jvm_policy=true" |
| 124 | + "tv_version_agnostic_bootstrap=true mobile_real_app=true desktop_ordinary_jvm_policy=true " |
| 125 | + "desktop_production_theme=true desktop_unwrapped_errors=true" |
121 | 126 | ) |
0 commit comments