chore: sync private v5.3.0 (cde1fc4) - #45
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
v5.3.0.sync/v5.3.0-cde1fc4.Release notes
Added
externalPlanReview.backend: "cloud"runs the post-hoc plan review on Cursor Cloud Agents over REST (https://api.cursor.com) and writes the sameplan-monitor-*.mdfindings contract. It is a pin only —"auto"still cascades Claude → Cursor Agent CLI and never reaches it. Because Cloud Agents clone the repo, it reviews the pushed branch and a preflight soft-fails on unpushedHEADinstead of auditing state the reviewer cannot see (backend: "cursor"remains the working-tree reviewer). The launcher writes the monitor from the terminal run result, so freshness, exits0|3|4,autoRemediate: false, implementer≠reviewer, and/plan-review-triageare unchanged;autoCreatePRandworkOnCurrentBranchare hard-off and not configurable.ERROR/CANCELLED/EXPIRED/ empty results write no monitor and fabricate nothing; agent and run ids persist in wait-state for exit-3 resume.--batchis refused rather than partially covered. New config:externalPlanReview.cloudAgent(repoUrl,startingRef,model). Requirescurl,node, andCURSOR_API_KEY— no new runtime dependency, and@cursor/sdkis deliberately not vendored (it needs Node 22.13+ against the kit'sengines >=20). ADR2026-08-14_cursor-cloud-agents-sdk-audits-backend.md; tests.cursor/scripts/plan-external-review-cloud-backend.test.mjs..specify/). Getting-started pointer and plan-template Goal what/why cue. ADR2026-08-14_spec-kit-sdd-adapt-ignore.md.agent-kit dashboard-broadcast/npm run dashboard:broadcastbinds the same per-workspace port allocation as/dashboard(hash of the snapshot root in3333-3588) instead of a hardcoded3333, so a broadcast starts beside an already-running instance. NewclassifyBroadcastListener/resolveBroadcastPort/describeBroadcastListenerindashboard/lib/guards.mjswalk the candidate ports and reuse only this workspace's own broadcast — reuse requires LAN reachability, not just a matchingsystem.repoRoot, because a loopback panel answers?token=with 200 without any token. Everything else (our loopback panel, another workspace, a token-gated instance this token cannot identify, an unknown process) is skipped and left running. Export a stableMISSION_CONTROL_TOKENto reuse an existing broadcast instead of starting another. The broadcast log is now per workspace (/tmp/mission-control-broadcast-<rootId>.log).Fixed
agent-inferred. A refused command is terminal in the worker contract (same class as never/git-prod). Queue and audit start preflight the detachedagent-kit-audit-*session pile (warn or offer reap; cap surfaces in the orchestrator Ask, not only launcher stderr)./backlog-add(and the reused Broad Intake worker) never Asks on non-essentialconfirm-provider/collaboration.provider. One-line advisory or silence, then Broad Intake → write Ask.waitTimeoutSecondsresumes in the same/run-plan//run-plan-allsession (re-arm--wait-monitor) before advancing the queue or skipping triage. Exit 3 is still timeout-only and is never narrated as reviewed.kill "$(lsof -nP -iTCP:3333 -sTCP:LISTEN -t)". It names who holds each port it walked past (this workspace's loopback panel, another workspace by root, a token-gated instance, an unidentified process), leaves them running, and offers akillline only for a listener proven to be this workspace's own. ExplicitPORTstill refuses rather than silently moving. The starter also stampsPORTandMISSION_CONTROL_REPO_ROOTonto the detachedserve.mjsenv on both spawn paths, so the server binds the allocated port instead of falling back to3333. The token gate for non-loopback bind is unchanged.Changed
/run-plan,/run-plan-all,/continue-plan, and/backlog-add. When Unprocessed is non-empty, those commands may AskAnalyze inbox now/Enqueue Fix now/Not now(never auto-analyze)./dogfoodstays file-only. Notes become plans/memory after HITL, neverplan-monitor-*.md. When audits are enabled, arm/wait/rearm/triage continuation is the/run-plan//run-plan-alldefault;/plan-external-reviewand/plan-review-triagestay specialist SoT. ADR2026-08-14_main-command-dogfood-audit-routing.md.Source
cde1fc4sync/v5.3.0-cde1fc4