Skip to content

fix(android): recover oversized transcript pages within memory limits - #767

Merged
Codename-11 merged 1 commit into
devfrom
fix/android-history-page-recovery-729
Oct 20, 2026
Merged

Codename-11 merged 1 commit into
devfrom
fix/android-history-page-recovery-729

Conversation

@Codename-11

@Codename-11 Codename-11 commented Oct 20, 2026 •

Copy link
Copy Markdown
Owner

Summary

Recover oversized Dashboard history pages by reducing the request window while keeping the 8 MiB response guard. Related to #729. Current upstream supports the same latest/oldest offset paging and compacted-history flag used here.

Changes

  • Retry only typed byte-limit failures at the same offset, halving down to one message.
  • Assemble the latest 500 messages chronologically across smaller pages; complete reads retain existing aggregate memory limits.
  • Preserve compacted history and profile scope. Surface an explicit error for individually oversized history instead of an empty API transcript.
  • Correct the shared fixture's latest-page ordering and cover HTTP overflow, paging, and rendered recovery.

Verification

  • Passed 156 focused JVM tests: DashboardApiClientTest, HermesApiClientTest and SessionMessagePaginationTest, including declared and chunked responses over 9 MiB.
  • Passed all 40 shared Gateway fixture tests.
  • Passed initial_history_bind source conformance against clean upstream baf24532a1b95a07fd5505aadbe1faf169b4586b.
  • Standard Phone API 36 instrumentation passed: explicit single-message size failure, reopen after fixture content changes, and all 500 messages rendered in order after automatic smaller-page retries. Hosted lint, debug builds, upstream contracts and Android tests passed. The test job passed on retry after an initial Maven HTTP 429 dependency-download failure.
  • git diff --check passed. No physical-device or audible certification.

Screenshots

No visual change. Existing history failure/reopen presentation is covered by the added instrumentation test.

Compatibility / risk

No new server endpoint, dependency, authentication mode, or memory-limit increase. Servers that ignore pagination and single messages over the cap still fail explicitly. Offset pagination retains upstream's existing consistency limitations if history changes during a read. No version bump or release in this PR.

Lineage / contributor credit

Checklist

  • Target branch is dev, unless this is a dev → main release PR or a focused production-tag hotfix PR to main
  • Scope is focused and related issues/PRs are linked
  • Android changes: lint and focused tests ran, or rationale is listed above
  • Translation changes: locale validation/review ran, or N/A is listed above
  • Server/plugin changes: focused tests ran, or N/A/rationale is listed above
  • Desktop changes: build/tests ran, or N/A/rationale is listed above
  • Docs/site changes: build or link/route checks ran, or N/A/rationale is listed above
  • UI changes were tested on a relevant device/emulator/desktop surface, or the missing proof is stated above
  • Commit messages follow Conventional Commits
  • CHANGELOG.md is updated for user-visible changes, or N/A is listed above
  • Public writing hygiene checked: no secrets, private infrastructure, personal names, or AI/process narration
  • Salvaged/replacement work links source PRs and preserves contributor authorship, or N/A is listed above

Translation catalogs, Plugin, Desktop, and website behavior are unchanged; their separate validation is not applicable to this correction.

@Codename-11
Codename-11 merged commit 5372c2c into dev Oct 20, 2026
26 of 27 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