Skip to content

K2GO-380 docs(post-rebrand): device verification report + global test matrix - #534

Merged
luisguzman-adfa merged 11 commits into
mainfrom
docs/K2GO-380-post-rebrand-device-verification
Sep 3, 2026
Merged

K2GO-380 docs(post-rebrand): device verification report + global test matrix#534
luisguzman-adfa merged 11 commits into
mainfrom
docs/K2GO-380-post-rebrand-device-verification

Conversation

@luisguzman-adfa

Copy link
Copy Markdown
Collaborator

What

Adds controller/docs/POST_REBRAND_DEVICE_TESTS.md — the on-device verification of the
app-identifier rebrand (org.iiab.controllerorg.appdevforall.k2go, K2GO-293 / ADR-5368):
a static rebrand-safety recon, a global device test matrix mapped to ADR-5368 §10, a
live-results log, and a findings log. Doc only, no code changes.

Outcome

Verified end to end on a OnePlus 7T (base + full tiers, plus a real two-device clone). Every
single-device ADR-5368 §10 check passed — fresh install, boot (0 spurious kills), FileProvider,
notifications, custom-View screens, intent actions, content serving, backup, restore, clone,
dashboard rebuild — so the rename changed identity and nothing else. Only OTA new→new is
deferred
, pending a newer published build (0.9.0).

Findings (none caused by the rebrand)

  • F6 — content services don't self-heal after a deep-op (service-heal.ts watches only
    kiwix) → filed as K2GO-381.
  • F1 — reframed as F6 (a down service, rendered correctly; not a display bug).
  • F2–F5 and a backup↔restore progress + Cancel standardization → follow-up tickets.

…l test matrix (WIP)

Records the org.iiab.controller -> org.appdevforall.k2go rebrand device
sweep: static rebrand-safety recon, the global test matrix (identity-
sensitive first, then functional), a live-results log, and finding F1
(uninstalled content cards read RED instead of GRAY after a backup —
pre-existing status-derivation bug the rebrand's clean install exposes).

Live results so far all PASS: FileProvider registered under the new
package, content endpoints serving, OTA host reachable, Firebase inits
under the new package. WIP; UI/heavy checks pending.
…spot QR) PASS on device

Live UI checks on the OnePlus 7T (release build, org.appdevforall.k2go):
- I2 FileProvider runtime: Clone->Send->"share another way" opens the
  Android share sheet (base.apk); getUriForFile resolves under the new
  authority. ADR-5368 check 10 independently confirmed.
- F-m: hotspot join QR renders, LocalOnlyHotspot starts, get-app QR
  renders under the new package. K2GO-375 fix intact.
…d on base tier

Device run (OnePlus 7T, debug build, base tier): clean install + base
system install, full backup (1.65 GB, k2go_ prefix, DeepOpService), Finish
-> Home all PASS under the new package. F1 (uninstalled cards RED after
backup) did NOT reproduce on base tier -- cards read GRAY correctly; the
red window is a narrow post-restart transient, likely wider on slower/full
-tier restarts. Retracted an earlier backup-naming false alarm (mis-tap on
an old file, not a real inconsistency).
…orking conclusion

Full-tier retry (2.43 GB backup, screen-recorded Finish->Home): all cards
Ready immediately, no red flash. F1 (red-instead-of-gray after backup) did
not visibly reproduce on device across base or full tiers on this build;
Home renders after services answer, so cards resolve straight to
green/gray. The code defect stands by inspection; the visible symptom
needs the reporter's exact build/tier/timing to reproduce.
…e checks pass; pristine verdict

Device batch (debug, full install): private dir under new pkg (3), cold
boot UP with 0 kills via K2Go-Reconciler (8), proot runs (9), FG watchdog
notification under new pkg+channel (14), maps landing + FqrController
overlays render (18), legacy intent actions drive live flows (13). Every
single-device ADR §10 check passed; only OTA new->new (11) and 2-device
clone (15) remain, needing external setup (both reasoned-not-observed in
the ADR). Restore (16) and dashboard rebuild (17) optional. Verdict: the
rebranded APK behaves as pristine for single-device operation.
…only OTA new->new remains

Monitored a real 2-device clone on the OnePlus (receiver): pairing with
the peer, CloneShareService FG on clone_channel, the CLONE holder quiesced
the server (reconciler desired=DOWN holder=CLONE), rsync transfer, and the
received system booted healthy (home=301, kiwix=200) with the holder
released back to UP [holder=NONE], 0 kills. Benign non-rebrand SELinux
denial noted (librsync ioctl TCGETS on a pipe). Every single-device ADR
§10 check plus clone now confirmed; only OTA new->new (11) remains, needing
an update server. Verdict: the rebranded APK is pristine.
…2 progress-reset bug

Monitored a live dashboard rebuild: reconciler held holder=DASHBOARD ~2.5
min (server never dropped, 0 kills), released to holder=NONE on completion
-- DashboardRebuildService sound under the new package. Surfaced F2 (not
rebrand-related, K2GO-95 area): the rebuild progress bar resets to 0 on
return from the notification and the notification shows no percentage,
because progress is computed fragment-locally from a wall-clock that
resets on recreation and the service broadcasts only coarse state. Design
read: progress has no persistent owner.
…nfirmed + filed as K2GO-381

Restore round-trip (check 16) PASS under the new package (DEEPOP_RESTORE,
RESTORE holder quiesce, TarExtractor 2.43 GB, healthy boot, 0 kills).
Logged deep-op UX cluster F3-F5 (restore ETA, notification deep-link
target, run-in-background nav) and F6: content services don't self-heal
after a deep-op because service-heal.ts WATCHED lists only kiwix -- root
cause confirmed in code, filed as K2GO-381. F6 also reframes F1 (the
red/Unavailable tile is a down service, correct display, not a bug).
…verdict; OTA deferred to 0.9.0

Post-rebrand device verification complete: every single-device ADR-5368
§10 check plus a two-device clone passed on the OnePlus 7T; the rename
changed identity and nothing else and the app runs correctly across every
exercised mechanism. Only OTA new->new remains, deferred to a publishable
0.9.0. Findings F1-F6 recorded with owners (F6 -> K2GO-381; F2-F5 and a
backup/restore progress+cancel standardization to be filed).
…n and passed, not "optional"

The interim verdict in section 3.5 still said checks 16 (restore) and 17
(dashboard rebuild) "remain optional deeper round-trips" -- written before
they were run. Both were subsequently exercised on device and passed
(section 3.4 and section 4); correct the line so it no longer contradicts
the rest of the report.
… minor fixes

Full read-through for internal consistency. Main fix: the F1 section
described F1 as a confirmed display defect ("the code defect is still real
... the fix stands"), which contradicted F6 and the conclusion that F1 is
reframed as a down service correctly rendered. Rewrote F1 as
investigated-and-reframed: the 404->gray / 502->red split (shared with
service-heal.classifyProbe) is correct, a not-installed platform reads
gray, and the reported red was a down service (F6). Also aligned the §3.3
F1-repro row and F-g note, softened the I12 "release gate open" wording to
match its PASS result, dropped "API level TBD", and changed §4 "runnable"
to "exercised" noting check 12 is covered by inspection.
@luisguzman-adfa
luisguzman-adfa merged commit c833e8a into main Sep 3, 2026
2 checks passed
@luisguzman-adfa
luisguzman-adfa deleted the docs/K2GO-380-post-rebrand-device-verification branch September 4, 2026 13:01
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