Skip to content

test(evidence): Pixel 6a device-exact memory-policy acceptance soak (#11734, refs #11760) - #11908

Merged
lalalune merged 1 commit into
developfrom
evidence/11760-device-acceptance
Jul 3, 2026
Merged

test(evidence): Pixel 6a device-exact memory-policy acceptance soak (#11734, refs #11760)#11908
lalalune merged 1 commit into
developfrom
evidence/11760-device-acceptance

Conversation

@lalalune

@lalalune lalalune commented Jul 3, 2026

Copy link
Copy Markdown
Member

Evidence-only PR: the hardware-lab acceptance row for the on-device inference memory policy (merged in #11822), run device-exact on real Pixel 6a hardware. Closes the residual soak requirement of #11734.

What this adds

.github/issue-evidence/11760-inference-memory-policy/pixel6a-device-soak/ — README + raw captures. No product code changes.

Setup

  • Device: Pixel 6a (bluejay, serial 27051JEGR10034), MemTotal 5589 MB → measured ramClass=CONSTRAINED, nCtx=4096, idleUnloadMs=300000 — default knobs, no debug-prop overrides (unlike the emulator run in the parent evidence dir).
  • Build: merge commit 35f61d1f (fix(local-inference): RAM-class inference-memory policy — idle unload + pressure release so lmkd stops killing the app (#11760) #11822), APK md5 b260d860… verified byte-identical on device (raw/run2-pkg-verify.txt) — after detecting and evicting a foreign 413 MB APK a sibling session had force-installed.
  • Fresh relaunch, policy markers confirmed from boot (ElizaAgent/ElizaBionicInfer lines), app foregrounded the whole window, real turns via POST /v1/chat/completions (localInference.provider=mobile-local-direct-reply on every reply).

Results

  • Soak: 12.1 min, 10/10 correct local replies, 52–58 s warm turns (95 s cold first load).
  • Releases (4×, logcat + timeline correlated): PSS 2.16 → 0.28 GB, GL mtrack 1.60 → 0.05 GB per release; device MemAvailable ~0.7 → ~2.0 GB. Released state held for the entire 7-min idle leg.
  • Transparent reload: next turn after each release replied in 58 s (≈ +4 s vs warm median).
  • lmkd survival (device-exact): lmkd fired 48 low-watermark kills across 27 other packages during the window; ai.elizaos.app killed 0 times, pid 30062 stable throughout.
  • exit-info acceptance: before/after snapshots byte-identical — zero new process exits, no LOW_MEMORY of the main process (pre-existing WebView sandboxed-process entries predate the window and are unchanged).

Key device-exact finding

On this hardware the CONSTRAINED pressure lever (availMem < lmkThreshold + 512 MB = 728 MB) structurally preempts the 300 s idle lever: with the model resident, ambient MemAvailable sits inside the pressure margin, so the 30 s tick releases between turns. All four releases were memory-pressure; the idle lever never fired on-device (it remains covered by the emulator soak + JVM unit tests). Cost measured: ≈ +4 s per post-release turn; benefit: ~1.9 GB PSS / 1.5 GB GL mtrack returned to the system between turns — which is why lmkd reaped 27 other packages and never ours.

Verdict

PASS — full acceptance table, methodology, timeline tables, and honest limitations (including the predecessor's interrupted partial run, kept as supplementary raw files) in the README.

🤖 Generated with Claude Code

…11734, refs #11760)

Hardware-lab acceptance row for the inference memory policy merged in
PR #11822, on real Pixel 6a hardware (serial 27051JEGR10034, MemTotal
5589MB -> CONSTRAINED, nCtx=4096, idleUnloadMs=300000, no debug
overrides), build 35f61d1 md5-verified on device after evicting a
foreign APK a sibling session had installed.

- 12.1 min foregrounded soak, 10/10 real local-inference turns
  (mobile-local-direct-reply, 52-58s warm, 95s cold first load)
- 4 pressure releases observed: PSS 2.16->0.28GB, GL mtrack
  1.60->0.05GB per release, MemAvailable ~0.7->2.0GB; released state
  held for the entire 7-min idle leg
- transparent reload after each release: 58s turn (~+4s vs warm)
- lmkd killed 48 processes across 27 other packages in the window;
  ai.elizaos.app killed 0 times, pid stable, exit-info before/after
  byte-identical (no new LOW_MEMORY of the main process)
- key device-exact finding: the CONSTRAINED pressure lever
  (availMem < lmkThreshold+512MB = 728MB) structurally preempts the
  300s idle lever on this device profile; idle firing remains covered
  by the emulator soak + JVM unit tests

Verdict: PASS.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your trial has ended. Reactivate Greptile to resume code reviews.

@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 19068546-fd89-439b-9a26-6f525735cab0

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch evidence/11760-device-acceptance

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.

@lalalune
lalalune merged commit d215301 into develop Jul 3, 2026
31 of 35 checks passed
@lalalune
lalalune deleted the evidence/11760-device-acceptance branch July 3, 2026 12:42
@claude

claude Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Claude encountered an error —— View job


I'll analyze this and get back to you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants