Skip to content

Labby changelog

ai.dinglebear/labby

7 changes recorded. MCP Harbor re-reads this listing from the official registry every six hours and asks the live server what it exposes, and keeps what changed between one look and the next.

  • server.json 1 field changed
    version
    2.6.2 2.7.0

  • AGENTS.md 1 field changed
    file
    absent published

    https://raw.githubusercontent.com/dinglebear-ai/labby/HEAD/AGENTS.md

    + # Labby+ Labby is a Rust MCP gateway and operator control plane. CLI, MCP, HTTP API, and UI adapt shared operations.+ ## Read for the task+ Read nested AGENTS.md and subsystem references as needed; [Product docs](docs/README.md) indexes contracts.+ | Change | Start here |+ | --- | --- |+ | Architecture or service ownership | [Architecture](docs/ARCH.md), [Service onboarding](docs/dev/SERVICE_ONBOARDING.md) |+ | Upstream transport, catalog, or routing | [Upstream instructions](crates/labby-gateway/src/upstream/AGENTS.md), [Upstream contract](docs/services/UPSTREAM.md) |+ | Code Mode or snippets | [Runner instructions](crates/labby-codemode/AGENTS.md), [Code Mode](docs/dev/CODE_MODE.md), [Snippets](docs/services/SNIPPETS.md) |+ | MCP tools, schemas, or notifications | [MCP instructions](crates/labby/src/mcp/AGENTS.md), [Conformance](docs/surfaces/MCP_CONFORMANCE.md) |+ | Authentication, access, or configuration | [Auth instructions](crates/labby-auth/AGENTS.md), [Access](docs/services/ACCESS.md), [Configuration](docs/runtime/CONFIG.md) |+ | Errors, retries, or diagnostics | [Error mapping](docs/dev/ERRORS.md), [Observability](docs/dev/OBSERVABILITY.md) |+ | Operator UI, desktop, or extension | [Gateway Admin](apps/web/AGENTS.md), [Desktop](apps/tauri/AGENTS.md), [Browser bridge](docs/services/BROWSER.md) |+ | Skills, Artifacts, or packaging | [Plugin instructions](plugins/labby/AGENTS.md), [Artifacts/Skills](docs/services/SKILLS.md), [Plugin contract](docs/PLUGINS.md) |+ | Tests, documentation, or CI | [Testing](docs/dev/TESTING.md), [Documentation maintenance](docs/dev/DOCUMENTATION.md), [CI/CD](docs/runtime/CICD.md) |+ ## Implementation boundaries+ Shared operations belong in `crates/labby/src/dispatch/` or their extracted runtime. Adapters translate input, caller, and output; validation, authorization, destructive classification, and retry policy stay below them.+ `labby-gateway` owns upstream pools/discovery/routing, OAuth lifecycle, and the Code Mode host; `dispatch/upstream.rs` is a compatibility shim. `labby-codemode` owns the host-neutral kernel and runner protocol, not gateway catalog wiring.+ `labby-apis` remains a pure SDK boundary without ambient configuration or product transports. `labby-model` is never a product dependency; Windows FFI stays behind `labby-winjob`'s safe API.+ Use configured MCP upstreams for external capabilities. Built-ins are for Labby state/lifecycle: follow Service Onboarding and the Architecture crate map.+ ## Contracts to preserve+ - Keep compatibility identifiers `lab://`, `ui://lab/`, MCP server key `lab`, and scopes `lab:read`, `lab`, `lab:admin`. Router tools accept `action` plus `params`; atomic projections derive their schemas from shared action metadata. CLI commands derive from Clap, not the MCP catalog.+ - `ActionSpec.requires_admin` and `destructive` are independent axes. Restartable mutation and stdio configuration are not automatically destructive; use each surface's shared policy.+ - Build Labby-owned descriptors through `permanent_tools.rs`. Wire listing and `peer_contract.rs` hashing must agree for correct `tools/list_changed`. Upstream annotations and native `ui://` identities pass through without Labby normalization.+ - Enforce exposure on direct invocation/read/get, not only listing. Preserve caller, Team, route, loadout, OAuth-subject, and retained-result isolation.+ - Use bounded upstream listing, not `Peer::list_all_*`. Preserve pagination, byte/deadline limits, per-upstream concurrency, refresh coalescing, and partial-failure diagnostics. A slow upstream must not stall unrelated ones. Caller cancellation is not an upstream circuit-breaker failure.+ - Fence late connection/catalog publication with the OAuth lifecycle epoch and publication guard. Subject, relay, and task-peer invalidation must not permit stale results to republish.+ - Preserve typed error kinds, causes, `side_effects`, and recovery until surface mapping. Code Mode uses the [tool-error contract](docs/contracts/code-mode-tool-errors.md); traces use `cli`, `mcp`, and `api` surface names. Keep SSRF, redirect, spawn-guard, filesystem, and response-budget enforcement in the owning runtime.+ - Configuration loading owns env/.env/TOML precedence. An explicit remote target must not silently fall back to local state: see [Remote gateway authority](docs/design/REMOTE_GATEWAY_TARGET.md). Access-store changes require migration/integrity checks; current-schema validation must use one snapshot to avoid bootstrap races.+ ## Build and verification+ Use root [Justfile](Justfile) recipes, the [Rust pin](rust-toolchain.toml), and [product features](crates/labby/Cargo.toml); manifests own Node/pnpm requirements.+ ```bash+ just check                         # all-feature workspace compilation+ just test                          # all-feature workspace nextest+ just lint                          # drift, toolchain, reachability, Clippy, fmt+ just docs-check                    # generated freshness and documentation gates+ just rustdoc-check                 # strict Rustdoc and workspace doctests+ ```+ Focused gateway tests: `cargo nextest run -p labby-gateway --all-features`. Nextest excludes doctests. Feature changes need `bash scripts/check-feature-slices.sh`; all-features can hide broken slices. `proxy-testkit` is test-only. `just module-reachability` catches orphan Rust files.+ `just build` builds web assets first, then the all-feature `release-fast` binary. Raw Cargo builds do not refresh the static export. `just build-release` and `just install` install a binary; `just host-sync` restarts a service. These are not interchangeable compile checks. `just chat-local` disables browser auth and binds all interfaces, so it is not the default isolated preview.

  • AGENTS.md 1 field changed
    file
    published removed

    https://raw.githubusercontent.com/dinglebear-ai/labby/HEAD/AGENTS.md

    − # Labby− Labby is a Rust MCP gateway and operator control plane. CLI, MCP, HTTP API, and UI adapt shared operations.− ## Read for the task− Read nested AGENTS.md and subsystem references as needed; [Product docs](docs/README.md) indexes contracts.− | Change | Start here |− | --- | --- |− | Architecture or service ownership | [Architecture](docs/ARCH.md), [Service onboarding](docs/dev/SERVICE_ONBOARDING.md) |− | Upstream transport, catalog, or routing | [Upstream instructions](crates/labby-gateway/src/upstream/AGENTS.md), [Upstream contract](docs/services/UPSTREAM.md) |− | Code Mode or snippets | [Runner instructions](crates/labby-codemode/AGENTS.md), [Code Mode](docs/dev/CODE_MODE.md), [Snippets](docs/services/SNIPPETS.md) |− | MCP tools, schemas, or notifications | [MCP instructions](crates/labby/src/mcp/AGENTS.md), [Conformance](docs/surfaces/MCP_CONFORMANCE.md) |− | Authentication, access, or configuration | [Auth instructions](crates/labby-auth/AGENTS.md), [Access](docs/services/ACCESS.md), [Configuration](docs/runtime/CONFIG.md) |− | Errors, retries, or diagnostics | [Error mapping](docs/dev/ERRORS.md), [Observability](docs/dev/OBSERVABILITY.md) |− | Operator UI, desktop, or extension | [Gateway Admin](apps/web/AGENTS.md), [Desktop](apps/tauri/AGENTS.md), [Browser bridge](docs/services/BROWSER.md) |− | Skills, Artifacts, or packaging | [Plugin instructions](plugins/labby/AGENTS.md), [Artifacts/Skills](docs/services/SKILLS.md), [Plugin contract](docs/PLUGINS.md) |− | Tests, documentation, or CI | [Testing](docs/dev/TESTING.md), [Documentation maintenance](docs/dev/DOCUMENTATION.md), [CI/CD](docs/runtime/CICD.md) |− ## Implementation boundaries− Shared operations belong in `crates/labby/src/dispatch/` or their extracted runtime. Adapters translate input, caller, and output; validation, authorization, destructive classification, and retry policy stay below them.− `labby-gateway` owns upstream pools/discovery/routing, OAuth lifecycle, and the Code Mode host; `dispatch/upstream.rs` is a compatibility shim. `labby-codemode` owns the host-neutral kernel and runner protocol, not gateway catalog wiring.− `labby-apis` remains a pure SDK boundary without ambient configuration or product transports. `labby-model` is never a product dependency; Windows FFI stays behind `labby-winjob`'s safe API.− Use configured MCP upstreams for external capabilities. Built-ins are for Labby state/lifecycle: follow Service Onboarding and the Architecture crate map.− ## Contracts to preserve− - Keep compatibility identifiers `lab://`, `ui://lab/`, MCP server key `lab`, and scopes `lab:read`, `lab`, `lab:admin`. Router tools accept `action` plus `params`; atomic projections derive their schemas from shared action metadata. CLI commands derive from Clap, not the MCP catalog.− - `ActionSpec.requires_admin` and `destructive` are independent axes. Restartable mutation and stdio configuration are not automatically destructive; use each surface's shared policy.− - Build Labby-owned descriptors through `permanent_tools.rs`. Wire listing and `peer_contract.rs` hashing must agree for correct `tools/list_changed`. Upstream annotations and native `ui://` identities pass through without Labby normalization.− - Enforce exposure on direct invocation/read/get, not only listing. Preserve caller, Team, route, loadout, OAuth-subject, and retained-result isolation.− - Use bounded upstream listing, not `Peer::list_all_*`. Preserve pagination, byte/deadline limits, per-upstream concurrency, refresh coalescing, and partial-failure diagnostics. A slow upstream must not stall unrelated ones. Caller cancellation is not an upstream circuit-breaker failure.− - Fence late connection/catalog publication with the OAuth lifecycle epoch and publication guard. Subject, relay, and task-peer invalidation must not permit stale results to republish.− - Preserve typed error kinds, causes, `side_effects`, and recovery until surface mapping. Code Mode uses the [tool-error contract](docs/contracts/code-mode-tool-errors.md); traces use `cli`, `mcp`, and `api` surface names. Keep SSRF, redirect, spawn-guard, filesystem, and response-budget enforcement in the owning runtime.− - Configuration loading owns env/.env/TOML precedence. An explicit remote target must not silently fall back to local state: see [Remote gateway authority](docs/design/REMOTE_GATEWAY_TARGET.md). Access-store changes require migration/integrity checks; current-schema validation must use one snapshot to avoid bootstrap races.− ## Build and verification− Use root [Justfile](Justfile) recipes, the [Rust pin](rust-toolchain.toml), and [product features](crates/labby/Cargo.toml); manifests own Node/pnpm requirements.− ```bash− just check                         # all-feature workspace compilation− just test                          # all-feature workspace nextest− just lint                          # drift, toolchain, reachability, Clippy, fmt− just docs-check                    # generated freshness and documentation gates− just rustdoc-check                 # strict Rustdoc and workspace doctests− ```− Focused gateway tests: `cargo nextest run -p labby-gateway --all-features`. Nextest excludes doctests. Feature changes need `bash scripts/check-feature-slices.sh`; all-features can hide broken slices. `proxy-testkit` is test-only. `just module-reachability` catches orphan Rust files.− `just build` builds web assets first, then the all-feature `release-fast` binary. Raw Cargo builds do not refresh the static export. `just build-release` and `just install` install a binary; `just host-sync` restarts a service. These are not interchangeable compile checks. `just chat-local` disables browser auth and binds all interfaces, so it is not the default isolated preview.

  • server.json 1 field changed
    version
    2.6.0 2.6.2

  • AGENTS.md +14 −8

    https://raw.githubusercontent.com/dinglebear-ai/labby/HEAD/AGENTS.md

    − Read applicable nested AGENTS.md files and the matching references below for the changed subsystem, not the entire tree. [Product docs](docs/README.md) indexes contracts.− Put shared product operations in `crates/labby/src/dispatch/` or the owning extracted runtime, not duplicated CLI/MCP/API handlers. Adapters translate input, caller context, and output; validation, authorization, destructive classification, and retry policy stay below them.− `labby-gateway` owns upstream pools, discovery, routing, OAuth lifecycle, and the gateway Code Mode host. Product `dispatch/upstream.rs` is only a compatibility shim. `labby-codemode` owns the host-neutral execution kernel and runner protocol; gateway catalog wiring does not belong there.− Prefer configured MCP upstreams for external capabilities. Add built-ins only for Labby-owned state/lifecycle through Service Onboarding; Architecture owns the complete crate map.− From the repository root, use [Justfile](Justfile) recipes, the [Rust pin](rust-toolchain.toml), and [product feature definitions](crates/labby/Cargo.toml). Package manifests specify Node/pnpm requirements.− Focused gateway tests: `cargo nextest run -p labby-gateway --all-features`. Nextest does not run doctests. Feature changes also need `bash scripts/check-feature-slices.sh`; all-feature success can conceal a broken standalone slice. `proxy-testkit` is test support, not a product slice. `just module-reachability` catches orphan Rust files that rustc never visits.− Desktop and `tools/verification` have separate Cargo workspaces. For verification, use root `just verify-check`, `just verify-test`, and `just verify-lint`; keep fixtures serial as the recipe requires. See Testing for live/ignored-suite prerequisites.− Plugin assets own skills and MCP metadata; the binary owns setup/repair and host lifecycle. Do not restore automatic plugin install hooks. After root README edits, run `node packages/labby-mcp/scripts/sync-readme.js`.+ Read nested AGENTS.md and subsystem references as needed; [Product docs](docs/README.md) indexes contracts.+ Shared operations belong in `crates/labby/src/dispatch/` or their extracted runtime. Adapters translate input, caller, and output; validation, authorization, destructive classification, and retry policy stay below them.+ `labby-gateway` owns upstream pools/discovery/routing, OAuth lifecycle, and the Code Mode host; `dispatch/upstream.rs` is a compatibility shim. `labby-codemode` owns the host-neutral kernel and runner protocol, not gateway catalog wiring.+ Use configured MCP upstreams for external capabilities. Built-ins are for Labby state/lifecycle: follow Service Onboarding and the Architecture crate map.+ Use root [Justfile](Justfile) recipes, the [Rust pin](rust-toolchain.toml), and [product features](crates/labby/Cargo.toml); manifests own Node/pnpm requirements.+ Focused gateway tests: `cargo nextest run -p labby-gateway --all-features`. Nextest excludes doctests. Feature changes need `bash scripts/check-feature-slices.sh`; all-features can hide broken slices. `proxy-testkit` is test-only. `just module-reachability` catches orphan Rust files.+ Desktop and `tools/verification` use separate Cargo workspaces. Use root `just verify-check`, `just verify-test`, and `just verify-lint` with serial fixtures. Testing documents live/ignored-suite prerequisites.+ ## Plugin primitives: source and regeneration+ Author skills/references/agent metadata in plugins/labby/.apm/skills.+ Never edit client copies; follow [primitive ownership](plugins/labby/AGENTS.md#primitive-ownership)+ for manifests, embedding, and tools. Update behavior, descriptors, and skills+ together; run python3 scripts/generate-native-plugins.py and --check.+ Review generated diffs and regenerate docs after schema changes.+ Plugins own skills/MCP metadata; the binary owns setup/repair and host lifecycle. Never restore automatic install hooks. After README edits: `node packages/labby-mcp/scripts/sync-readme.js`.

  • server.json 1 field changed
    version
    2.5.0 2.6.0

  • server.json 1 field changed
    version
    2.3.2 2.5.0