From c8800100a04e9e365296186dc029940f77a103ff Mon Sep 17 00:00:00 2001 From: mawkone Date: Thu, 23 Apr 2026 18:41:43 -0700 Subject: [PATCH] docs(mcp v2.4.1): apps.containers.{up,ps} + queued-start fallback The fallback path means single-call apps.create deployments now actually deliver a running stack, not just rendered compose files. Made-with: Cursor --- AI_CAPABILITIES.md | 9 ++++++++- vibn-frontend | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/AI_CAPABILITIES.md b/AI_CAPABILITIES.md index 227f8af1..343c4246 100644 --- a/AI_CAPABILITIES.md +++ b/AI_CAPABILITIES.md @@ -118,6 +118,8 @@ Version: **2.1.0**. | `apps.logs` | Runtime logs for a running app. Compose-aware: returns per-service logs for `dockercompose` build packs, single stream for `dockerfile`/`nixpacks`. Includes container status and any diagnostic warnings. | `{ uuid, service?, lines? }` — `service` filter (compose only), `lines` default 200, max 5000 | | `apps.volumes.list` | List Docker volumes belonging to an app (name + size in bytes). Use before `apps.volumes.wipe` to know exact volume names. | `{ uuid }` | | `apps.volumes.wipe` | **Destructive / irreversible.** Stop all app containers, remove a specific volume, leave it ready for a fresh `apps.deploy`. Use to recover from stale DB state on first boot (the most common compose app failure). `confirm` must equal the exact volume name. | `{ uuid, volume, confirm }` | +| `apps.containers.up` | Run `docker compose up -d` directly on the Coolify host for a compose app or service. Bypasses Coolify's queued-start worker (which routinely fails to actually invoke compose). Use after env or domain changes to recreate containers, or as a recovery path when `apps.create`/`apps.deploy` returned `started: false`. Idempotent — already-running containers are no-op'd. Up to 10 min timeout. Returns `{ ok, code, stdout, stderr, durationMs }`. | `{ uuid }` | +| `apps.containers.ps` | `docker compose ps -a` against the rendered compose dir. Quick diagnostic for "why isn't my stack running?" — distinguishes `Created` (queued-start failure → use `apps.containers.up`), `Exited` (app crash → use `apps.logs`), `Restarting` (boot loop → use `apps.logs`), and `Up healthy/unhealthy`. | `{ uuid }` | | `apps.templates.list` | Browse the full Coolify one-click template catalog (320+ vetted apps: CRMs, AI tools, CMSes, dashboards, databases, …). Each entry is deployable via `apps.create({ template: })`. Returns `{ total, offset, limit, items: [{ slug, slogan, tags, port, documentation, logo }] }`. Catalog is fetched from upstream and cached for 1h. | `{ limit?, offset?, tag? }` — `limit` default 50, max 500; `tag` substring filter (e.g. `"crm"`, `"ai"`) | | `apps.templates.search` | Find templates by name, tag, or slogan. Ranked: exact-slug > slug-starts-with > slug-contains > tag-exact > tag-contains > slogan. Use this **before** `apps.create` to discover the right slug (e.g. `"twenty"`, `"n8n-with-postgres-and-worker"`, `"forgejo-with-postgresql"`). | `{ query, tag?, limit? }` — `limit` default 25, max 100. Either `query` or `tag` must be set | | `apps.exec` | Run a one-shot command inside an app container (via `docker exec` on the Coolify host). Compose-aware: pass `service` when the app has >1 container. Returns `{ container, service, code, stdout, stderr, truncated, durationMs, containerHealth }`. Default timeout 60s (max 10 min); default output cap 1 MB (max 5 MB). Command is run through `sh -lc` so shell syntax works. Use this for database migrations, seeds, CLI invocations, and ad-hoc debugging. Every call is audit-logged (command + target, not output). | `{ uuid, command, service?, user?, workdir?, timeout_ms?, max_bytes? }` | @@ -585,7 +587,7 @@ The MCP descriptor at `GET /api/mcp` reports a semver `version`. Tool names are append-only within a major version — agents can cache the tool list safely for the duration of a conversation but should re-fetch on 404. -Current version: **2.4.0**. +Current version: **2.4.1**. - **1.x** — session-cookie-only MCP, no tenant keys. - **2.0** — `vibn_sk_…` keys, workspace-scoped Gitea bot + Coolify project. @@ -600,6 +602,11 @@ Current version: **2.4.0**. - **2.4** — `apps.create` Coolify-template pathway (`{ template: "twenty" }` etc.) for one-click deploy of 320+ vetted apps, plus `apps.templates.list` / `apps.templates.search` for catalog discovery. +- **2.4.1** — `apps.containers.up` / `apps.containers.ps` to bypass Coolify's + unreliable queued-start worker. `apps.create` (template + composeRaw + pathways) now auto-falls-back to direct `docker compose up -d` over SSH + when Coolify's queue stalls, so a single `apps.create` call really does + leave a running stack. --- diff --git a/vibn-frontend b/vibn-frontend index e453e780..62cb77b5 160000 --- a/vibn-frontend +++ b/vibn-frontend @@ -1 +1 @@ -Subproject commit e453e780cc7d7af082d36c702717120a65d7d547 +Subproject commit 62cb77b5a7b39465ff35a6fc33a0c8c78adc56b1