Treat CloudBase MCP as a keep-alive stdio server#193
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed May 31, 2026, 6:17 AM ET / 10:17 UTC. Summary Reproducibility: yes. for the lifecycle-classifier symptom: current main has no CloudBase allowlist entry or command signature, so source inspection shows CloudBase stays ephemeral by default. No live CloudBase device-code auth reproduction was provided or run in this read-only review. Review metrics: 3 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the narrow allowlist/test change after real CloudBase device-code proof and maintainer acceptance of the default lifecycle change; otherwise keep users on the explicit lifecycle configuration workaround. Do we have a high-confidence way to reproduce the issue? Yes for the lifecycle-classifier symptom: current main has no CloudBase allowlist entry or command signature, so source inspection shows CloudBase stays ephemeral by default. No live CloudBase device-code auth reproduction was provided or run in this read-only review. Is this the best way to solve the issue? Unclear until live proof is added; the implementation is a narrow match for the existing allowlist pattern, but the best merge path needs real CloudBase auth evidence for the default behavior change. AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against 2bf7a5eab23f. Label changesLabel changes:
Label justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
Maintainer-side local verification for current head
This confirms the unit-level lifecycle behavior on the PR head. It does not replace the requested real CloudBase device-code auth proof; that still requires a real CloudBase authorization flow showing the process remains alive after |
Summary
@cloudbase/cloudbase-mcppackage invocations andcloudbase-mcpbinary invocationslifecycle: "ephemeral"overrides respectedContext
CloudBase MCP device-code auth returns
AUTH_PENDINGafter emitting the device challenge, then continues polling in the background so credentials can be persisted after the browser authorization succeeds. When CloudBase MCP is invoked as an ephemeral stdio server, that process exits immediately after returningAUTH_PENDING, so the polling loop is cut off before credentials can be written.Treating CloudBase MCP as keep-alive matches that stateful auth flow and lets the daemon keep the MCP process alive until device-code polling finishes.
Tests
pnpm exec vitest run tests/lifecycle.test.tspnpm format:checkpnpm typecheckpnpm lint:oxlintresolveLifecycle(...)for@cloudbase/cloudbase-mcp@latestreturns{ "mode": "keep-alive" }