Skip to content

Sync feedback: Mobile runtime, clipboard, and model fixes - #628

Merged
alichherawalla merged 278 commits into
mainfrom
release/sync-feedback
Aug 21, 2026
Merged

Sync feedback: Mobile runtime, clipboard, and model fixes#628
alichherawalla merged 278 commits into
mainfrom
release/sync-feedback

Conversation

@alichherawalla

@alichherawalla alichherawalla commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

Code

Mobile changes for background clipboard capture, safe filesystem reads, llama.rn 0.13, chat and attachment identity, model vision repair, sync feedback, native model-transfer progress, loader consolidation, and coordinated Mobile Pro integration.

The final head 332c8c8b also:

  • deletes iOS model files correctly when stored paths were rebased, and surfaces deletion failures
  • replaces the stale guided-tour red dot in the Home header with theme-aware brand logos
  • removes the stale guided-tour UI and the DEV-only Reset Onboarding Checklist action
  • removes the unused checklist barrel found by the dead-code gate
  • keeps the regression test for resend after local model deletion from 08ce0465

Wired

Verified

  • Focused Home tests: 91/91 passed before the theme-aware logo asset update
  • Focused Settings tests: 19/19 passed
  • ESLint passed
  • TypeScript passed, including npx tsc --noEmit after the dead-code repair
  • Knip passes after removing the stale checklist barrel
  • Earlier push hooks passed related Jest tests, dependency-cruiser, and knip
  • Model package receive integration passed against the matching Mobile Pro branch
  • Mobile coverage floors are 75% for global and aggregate Pro statements, branches, functions, and lines
  • Ready to merge only after all required checks on final head 332c8c8b pass and no blocking review remains

…rately not wired

Names each fix, what to look for, and what the failure looked like before, so a partial fix cannot pass
as a whole one - plus the parts that are recorded but not yet acted on, so testing for them is not
wasted effort.
The rules were spread across three files: a pure filter in the message builder, an existence check
private to the service, and the same `type === 'image'` test written by hand at each call site. They are
one rule read at two depths - what the attachment declares, and what the filesystem can back - so they
live together now, and no caller restates either half.

Also removes what the safe file reader made dead: size imports and local ternaries that no longer had a
caller, which the lint gate caught. The pending row becomes its own component; every other branch in
that map reads `uri` and this is the one case with none.
@coderabbitai

coderabbitai Bot commented Aug 13, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This change centralizes filesystem test boundaries, adds Android accessibility clipboard capture, refactors vision-model repair, updates chat and image-generation flows, and expands synchronization and UI validation.

Changes

Release integration

Layer / File(s) Summary
Filesystem boundaries and test harness
__tests__/harness/*, __tests__/hardening/*, jest.setup.ts, src/utils/fileStat.ts
Tests use a shared memfs-backed RNFS boundary with seeded files, metadata, reset behavior, and safe path handling.
Model repair and downloads
src/services/modelManager/*, src/services/huggingface.ts, src/screens/DownloadManagerScreen/*
Vision repair now resolves provenance and repository candidates, supports revision-aware downloads, and reports typed outcomes.
Generation and chat behavior
src/services/imageGeneration*, src/screens/ChatScreen/*, src/components/ChatMessage/*, src/services/llm*
Chat projections support supporting context and running tools. Image generation preserves message IDs and terminal states. Image attachments use centralized validation.
Clipboard and synchronization
android/app/src/main/java/ai/offgridmobile/clipboard/*, src/services/sync/*, src/stores/chatStore.ts
Android accessibility events provide clipboard fallback capture. Sync filtering, receive policy, discovery, durable media transfer, and streaming message identity are updated.
UI components and validation
src/components/*, __tests__/*, docs/*
The change adds LoadingDots and SelectDropdown, replaces activity spinners, adds vision-repair UI, and expands automated and manual validation.

Estimated code review effort: 5 (Critical) | ~120 minutes

Merge Risk: 🟠 High · up to 9350e

The PR changes chat generation, streaming cleanup, model repair, and image generation behavior, but the current head still contains correctness defects and a red full test gate; pending messages may be rejected, cancelled output may be saved, and model files may be mismatched. It is not merge-ready until these issues are fixed and validation passes.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 36.89% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Description check ⚠️ Warning The description gives relevant scope and verification details but omits the required template sections, change type, screenshots, checklist, and related issues. Rewrite the description using the repository template, complete the change type and checklist, add required UI screenshots, and document related issues or state that none apply.
✅ Passed checks (3 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly summarizes the PR's primary mobile runtime, clipboard, synchronization, and model fixes.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/sync-feedback

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@sonarqubecloud

Copy link
Copy Markdown

@alichherawalla
alichherawalla merged commit 46d8531 into main Aug 21, 2026
7 checks passed
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