Repository navigation
Description
Part of #1/#72/#7 and the user's request to show which Raycast extensions work on Android. Queue after PR #104 completes its exact-head CI, two independent audits and expected-head merge. Keep that review checkout frozen.
Current evidence
The installed-extension UI in ExtensionUi.kt exposes command rows with a generic “Android compatibility varies by command” message. It does not surface the recorded workflow outcomes. Store metadata persists listing/source information through .tinycast-store.json; it does not establish the identity of every installed payload file. A Store commit, title or command name alone cannot bind the installed payload to a recorded archive.
The reviewed workflow reports now contain results for the nine frozen bundles and their command declarations, plus later host/UI repairs. These observations have distinct archive/command/runtime/environment identities; they are not one current-build rerun. The open-source inventory separately contains 11,153 accepted declarations, all statically untested, and two invalid manifests. Neither inventory completeness nor installation establishes execution compatibility.
The installed command row currently has vertical padding but no explicit 48 dp minimum. Header/update/uninstall controls also need actual enlarged-font captures when adding the new entry. This is a source-observed layout risk; no new clipping or overlap reproduction is claimed yet.
Acceptance
-
Add a native read-only Recorded tests entry from installed extensions, with per-command results and the exact workflow that was exercised. Use product language for worked/partial/failed/unsupported-entry/configuration-required/not-tested outcomes. Put hashes, source/build references and detailed environment metadata behind a details disclosure or evidence link. A working listed workflow must not become a blanket “compatible extension” badge.
-
Ship a bounded reviewed evidence index based on merged published receipts only. Bind records to canonical extension identity, package/command and complete relevant payload identities (including manifest and assets), archive identity, tested app/runtime, Android/WebView/profile/configuration and installation/startup/action/destination/persistence/lifecycle scope. Preserve multiple versions and historical failures; choose/display an explicit record rather than silently overwriting history.
-
Separate installed-file match from recorded execution outcome/environment. Verify a complete deterministic payload fingerprint or equivalent bounded file set before declaring a match. Changed commands/assets/manifests, extra/missing files, legacy installs without enough identity, unsupported schemas and read errors must remain unverified/not tested. Never promote title/name/source metadata, static API screening, installation or a successful archive download into a working result. Records from earlier Droidcast builds remain labeled historical; this slice does not certify arbitrary current builds by inference.
-
Distinguish an exact recorded snapshot, another tested version, no record and an unavailable/corrupt catalog. Expose a useful retry/error state instead of zero tests or 100% passing on failure. Keep the 11,153-declaration source inventory separate and untested. Include a small reviewed starting subset with representative working, partial, observed-failure, blocked and unknown rows; retain the precise bounds of every observation. Include the explicit Copy fallback only after Offer explicit Copy when an extension cannot paste on Android #104 is verified and merged, keeping original insertion partial.
-
Compatibility inspection must not execute extension code, reinstall/update packages, read unrelated extension data/clipboard/credentials, or contact Store/services automatically. Bound catalog size/count/depth/strings and file scanning using explicit limits; reject unsafe/symlink/traversal targets. Scan off the UI thread with cancellation and current-install/route ownership checks. Swaps/uninstall/reinstall during inspection cannot publish a stale match. Preserve all installed packages and user settings.
-
Evidence navigation is an explicit tap to a validated immutable HTTPS record. Handle missing receivers/link failures inline. No local machine paths, private test originals, credentials or automatic authority/account changes. Exact test inputs/configuration may be shown only where they are the public owned fixture values.
-
Touch users can open, search/filter if needed, inspect, expand details, open evidence and return without a keyboard. Require natural reachable text and separate complete 48 dp targets on phone/tablet/short landscape at 100%/200%, IME states where relevant, long command titles and error/empty states. Keep update/uninstall/run behavior and caller query/selection intact. Capture the existing baseline and actual new unknown/matched/historical/error/detail/destination states; source risk alone earns no repair credit.
-
Meaningful host/native checks cover strict parsing/status identity, complete payload matching, legacy/changed/missing/corrupt inputs, cancellation/replacement and no-execution/no-promotion boundaries. Use nonce-owned fixtures and guarded preservation of clipboard/preferences/installed data/evidence. Bind every result to its actual app/test/index/fixture identities. Keep historical and synthetic/owned probes distinct from real Store workflows.
-
Update Track complete Tinycast parity and verified Android equivalents #1/Build a reproducible Raycast command compatibility catalog and test batches #72 and docs/PARITY-TRACKER.md. Per implementation PR, publish durable real screenshots with commit-pinned embeds, appropriate local checks, actual exact-head hosted CI, two independent full-change gpt-6.1-sol/high correctness/security and UX/test audits, then expected-head merge. Leave Build a reproducible Raycast command compatibility catalog and test batches #72/Expand verified Raycast host compatibility and capability reporting #7 open for additional bundles, the larger inventory and unverified platform/API/OEM/accessibility coverage.
Activity
moikdev commentedon Nov 4, 2026
Implementation is ready for independent review in PR #106, head
26d80073. The view matches whole source payloads, distinguishes historical outcomes from current verification, keeps search/keyboard controls reachable, and presents explicit unknown/error states. Local verification includes 28 native positives across six complete viewport/font cohorts, four matched negative controls, 335 JVM and 118 Python cases per mode. The report retains failed and superseded harness cohorts rather than crediting them as repaired-app results. Actual hosted CI and the two required independent audits remain pending.moikdev commentedon Nov 5, 2026
PR #106's historical Weather source/APK mismatch is corrected at
e4b5bf2a; repair evidence and gate status. The corrected app has 34 native passes across six profiles and two expected-negative old-catalog controls with zero passes. Local checks succeed; actual exact-head hosted CI and two fresh independent sol/high audits remain merge gates. This viewer still reports selected historical observations, with no new Weather service run or full-compatibility claim.moikdev commentedon Nov 5, 2026
PR #106's three UX findings are repaired at
6ccb1e29: close glyph, qualified installed-command emptiness and fresh XML/Compose geometry comparison. Final evidence has 44 native passes across six profiles /116 restoration checks, plus four intended old-app negatives /zero passes /38 checks. Builds and fresh lint pass; unchanged-source JVM336/Python118 receipts remain explicitly reused. Earlier failed harness cohorts and potentially stale XML remain retained. Fresh independent sol/high audits and actual exact-head hosted CI still gate merge. Current report. This is historical-result presentation, with no new command-execution or whole-inventory credit.moikdev commentedon Nov 5, 2026
PR #106 merged as
8ff8f4d032ee351626fbfcbd6d5998e32e9577b4, closing #105. Root verified parentsc882c08a+ reviewed6ccb1e29and identical tree0f89f6fa455f5ead019690e5c54b1bb1b5a6360b. Both NEW independent full-change gpt-6.1-sol/high audits found no actionable findings. Actual exact-head Android run41944911428 and separate local/android58106906644 succeeded; merge used the expected-head SHA and the watch is disabled. The independent reviews are recorded in PR review5778372087 (COMMENT; GitHub disallowed self-approval). No source changed after review.Scoped evidence remains 44 native viewer tests /six cohorts /116 restoration checks, four separate intended negatives /zero passes /38 checks, 99 actual raw capture sets and full source/APK/publication identities. The app's historical catalog covers16 observations for14 of34 declarations across9 source snapshots;20 remain Not tested in this selected catalog. This is no new command-execution, whole-Store, physical/OEM/accessibility, production-signing or #89 clearance.