• v1.1.0 7d41ccccee

    claude-bridge 1.1.0
    CI / build (push) Failing after 1m4s
    CI / contract (push) Successful in 1m31s

    ltms released this 2026-08-17 16:25:43 +02:00 | 711 commits to main since this release

    Milestone 1.1 closed: 20 of 20 tickets. 217 commits since v1.0.0. Build green
    at 870 tests, 0 failures, verified on the tagged commit.

    WHAT 1.1 IS ABOUT

    1.0 proved a lead could delegate to one member. 1.1 is about running a real
    fleet without losing work or money to it. The three themes:

    A mixed-vendor fleet. The launcher SPI takes claude-code and opencode as
    first-class backends, so a member can be Claude, DeepSeek or GPT. Profiles
    are the unit of model choice, with per-profile maxLoad and weighted
    placement, plus per-role pools for architects, developers and reviewers.

    Work that survives. Async tickets with poll and ack, a durable inbox, an
    idle reaper with a context cap, per-worker git worktrees, and a member
    checkpoint that commits, pushes and opens its own pull request under a
    minimal write:repository token. A finished async ticket now nudges the
    lead's own pane instead of waiting to be found.

    A credential boundary. memberCredentials is deny-by-default: 34 known
    names, 7 allowed, 29 replaced with a sentinel. Measured inside a live
    member pane, not assumed. The policy is re-read on every spawn.

    Also in 1.1: per-session authorization with roles resolved from the
    connection rather than an argument; the gateway migration to llm.ltms.dev
    with both ceilings raised; and one auditable redeploy script that builds
    before it stops anything.

    DOCUMENTATION

    The wiki had twelve chapters and none told an operator how to run the thing.
    The two pages meant to cover it, 4-Setup and 5-Operations, were never written
    past their scope note. Chapter 13, the User Guide, replaces them: install,
    configure, run, delegate, and twelve traps hit for real this year.

    KNOWN AND OPEN

    • No cost metering. maxLoad is the only throttle that exists.
    • weighted placement is not cheapest-first, so paid spawns can happen while
      the free profile is idle. Worked around with local.weight: 100; the real
      fix is open as CB-589.
    • An Envoy HTTP/1.1 bug can truncate a stream with a 200 and no terminator.
      Members cannot detect it; it looks like a short answer.
    • docs/MCP-Contract.md is a pre-build design doc outside its section 6. Its
      tool names and REST paths never caught up with the code (CB-609).
    Downloads