Skip to content

feat(desktop): surface parent task status in Side Conversations - #5232

Open
hbw00111 wants to merge 3 commits into
apache:mainfrom
hbw00111:feat/side-chat-parent-status
Open

feat(desktop): surface parent task status in Side Conversations#5232
hbw00111 wants to merge 3 commits into
apache:mainfrom
hbw00111:feat/side-chat-parent-status

Conversation

@hbw00111

@hbw00111 hbw00111 commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Side Conversations now show when the parent task needs input or approval, is running, or most recently completed, failed, or was interrupted. The notice uses canonical Host execution and pending interaction kinds, with settled Turn records for sessions opened after a run ends. An idle session is not reported as completed.

All side panels share one parent observation. Navigation and reconnect invalidate stale reads, including lifecycle notifications delivered in one React batch. The action focuses the existing parent interaction or composer; responses still use the existing handlers.

Fixes #5230. Refs #4331 (parent-status item only).

Verification

  • The full Desktop Node/React suite passed after rebuilding (2,548 tests), covering Host seed/live projection, pending input and all approval kinds, last-turn states, stale responses, Session switches, reconnect, cleanup and existing companion behavior. A separate reviewer regression reproduced the batched reconnect failure before its fix and passed afterwards. The candidate harness now also provides complete canonical continuity snapshots; both previously failing candidate tests pass.
  • Passed npm run lint, npm run format:check, npm run build, npm run typecheck, npx knip --workspace apps/desktop, npx knip --workspace packages/ui, and the renderer architecture check.
  • Desktop Storybook typecheck/build and full catalog smoke passed (338 stories, 365 theme renders). The approval story renders the production SandboxBoundaryPrompt; its play function verifies that the action focuses an existing parent approval control.
  • The full repository test suite and Electron E2E were not run locally.

Storybook, 1280×900, light/default. Before is the existing SideChat story from unmodified base 83aa12a29; after adds the parent sandbox approval scenario in the same Workbar frame. These are component scenarios, not live Electron screenshots.

Before After
Side Conversation before Side Conversation showing parent approval

AI use

  • Generative tooling made a substantive contribution

Tool(s) and scope: Grok Build (grok-4.6, xhigh) implemented the feature, regression tests and Storybook scenario. OpenAI Codex reviewed the changes, independently reproduced a reconnect bug, verified the fixes and prepared this PR on behalf of @hbw00111. The commit includes both Generated-by trailers.

Checklist

  • Tests cover the change and fail without it
  • Lint, format, typecheck and the affected suites pass locally

Does this PR entail a change in behavior?

  • Yes — described under Summary above

Project canonical pending interaction kinds and root execution into the
companion panel, with settled-turn history fallback and lifecycle guards.
Reuse the parent conversation controls and cover navigation, reconnect,
and browser focus behavior.

Refs apache#5230

Generated-by: Grok Build (grok-4.6, xhigh)
Generated-by: OpenAI Codex
@github-actions github-actions Bot added the effort/XL Under 2500 readable lines label Sep 12, 2026
Reuse the continuity fixture with idle session state and the matching host epoch so parent execution observation receives canonical interaction data.

Generated-by: Grok Build (grok-4.6, xhigh)
@hbw00111

Copy link
Copy Markdown
Contributor Author

The latest upstream CI run failed in transcript-scroll-cost.spec.ts because boundaries.length was 0; paging to the first turn and the mounted-turn bound had already passed.

I reran the unchanged PR head (00fa56adffbfc5f0a75878311058a5befc07bf70) using the original CI workflow in my fork. The Desktop e2e step passed: https://github.com/hbw00111/maka/actions/runs/34700571003 . Other full-workflow steps are still running as of this note; this does not replace the upstream required check.

There is a plausible sampling race: the test disables displacement recording during wheel input and reenables it after the final animation frames. A range change completed in that interval is discarded. A controlled exercise of the existing probe reproduces zero recorded boundaries in that ordering. This supports a timing-sensitive test failure, though it does not prove the exact frame ordering in the failed CI run.

Could a maintainer rerun the failed upstream job at https://github.com/apache/maka/actions/runs/34697088741 ? GitHub rejected my rerun request because it requires repository admin rights. No assertions, retries, or code were changed for this rerun.

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

Labels

effort/XL Under 2500 readable lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(desktop): surface parent task status in Side Conversations

1 participant