Context
packages/loopover-mcp/bin/loopover-mcp.js:66 defines MAINTAIN_AUTONOMY_LEVELS = ["observe","suggest","propose","auto_with_approval","auto"], used to client-side-validate maintain set-level input (bin/loopover-mcp.js:1798). The live server's enum removed "suggest"/"propose" in #4620: src/settings/autonomy.ts:7's AUTONOMY_LEVELS = ["observe","auto_with_approval","auto"], and src/api/routes.ts:762 validates the PUT /settings body against that live enum, rejecting suggest/propose with a 400. src/mcp/server.ts:543-548 explicitly documents choosing the live list over the CLI's stale one for exactly this reason. The CLI's client-side validation accepting values the server hasn't supported since #4620 means a user gets a confusing server-side 400 instead of an immediate, clear client-side error.
Requirements
- Update
MAINTAIN_AUTONOMY_LEVELS in packages/loopover-mcp/bin/loopover-mcp.js:66 to match the live server enum in src/settings/autonomy.ts:7 (["observe","auto_with_approval","auto"]), removing "suggest"/"propose".
- Consider importing the canonical list from a shared location if one already exists/is feasible, rather than maintaining two hand-synced copies — but if that's a larger refactor than this issue's scope, a corrected literal copy (with a comment pointing to
src/settings/autonomy.ts as the source of truth) is an acceptable minimum fix.
- Add/update a test confirming
maintain set-level suggest/propose now fails client-side with a clear error, not a server round-trip.
Deliverables
Expected Outcome
loopover-mcp maintain set-level rejects unsupported autonomy values immediately and clearly, instead of producing a confusing server-side 400.
Links & Resources
packages/loopover-mcp/bin/loopover-mcp.js:66,1798
src/settings/autonomy.ts:7
src/api/routes.ts:762
src/mcp/server.ts:543-548 (documents the intentional choice to use the live list)
Context
packages/loopover-mcp/bin/loopover-mcp.js:66definesMAINTAIN_AUTONOMY_LEVELS = ["observe","suggest","propose","auto_with_approval","auto"], used to client-side-validatemaintain set-levelinput (bin/loopover-mcp.js:1798). The live server's enum removed"suggest"/"propose"in#4620:src/settings/autonomy.ts:7'sAUTONOMY_LEVELS = ["observe","auto_with_approval","auto"], andsrc/api/routes.ts:762validates thePUT /settingsbody against that live enum, rejectingsuggest/proposewith a 400.src/mcp/server.ts:543-548explicitly documents choosing the live list over the CLI's stale one for exactly this reason. The CLI's client-side validation accepting values the server hasn't supported since#4620means a user gets a confusing server-side 400 instead of an immediate, clear client-side error.Requirements
MAINTAIN_AUTONOMY_LEVELSinpackages/loopover-mcp/bin/loopover-mcp.js:66to match the live server enum insrc/settings/autonomy.ts:7(["observe","auto_with_approval","auto"]), removing"suggest"/"propose".src/settings/autonomy.tsas the source of truth) is an acceptable minimum fix.maintain set-level suggest/proposenow fails client-side with a clear error, not a server round-trip.Deliverables
MAINTAIN_AUTONOMY_LEVELSmatches the live server enum.Expected Outcome
loopover-mcp maintain set-levelrejects unsupported autonomy values immediately and clearly, instead of producing a confusing server-side 400.Links & Resources
packages/loopover-mcp/bin/loopover-mcp.js:66,1798src/settings/autonomy.ts:7src/api/routes.ts:762src/mcp/server.ts:543-548(documents the intentional choice to use the live list)