Skip to content

Add inline mobile agent activity - #6054

Open
klopez4212 wants to merge 19 commits into
mainfrom
kennylopez-mobile-agent-activity
Open

Add inline mobile agent activity#6054
klopez4212 wants to merge 19 commits into
mainfrom
kennylopez-mobile-agent-activity

Conversation

@klopez4212

Copy link
Copy Markdown
Contributor

Summary

  • show owned agents’ real live activity beside the mobile composer
  • morph the compact working indicator into a bounded, scrollable timeline overlay
  • coordinate keyboard/composer focus and provide platform-appropriate multi-agent selection

Testing

  • just mobile-check
  • just mobile-test (1,486 tests)

Signed-off-by: kenny lopez <klopez4212@gmail.com>
@klopez4212
klopez4212 marked this pull request as ready for review August 16, 2026 15:44
@klopez4212
klopez4212 requested a review from a team as a code owner August 16, 2026 15:44

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7af71e9ce7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread mobile/lib/features/channels/agent_activity/active_agent_turns.dart Outdated

@themiguelamador themiguelamador left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

I found two blocking correctness issues and fixed both on Complear:review/pr-6054-fix (0e4c0453f):

  1. P1 — Thread activity could expose the wrong turn. Observer frames are channel-scoped and carry no thread ID, but a thread typing signal was paired with that agent's latest observer turn in the channel. With concurrent turns, opening activity in thread A could therefore show the transcript for thread B. Thread signals are now status-only until the protocol can identify an exact thread turn, with a regression test.
  2. P1 — Adaptive liveness expiry did not have a producer contract. Mobile read livenessIntervalSecs, but the ACP harness emitted neither that field on turn_started nor on turn_liveness; moreover, every legacy heartbeat reset a previously learned timeout to 30 seconds. Agents configured above the default interval could disappear before their first/next heartbeat, while interval 0 produced a stale badge for more than 24 hours after a crash. The harness now publishes its configured interval, mobile preserves the prior interval for legacy heartbeats, and disabled liveness uses a bounded fallback. NIP-AO and regression coverage are updated.

Verification on the fix branch:

  • just mobile-check — pass (format, analyzer, file-size ratchet)
  • just mobile-test — 1,489 passed
  • cargo test -p buzz-acp — 787 passed (778 unit + 9 lifecycle)
  • cargo clippy -p buzz-acp --all-targets -- -D warnings — pass
  • git diff --check — pass

The source head was still 7af71e9ce710cfa5f57f9989abfd6f606be18fdc immediately before publishing this review.

Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1ca9793e7d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread mobile/lib/features/channels/agent_activity/active_agent_turns.dart
Comment thread mobile/lib/features/channels/agent_activity/active_agent_turns.dart Outdated
Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 638320c007

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread mobile/lib/features/channels/agent_activity/working_bots_provider.dart Outdated
Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 63a1829f69

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread mobile/lib/features/channels/agent_activity/observer_subscription.dart Outdated
Comment thread mobile/lib/features/channels/agent_activity/working_bots_provider.dart Outdated
Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3ff56f93a9

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread mobile/lib/features/channels/agent_activity/working_bots_provider.dart Outdated
Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 64ea2d430a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Signed-off-by: kenny lopez <klopez4212@gmail.com>

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Carl, an automated reviewer, commenting via Wes’s GitHub account.

One lifecycle-ordering defect remains at exact head 64ea2d430a12554409e7fffcc8933238049a6fa5:

An older stale working turn always hides a newer completion or error for the same agent. _compareComposerTurnRecency prioritizes isWorking before comparing either turn's activity chronology (mobile/lib/features/channels/agent_activity/working_bots_provider.dart:172-178). If an ephemeral terminal frame is missed for turn A, and a later turn B starts and then completes/errors, activeByAgent selects stale A even though B has the later lastActivityAt. Observer kind:24200 is deliberately WS-only and not stored (crates/buzz-relay/src/handlers/event.rs:947-949), so a missed frame is a supported failure mode; with disabled liveness, the false working state can remain until the seven-day backstop (active_agent_turns.dart:323-340).

Select the newest turn by lifecycle/receipt chronology, using working state only as a tie-breaker when chronology is equal. Add the inverse of the current old-terminal/new-working test: an old working turn plus a newer error/completion must surface the newer terminal outcome.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7da997a567

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread mobile/lib/features/channels/agent_activity/working_bots_provider.dart Outdated
Comment thread mobile/lib/features/channels/thread_detail_page.dart Outdated
Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d5b96f9a27

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread mobile/lib/features/channels/agent_activity/active_agent_turns.dart Outdated
Comment thread mobile/lib/features/channels/agent_activity/active_agent_turns.dart
Signed-off-by: kenny lopez <klopez4212@gmail.com>
…nt-activity

Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1fab22311f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread mobile/lib/features/channels/agent_activity/working_bots_provider.dart Outdated
Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d40c4ed894

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread mobile/lib/features/channels/agent_activity/working_bots_provider.dart Outdated
Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 870f4b340c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread mobile/lib/features/channels/agent_activity/working_bots_provider.dart Outdated

@jedwards27 jedwards27 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.

Verdict: REQUEST CHANGES

Reviewed: 076081bfc646f8fdf8ff9dc6e00843b5bdae0ad0..870f4b340c21d8388c96470077639947f263fa73 (exact head 870f4b340c21d8388c96470077639947f263fa73)

Risk: high. This changes the ACP lifecycle producer/contract and adds a primary, user-visible mobile activity workflow.

Two material regressions are unresolved; see inline findings. Both were independently reproduced from clean exact-head bytes with focused Flutter probes.

Validation at matching head:

  • PASS: cargo test -p buzz-acp (795 unit + 9 lifecycle tests).
  • PASS: just mobile-check.
  • PASS in an independent clean run: full just mobile-test (1,506 tests). A second full-suite attempt hit one order-sensitive failure and then the command cap; that row passed alone, so I am not attributing it to this PR.
  • PASS: git diff --check 076081bfc646f8fdf8ff9dc6e00843b5bdae0ad0..HEAD.
  • PASS: all current GitHub checks, including Mobile, at this exact head.
  • FAIL: clock-rollback lifecycle probe: a turn_completed(seq=2) with an earlier wall-clock timestamp than turn_started(seq=1) reduces to working, not finished.
  • FAIL: narrow 220×600 multi-agent fixture at TextScaler.linear(2) overflows by 57 px.

Manual/native evidence: not supplied. The PR adds no mobile integration/native-review journey and has no exact-artifact recording of composer → keyboard dismissal → overlay → agent switching → collapse/focus restoration. After fixing the blockers, please provide an iOS/Android journey covering the actual IME and accessibility behavior; widget tests cannot establish VoiceOver/TalkBack or native focus restoration.

The product scope aligns with Buzz's human/agent workspace direction, and I found no additional material tenancy, persistence, authorization, or secret-handling defect in the changed paths reviewed. Green CI is welcome, but it does not negotiate with two executable counterexamples.

Comment thread mobile/lib/features/channels/agent_activity/active_agent_turns.dart Outdated
Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4cf8e98242

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread crates/buzz-acp/src/pool.rs Outdated
Signed-off-by: kenny lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: aca4ee3415

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Co-authored-by: Kenny Lopez <klopez4212@gmail.com>
Signed-off-by: Kenny Lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e166a8ce75

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread crates/buzz-acp/src/pool.rs
Co-authored-by: Kenny Lopez <klopez4212@gmail.com>
Signed-off-by: Kenny Lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 88f5ba2e6d

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread mobile/lib/features/channels/agent_activity/active_agent_turns.dart
Comment thread crates/buzz-acp/src/lib.rs
Co-authored-by: Kenny Lopez <klopez4212@gmail.com>
Signed-off-by: Kenny Lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 287e562280

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Co-authored-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>
Signed-off-by: Princess Donut <b238ea756dee4d98afa5883fc7f1de61eeabe65bf700e3a5a5a80db5e42e2c2b@buzz.block.builderlab.xyz>

@jedwards27 jedwards27 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.

:bot: Jude’s code review agent

Verdict: REQUEST CHANGES

Reviewed: 076081bfc646f8fdf8ff9dc6e00843b5bdae0ad0..6dbfb88d058cedc30e3dfda842c392ecdfda44cb (exact head 6dbfb88d058cedc30e3dfda842c392ecdfda44cb)

Risk: high — this changes the mobile composer’s real-IME/focus lifecycle and accessibility interaction while also extending ACP observer scope and ordering contracts.

The source-level blockers from the prior round are fixed. Large-text sizing now follows the active TextScaler, the narrow footer can stack, overlay geometry remains bounded above the composer, keyboard-open expansion waits for native inset/layout settlement, and focus restoration is conditional on prior focus. The ACP path also keeps steering delivery, observer rescoping, stale completion, sequence ordering, owner binding, identity teardown, and bounded buffering coherent. I found no material source-level defect or unrelated conflict with VISION.md / TESTING.md at this head.

Blocking evidence gap: there is still no exact-head native iOS or Android artifact exercising the complete composer → real IME dismissal → expanded overlay → agent switch → collapse/focus restoration journey, nor a VoiceOver/TalkBack traversal. The widget semantics checks at mobile/test/features/channels/agent_activity/composer_agent_activity_indicator_test.dart:577,705 establish a label but do not establish native focus order, announcements/selected state, horizontal selector discoverability, IME behavior, draft preservation, or focus restoration. Because those are the user-facing boundaries changed here, green widget/CI tests are not sufficient proof.

Smallest safe closure: attach exact-head iOS and Android captures with a real IME and VoiceOver/TalkBack enabled, verifying focus order and selected state, horizontal selector discoverability, agent switching, collapse, draft preservation, and focus restoration. No source change is requested unless that exercise exposes one.

Validation at matching clean HEAD:

  • Focused mobile activity suite: 19/19 passed.
  • Full mobile Flutter package suite: 1,521/1,521 passed.
  • Additional mobile ownership/lifecycle suites: 47/47 passed.
  • cargo test -p buzz-acp: 800 library + 9 integration tests passed.
  • git diff --check: passed; worktree clean.
  • Current GitHub checks, including Mobile, Rust, security, relay/backend integration, and mesh lifecycle: completed successfully (publish-only jobs intentionally skipped).

Residual risk: native IME and assistive-technology behavior on both supported mobile platforms remains unverified at this exact SHA.

Co-authored-by: Kenny Lopez <klopez4212@gmail.com>
Signed-off-by: Kenny Lopez <klopez4212@gmail.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1ecfed8d9b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +929 to +935
final activityIndicator = activityIndicatorBuilder?.call(
composerExpansionController,
focusNode,
activityInteractionLock,
composerActivationRequests,
expandComposer,
);

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Split the composer widget below the file-size ceiling

This addition leaves compose_bar_widget.dart over the repository's hard 1,000-line limit, so just file-size-check, pre-push, and CI reject the change. Move another private section into a sibling part file rather than growing this widget further.

AGENTS.md reference: AGENTS.md:L573-L579

Useful? React with 👍 / 👎.

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.

🤖 Corroborating this finding at the same head 1ecfed8d9b94, with two additions.

Reproduced locally. node mobile/scripts/check-file-sizes.mjs exits 1: lib/features/channels/compose_bar/compose_bar_widget.dart: 999 -> 1013 (+14) lines (allowed 1000), base fe7c6808e743. Control: the same command at the previous PR head 6dbfb88d058c exits 0. The file measures 999 ratchet-lines on both main and 6dbfb88d058c, so this head is the first revision where the branch's activity-indicator additions and main's own growth of the same file coexist. It came in with the merge, not with the feature commits.

Consequence past this one file. The failing step is File size policy inside Detect Changed Paths, the path-filter job the rest of CI keys off. With it red, Desktop and Desktop E2E Integration fail as aggregators (Desktop Core finished with: skipped) and Mobile is skipped outright, so there is no mobile CI signal at this head at all. Clearing this is a precondition for getting one, not just a lint cleanup.

Local runs at this exact head, since the Mobile job did not run: flutter analyze clean, full mobile suite 1600/1600 passed (agent_activity 70, channel_detail_page_test.dart 149), cargo test -p buzz-acp 810 library + 9 integration passed.

@jedwards27 jedwards27 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.

:bot: Jude’s code review agent

Verdict: REQUEST CHANGES

Reviewed: fe7c6808e7430d185498178e07e58e378d2e4c7d..1ecfed8d9b946288b92ed9bf01b8f05fdf4757a5 (exact head 1ecfed8d9b946288b92ed9bf01b8f05fdf4757a5)

Risk: high — this changes ACP lifecycle contracts and a primary mobile composer/focus/accessibility workflow.

The merge delta introduces no new material source-level contract, lifecycle, persistence, tenancy, authorization, secret-handling, product, layout, or semantics defect found in this review. Parent-owned focus restoration remains coherent across channel/thread pages, ComposeBar, and activity handoff; the earlier large-text/narrow-layout fixes remain intact.

Blocking merge gate

The exact head deterministically fails the required file-size policy. CI run 32283107407, job 96166215156, reports:

Mobile file size ratchet failed (base HEAD^1):
lib/features/channels/compose_bar/compose_bar_widget.dart: 999 -> 1013 (+14) lines (allowed 1000)

The merge resolution grew mobile/lib/features/channels/compose_bar/compose_bar_widget.dart beyond the ratchet. Detect Changed Paths exits at that point, so Mobile, Rust/unit, Security, Desktop, and integration jobs are skipped; the red aggregate jobs reflect those skipped dependencies. Please extract one coherent composer concern into the existing part-file structure (or otherwise return the file within policy) and rerun all required checks on the resulting head. This gate should not be waived.

Validation at matching clean head

  • PASS: focused composer activity suite, 19/19.
  • PASS: focused channel overlay/tail integration plus archived composer suppression, 2/2.
  • PASS: focused lifecycle/ownership suites, 47/47 (active_agent_turns, working_bots_provider, observer_subscription).
  • PASS: just mobile-check (format/analyzer); PASS: git diff --check fe7c6808...HEAD.
  • FAIL: exact-head GitHub file-size gate above; affected downstream CI did not run.
  • NOT GREEN: two cargo test -p buzz-acp package attempts each produced 809 pass / 1 fail at acp::tests::keepalive_resets_idle_past_deadline; the row passed twice alone. That is suite-load/order-sensitive evidence and is not sufficient to attribute a production regression to this PR, but it is not a valid package pass either.
  • NOT RUN: full mobile package suite at this merge head. The PR description's earlier full-suite claim is not attributable to these merge bytes.

Native evidence still required

No exact-head iOS/Android artifact demonstrates real IME dismissal → overlay → agent switch → collapse/focus restoration, draft preservation, or VoiceOver/TalkBack traversal. Widget semantics cannot establish native focus order, announcements/selected state, horizontal selector discoverability, or IME restoration. After the policy fix, please provide exact-head captures for both platforms covering those boundaries.

Residual risk: native IME and assistive-technology behavior remains unverified, and the exact-head ACP package gate is not clean.

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.

5 participants