Skip to content

Tracer: PersonaBot Sessions in Channel sidebar #312

Closed

Description

@DoodleBears

Part of #114. Supersedes the right-sidebar Assignment-list interaction in #75; Assignment Runtime and Directory in #81 remain authoritative for BotHarness coordination facts.

Observable behavior

In a PersonaBot DM, the right sidebar is Sessions / 会话. It shows this Bot's independent root Orchestrator Session and Assignment Sessions, never DSH Subagents. A row opens that exact Session in the native DSH workspace UI. The list is a read model; no model-facing tool call is required to register an item.

Tracer 1 — real Session navigation

  • Default flat list shows the current Orchestrator even when idle, then working / stopping / attention-needed Assignments before other active Sessions. An All view exposes older and stopped Sessions; make role and status visually distinct.
  • Membership and role come from BotHarness Session Ownership; title, workspace and live running state come from DSH Session facts. BotHarness Directory contributes only Assignment-specific stop, report, Grant and continuity facts. Do not infer ownership from cwd.
  • Clicking a row calls the supported DSH UiWorkspace.openSession seam, preserving its workspace. No duplicate read-only Assignment detail screen or second Session history store.
  • Handle missing/cold Session records and restart safely. A stale persisted activity = working must not consume an Assignment concurrency slot forever.
  • Remove the replaced “事项” presentation and unused Client bridge/store code, while keeping the Directory used by Grant enforcement, concurrency admission, Continuity Key, report, stop and audit.
  • Real DSH + LLM path: create an Assignment through Orchestrator, open both Orchestrator and Assignment from the right sidebar, stop the Assignment, reload, and inspect the native Session. Capture screenshots and stop for Human QA.

Tracer 2 — view and workspace grouping

  • Per PersonaBot browser-local preference for Current/All and Flat/By workspace; default Current + Flat. Store collapse state in the same per-Bot preference boundary.
  • By workspace adds collapsible workspace rows without changing the underlying Session identity, sort or native navigation. Use DSH-native UI tokens and primitives; cover light/dark and zh/en.
  • Real runtime UI path, focused automated coverage, screenshots, then Human QA before further breadth.

Authority boundary

DSH Agent status is live idle | running; DSH SessionEvent is durable execution history. BotHarness persists application-owned Assignment metadata and an atomic admission reservation because DSH has no global Assignment slot. Reconcile any reservation left by a terminated Host process before enforcing capacity; do not use that reservation as the UI's running truth. A DSH turn error is not a terminal Assignment state; BotHarness stop and report facts remain separate.

Related

Activity

  1. added this to the v1.0 milestone on Sep 26, 2026
  2. DoodleBears commented on Sep 26, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim

    • Agent: Codex
    • Task: codex/local/01a0cde3-1621-7382-96a1-852758cedfc0 (not a DSH Session)
    • Issue scope: v1.0 PersonaBot Session browser, DSH status projection, reservation recovery and replacement of the old right-sidebar Assignment view
    • Branch: codex/312-personabot-sessions
    • Started: 2026-09-26 07:03 UTC
    • State: active
  3. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Sep 26, 2026
  4. DoodleBears commented on Sep 26, 2026

    @DoodleBears
    ContributorAuthor

    Tracer 1 merged in #323 (026be59). Human QA passed: Current shows the Orchestrator, All includes the stopped Assignment with name/workspace, clicking it opens the native DSH Session, and the list survives reload. Full regression: 1,029 tests; typecheck and build pass.

    #312 remains open for Tracer 2 (per-Bot view and workspace grouping). Follow-up UX from Human QA: when a Bot-owned Orchestrator or Assignment Session is opened in native DSH, provide a session-scoped action to return to that PersonaBot DM. Resolve ownership from SessionOwnership, never cwd; do not show this action for unrelated DSH Sessions. Deliver and QA it as a separate vertical slice after the current grouping slice.

  5. DoodleBears commented on Sep 26, 2026

    @DoodleBears
    ContributorAuthor

    Agent work continuation

  6. DoodleBears commented on Sep 26, 2026

    @DoodleBears
    ContributorAuthor

    Tracer 2 delivered in PR #332. Human QA passed: All/By workspace shows the owned Orchestrator and stopped Assignment in separate groups; collapse and selection survive reload; another PersonaBot retains default Current/Flat. Real DSH + LLM E2E passed, with light/dark screenshots saved in the PR. Continuing the separately tracked native Session → owning Bot DM return action as the next tracer. Agent-Task: codex/local/01a0cde3-1621-7382-96a1-852758cedfc0.

  7. DoodleBears commented on Sep 26, 2026

    @DoodleBears
    ContributorAuthor

    Agent work continuation

    • Agent: Codex
    • Task: codex/local/01a0cde3-1621-7382-96a1-852758cedfc0
    • Scope: Tracer 3, native DSH Session header return to the owning PersonaBot DM
    • Branch: codex/312-session-return
    • State: active
    • Human QA: Orchestrator and stopped Assignment return correctly; an unrelated native Session has no action. A later report of an “open failed” click cleared after refresh of the updated QA page; the Bot avatar and return both passed.
    • Verification: real DSH Session navigation from both the Bot sidebar and native DSH sidebar, actual LLM reply for an unrelated native Session, light/dark screenshots, typecheck and focused tests.
  8. DoodleBears commented on Sep 26, 2026

    @DoodleBears
    ContributorAuthor

    Delivered in #323 and #332. The Channel sidebar now opens the real Orchestrator and Assignment Sessions; per-Bot Current/All, Flat/By workspace, and collapse preferences persist in browser storage. Real DSH navigation, stop/reload, and Human QA passed.

  9. DoodleBears commented on Sep 26, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

  10. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Sep 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ready-for-agentFully specified, ready for an AFK agent

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions