Skip to content

Assignment: configure the Profile concurrency limit in Bot mode Settings #825

Closed

Description

@DoodleBears

Parent

#81 — Assignment Runtime / Assignment Directory / Orchestrator tools.

What to build

A Human opens the Bot mode section of the global DSH Settings modal, changes the Profile-wide Assignment Concurrency Limit, and sees the saved value immediately govern new Assignment creation and idle/cold wake across every PersonaBot. The limit survives refresh and a same-Profile Host restart. This completes the Human-configured resource boundary already decided in ADR-0045.

Acceptance criteria

  • Bot mode Settings exposes one Profile-wide Assignment Concurrency Limit, default 3, accepting integers 1–32. Explain that it limits concurrently executing independent Assignments, not retained Session history; no unlimited option or per-Bot override.
  • Only an authenticated Human settings command can change it. The owning Host persists and validates the value; Client-local preferences and model Tool input cannot become a second authority. Invalid, fractional or out-of-range values are rejected without changing the previous saved/effective value.
  • A successful save applies to subsequent admission attempts without a Host restart. Saved and effective values remain consistent across UI reopening, page refresh, clients and a same-Profile Host restart; older Profiles without a value keep default 3.
  • All new-create, addressed idle/cold-wake and Continuity Key reuse admission paths use the current saved limit, across PersonaBots. Already-running requests consume no extra slot. Capacity Tool results expose the actual current limit and remain retryable without an automatic queue.
  • Lowering the limit below existing active use does not cancel or reconfigure running work. It refuses new create/wake attempts until active use falls below the new value. Idle/waiting-human/blocked/completed rows, Orchestrator Sessions and DSH Subagents do not consume Assignment capacity; existing stopping reservations keep their conservative release boundary.
  • Refused admission preserves open asks and immutable access/model facts; changing the limit cannot silently elevate permissions or restart an Assignment.
  • Settings has localized Chinese/English labels and accessible input/save/error feedback; failed saves remain visibly uncommitted with destructive error feedback.
  • Focused tests cover Human validation/authorization, persistence/default/restart, live cross-Bot admission and lowering with active work. A real isolated DSH E2E changes the setting, observes capacity refusal at the configured value, raises it and resumes the original idle Assignment, then confirms restart persistence. Include GitHub-rendered before/after screenshots or recording in the PR and pause for Human QA.

Blocked by

Boundaries

One settings-to-runtime vertical slice; no separate UI-only or persistence-only tickets. Reuse the existing Settings/Host command seam and Assignment Runtime. No concurrency queue, per-PersonaBot quotas, general scheduling, answer-delivery settlement (#812), or Attention redesign (#194). #812 is independently scoped; the requested one-PR-at-a-time delivery order is not a technical blocking edge.

Milestone: v1.0. Project: Bot Inbox & Attention. Status: ready-for-agent (blocked by #811).

Activity

  1. added this to the v1.0 milestone on Oct 4, 2026
  2. added
    enhancementNew feature or request
    ready-for-agentFully specified, ready for an AFK agent
    area:frontendClient-side implementation
    area:backendHost-side implementation
    feature:assignmentOrchestrator and Assignment collaboration
    scope:tracerHuman-testable implementation slice
    on Oct 4, 2026
  3. DoodleBears commented on Oct 4, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim

    • Agent: Codex
    • Task: codex/local/01a0f25f-2150-75e3-8895-23d35394b8d8 (not a DSH Session)
    • Issue scope: Human-configured Profile-wide Assignment Concurrency Limit in Bot mode Settings, durable Host authority, live admission, and real DSH E2E evidence.
    • Branch: codex/825-assignment-settings
    • Started: 2026-10-04 18:23 UTC
    • State: active

    Human explicitly authorized implementation. This branch starts from #821 / #811; integration and acceptance depend on #811. This authorization does not merge #821. Every issue PR pauses for Human QA.

  4. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 4, 2026
  5. DoodleBears commented on Oct 4, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome — paused for Human QA

    The Draft PR is currently mergeable. After explicit Human approval, merge the prerequisite first, refresh this branch as needed, and then merge #825. Remove this task's agent:active claim while paused; retain the other issue labels.

  6. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 4, 2026
  7. DoodleBears commented on Oct 4, 2026

    @DoodleBears
    ContributorAuthor

    Human approved #832 merge. Task codex/local/01a0f25f-2150-75e3-8895-23d35394b8d8 resumes the existing claim only to resolve current-main integration after prerequisite #821 merged, verify CI, and merge #832. State: active.

  8. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 4, 2026
  9. DoodleBears commented on Oct 4, 2026

    @DoodleBears
    ContributorAuthor

    Agent outcome: COMPLETED. Human approved merge; prerequisite #821 merged first, integrated head e5a4050 passed verify CI (run 37228980379), then PR #832 merged as 93f8cd5. Continuing separately with #812 under its recorded claim.

  10. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 4, 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

    area:backendHost-side implementationarea:frontendClient-side implementationenhancementNew feature or requestfeature:assignmentOrchestrator and Assignment collaborationready-for-agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation slice

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions