Skip to content

perf(mobile): load child sessions on demand - #5717

Merged
iscekic merged 14 commits into
mainfrom
mobile-child-performance-834d
Aug 31, 2026
Merged

perf(mobile): load child sessions on demand#5717
iscekic merged 14 commits into
mainfrom
mobile-child-performance-834d

Conversation

@iscekic

@iscekic iscekic commented Aug 29, 2026

Copy link
Copy Markdown
Contributor
  • Child conversations load when you open them, rather than all at once with the parent. The selected child still opens immediately.
  • Completed and failed child cards no longer show “Waiting for activity” when no activity is loaded. Model names appear only when messages are available.
  • If loading fails while a child already shows messages, you can retry above those messages. Retry remains visible while recovery runs.
  • Long child titles wrap onto multiple lines while messages load and after they arrive. Done stays separate from the title.
  • Sessions keep a separate Back control during loading, errors, and normal use. Without earlier navigation, Back returns to the agents list.
  • After an account change, sessions wait for confirmation before showing account-owned details. Loading uses a general session title until those details arrive.
  • If account confirmation fails, you can retry confirmation, copy the error, or go back.

Summary

AuthenticatedOwner adds frozen authEpoch, generation, and userId snapshots; beginAuthenticatedOwner revokes old ownership, and confirmAuthenticatedOwner requires a current getMe result.
AuthProvider blocks access before credential changes and publishes tokens only for the current epoch; ordinary token refresh keeps the owner generation.
AgentSessionProvider destroys revoked managers immediately, so retained session state cannot continue under a retired account owner.

Files
  • apps/mobile/src/lib/context-scope.ts — Added source; +64/−0 lines. Adds subscriptions, current and confirmed owner checks, and nonempty identity confirmation that cannot change a confirmed generation's user.
  • apps/mobile/src/lib/auth/auth-context.tsx — Modified source; +9/−0 lines. Clears sign-in tokens before persistence and revokes sign-out ownership before asynchronous cleanup. Remote cleanup retains the existing token.
  • apps/mobile/src/components/agents/session-provider.tsx — Modified source; +15/−1 lines. Subscribes to ownership changes, checks ownership immediately, and removes the subscription during manager cleanup.
  • apps/mobile/src/lib/context-scope.test.ts — Added owner-scope test file; +70/−0 lines.
  • apps/mobile/src/lib/auth/auth-context.test.tsx — Modified authentication test file; +229/−3 lines.

UserWebConnectionProvider confirms an unconfirmed owner with user.getMe before activeSessions.createWebTicket, adding an account request rather than trusting cached data or token claims.
IdentityConfirmationContext and useIdentityConfirmation expose IdentityConfirmation with isPending, isError, and retry; recovery retains software development kit (SDK) backoff and concurrent-attempt protection.
Connections use authEpoch and generation; inactive authentication admits none, and owner revocation destroys retained connections and rejects stale ticket results.

Files
  • apps/mobile/src/components/agents/user-web-connection-provider.tsx — Modified source; +133/−17 lines. Checks ownership around ticket requests and reuses the native lifecycle recovery callback for Retry. The confirmation hook requires the provider; cleanup releases connections, while revocation destroys them even with session retains.
  • apps/mobile/src/components/agents/user-web-connection-provider.mounted.test.tsx — Modified mounted connection-provider test file; +418/−66 lines.
  • apps/mobile/src/components/agents/user-web-connection-provider.test.ts — Modified connection-provider test file; +68/−42 lines.

SessionDetailScreen waits for a confirmed AuthenticatedOwner, including organization sessions, and isolates cliSessionsV2.get metadata and AgentSessionProvider instances by owner.
Legacy title parameters remain accepted but no longer populate headers or cachedTitle; loading uses a generic title until owned data arrives.
Account errors use useIdentityConfirmation.retry with pending, Copy, and Back controls; NOT_FOUND and UNAUTHORIZED still omit Retry.

Files
  • apps/mobile/src/app/(app)/agent-chat/[session-id].tsx — Modified source; +50/−21 lines. Personal metadata requires a confirmed account, valid session ID, and no organization parameter. Ownership enters the query hash and provider key without changing typed query keys or prefix invalidation. Loading and error headers enable Back fallback; spawned-session retries stay unchanged.
  • apps/mobile/src/app/(app)/agent-chat/[session-id].mounted.test.tsx — Modified mounted session-route test file; +981/−43 lines.

SessionDetailContent opens the selected sheet before starting hydrateChildSession, and removes automatic sibling loading and its one-time retry.
The retired collectEmptyChildSessionIds and hydrateEmptyChildSessions exports no longer support speculative loading; model labels depend on already available messages.
Child Retry, cached rows, nested opening, and separate pagination stay connected to the existing manager.

Files
  • apps/mobile/src/components/agents/session-detail-content.tsx — Modified source; +1/−39 lines. Removes the speculative effects and attempted-child set, while keeping immediate selection. The loaded header enables Back fallback.
  • apps/mobile/src/components/agents/session-detail-content-helpers.ts — Modified source; +2/−53 lines. Removes the empty-child scan, concurrent hydration helper, and unused imports; existing message retry helpers remain unchanged.
  • apps/mobile/src/components/agents/session-detail-content.test.ts — Modified session-detail test file; +677/−606 lines.
  • apps/mobile/src/components/agents/session-detail-content-helpers.test.ts — Modified session-detail helper test file; +1/−179 lines.
  • apps/mobile/src/components/agents/session-detail-queue.test.ts — Added session queue test file; +697/−0 lines.

getChildSessionCardState returns empty latestActivity for completed or failed tasks without assistant messages, and ChildSessionSection omits that row.
Pending and running cards keep the waiting text; titles, status, optional model labels, and nested opening still use available task and message data.

Files
  • apps/mobile/src/components/agents/child-session-card-state.ts — Modified source; +3/−1 lines. Stops assigning waiting text to finished tasks without assistant activity.
  • apps/mobile/src/components/agents/child-session-section.tsx — Modified source; +15/−13 lines. Renders the activity row only when text exists; task identity and child opening remain available.
  • apps/mobile/src/components/agents/child-session-card-state.test.ts — Modified child-card state test file; +60/−29 lines.

ChildSessionSheet displays hydration errors and Retry above cached messages instead of hiding failures once content exists.
lastHydrationError retains the current child's error while loading; switching children or finishing recovery clears it.
QueryError.isRetrying reports recovery progress without replacing SessionMessageList, preserving the transcript layout and existing paging, nesting, streaming, and bottom spacing.

Files
  • apps/mobile/src/components/agents/child-session-sheet.tsx — Modified source; +59/−39 lines. Keeps the content wrapper stable, retains recovery controls during Retry, and enables SheetHeader.wrapTitle.
  • apps/mobile/src/components/agents/child-session-sheet-recovery.mounted.test.tsx — Added mounted recovery test file; +293/−0 lines.
  • apps/mobile/src/components/agents/child-session-sheet-state.test.ts — Modified sheet-state test file; +5/−1 lines.
  • apps/mobile/src/components/agents/child-session-sheet-test-helpers.tsx — Added sheet test helper; +327/−0 lines. This file is test support, not production source.
  • apps/mobile/src/components/agents/child-session-sheet.mounted.test.tsx — Modified mounted child-sheet test file; +133/−198 lines.

ScreenHeaderProps.backFallback accepts an optional Expo Router Href and keeps Back available without navigation history unless showBackButton disables it.
onBack still takes precedence; otherwise Back uses existing history or replaces the current route with the fallback.
Session loading, error, and content headers use the agents tab fallback; callers without a fallback keep their existing behavior.

Files
  • apps/mobile/src/components/screen-header.tsx — Modified source; +7/−2 lines. Adds optional fallback navigation and keeps the Back control available when the fallback exists.
  • apps/mobile/src/components/screen-header.mounted.test.tsx — Modified mounted screen-header test file; +70/−35 lines.

SheetHeader.wrapTitle defaults to false; the child sheet opts in so long task titles remain complete while loading.
Opted-in headers use an expandable minimum height with no title line limit; other callers keep a fixed height and single line.
Reserved action space keeps Done and other controls separate from the title.

Files
  • apps/mobile/src/components/sheet-header.tsx — Modified source; +6/−2 lines. Adds optional wrapping and selects fixed or minimum row height without moving the leading and trailing controls.
  • apps/mobile/src/components/sheet-header.mounted.test.tsx — Modified mounted sheet-header test file; +56/−0 lines.

The optional --child-performance flag adds a deterministic ChildPerformanceFixture tree to app:mobile-sheet-fixtures; the default four sessions and read-only behavior stay unchanged.
fixtureSessionIds, fixtureCleanupSessionIds, and buildMobileSheetFixtureResult add optional IDs, counts, and descendant-first cleanup; buildToolPartItem.status adds running and error states.
pollForChildPerformanceFixture accepts complete, validated history only, so fixture success waits for ingestion and pagination rather than a live agent.

Files
  • dev/seed/app/mobile-sheet-fixtures.ts — Modified source; +51/−48 lines. Documents and parses the flag before the email; scopes cleanup to the selected user and preserves parent relationships. Only the performance root receives the repository URL. Ingests and polls every performance session before reporting optional identifiers and counts.
  • dev/seed/lib/mobile-sheet-fixtures.ts — Modified source; +335/−13 lines. Builds one root, 24 direct children, and one nested child with stable synthetic IDs and times. Message counts are 2 for the root, 120 each for selected/nested children, 0 for the empty child, and 12 for each other child. Running tools omit end/output; error tools store error text, while omitted status remains completed. Optional results add performance IDs and counts; the child ID list is comma-separated. Authenticated polling validates schema, relationships, exact counts, and pagination cursors; retries pending histories every 500 milliseconds for 30 seconds; rejects terminal errors and omissions.
  • dev/seed/lib/mobile-sheet-fixtures.test.ts — Modified fixture test file; +438/−0 lines.

Tests: 16 files changed (12 modified, 4 added; +4,523/−1,202 lines), including the named sheet test helper and session queue tests.
Generated: 0 files changed; no generated catalogs or lockfiles change.


Visual Changes

Child session sheet

  • Users now see the complete “Inspect performance child 01” title above loaded messages, with a separate Done button.
  • The title wraps onto two lines at the top, and message 120 appears in the lower half.
Child session sheet with the complete title, a separate Done button, and loaded messages

Parent session

  • Users now see a separate Back chevron and child cards with completed, running, and error states.
  • At 00:12.233, Back appears left of “Child performance fixtures”; running cards show “Waiting for activity”, while completed and error cards omit it.
  • The recording lasts 13.233333 seconds and ends on the parent screen.
demo.mp4

Identity confirmation and cached recovery states

  • No native candidate path was supplied for identity confirmation or cached Retry, so their finished states have no native visual evidence.
  • Missing paths: neither state has a supplied picture or recording path.
  • No attachment is selected; deterministic tests do not supply screenshots or live recovery proof.

Verification

On iOS, 44 measured cases ran: 33 passed, ten supplied a prewarmed baseline, and one return retained its blocked grade.
Setup and warmups are excluded from this count; overlapping cohort and observation rows below must not be added together.
The owner ended runtime verification after return observation 04, with observations 02 and 03 carried forward.
Android is outside the approved iOS-only scope; this report does not claim complete native acceptance criteria AC1–AC10 coverage.

Case What it proves Platform Result
Interrupted baseline — baseline-r1 This attempt supplies no completed native observation. iOS not run — the report records only its start; the handoff marks it interrupted and void
BASE-NATIVE-READY The native flow finds the selected child title, message 120, and Done, then closes the sheet. iOS passed
BASE-B1-COLD A cold baseline requires an opening without ready cached rows before the tap. iOS not run — all ten completed attempts were prewarmed; no eligible cold baseline exists
CHANGED-NATIVE-READY A fresh opening requests the root first and the selected child after the tap, then shows message 120 and closes. iOS passed
CHANGED-OPEN-10 Ten fresh openings request only the root before selection and load the correct selected transcript without sibling requests. iOS passed
WARM-RETAINED-10 Ten warm openings reuse ready rows without new requests or replays and retain the parent position after Done. iOS passed
REPLACED-RETURN-10 — original full target The original target requires ten returns with usable navigation after the parent route and provider are replaced. iOS not run — the original cohort never completed; later passes cover only the reduced with-history target
REPLACED-RETURN-10-o01 The recorded return replaces the provider and loads the selected rows, but cannot establish absent navigation history. iOS not run — execution is preserved, but nav-return-g10-r1 retains its blocked grade
NAV1 — absent-history fallback Back must reach the required fallback without opening Rename when navigation history is absent. iOS not run — absent history was never established; the owner waived this coverage
NAV1-HISTORYLESS The approved entry must prove absent history before child, Done, and Back actions can test the fallback. iOS not run — the history gate observed existing history and stopped the case
NAV1-INITIAL-URL-HISTORYLESS Initial destination entry must satisfy the service and workflow prerequisites before fallback navigation can be checked. iOS not run — generation 13 stopped on a service outage, then a workflow revision mismatch
NAV1-INITIAL-URL Initial destination entry must reach the requested parent before its child and fallback controls can be tested. iOS not run — the single entry timed out before destination access; no fallback action ran
SLOW-NATIVE-READY The complete child identity and separate Done remain visible before delayed rows arrive, and dismissal returns to the parent. iOS passed after the fix in round slow-g16-r1
SLOW-OPEN-10 — aggregate Ten openings with a 750 ms delay retain the full pending identity, load message 120, and close to the same parent. iOS passed after the fix in round slow-g16-r1
SLOW-CONTINUATION-READY A fresh excluded warmup shows the named pending sheet before delayed rows and preserves the parent anchor after dismissal. iOS passed
SLOW-OPEN-03-06 Four delayed openings preserve child identity, request only the selected transcript after the tap, and restore the parent anchor. iOS passed
SLOW-FINAL-BATCH-READY The final excluded warmup has complete root and selected requests, a full pending title, correct rows, and usable Done. iOS passed
SLOW-OPEN-07 Delayed observation 07 shows the full child identity, correct rows, and the parent anchor after Done. iOS passed
SLOW-OPEN-08 Delayed observation 08 shows the full child identity, correct rows, and the parent anchors after Done. iOS passed
SLOW-OPEN-09 Delayed observation 09 shows the full child identity before rows and restores the parent anchor after Done. iOS passed
SLOW-OPEN-10 — observation 10 The tenth delayed opening loads the selected rows without sibling requests and restores the parent anchor after Done. iOS passed
SLOW-OPEN-07-10 The final four delayed openings complete the ten-observation cohort with native checks and separate runtime evidence. iOS passed
RETURN-CONTINUATION-READY Fresh setup and warmup replace the provider, load the correct child, and preserve usable Done and with-history Back. iOS passed
REPLACED-RETURN-02 / REPLACED-RETURN-10-o02 Return 02 replaces the provider, requests root then selected rows, and completes Home and Done navigation without old-provider publication. iOS passed
REPLACED-RETURN-03 / REPLACED-RETURN-10-o03 Return 03 replaces the provider, loads message 120 without sibling requests, and completes Home and Done navigation. iOS passed
REPLACED-RETURN-04 / REPLACED-RETURN-10-o04 Return 04 replaces the provider, loads the correct child without old publication, and restores child 01 with Back available. iOS passed
REPLACED-RETURN-05 / REPLACED-RETURN-10-o05 A fifth measured return would add evidence for navigation and selected rows after provider replacement. iOS not run — the owner removed observations 05–10 from acceptance
REPLACED-RETURN-10-o06 A sixth measured return would add evidence for navigation and selected rows after provider replacement. iOS not run — the owner removed observations 05–10 from acceptance
REPLACED-RETURN-10-o07 A seventh measured return would add evidence for navigation and selected rows after provider replacement. iOS not run — the owner removed observations 05–10 from acceptance
REPLACED-RETURN-10-o08 An eighth measured return would add evidence for navigation and selected rows after provider replacement. iOS not run — the owner removed observations 05–10 from acceptance
REPLACED-RETURN-10-o09 A ninth measured return would add evidence for navigation and selected rows after provider replacement. iOS not run — the owner removed observations 05–10 from acceptance
REPLACED-RETURN-10-o10 A tenth measured return would add evidence for navigation and selected rows after provider replacement. iOS not run — the owner removed observations 05–10 from acceptance
Presentation variants Text size, font scaling, themes, contrast, and screen-reader presentation require separate native checks. iOS not run — the owner removed these presentation groups from scope
Live recovery and pagination Live failures, recovery, and further transcript pages require native execution beyond the completed opening journeys. iOS not run — the owner ended additional runtime work after return 04
Account and context transitions Native transitions must show that one account or context cannot publish another context's rows. iOS not run — the owner ended additional runtime work after return 04
Logout and refresh Native logout and refresh require separate checks for session ownership and visible data. iOS not run — the owner ended additional runtime work after return 04
Remaining native states Identity confirmation, cached Retry, nested delayed opening, and other native states require their own runtime evidence. iOS not run — the retained journeys do not cover these states
Parent draft preservation A draft must survive child dismissal without losing its contents. iOS not run — the deterministic parent fixture is read-only and has no draft
Instrumentation-free live smoke A clean live journey must run without temporary measurement controls. iOS not run — the owner ended additional runtime work after return 04

Historical round grades remain unchanged.
The table above combines later outcomes only where the reports establish a pass; it does not rewrite these historical grades.

  • baseline-r1: VOID; the interrupted report contains no completed observation.
  • baseline-next-r1: VERIFICATION BLOCKED; required selectors were undiscovered, and no warmup or measured opening ran.
  • baseline-owner-r1: VERIFICATION BLOCKED; the multiline row selector timed out during the incomplete warmup.
  • baseline-owner-r2: VERIFICATION BLOCKED; readiness passed, but all ten measured attempts were prewarmed rather than cold.
  • changed-measurement-r1: VERIFICATION PASSED; the excluded warmup and ten fresh openings completed.
  • warm-retained-g9-r1: VERIFICATION PASSED; all ten measured warm openings reused ready rows without new requests or replays.
  • replaced-return-g9-r1: VERIFICATION FAILED; the excluded warmup reproduced missing Back, and no measured return ran.
  • nav-return-g10-r1: VERIFICATION BLOCKED; Back remained visible, but absent history was unproved and observation 01 retained its blocked grade.
  • historyless-nav-g12-r1: VERIFICATION BLOCKED; existing history failed the admission gate before child, Done, or Back actions.
  • initial-url-nav-g13-r1: VERIFICATION BLOCKED; Next.js was down before native execution.
  • initial-url-nav-g13-r2: VERIFICATION BLOCKED; the workflow revision guard failed before patch application or native entry.
  • initial-url-nav-g14-r1: VERIFICATION BLOCKED; the single initial-URL entry timed out before destination access.
  • slow-g15-r1: VERIFICATION FAILED; the excluded warmup hid the child number in the pending title, so measured openings did not run.
  • slow-g16-r1: STOPPED EARLY; the repaired warmup and observations 01–02 passed, while the round budget left 03–10 unrun.
  • slow-g17-r1: VERIFICATION PASSED; a fresh excluded warmup and observations 03–06 passed.
  • slow-g17-r2: VERIFICATION PASSED; observations 07–10 passed and completed the validated ten-observation aggregate.
  • return-g17-r1: STOPPED EARLY; setup, warmup, and observations 02–03 passed, while the round budget left 04–05 unrun.
  • return-g18-r2: VERIFICATION PASSED; fresh setup, warmup, and observation 04 passed, reaching the owner's reduced endpoint.

Measured results and limits

  • Before the first child opens, measured transcript requests fall from 25 to 1, a 96% reduction.
  • The changed callback median is 396.224 ms versus about 178 ms for the already-prewarmed baseline; no latency improvement is claimed.
  • The ten changed cold observations have no matched cold baseline; the ten historical baseline observations remain accepted only as prewarmed evidence.
  • Ten retained warm openings have a callback median of 139.606 ms, with no new requests or replays.
  • Ten delayed openings have callback minimum 1079.931083 ms, median 1175.7899585 ms, and maximum 1412.956917 ms.
  • Returns 02–04 have callback minimum 396.587417 ms, median 413.689208 ms, and maximum 512.959750 ms.
  • Returns 02 and 03 share one runtime; return 04 uses a fresh runtime, and only scalar durations are combined.
  • Return 01 remains separate; its blocked historical grade excludes it from the three-return summary.
  • These results establish neither significance, precise native scheduling, physical paint timing, nor isolated network latency.
  • Parent position remains after child dismissal; route removal resets the position, so no preservation across route removal is claimed.
  • The installed development client lacks the required cold-bundle entry capability; visible Back and successful Home returns do not prove absent-history behavior.
  • Default child identity, selected rows, required native labels, roles, identifiers, selectors, and usable Done/Back were checked.
  • Deterministic ownership and recovery tests do not replace the unrun native cases or missing visual evidence.
  • Temporary controls were removed; the rounds retain successful restoration checks, but restoration does not constitute an instrumentation-free live smoke pass.
  • Selector, service, workflow-guard, and entry limitations remain preparation failures, not reproduced product defects.
  • The generation 16 setup and cleanup invocation errors were resolved; generation 18's redundant missing-snapshot check does not replace its earlier successful required check.

Reproduced defects on the unfixed build

  • NAV1 — missing Back: reproduced in replaced-return-g9-r1; cf54a838a repairs it, and later with-history returns no longer reproduce it.
  • ST1 — truncated pending identity: reproduced in slow-g15-r1; c656e55d0 repairs wrapping, and the repaired warmup plus ten delayed observations no longer reproduce it.
  • NAV1 coverage limit: absent-history behavior remains owner-waived and unproved; the repaired with-history result does not establish its fallback behavior.
  • Rejected finding: the rounds retain viewport-edge arrow overlap reports; they do not classify them as defects in selected child 01 or required navigation.

Reviewer Notes

  • Repository: Kilo-Org/cloud. Worktree: /Users/igor/Projects/.worktrees/mobile-child-performance-834d. No sibling repository worktrees belong to this change.
  • Review range: eb6750c48b253194ad81cbf4d135e0c960c25120...d416abb04f36ee9812a07b1f4f2c86101df48226; branch: mobile-child-performance-834d.
  • The supplied statistics total 30 files, 5,273 insertions, and 1,451 deletions. File sizes count changed lines, not total file length.
  • This change adds no network API, transport, shared SDK, storage batching, transcript retention, or dependency change.

Human steps

  • before merge — No media upload remains. Both selected files are attached under Visual Changes.
  • after merge — None required. The fixture flag is optional and adds no production setup requirement.

Notes

  • Native evidence predates the main merge and test-only CI repairs; its source head is c656e55.
  • Current-head CI is green at d416abb; 251 targeted mobile tests and 16 seed tests pass.
  • The owner ended further runtime work after return observation 04; unrun cases remain unproved, not passed.
  • Kilobot approves the current head; no unresolved review thread remains.
  • No translation inputs or catalogs change; i18n-leftover passes.

@kilo-code-bot

kilo-code-bot Bot commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (4 files)
  • apps/mobile/src/components/agents/child-session-sheet-test-helpers.tsx
  • apps/mobile/src/components/agents/child-session-sheet.mounted.test.tsx
  • apps/mobile/src/components/agents/session-detail-content.test.ts
  • apps/mobile/src/components/agents/user-web-connection-provider.mounted.test.tsx
Previous Review Summaries (5 snapshots, latest commit 5a3acc3)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit 5a3acc3)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (1 file)
  • apps/mobile/src/components/agents/child-session-sheet-recovery.mounted.test.tsx

Previous review (commit d7f05af)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (7 files)
  • apps/mobile/src/components/agents/child-session-sheet-recovery.mounted.test.tsx
  • apps/mobile/src/components/agents/child-session-sheet-test-helpers.tsx
  • apps/mobile/src/components/agents/session-detail-content.test.ts
  • apps/mobile/src/components/agents/session-detail-content.tsx
  • apps/mobile/src/components/agents/session-detail-queue.test.ts
  • apps/mobile/src/lib/auth/auth-context.test.tsx
  • apps/mobile/src/lib/auth/auth-context.tsx

Previous review (commit c656e55)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (4 files)
  • apps/mobile/src/components/sheet-header.tsx
  • apps/mobile/src/components/sheet-header.mounted.test.tsx
  • apps/mobile/src/components/agents/child-session-sheet.tsx
  • apps/mobile/src/components/agents/child-session-sheet.mounted.test.tsx

Previous review (commit cf54a83)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (6 files)
  • apps/mobile/src/app/(app)/agent-chat/[session-id].tsx
  • apps/mobile/src/app/(app)/agent-chat/[session-id].mounted.test.tsx
  • apps/mobile/src/components/agents/session-detail-content.tsx
  • apps/mobile/src/components/agents/session-detail-content.test.ts
  • apps/mobile/src/components/screen-header.tsx
  • apps/mobile/src/components/screen-header.mounted.test.tsx

Previous review (commit f1b3c94)

Status: No Issues Found | Recommendation: Merge

Files Reviewed (25 files)
  • apps/mobile/src/app/(app)/agent-chat/[session-id].tsx
  • apps/mobile/src/app/(app)/agent-chat/[session-id].mounted.test.tsx
  • apps/mobile/src/components/agents/child-session-card-state.ts
  • apps/mobile/src/components/agents/child-session-card-state.test.ts
  • apps/mobile/src/components/agents/child-session-section.tsx
  • apps/mobile/src/components/agents/child-session-sheet.tsx
  • apps/mobile/src/components/agents/child-session-sheet.mounted.test.tsx
  • apps/mobile/src/components/agents/child-session-sheet-recovery.mounted.test.tsx
  • apps/mobile/src/components/agents/child-session-sheet-state.test.ts
  • apps/mobile/src/components/agents/child-session-sheet-test-helpers.tsx
  • apps/mobile/src/components/agents/session-detail-content.tsx
  • apps/mobile/src/components/agents/session-detail-content.test.ts
  • apps/mobile/src/components/agents/session-detail-content-helpers.ts
  • apps/mobile/src/components/agents/session-detail-content-helpers.test.ts
  • apps/mobile/src/components/agents/session-provider.tsx
  • apps/mobile/src/components/agents/user-web-connection-provider.tsx
  • apps/mobile/src/components/agents/user-web-connection-provider.test.ts
  • apps/mobile/src/components/agents/user-web-connection-provider.mounted.test.tsx
  • apps/mobile/src/lib/auth/auth-context.tsx
  • apps/mobile/src/lib/auth/auth-context.test.tsx
  • apps/mobile/src/lib/context-scope.ts
  • apps/mobile/src/lib/context-scope.test.ts
  • dev/seed/app/mobile-sheet-fixtures.ts
  • dev/seed/lib/mobile-sheet-fixtures.ts
  • dev/seed/lib/mobile-sheet-fixtures.test.ts

Reviewed by grok-4.6 · Input: 160.9K · Output: 6.9K · Cached: 263.6K

Review guidance: REVIEW.md from base branch main

@iscekic iscekic self-assigned this Aug 30, 2026
@iscekic

iscekic commented Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

(bot) Kilobot review not detected, proceeding further

@iscekic iscekic added the human-ready The PR is ready for human review. label Aug 31, 2026
@iscekic
iscekic merged commit c265acd into main Aug 31, 2026
22 checks passed
@iscekic
iscekic deleted the mobile-child-performance-834d branch August 31, 2026 15:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

human-ready The PR is ready for human review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants