Skip to content

fix(lib): session bridge reports a failed server start and stops the right watcher #9796

Closed

Description

@kyle-sexton

Parent: #7303 (DX-9, DX-11; the sync-shared-copies allowlist gate is removed).

Problem

  • DX-9: server output goes to /dev/null, so a failed start reports no cause.
  • DX-11: stop picks the watcher by the data dir's last path component, which is interview-surface in every topic, so it can stop another topic's watcher.

The canonical copy is lib/session-bridge/ (session_bridge.py, watch.sh, wake.sh); scripts/shared-copies.txt lists the copies to sync.

Done when

  • A failed server start prints the server's stderr tail and exits non-zero; a test covers it and passes.
  • stop matches the watcher by the full data-dir path; a test with two topics proves it stops only the named one.
  • Every copy listed in scripts/shared-copies.txt for these files matches the canonical copy (the repo's shared-copy check passes).
  • scripts/check-changelog-fragments.sh passes.

Activity

  1. added
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 24, 2026
  2. github-actions commented on Oct 24, 2026

    @github-actions
    Contributor

    Proposed work class: work-class: scoped
    Basis: automated intake triage; the lanes App applied this class.

    Size: Medium
    Complexity: Medium
    Uncertainty: Known
    Flags: none

    Understood: two defects in the session bridge. (1) A failed server start hides its cause because output goes to /dev/null. It should print the stderr tail and exit non-zero. (2) stop matches watchers by the last path component of the data dir, so it can stop another topic's watcher. It should match the full path. Both changes need tests, the shared copies must be synced, and the changelog fragment check must pass. The scope and done-when items are clear. I found no likely duplicates.

    Automated triage, applied by the lanes App.

  3. added
    priority: mediumReal value, no hard deadline; normal backlog flow.
    and removed
    needs-triageNot yet classified. Floor until a type and one priority tier are set.
    on Oct 24, 2026
  4. added
    status: readyTriaged, unblocked, and fully specified; eligible to pick up.
    work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.
    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.
    on Oct 24, 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

    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.priority: mediumReal value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions