Repository navigation
Finish ChordReader search handoff: IB SEARCH receiver → Google/ICU → retained results on C67 #164
Description
User correction / physical observation — 2026-10-24
The signed ChordReader dev APK built at dilapidated-shed/tablature head 7c3bab5fdca9ec633a47e66b8759faf456c07d8c installed and launched on the physical MIRO C67 by user report. Its Search web button opened the device's external browser (DDG), which is wrong.
User-required route: ChordReader search → IB → ICU GET https://google.com/search?q=..., with spaces represented by + (IFS=+ intention), all other non-unreserved UTF-8 bytes encoded properly. The IB native reader must present the results and retain the browser-owned navigation/source history, not hand the URL to a browser app.
Already on source branches
- Tablature PR #7, “Replace ChordReader with a checked Idriç core and Android contingency”: C/Lua app now sends raw terms by explicit package-scoped Android
ACTION_SEARCH+queryto provisionalorg.isomorphisms.ib.prepaint; missing receiver reports explicit failure, noACTION_VIEWfallback. This is newer source than the APK installed on C67. - IB PR #163, “Define checked Google search URLs for IB → ICU acquisition”: checked Idriç URL constructor and search encoding/refusal smoke tests.
- Existing IB stacks: #147 native checked reader, #152 ICU/Arena, #153 Binder/PFD reader, #154 HTML Prepaint, #155 private ingress. These are not a functioning IB search APK.
Required implementation
- Reconcile the installed/current IB package identity with the existing checked direct-DEX native reader (preserve signer and versionCode). Explicitly declare a narrowly scoped Android SEARCH receiver, authorize caller and validate
querywithout mixing raw query with shell commands. - Bind IB's checked
IB.WebSearch.google_icu_urlto a browser-owned search occurrence/epoch, preserving source/caller metadata and URL encoding exactly once. - Use the existing Shizuku-authorized ICU → immutable Arena → admitted native Binder PFD → Idriç extraction/Prepaint → reader path. Do not add Java, a new browser, WebView transport, app-side HTTP, a competing store or generic external-browser fallback.
- Surface correct errors if IB absent, ICU/auth/TLS fails, Google's response is a consent/bot check, or existing charset/admission constraints refuse the page. Preserve last-good sources; never mistake “opened Activity” for results fetched.
- Build/sign a paired A1 and C67 candidate under current AICI policy. Test replacement install without uninstall, a real C67 search including UTF-8/reserved characters and whitespace, actual ICU request+receipt and opened clicked result, persistence/recovery and no external DDG/Startpage/browser dispatch. Independently record build, package, emulator, physical, HTTP admission and UI state. A1 remains physically unverified until exercised.
Acceptance is NOT_RUN/INCOMPLETE: no qualified current-head IB search app/APK or physical ICU navigation exists. The prior ChordReader C67 report verifies only install and visible launch of the old package. Do not present existing URL tests as a functional search app.
Activity
isomorphisms commentedon Oct 25, 2026
SUN IB-CHORDSEARCH-01 — current-head intake; BLOCKED before implementation dispatch.
Verified source heads:
ChordReader's current-head signed-candidate workflow already completed successfully: https://github.com/dilapidated-shed/tablature/actions/runs/40126424123 . Its PR body's “pending” wording is stale. The completed build was not repeated. The current search-URL head also has successful returned foundation, exact-text and universal-gate runs; these do not accept Android search.
Execution boundary:
kitchen-transfer-script: https://github.com/isomorphisms/flexible-pipes/blob/442a33bfd36a23df3d757d17a31b8084cab21a38/scripts/registered-execution.pi#L117 . Its required deployment configuration, installed controller and installed Ithon paths are absent on this host. This is an environment/registration finding, not a failed IB job or proof that no remote deployment exists.Specific application/compiler dependencies found:
onCreate(Bundle)only.onNewIntent(Intent)is rejected, so warm-Activity search delivery needs a checked lifecycle bridge: https://github.com/isomorphisms/android-NDK/blob/973c24bc0b4eab6f3c88699102f7cb0e7fd8951f/dex/idric/src/Backend/DEX/Callback.idr#L48 .No implementation dispatch, source modification, merge, APK rebuild/publication, installation or uninstall occurred. Real Google through ICU, Android Binder execution, selectable results, restart behavior and physical C67 remain NOT_RUN; A1 physical acceptance remains NOT_VERIFIED. No end-to-end PASS is claimed. Existing source branches, packages, signers and the prior working ChordReader artifact remain preserved.
First execution prerequisite: an available FP operation/controller capable of admitting this IB implementation job and closing its receipts through independent ai-ci. After that, the explicit warm-intent bridge, app Binder lifecycle and installed-identity observation remain concrete integration work.
isomorphisms commentedon Oct 25, 2026
SUN IB-CHORDSEARCH-01 — one-off execution continued; FP requirement explicitly waived by the user.
This supersedes the earlier dispatch-only blockage. Actual source repairs and host qualification were completed without FP. Overall search remains INCOMPLETE; no merge or APK/device success is claimed.
Published work:
Actual ICU observation:
Checks:
First remaining implementation blocker:
The actual SearchIntentRequest.idric reads the raw Intent query and calls unchanged IB.WebSearch.google_icu_url. It typechecks, then direct DEX exits 1 with:
No checked helper body for DEX call Prelude.Types.fastUnpack
No receiver DEX is emitted. The separate managed command runtime is not an Activity/framework bridge. Fixing onNewIntent removes one compiler restriction but does not fix this runtime boundary.
Additional unresolved acceptance:
No app manifest, package identity, signer, version or ChordReader library/setlist/settings was changed. The already-qualified ChordReader head was not rebuilt. No application was uninstalled and no unavailable-search APK was offered.