Skip to content

Fix Android app layout, Glance styling, and Camera failure handling - #357

Merged
ymote merged 13 commits into
mainfrom
fix/android-app-space-and-location
Oct 7, 2026
Merged

ymote merged 13 commits into
mainfrom
fix/android-app-space-and-location

Conversation

@ymote

@ymote ymote commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Android app fields were covered by floating navigation, retained labels lost wrapping, and Glance used a different style from normal app windows. Android apps now get a compact 48-point navigation row outside their content viewport, hidden with the keyboard. Drawing, input and Recents use the same geometry; system Back remains available.

Labels preserve wrapping across restyles, with explicit no-wrap respected. Calendar titles and QR-import help fit their width. YouTube fields use readable theme colors and restore the committed query on boot/search without overwriting unsent typing during polling or tab changes. Consent text wraps and scrolls above fixed decisions; releasing a scroll cannot approve. Maps requests location only after Your location, through the app's granted capability.

Glance receives the selected style at first opening and appearance changes. Its isolate, item, widgets and edits remain resident; fallback chat retains text, selection and focus. Its composer fits actual font metrics, with bounded scrolling for long drafts. Style resolution is cached by revision. App-owned colors and authorization boundaries stay intact.

Camera startup checks native results, cleans partial resources, bounds the wait for a first frame and retries only on explicit input. Buffered frames take precedence over the timeout. Refused recording requests stop the app timer and restore controls while preserving the actual error. Android video recording remains unsupported; this does not bound a blocking native startup call.

Store consent lists own assistant tools separately from additional requests, including when agent.tools is empty (App Hub #134). The kernel pin is octos #2715 at b0759a57719fd35b3a2da1c5d969bc67538ed516, covering bounded session-directory names and peer-write exclusion during purge. This follows merged #355 and #356.

Validation:

  • Setup, native-app metadata and source graphs pass. Focused regressions cover layout/IME, restyling, consent, location, retained Glance/chat, composer metrics, Camera failure cleanup and query restoration. Hub/policy tests: 182 passed. Query and composer regressions fail before repair and pass afterward.
  • The development acceptance APK packages with verified signature, runtime and kernel. Private fixture startup hooks are absent from this public branch; production changes match. Five required checks pass (59ebe914).
  • Source-bound OnePlus evidence covers retained drafts, approval refusal, cold recovery, app/workspace soaks, Camera frames/JPEG/lifecycle and Glance appearance changes. Version17 verifies all three signed releases' disclosures and scroll/Cancel flows. Version18 verifies query restoration and unsent typing; version19 verifies short/long composer visibility and retention. These do not claim installation or provider operations.
  • The kernel's profile-refresh failure passed twenty targeted repeats and one unchanged-source CI rerun. A later macOS linkage failure passed one cache-miss diagnostic without source changes. Both original failures are preserved; their causes remain unproven.

These receipts keep their original source identities. No live Google authorization, real Gmail delivery or successful protected provider write is claimed. Raw lab data and credentials remain private.

@ymote
ymote changed the base branch from feat/octoscript-app-ux to main October 7, 2026 09:44
@ymote ymote changed the title Keep Android app controls unobscured and request Maps location explicitly Fix Android app layout, Glance styling, and Camera failure handling Oct 7, 2026
@ymote
ymote marked this pull request as ready for review October 7, 2026 12:34
@ymote
ymote merged commit 90d5bef into main Oct 7, 2026
5 checks passed
ymote added a commit that referenced this pull request Oct 8, 2026
card_runner_restyle_keeps_dynamic_labels_wrapped_and_explicit_no_wrap uses
octosense_appstore (an app-hub optional dependency) and
selected_glance_style_reaches_existing_cards_without_replacing_state calls
tile_cx, which is cfg(feature = "app-hub") -- so a no-default-features lib
test build of octosense-shell (the --linux-host sandbox:: check) has not
compiled since #357. Both tests now carry the gate their helpers already
have; with --features mobile-apps they run and pass as before.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ymote added a commit that referenced this pull request Oct 8, 2026
…d6415f)

Main moved to octos b0759a57 (#357) and makepad 32d6415f + Octoscript-Makepad
33dea2f1 (#363) after this PR was written, and octoscode-app f8561625 still
pinned octos 39e22d45, so the graph held two octos. octoscode-app#8 moves the
app's runtime to main's, and the module pin follows it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ymote added a commit that referenced this pull request Oct 8, 2026
…d6415f)

Main moved to octos b0759a57 (#357) and makepad 32d6415f + Octoscript-Makepad
33dea2f1 (#363) after this PR was written, and octoscode-app f8561625 still
pinned octos 39e22d45, so the graph held two octos. octoscode-app#8 moves the
app's runtime to main's, and the module pin follows it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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