Skip to content

Validate portable config schemas and report ignored import fields - #66

Merged
andre487 merged 4 commits into
mainfrom
feat/config-schema-validation
Oct 6, 2026
Merged

andre487 merged 4 commits into
mainfrom
feat/config-schema-validation

Conversation

@andre487

@andre487 andre487 commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

Android imports silently discarded browser settings and undocumented fields, and exports had no automated checks against the shared MegaProxyConfig contract. The existing import result now reports ignored browser settings and undocumented fields once each, without exposing keys or values; discarded fields stay out of storage and later exports.

Vendor the exact upstream v8 schemas, examples and LICENSE at commit 9427cf235d6c112cd97ae82dc34d5d9b02aa42b7 with SHA-256 checksums. Add bundle exec fastlane android renew_config_schema [ref:FULL_SHA] to update them explicitly through gh; CI uses committed copies. JVM tests validate real ConfigStore exports for all four transports and secret inclusion choices against both schemas, and check examples, enum parity, checksums, malformed canonical input and nested ignored fields. The schema validator is test-only; runtime recognition uses org.json. Legacy versions 1–8 retain permissive import behavior.

The audit in docs/reviews/config-schema.md finds the Android v8 field contract current. It records existing IPv6/unfinished-profile limits, upstream browser overrides, and the deliberate difference from upstream’s generic warning wording: Android names the browser platform as requested.

Validation: android_checks (191 JVM/UI tests, lint, debug and unsigned release APKs); python_checks (50 tests); renewal lane against the pinned commit; schemas present in both APK variants. EN/RU strings and Fastlane references updated.

Emulator startup now retries once only before the test runner starts. A runner-started marker prevents retrying test or fixture failures; an explicit final gate fails the required check if neither launch succeeds. Both attempts remain visible in the job log. This addresses the observed API 26 failure during adb shell input keyevent 82, before any app test ran. Workflow syntax checked with actionlint.

SDK installation also retries once for transient download errors; two failures still fail CI. The document-provider test dismisses visible Gboard overlays before filename entry, so the API 26 first-run tutorial cannot hide the field from UIAutomator. SDK retry shell behavior was checked for immediate success, failure then success, and two failures.

APK artifacts

Built from commit 22ec1f9a by CI run #225.
Artifacts expire after 14 days. Neither APK uses the MegaProxy release key.

@andre487
andre487 merged commit d94f861 into main Oct 6, 2026
16 checks passed
@andre487
andre487 deleted the feat/config-schema-validation branch October 6, 2026 19:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant