The composer's preset seat stays removed here — this layer moved it to the hero chip and the session-header action — so only the model seat takes the `modelSeatLocked` narrowing master introduced. Conflicts: apps/web/tests/snapshots/*/*.expected.md packages/client/connection/README.md packages/client/connection/README.zh.md packages/client/ui-conversation/src/client/skeleton/InputBar.tsx packages/host/apiproxy/src/fetch/client.ts
bundle/ — profile plugin bundles
English | 中文
Profile bundles: npm packages whose manifest declares "dsh": { "bundle": { "patch": "./cordis.patch.yml" } }, making them installable patch layers for dsh --profile compositions (profile contract). A bundle's substance is its patch list; some also ship runtime glue plugins their patch mounts.
| Package | Role | ctx key |
|---|---|---|
base/ |
The shared dsh core every profile applies first | — (patch only) |
web-app/ |
Browser surface: web patch layer + runtime glue plugin | mounts rows |
headless/ |
One-shot task mode over base + web-app | mounts headless-runner |
In-box bundles resolve from the dsh installation; out-of-tree bundles install into a profile through dsh plugin --profile <name> add <package>.