mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-11-12 14:19:00 +01:00
## Thinking Path > - Paperclip helps people manage AI agents at work. > - Cursor Cloud hosts execution behind its API. > - Product setup still expected a Paperclip Computer. > - Managed-only tenants therefore rejected valid setup. > - This admits the validated API-owned controller. > - Authority, Stop proof, budgets and cleanup remain enforced. ## Linked Issues or Issue Description Refs #18068 and #18069; both dependencies have merged. **What happened?** Managed-only setup still requested a Computer. Live tests exposed missing Cursor Stop proof and duplicate replay. **Expected behavior** Use Cursor’s API controller. Verify provider/controller termination and replay each log identity once. **Steps to reproduce** Enable native Runner/managed-only. Configure Cursor model/repository/key without a Computer, then Test, finish setup, run and Stop. ## What Changed - Derive API-only placement from validated native Cursor configuration; reject placement/command/workspace/home overrides and keep Kubernetes-only execution closed. - Skip Computers/checkout/workspace realization. Keep scoped tools, completion, private staging, budgets, leases and recovery. Persist placement; reject contradictions. - Align Cloud cards, Test, Save and Finish setup; hold unready drafts. Legacy keeps its Computer, credential and policy checks. - Verify Stop from exact API ownership, audited intent, provider-terminal proof, no Computer/process ownership and controller retirement. Recheck immediate/deferred retirement; wake existing recovery on durable evidence. - Clear warnings when the actual stopped target later has authoritative confirmation. Keep missing/other-run negatives and the existing predicate. - Publish safe status refresh after full-proof ACK. Retain bounded native/physical cancellation history; add no poller or weaker proof path. ## Verification Core merged as `3910352c923a`; Product merged as `27d35314be8e`. Public branch `5f86eb66b081` has tree `67344151d303`. Its exact-head Greptile summary is 5/5; the fresh audit found zero unresolved threads and complete pagination. The controlled workspace retry and required summary passed. All 59 current-head contexts are terminal and clean. Prior green-36 evidence keeps its identity. [Current CI](https://github.com/paperclipai/paperclip/actions/runs/41680511731) first failed workspaces-a 1/2: the CLI company-import/export beforeAll 30-second runtime-info/child-PID/HTTP readiness wait expired. All 431 UI files/4,714 tests and 285 other CLI tests passed (one skip). The cause remains UNKNOWN. Child output records startup recovery complete, but buffered CI prefixes do not establish its relation to the waiter deadline; runtime-file/PID/last-health state was not captured. Both unchanged local probes were RED. The second observed dependency preflight still pending at the deadline; observer overhead was not quantified. Neither proves the CI cause. After all functional jobs finished, only the queued metadata summary was cancelled; the other 48 records stayed unchanged. Attempt 1 retains 46 successes, the original failure, one skip and the cancelled summary. One same-head debug retry was admitted at 18:42 UTC on November 3. Its workspace job passed at 19:23 UTC on the same checkout: UI 431 files/4,714 tests and CLI 33 files/286 tests, including company import/export. Test caching was disabled. The new `ci / verify` summary passed; workflow attempt 2 completed SUCCESS. Required `ci / e2e` also passed. The final check at 19:53 UTC on November 3 found all 59 current-head contexts terminal and clean: zero pending and zero failing. The 47 inherited completed/skipped rows are not new executions. No code, assertion or timeout changed; success does not explain the original failure or erase the local REDs. CI checkout is `1ea9d8608ced`/tree `78cb1ec13d59` (parents `2e37c73c05fe`, 5f86); both workflows use 2e37. Its 20 extra paths add low-memory build/Rust task-memory. Scripts cohere; later matrix changes only labels, with no newer debug-cache steps. Static audit found no blocker. Supported API arguments omit the memory flag: no default monitor/instruction changes. Flagged external launchers can change Cursor instructions/digests and remain unqualified. The merge added 41 master-identical paths, retained the green-36 inbox hunk and found UI fixtures matching upstream. Startup/backup, recovery projection, sleep diagnostics and binary backup change production. Static audit found eight Stop/ACK owner blobs and 37 sleep-work SQL templates unchanged, with sleep fences/single-flight accounting intact. Exact precommit tree: 416/416 across eight server files, binary backup 1/1, server types PASS; repeated scopes are not summed. The deferred-retirement P1 reproduced three real-DB/owned-process failures; missing proof stayed unverified. Recovery passed 47 process cases/33 proof negatives. Warning repair binds actual targets to same-run proof. Validation passed 729 scoped UI cases, a separate 359-case thread run, 111 backend cases (84 CAS, 6 assembled, 21 activity/privacy), types/tokens. Proof validators/predicate are unchanged; no new poller or increased timeout. The d8d3 attempt stays FAILED: 45 passes, two workspaces-a failures, derived verify failure and one skip. Both shards shared three failures: two successful mocks omitted the account guard’s required userId. The two-line fixture repair changed no guard, assertion or timeout. Three failures reproduced; 54 access/auth tests then passed, including account-change/denial negatives, plus UI types/tokens. The 69285 attempt stays FAILED: 49 jobs, 46 passed, serialized shard 9 failed, its verify aggregate failed and one selection job skipped. The shard passed 575/576 cases. Its aborted-snapshot case expected nine computes but saw eight: a final HTTP 200 coalesced while seven ordinary reads had not proved the aborted compute settled. Earlier CI and the unmodified local baseline passed with a miss; no local RED is claimed. The repair awaits the snapshot, allows exactly one extra GET if coalesced, then requires a miss and retains nine computes/all HTTP429 assertions. No production code, hook, loop, sleep or timeout changed. Six inbox and seven cache/admission cases passed locally, plus server types; 30 unrelated cases were filtered. Green 36 passed 576/576 without taking the extra-GET branch; local runs also missed that schedule. Current CI event merge 1ea9 now passed 576/576 and naturally exercised the former failure: coalesced (count 2, 1ms), then exactly one fresh miss (count 1, 16ms), with strict nine-compute/HTTP429 assertions intact. No instrumentation or retry was added. Earlier compatibility passed scoped remote/inbox, routine, API-placement and UI tests, plus types/migrations/snapshots/maps/tokens. The 89-path adoption restored fleet routing without workflow overrides or added skips. Each result retains its source identity. Live qualification remains actual `9af1a5de42a2`: unchanged Artifact grader PASSED 17/17 and active-Stop grader PASSED 21/21. All three provider test resources were deleted canonically with GET404; post-delete download returned the exact 27 bytes. Histories stayed stable (Artifact 121 and Stop 67 canonical identities), with 21 company runs, zero active work and no accounting/cancellation/reservation debt or integrity findings. Saved settings reopened; no-prompt Test/Linux admission passed with `claude-sonnet-4-5`. No new Save is claimed. The first Stop sampling case stays FAILED on a 10.373-second gap. Unchanged retry kept all 24 samples: 35.076 seconds quiet, maximum gap 4.584 seconds, plus a separate CANCELLED/artifact-absent read after 180 seconds. Initial grading rejected locator spelling before functional checks; metadata changed only after same-file/inode/byte proof, with raw evidence/oracles unchanged. Original Question/Plan/reconnect and historical deleted-artifact results keep their identities. Git trees verified 11 history-only conflicts and six earlier mainline paths. Hosted 9af to the public BRANCH differs in 222 paths; 13,500 other mode/blob leaves match. Runner runtime implementations and six observer/driver pins match 9af on that branch only; inherited `drivers/acpx/runtime-host.test.ts` differs. No all-Runner/src, CI/latest-master runtime or image equality is claimed. Later static audits through `8ab89f41e499` found no concrete API-only blocker. That base adds completed-history sleep proofs and an MCP cleanup migration; protected Stop/ACK owners are unchanged. These later changes are outside this CI and have no live qualification here. Host duplicate-card and later recovery/UI repairs retain separate proof, not deployed 9af identity. Direct-key coverage requires absent aiConnection; API-only placement skips inherited remote-workspace disk-full paths, and config-read gates match their parent. Other retained failures: stale fixture 132/133; E8 48/135 with 87 reset-hook failures; Mac 17 SQL failures/skips; title/startup/custody/Stop/deletion unknown causes and bounded recoveries; superseded warning/50 duplicate identities; pre-repair ACK/Core CI failures. Fixture RED/GREEN passed 7/7 browser and 121/121 shutdown tests with a failing broken-unsubscribe control; stable WSP wrapper passed 128 after physical teardown failure. No full local-suite pass is inferred. All paid attempts remain recorded; vendor dollar cost is UNKNOWN. ## Risks Experimental: Cursor independently acknowledges neither the effective model nor instruction digest before the first prompt. Explicit values are submitted and behavior checked live; unpriced provider dollar cost stays UNKNOWN. The placement exception applies only to validated native Cursor API execution. Other local work remains denied under managed-only policy. Missing/stale Stop or cleanup proof stays pending; damaged archives remain failed. Explicit Legacy keeps its existing policy owners. ## Model Used OpenAI Codex/GPT-6 family: tools, execution, browser checks, delegated review. API ID/context window unavailable. ## Checklist - [x] I have included a thinking path that traces from project context to this change - [x] I have specified the model used and the limits of available model metadata - [x] I have checked ROADMAP.md and confirmed this PR does not duplicate planned core work - [x] I have searched GitHub for duplicate or related PRs and linked them above - [x] I have linked public issues or described the issue in this PR - [x] I have not referenced internal or instance-local Paperclip issues or links - [x] My branch describes the change and contains no internal ticket ID - [x] I have run the scoped local tests reported above; retained failures are stated separately - [x] I have added or updated tests where applicable - [x] I have updated relevant documentation - [x] I have considered and documented the risks - [x] All required CI gates pass on the current head - [x] Fresh Greptile is 5/5 with no unresolved findings on the current head - [x] I will address all reviewer comments before requesting merge --------- Co-authored-by: Paperclip <noreply@paperclip.ing>
1146 lines
85 KiB
Markdown
1146 lines
85 KiB
Markdown
# Cursor Cloud on native Paperclip Runner — 2026-10-28
|
|
|
|
Owner: the lead integration agent in this task; delegated owners cover the Cloud
|
|
API client and this research/acceptance record. The lead owns integration,
|
|
qualification, review, and the final handoff.
|
|
|
|
Original source baseline: `25f1070fbdabd96b26cdf199e624a77905f3ca37`.
|
|
Current qualification checkout branch: `codex/cursor-cloud-qualified-base`.
|
|
Target: a reviewable PR with experimental, local-first native Runner support.
|
|
Merge, package publication, production rollout, and automatic conversion of
|
|
existing agents are separate actions, not completed or implied by this record.
|
|
|
|
Current delivery: [Runner core PR #18068](https://github.com/paperclipai/paperclip/pull/18068)
|
|
and dependent [product PR #18069](https://github.com/paperclipai/paperclip/pull/18069).
|
|
Neither PR is merged. Product PR #18069's Verification section owns the latest
|
|
candidate, check status and final acceptance decision.
|
|
|
|
## Hosted placement correction — 2026-10-30
|
|
|
|
Native Cursor Cloud uses a provider API controller. Cursor hosts the model and
|
|
commands; Paperclip runs only its qualified API client and bounded private artifact
|
|
stager. This placement has no Paperclip Computer, lease, task checkout or host
|
|
provisioning command. It is derived from the validated native Cursor profile and
|
|
persisted with the admitted run; recovery retains that backend and placement.
|
|
Earlier Cursor profiles retain their admitted workspace binding as identity;
|
|
recovery does not reopen that workspace or allocate a Computer. Known backend
|
|
and driver contradictions fail closed, while historical missing driver values
|
|
remain recoverable.
|
|
The generic managed-sandbox-only policy and local Computer denial stay intact.
|
|
Kubernetes-only execution remains unsupported in save, Test, inventory and run
|
|
admission. An unavailable Computer does not advertise local Legacy execution.
|
|
Legacy direct agents retain their existing selection and execution behavior.
|
|
|
|
Ordinary native setup clears the Computer binding and explains Cursor's hosted
|
|
environment. Save/reopen and Test use the same account/configuration contract as
|
|
run admission. The Cloud front door must pass the exact authenticated native-run
|
|
callback to the tenant; Core still enforces live run authority and per-turn scope.
|
|
|
|
The ordinary Cloud card is available only with native rollout and a qualified
|
|
controller. A server-held new setup draft can use that managed API default before
|
|
model selection. It keeps its setup hold and does not inherit another harness's
|
|
model or permissions. Unsaved automatic Test uses the advertised native default;
|
|
saved Legacy agents still require an explicit conversion.
|
|
|
|
This correction requires fresh hosted acceptance on its final image. Local and
|
|
synthetic checks do not qualify that deployed journey or erase prior failures.
|
|
|
|
## Review correction checkpoint — 2026-10-29 20:25 UTC
|
|
|
|
All six original acceptance gates have passed on their recorded candidates;
|
|
these results do not establish a pass for subsequent runtime changes.
|
|
|
|
| Gate | Retained live evidence |
|
|
| --- | --- |
|
|
| C1 Ordinary setup | Fresh Advanced → Paperclip Runner setup, saved reload and real catalog Test on `27172d6ee899`; saved trial retested on `3f4d92f3751e` |
|
|
| C2 Task and C6 artifact | `cursor-cloud-local-20261028-artifact-sonnet-2`, source `b18b743cd45d`, eight strict matchers and exact registered/downloaded bytes; owned remote cleanup confirmed |
|
|
| C3 Continuation and C5 replay | `cursor-cloud-local-20261029-followup-sonnet-11`, source `7591c52a8c32`, two runs on one owned Agent, one answered question, one injected stream cut and matching-cursor reconnect, unique ordered events, settled receipts and owned cleanup |
|
|
| C4 Active Stop | `cursor-cloud-local-20261029-stop-sonnet-3`, source `27172d6ee899`, independently observed foreground command, ordinary UI Stop, terminal cancellation, 15-second quiet window, zero accounting debt and owned cleanup |
|
|
|
|
The original failed Stop attempts remain failed: Stop-1 lacked the required
|
|
standard final API/screenshot package, and Stop-2 did not complete its observation
|
|
window after a status-read timeout. Stop-3 does not establish Stop-2's cause.
|
|
|
|
Final review corrections cover semantic planning, bounded status-read recovery,
|
|
atomic artifact staging and checkpoint acquisition. The planning repair retains
|
|
the pinned Paperclip context and tool restrictions while using the Cloud default
|
|
harness. Its two separate rejection gates have RED/GREEN proof; 2,390 affected
|
|
tests and Core typecheck pass, with an additional real-Rust/private-facade Plan
|
|
control. The Cloud driver, checkpoint and artifact suites pass 45, 38 and 15
|
|
controls respectively. Completed Product E2E support checks pass 4,905 tests
|
|
(two skipped) plus 137 source-contract tests. These are controlled results.
|
|
|
|
The explicit Cloud suite now also registers the ordinary semantic
|
|
`plan-revise-accept` cell. Its oracle requires draft/revision continuity and a
|
|
fresh owned session tied to approval of the exact revised confirmation. The
|
|
existing same-Agent follow-up oracle remains unchanged. The new Plan cell and a
|
|
fresh artifact cell are **unattempted at this checkpoint**, pending final source,
|
|
artifact and local-trial readiness. Historical artifact staging byte identity is
|
|
invalidated by the staging repair. Preserve the earlier grades and record the
|
|
new runtime identities and evidence impact before carrying other passes forward.
|
|
|
|
The local trial is intentionally stopped during dependency/source refresh; its
|
|
database was backed up before the additive upstream migration. No new provider
|
|
work has started in this review-correction phase. Existing experimental-model
|
|
acknowledgment and unpriced-cost limits still apply. No merge, publication or
|
|
deployment is implied.
|
|
|
|
## Historical pre-qualification snapshot — 2026-10-29
|
|
|
|
The following is the retained **pre-qualification snapshot**,
|
|
with production source `77b423471668d1ad55cbd4b66841d8a2b3acadf9` and Core
|
|
`53112a12cbd8d4850ff6d88b9d739f93b49f28f9`. The latest candidate and live
|
|
verdict belong in Product PR #18069's Verification section; keep the dated
|
|
snapshots here as historical evidence. A later passing attempt never rewrites
|
|
an earlier failed grade. Core has a fresh exact-head 5/5 review; current checks
|
|
and final live qualification are still pending.
|
|
|
|
The combined source contains the reviewed asynchronous Cloud authority fix,
|
|
safe checkpoint retirement for fresh sessions, ordinary Advanced Runner setup
|
|
forwarding, and the reproduced title-editor readiness/navigation fixes. Before
|
|
this combined candidate, Product `b0296016d5be` passed recursive typecheck and
|
|
build, and `3a4a7c558d73` passed all 1,000 native-session-executor tests.
|
|
New focused checks passed: 25 Core checkpoint archive controls; 13 Product
|
|
replacement/relay/non-Cloud controls; five relay/artifact cases; 341 UI cases,
|
|
then 232 affected editor/detail cases after the cached-route fix; UI typecheck
|
|
and token gates; and the unchanged original title-outage browser test. These
|
|
are bounded code gates, not complete live acceptance. Build and typecheck the
|
|
combined frozen source before another paid attempt.
|
|
|
|
The saved local trial retains the real private key binding, native Cloud runtime
|
|
and explicit Sonnet model. Its earlier save/reload and key/catalog Test passed.
|
|
The trial is temporarily paused to isolate the qualification bundle and callback
|
|
port. Restore its ordinary idle state, serving candidate and callback listener
|
|
after the live campaign, then retest ordinary setup and saved configuration.
|
|
Candidate `b18b743cd45d` retains the earlier ordinary task and exact artifact
|
|
passes. Continuation, full replay and active Stop remain unqualified at this
|
|
snapshot; the next Sonnet-11 attempt has not been activated.
|
|
|
|
Native create is working again. On 2026-10-29 a bare HTTP control and the unchanged
|
|
client plus original observer each returned 201, completed the exact expected
|
|
reply, and independently confirmed owned Agent/Run absence after deletion.
|
|
The official [Multiple services degraded incident](https://status.x.ai/history?incident=automations%2Fps_d25569b21cabd283)
|
|
covered Cloud Agents on 2026-10-28 from 21:15 to 23:13 UTC. The three late failed
|
|
minimal controls occurred inside that window. This is the likely explanation
|
|
for those HTTP 500 responses; request-level causation remains unproven. No
|
|
credential, account, model, SDK, request-schema or header change was needed to
|
|
restore successful creation.
|
|
|
|
The tenth continuation attempt reached a successful first turn, answered its
|
|
semantic question, committed a matching interrupted terminal and settled the
|
|
explicitly unpriced accounting receipt. Its second local turn failed before a
|
|
second native create at the local Runner authority-rotation boundary. The
|
|
bounded cold-handoff repair passes real Rust/private-facade checks. The original
|
|
failed/cleanup-failure grade remains retained. The next paid attempt requires
|
|
exact source/artifact readiness; active Stop remains held until strict
|
|
continuation/full replay passes. Both PRs stay draft while gates remain open.
|
|
|
|
## Release outcome and authority
|
|
|
|
An operator selects Cursor Cloud in native Runner, saves an API-key binding and
|
|
explicit model, assigns an ordinary task, sees real provider activity, and gets
|
|
an independently verified result through Paperclip. Cursor executes in its hosted
|
|
environment; the first Paperclip controller/Runner acceptance environment is the
|
|
local development stack. Local-first does not mean that Cursor's model or tools
|
|
execute on the operator's computer.
|
|
|
|
The user authorized implementation and a reviewable PR. On 2026-10-28 the user
|
|
also approved the experimental exception below and selected local-first delivery.
|
|
This adds a native integration for a harness already available through the legacy
|
|
direct adapter. Preserve that adapter, historical records, and saved runtime
|
|
selection. Do not migrate existing agents as a side effect.
|
|
|
|
**Authorized experimental exception:** the Cloud interface does not acknowledge
|
|
the effective model or instruction digest before starting the first prompt.
|
|
Proceed with explicit submitted model selection, recorded exact instruction
|
|
content/digest, visible experimental treatment, and honest evidence labels.
|
|
Do not describe a submitted value or an SDK echo as a native acknowledgment.
|
|
This exception does not relax company authorization, semantic-tool policy,
|
|
credential isolation, Stop fencing, result acceptance, or existing budget gates.
|
|
|
|
Native Cursor permission requests, native questions, native plan decisions, and
|
|
fixed per-run dollar enforcement are unsupported in this release. Paperclip
|
|
semantic tools remain a distinct contract. Cursor-native tools are not governed
|
|
by a Paperclip per-command approval callback.
|
|
|
|
Authentication uses an explicitly bound Cursor user/service-account API key.
|
|
Authenticated catalog, repository access and real hosted execution were observed
|
|
on 2026-10-28. Task and artifact acceptance passed on the candidate recorded below.
|
|
Record binding identifiers only;
|
|
never put key values in this plan or evidence. Select the acceptance model from
|
|
the real account's catalog and record it before a paid attempt. It is a test
|
|
choice, not a product allowlist. No paid calls were made by the research owner.
|
|
The user explicitly delegated disposable repository/model selection and approved
|
|
the test spend on 2026-10-28. The initial operational reservation was $10 for the
|
|
small acceptance cells. The user subsequently delegated proportionate test
|
|
spending. Actual spend remains unknown; do not infer it from prompt count or
|
|
call the reservation a provider-enforced limit. Each campaign permits one
|
|
attempt per cell and no automatic paid retries. This is a planning limit, not a native
|
|
Cloud dollar cap: provider cost remains unknown until a billing receipt is
|
|
available. Diagnose the first divergence before another paid attempt.
|
|
|
|
## Architecture and compatibility boundaries
|
|
|
|
- Provider-owned code owns HTTP v1 requests, SSE decoding/replay, native identity,
|
|
status mapping, model parameters, provider errors, and cancellation.
|
|
- Native Runner owns normalized events and the semantic transport. The selected
|
|
design is a Node sidecar behind the existing Rust Codex-style facade, following
|
|
the OpenCode pattern. A public MCP relay forwards to the sidecar-owned Unix
|
|
HTTP bridge, which emits `item/tool/call` through Rust and existing PRP to Core
|
|
authority, then returns the result. Do not add a parallel PRP command. Controlled transport checks and real tools in the recorded C2 candidate
|
|
exercised this bridge. The remaining live cells retain separate gates.
|
|
A cloud VM cannot call the local controller's loopback address. Choose and
|
|
record the relay's authentication, reachability, expiry, and cleanup contract
|
|
before a live run. Do not substitute SDK in-process custom tools: those are
|
|
local-agent functionality.
|
|
- The controller remains authoritative for company/run/session identity,
|
|
authorization, audit, revisions, budgets, task completion, and durable effects.
|
|
A replayed or late remote call must pass current source-run authority.
|
|
- New provider-neutral shared fields require a concrete consumer and an absent/
|
|
disabled-provider behavior. Keep Cursor payloads and SDK types in provider code.
|
|
- Persist the durable Cloud agent ID separately from each Cloud run ID and the
|
|
local Paperclip run/session identity. Recovery must observe the existing run
|
|
before creating paid work. Refresh scoped MCP credentials on continuation.
|
|
- Stop must cancel the owned Cloud run, verify provider terminal state, close
|
|
local stream/relay resources, and fence later effects. A local socket close or
|
|
terminal Paperclip row alone does not prove remote work stopped.
|
|
- Preserve legacy direct invocations, transcripts, cancellation, and finalization.
|
|
A direct run starts no runnerd process or PRP connection. Visiting/saving an
|
|
existing agent does not change its runtime.
|
|
- The first supported controller platform is the actual local host used for
|
|
acceptance; record OS/architecture and installed runtime identity when tested.
|
|
SSH, Daytona, self-hosted Cursor workers, all-platform claims, and fleet rollout
|
|
are outside this campaign. Source execution alone does not prove packaging.
|
|
|
|
## Research dossier
|
|
|
|
Research date: 2026-10-28, with a primary-source refresh on 2026-10-29. Public
|
|
documentation is mutable; the original inspected shipped SDK is exactly
|
|
`@cursor/sdk@1.0.28`. The refresh inspected `@cursor/sdk@1.2.0` and the unchanged
|
|
OpenAPI digest below; it found no request-schema or transport change needed
|
|
for the observed successful v1 creates. Evidence labels below distinguish
|
|
**documented**, **source-observed**, **unverified**, and **product-qualified**.
|
|
The dossier describes the inspected provider contract. Authenticated observations
|
|
and exact product results are recorded separately in the ledger below.
|
|
|
|
Official references:
|
|
|
|
- [Cloud API reference](https://cursor.com/docs/cloud-agent/api/endpoints) and
|
|
[OpenAPI schema](https://cursor.com/docs-static/cloud-agents-openapi.yaml).
|
|
- [API authentication and rate limits](https://cursor.com/docs/api).
|
|
- [TypeScript SDK](https://cursor.com/docs/sdk/typescript).
|
|
- [Cloud environment setup](https://cursor.com/docs/cloud-agent/setup),
|
|
[capabilities](https://cursor.com/docs/cloud-agent/capabilities), and
|
|
[secrets/network](https://cursor.com/docs/cloud-agent/security-network).
|
|
- [Local CLI ACP](https://cursor.com/docs/cli/acp), a separate interface.
|
|
|
|
The Cloud API is v1 public beta: durable agents contain per-prompt runs. Creation
|
|
starts work immediately. Follow-ups, steering, SSE, cancellation, artifacts, and
|
|
usage have first-class APIs. Replay is run-scoped and retention-bounded. Agent
|
|
git state spans runs, so it cannot independently attribute a change to one turn.
|
|
The downloaded OpenAPI SHA-256 is
|
|
`dd3b836c4e95ad68892274280e53c348619cdd2051988793d2a85e8213d9a489`.
|
|
Current prose and schema differ on agent `IDLE` and some newer fields; preserve
|
|
unknowns and verify actual responses rather than assuming agreement.
|
|
|
|
Installed SDK findings, reproducible by inspecting its distributed
|
|
`dist/esm/options.d.ts`, `cloud-api-client.d.ts`, and `642.js`:
|
|
|
|
1. The Cloud run constructor assigns its model from a caller argument. `send()`
|
|
passes the chosen input; a fresh get/list does not. `run.model` and
|
|
`result.model` therefore do not establish provider model admission.
|
|
2. Cloud model validation checks catalog membership/aliases and tolerates some
|
|
discovery failures. It is not native model acknowledgment.
|
|
3. The status mapper handles `CREATING`/`RUNNING`, `FINISHED`, and `CANCELLED`;
|
|
every other value maps to error. It does not recognize the documented active
|
|
`WAITING_FOR_BACKGROUND_WORK` state. Unmodified reuse is unsafe.
|
|
4. This Cloud SDK chunk has no steering implementation. A provider-owned HTTP
|
|
client or a deliberately qualified SDK upgrade must cover the chosen API.
|
|
5. Host callback `customTools` are local only; per-send Cloud use is rejected.
|
|
Tool restrictions are also local only. Cloud MCP means a reachable remote
|
|
server or a server process inside the VM.
|
|
6. The inspected public Agent/Run API responses have neither an effective-model
|
|
field nor an instruction-digest receipt. There is no pre-prompt admit phase
|
|
or native human-decision response endpoint in that schema.
|
|
|
|
The SDK chunk SHA-256 is
|
|
`67a4eacc8435774d52a1d0f0a2d608c00b7f4f62ffa9cb46fe0b71523304a7bf`.
|
|
No workstation path is needed to understand or reproduce these findings: inspect
|
|
the published package version and named distribution files.
|
|
|
|
## Capability inventory
|
|
|
|
`Required` means part of this release; `Outside` means discovered but not part of
|
|
this campaign; `Unsupported` means no product promise. Controlled checks establish
|
|
their tested boundary; authenticated observation and product qualification are
|
|
distinct evidence levels. Exact candidate identities and failed attempts are
|
|
in the ledger. Cloud v1 means the documented API as researched above; SDK means
|
|
the exact inspected 1.0.28 package.
|
|
|
|
| Capability/field | Exact harness/version/mode | Native evidence | Transport/wrapper | Runner mapping | Durable product/UI | Qualification | Loss/reason/next action |
|
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
| Auth/key identity | Cloud v1 | Authenticated catalog and hosted work observed | Bound Bearer auth | Native admission implemented | Saved secret reference/Test | C1 passed | Required; no credential value in evidence |
|
|
| Entitlement/repository access | Cloud v1 | Private fixture access and hosted clone observed | Typed API errors | Actionable admission failure | Reopen/reconnect | C1/C2 passed | Required setup |
|
|
| Protocol/version discovery | Cloud v1 beta | Documented; mutable | Strict v1 client and SSE decoder | Versioned driver/launch profile | Diagnostic identity | Controlled checks and live traffic | Retain exact candidate; no provider version negotiation claim |
|
|
| Model catalog/parameters | Cloud v1 | Authenticated catalog observed | HTTP discovery and explicit submitted values | No model fallback | Saved model/params | C1 passed; explicit Sonnet submitted live | Qualification model is not an allowlist or effective-model acknowledgment |
|
|
| Exact model acknowledgment | Cloud v1 / SDK | Source-observed absent/echo | No receipt | Submitted identity only | Visible experimental limit | Unsupported | Authorized exception |
|
|
| Default/Auto routing | Cloud v1 | Documented | Provider routing | Preserve caller choice | No fixed-model claim | Unverified | Outside acceptance model |
|
|
| Agent/Plan modes | Cloud v1 | Agent request observed | Always explicit Agent mode | Plan rejected | Agent-only Cloud configuration | Agent observed in C2 | Native Plan decisions unsupported |
|
|
| Reasoning/context params | Cloud v1 | Documented catalog shape | Per-model values | Preserve values | Selected configuration | Unverified | Outside required cells |
|
|
| Exact instructions on create | Cloud v1 | No digest receipt | Full inline text and submitted digest | Content bound to checkpoint | Experimental limit | Controlled serialization; C2 behavior observed | Native acknowledgment unavailable |
|
|
| Instructions on continuation | Cloud v1 | No digest receipt | Current full revision or fixed per-turn control guidance | Active digest changes fenced | Saved current instructions | Controlled revised/unchanged-turn checks | Required C3 remains unqualified |
|
|
| Assigned skills | Cloud v1 | Bounded text assets inline | Virtual read-only file bundle | No local path/mount assumption | Submitted instruction bundle | Controlled asset checks | Binary assets, scripts by local path and persistent directory unsupported |
|
|
| MCP discovery/execution | Cloud v1 | Authenticated SDK discovery and real tools observed | Scoped HTTPS relay to private Unix bridge | Normal Rust/PRP semantic transport | Authorized Core receipts | C2 passed; real question observed in C3 | Required real tool result |
|
|
| MCP refresh/reconnect | Cloud v1 / SDK | Run-scoped inline configuration | Re-supply on every turn | Fresh expiring tool capability | Current source-run authority | Controlled follow-up/revocation checks | Required live C3 remains unqualified |
|
|
| Runtime secrets | Cloud v1 | Key and scoped callback auth observed live | Bound auth key and scoped MCP headers only | Reject other selected process variables | Hosted shell secrets configured in Cursor | C1/C2 passed; controlled rejection checks | Hosted envVars unsupported |
|
|
| Host callback tools | SDK 1.0.28 Cloud | Source-observed local only | No Cloud callbacks | Use relay | No callback claim | Unverified | Unsupported route |
|
|
| Assistant text/boundaries | Cloud v1 | Real SSE and durable PRP rows observed | Typed SSE | Ordered canonical events | Task transcript | C2 passed | Required normal task |
|
|
| Thinking visibility | Cloud v1 | Documented event | SSE | Existing visibility policy | Policy-controlled rendering | Unverified | Outside required cells |
|
|
| Tool identity/arguments/results | Cloud v1 | Real tool names, statuses and bounded results observed | SSE with stable call identity | Builtin facade; Core raw-argument policy retained | Activity and semantic receipts | C2 passed; controlled projection checks | Native truncation/redaction is not lossless raw capture |
|
|
| Tool errors/partial deltas | Cloud v1 | Running frames and argument updates observed | Bounded typed projection | Consistent repeated starts accepted | Native activity and error status | Controlled projection/Stop observer checks | No broader lossless-delta promise |
|
|
| Shell output/background work | Cloud v1 / SDK | Native command traffic observed | Active/background status handling | Preserve active wait | Running until terminal proof | Controlled status checks | C4 must observe actual pending command |
|
|
| Native permission approval | Cloud v1 | No API callback | Native tools auto-run | No interception | Explicit limitation | Unverified | Unsupported |
|
|
| Native question | Cloud v1 | No response contract found | No API callback | None | No supported claim | Unverified | Unsupported |
|
|
| Native plan decision | Cloud v1 | No response contract found | No API callback | None | No supported claim | Unverified | Unsupported |
|
|
| Semantic tool authorization | Paperclip native | Existing controller contract | Run/session/company/agent/epoch-bound relay | Normal semantic dispatcher | Durable audit/effects | C2 accepted effects; controlled negative/expiry checks | No parallel authorization path |
|
|
| Semantic questions/approval/plans | Paperclip native | Separate existing contracts | Normal semantic relay | Structured question delivered | Real browser answer persisted | Question and answer observed in C3 | Complete continuation still unqualified; no native equivalence or broader decision claim |
|
|
| Todos/plans/revisions | Cloud v1 | Rich events not qualified | Provider translation | No invented capability | Existing generic surface only | Unverified | Outside required cells |
|
|
| Active steering/queue | Cloud v1; SDK absent | Provider API documented | Not exposed by this driver | Descriptor explicitly disables both | No active steering/queue promise | Unsupported in this release | Ordinary follow-up is separate |
|
|
| Ordinary follow-up | Cloud v1 | Documented | Existing Agent/new Run | Stable session identity and refreshed callback | Same task continuation | Controlled same-Agent and governed-yield tests | Required C3 awaits live confirmation of the bounded timing repair |
|
|
| Interruption/replacement | Cloud v1 | Cancel/new-run primitives | Provider-owned sequencing | Ownership fence | Stop then continue | Unverified | No implicit simultaneous turn |
|
|
| Load/resume/history | Cloud v1 | Durable Agent/Run API observed | Exact owned identity lookup | Saved deadline and cursor; durable terminal acknowledgment | Persisted separate Agent/Run IDs | Controlled native crash/recovery checks | Ambiguous follow-up identity remains fenced |
|
|
| Fork/compaction | Cloud v1 | Not qualified | No promised route | None promised | None promised | Unverified | Outside/unknown |
|
|
| SSE replay | Cloud v1 | Real event IDs and exact cursor reconnect observed | Last-Event-ID | Ordered source-sequence deduplication | Durable event/effect identity | Controlled checks; partial live C5 transport proof | Full C5 requires normal two-turn settlement |
|
|
| Expired replay | Cloud v1 | Documented 410 | Exact owned terminal lookup | No new paid prompt; bounded reconciliation | Incomplete history remains explicit | Controlled expired-stream check | No live retention-expiry claim |
|
|
| Subagents/children | Cloud v1 | Custom agents documented | Rich identities not qualified | No attachment promise | No invented parent/child UI | Unverified | Outside required cells |
|
|
| File edits/diffs | Cloud v1 | Tools/git documented | Provider stream/git snapshot | Activity only until proven | Independent result check | Unverified | Do not trust agent summary |
|
|
| Images/inbound media | Cloud v1 | Images documented | Prompt attachment | Bound existing input | No broader media claim | Unverified | Outside required cells |
|
|
| Artifacts | Cloud v1 | Native listing and signed download observed | Exact-host HTTPS and bounded bytes | Verified private staging and relative Core reference | Registered/downloadable result | C6 passed; exact 24 bytes/SHA/MIME | Core containment, symlink and hash guards retained |
|
|
| Usage/cache/subagent totals | Cloud v1 / SDK | Authenticated token response observed diagnostically | Client usage API available | Quantitative production facade not wired | Usage/cost unknown | Production accounting unsupported | Confirmed terminal closure settles explicitly unpriced; receipt/budget controls pass |
|
|
| Settled dollar cost | Current SDK docs | Documented eventual fields | API/schema divergence | Unknown until receipt | No fabricated zero | Unverified | Outside fixed-dollar guarantee |
|
|
| Per-run dollar ceiling | Cloud v1 | No enforcement contract | No admitted native cap | Existing budget gates only | Explicit limitation | Unverified | Unsupported |
|
|
| Idle/heartbeat/retry behavior | Cloud v1 | Partial documentation | Stream/recovery policy | Bounded activity | Quiet idle state | Unverified | No idle polling loop claim |
|
|
| Cancel/terminal status | Cloud v1 | Cancellation and terminal API reads observed | Exact Run cancel plus lookup | Unconfirmed termination stays fenced | Durable cancellation | Cleanup observed; native Stop/recovery controls pass | Required active-work C4 unrun |
|
|
| Late callbacks/effects | Paperclip native | Existing authority contract | Expiry/revocation and current actor authority | Fence stopped generation | Stale mutation rejected | Controlled relay/authority checks | C4 still requires bounded live observation |
|
|
| Native process/VM cleanup | Cloud v1 | Hosted lifecycle opaque | Delete plus independent exact Agent/Run 404 | No host-PID proof | Exact API absence recorded | Observed after retained campaigns | No physical remote VM cleanup claim |
|
|
| Local relay/stream cleanup | New integration | Exact owned process exit observed | Socket close/expiry | Bounded shutdown and receipt acknowledgment | No lingering owned local work | Packaged/native controls and live cleanup | Required C4 still unrun |
|
|
| Config/command discovery | Cloud v1 | Limited API inventory | Provider-specific | No arbitrary CLI promise | Normal configuration | Unverified | Outside required cells |
|
|
|
|
## Finite acceptance ledger
|
|
|
|
These six cells are the release's ordinary-user denominator. Each live attempt
|
|
must name the exact application/Runner commit, dirty state, client/profile
|
|
identity, local OS/architecture, provider API contract, credential binding,
|
|
model/params/mode, fixture/grader revision, run IDs, cost/reservation, and cleanup.
|
|
Keep original failures and new attempts together. A later patch requires an
|
|
evidence-impact decision before carrying a prior pass forward.
|
|
|
|
| Gate | Local-first cell | Required independent observation | Candidate/attempts | Verdict | Next action/owner |
|
|
| --- | --- | --- | --- | --- | --- |
|
|
| C1 Setup | Fresh configure; save/reopen/Test/reconnect | Correct saved runtime/model/binding; useful credential failure; real account test; no launch merely on read | Served `ed4ef4796586` passed save/reload, explicit Sonnet and real key/catalog Test with only the authorized effective-model acknowledgment warning. Ordinary UI cleared the paused manager. The trial is temporarily paused during the current campaign. The ordinary Advanced Runner mapping is now repaired and controlled; its final browser acceptance remains pending | Passed on recorded saved trial | Restore the final app/callback, complete ordinary setup and reopen/Test; configuration Test does not prove native create succeeds |
|
|
| C2 Task delivery | Ordinary task using real semantic tools | Provider activity; exact submitted content; authorized tool result; durable task finish accepted by controller; independently checked output; cleanup | `cursor-cloud-local-20261028-artifact-sonnet-2`, source `b18b743cd45d`, explicit `claude-sonnet-4-5`, all 8 matchers passed; result SHA-256 `eea3414ff54c7de99f4fc533cd4d88d415bc501dc56e95aa73a8c8f7fe09f270`; original failed campaigns retained below | Passed on recorded candidate | Assess pending recovery changes before carrying this pass forward |
|
|
| C3 Continuation | Follow-up on existing task/session | Same Cloud agent, distinct Cloud run; current instructions/tool grants; visible reply and durable result without duplicate work | Seven failed live campaigns (1/2/3/4/7/9/10) retain original grades. Attempts 5/6/8 stopped at local infrastructure. Sonnet-10 completed the first turn and accounting settlement but failed local authority rotation before a second native create; the cold-handoff repair passes controlled real-boundary checks. The separate stale-response repair passed 60 Cloud cases, including 14 old-driver red controls | Unqualified | Build and freeze the combined candidate, then one bounded Sonnet-11 attempt; no automatic paid retry |
|
|
| C4 Stop | Stop while provider work is actually pending | Cancel exact run; observe provider terminal state; close local resources; later relay calls/replays cannot mutate task; bounded observation recorded | Supporting controlled cancellation and race checks pass; no live active-command Stop has been attempted | Unqualified; live cell unattempted | After C3/full C5 passes, verify real pending command identity before ordinary UI Stop |
|
|
| C5 Replay | Disconnect/reconnect and retention expiry | Resume cursor; stable order; no duplicate effect/reply; expired stream reconciles through known run without a new paid prompt | Failed campaigns retain exact cuts/cursors and ordered unique events. Sonnet-10 recorded one cut, matching-cursor 200 reconnect and 61 unique ordered canonical events, but failed before second-turn admission | Partial transport proof; unqualified | Requires normal two-turn completion on the new frozen candidate |
|
|
| C6 Artifact | Download provider-produced result | Listed relative artifact; safe retrieval; independently verified bytes; usable Paperclip result access after settlement; cleanup recorded | Same Sonnet-2 result as C2; one registered/downloaded artifact, exact 24-byte fixture and MIME verified; SHA-256 `475af2a29ebe3347d92d24efaa58ee6e50a96c1e25297a4410ea12407aa5c1d9`; exact owned Agent and Run each returned 404 after cleanup | Passed on recorded candidate | Keep the original artifact bytes/receipt and repeat if the output path changes |
|
|
|
|
Pre-qualification snapshot total: **3 passed on recorded candidates and 3
|
|
unqualified of 6 required**. See Product PR #18069 Verification for the later
|
|
current verdict. C1 retains its saved-trial candidate; C2/C6 retain their original
|
|
candidate identities. C4 has no live attempt. At this snapshot the release was
|
|
not qualified.
|
|
A user-approved 30-day key now authenticates to the real Cloud model catalog and
|
|
is bound privately in the ready local trial. The user approved the callback
|
|
tunnel and access to the new private README-only fixture repository. Both are
|
|
configured, and a fresh authenticated repository preflight confirms access.
|
|
The saved product Test passed after reopening across a controller restart. An
|
|
initial Test failure was traced to test-drive intentionally discarding ambient
|
|
PAPERCLIP_* routing variables; saving auth.publicBaseUrl in its isolated instance
|
|
configuration supplied the callback origin. This was setup repair, with no
|
|
production-code change or provider prompt. Task delivery retains its earlier
|
|
pre-prompt and hosted failures alongside the passing Sonnet artifact attempt.
|
|
The first four continuation attempts retain their original failed grades and
|
|
exact owned Agent/Run absence after cleanup or later reconciliation. The fourth
|
|
keeps its original cleanup-failure grade. Later blocks and create failures are
|
|
recorded separately below. The direct controls and latest cleanup report no
|
|
remaining active owned native work. No accepted Run ID existed for the create
|
|
500 controls, so no Run lookup or Run-404 evidence was invented.
|
|
The original cleanup-uncertainty grades remain retained. Hosted billing is
|
|
unknown; no zero-cost claim is made.
|
|
No source, simulation, protocol test, or screenshot qualifies a live cell.
|
|
|
|
Required supporting verification, reported separately from those six cells:
|
|
|
|
- Credential-free client/driver checks cover status mapping, SSE chunking and
|
|
duplicates, transient errors, unavailable features, cancellation races, unknown
|
|
usage, replay expiry, and malformed provider data. They must exercise the
|
|
selected implementation rather than mirror its internals.
|
|
- Semantic relay checks prove source-run/company binding, denied operations,
|
|
credential expiry/revocation, tool-result delivery, and no late mutation.
|
|
- Focused regressions preserve legacy Cursor Cloud and another existing native
|
|
provider, with absent/disabled integration behavior.
|
|
- Exercise the clean installed package/runtime resolution used by the local
|
|
release. Record actual installed artifacts and dependencies. A source checkout
|
|
or startup probe alone is insufficient.
|
|
- Before PR-ready handoff run `pnpm -r typecheck`, `pnpm test:run`, and
|
|
`pnpm build`; report any unrun checks precisely. Run relevant token/map/catalog
|
|
checks if those owned surfaces change. Follow the repository PR template and
|
|
resolve applicable review feedback.
|
|
|
|
## Resumable state and next gate
|
|
|
|
| Item | Verified state | Owner | Exact next action |
|
|
| --- | --- | --- | --- |
|
|
| Research | Official docs and original SDK 1.0.28 inspected; SDK 1.2.0/OpenAPI refresh on October 29 confirms unchanged successful v1 requests | Research owner | Keep original and refreshed findings tied to their evidence dates |
|
|
| Experimental exception | User-approved 2026-10-28 | Lead | Preserve honest admission/cost limits in product and PR |
|
|
| API client | Implemented by client owner; supporting controlled wire proof reported separately | Client owner | Preserve exact pinned contract and run live acceptance |
|
|
| Native driver/semantic relay | Earlier real C2 tools passed; current cold-handoff repair passes real Rust/private-facade tests. Generation/authority fencing now passes 60 Cloud controls | Lead | Build and freeze the combined exact artifact identity |
|
|
| Credentials/model/budget | Real key privately bound; catalog/repository access and hosted execution observed; scoped tunnel approved; cost unknown | Lead | Preserve explicit model and owned cleanup for each paid attempt |
|
|
| Candidate/evidence | Production source `77b423471668`, Core `53112a12cbd8`; controlled repair gates above pass. Final combined build, current CI and live gates remain pending at this snapshot; both PRs draft | Lead | Freeze exact source/artifacts, run C3/full C5 then C4, prove private package closure and restore the trial; record the current ledger in Product PR Verification |
|
|
|
|
Native create is available again under unchanged requests. The remaining gates
|
|
are exact-candidate artifact readiness, continuation/full replay, active
|
|
Stop, current private package proof and the saved local trial restoration.
|
|
Latest-head CI must also be green. A generic retained-Codex replay ACK test has
|
|
an unchanged local failure; its bounded investigation is recorded below and
|
|
must not be silently relabeled as passing.
|
|
Each paid task must be small, have a known output,
|
|
retain run/evidence identity, and have cleanup already wired. Diagnose the first
|
|
divergence before another paid attempt. Record active jobs and cleanup obligations
|
|
here before interruption; there are no active provider jobs recorded by the
|
|
research owner.
|
|
|
|
The driver-owned supporting check used the real sidecar stdio, Cloud HTTP/SSE
|
|
client with a controlled peer, private Unix MCP bridge, and exact accepted Core
|
|
tool result. It covers fresh creation, same-Agent follow-up, a revised idle
|
|
instruction bundle delivered once, unchanged follow-up without repeated bundle,
|
|
strict active recovery identity, replay cursor deduplication, initialized MCP
|
|
session isolation, ambiguous initial-create recovery without another prompt,
|
|
Stop cancellation plus native terminal lookup, killed-owner stale-socket
|
|
recovery through the actual initialized driver under umask 022, persisted
|
|
absolute deadline cleanup, expired relay rejection before
|
|
mutation, provider-owned artifact discovery, verified artifact bytes, and
|
|
reconciliation HTTP 401/403/404/422 preserving uncertain initial-create identity.
|
|
The final local command ran the four driver/asset/artifact/proxy test files with
|
|
default Vitest deadlines; all 26 passed in 4.18 seconds. The proxy fixture uses
|
|
explicit bounded five-second readiness waits. Earlier attempts had four
|
|
default-five-second test timeouts and one default-one-second readiness timeout
|
|
during host contention; they remain failed supporting attempts, and no
|
|
production or repository-wide test timeout was increased. Client token usage
|
|
retrieval exists, but the production facade does not deliver those receipts, so
|
|
its descriptor marks production usage accounting unsupported and the UI must
|
|
retain unknown usage/cost. A follow-up whose HTTP response loses the native Run
|
|
identity remains deliberately fenced: it is not retried or cancelled by guessing
|
|
an Agent's unrelated latest Run. This limitation needs explicit live evidence or
|
|
an improved provider identity contract before stronger recovery claims.
|
|
|
|
## Local milestone evidence — 2026-10-28
|
|
|
|
Entries below retain earlier state and pending decisions at each milestone.
|
|
The ledger above is the dated pre-qualification snapshot; the later current
|
|
release decision is recorded in Product PR #18069 Verification.
|
|
|
|
### Native create recovery and local cold handoff — 2026-10-29
|
|
|
|
The independent bare HTTP control returned 201/FINISHED with the exact expected
|
|
31-byte reply. The paired original client/observer control did the same. Both
|
|
had independently verified owned Agent and Run 404 responses after cleanup.
|
|
Their comparison receipt SHA-256 is
|
|
`4991f87568eb2619277ba062bb9b1c27d16eb5425edcf78e736e17b24d6e6d07`.
|
|
The official incident window and these unchanged successful requests support a
|
|
service-outage explanation for the earlier late 500 responses, without proving
|
|
a request-level vendor root cause. Usage and cost remain unknown.
|
|
|
|
Sonnet-10 on source `f7bfb75f794a567175d9938d2c8c0ad4dea4669a` reached
|
|
first-turn success, one applied question answer, the matching canonical
|
|
interrupted terminal and accounting-ready receipt sequence 4. The second local
|
|
turn failed at `native_runner_prp_run_rotation_unavailable` before a second
|
|
native create. One SSE cut and matching-cursor reconnect returned 200; 61 unique
|
|
canonical events stayed ordered. The original FAIL/cleanup_failure result is
|
|
retained with SHA-256
|
|
`963c331d5061836560774d8ffc06d82a42d2c3a4ae2b9324e7ff9e9d89b3b2ff`.
|
|
Later exact owned Agent/Run lookups returned 404; all six owned local process
|
|
identities exited, the fixture PostgreSQL stopped and the callback port was
|
|
released. Reconciliation does not rewrite the original grade.
|
|
|
|
Repair `45ab2610fa7d1d2f9731cd88dcacb87e4c32c222` admits locally owned
|
|
Cloud cold authority rotation separately from warm recovery. The new authority
|
|
refreshes current instructions; same-authority recovery retains the admitted
|
|
instructions. The Rust backend accepts that changed Cloud instruction field
|
|
only after confirmed owned shutdown and a freshly validated receipt have
|
|
atomically persisted durable prepared state. Every other provider-profile field
|
|
remains exactly compared; ambiguous stop, foreign ownership and retained ACK
|
|
debt stay fenced. Real Rust/private-facade cases verify distinct per-turn process
|
|
and Run identity with the same Agent, fresh relay/tool grants and exact
|
|
instruction serialization. The final merged candidate passed 9 facade cases,
|
|
14 existing transport controls, 12 Cloud Rust and 7 native Cloud cases, and 107
|
|
profile/history controls. Published identity bytes remain unchanged; new current
|
|
identities account for the changed bound source inputs.
|
|
|
|
One generic retained bare-Codex replay case failed at the existing two-second
|
|
old-authority ACK fence (`native_cleanup_maintenance_unproven`); its cohort was
|
|
18/19. The unchanged isolated case also failed using a pristine upstream Rust
|
|
binary with the merged controller. Selected controller ACK and maintenance code
|
|
is byte-identical to upstream. That mixed-controller experiment does not prove
|
|
a full pristine baseline, and an instrumented diagnostic pass does not replace
|
|
the unchanged failure. No timeout, guard, oracle or skip was changed. Generic
|
|
ACK latency work is deferred; local verification remains nongreen for that
|
|
case and latest-head CI is required.
|
|
|
|
The Product `3a4a7c558d73` title-editor CI failure occurred after a successful
|
|
heading click and before the first textarea fill. No outage or persistence
|
|
assertion ran. Seven relevant source paths match pinned upstream; a loading
|
|
readiness remount is a hypothesis awaiting deterministic reproduction. The
|
|
separate Core review race allowed a delayed old native read to settle a newer
|
|
turn. Repair `9283dcdb3207` passed 60 Cloud tests, including 14 controls that
|
|
independently failed against the original driver. Captured logical/native
|
|
authority fences launch, reads, stream output, errors and Stop. Controlled
|
|
passes do not substitute for current live qualification.
|
|
|
|
### Reviewed setup, fresh replacement and editor repairs — 2026-10-29
|
|
|
|
Core `53112a12cbd8` adds the checkpoint owner's archive helper through the
|
|
existing vendor boundary. It acquires the existing exclusive lock, validates the
|
|
exact binding/session/owner and admits only pristine idle or confirmed terminal
|
|
state with no pending create, deadline or terminal ACK debt. It archives only
|
|
the exact checkpoint and durably syncs the destination chain. Live ownership,
|
|
foreign/corrupt/missing or ambiguous state stays fenced. All 25 filesystem and
|
|
lock controls passed; directory durability and pristine-history audit gaps were
|
|
repaired before the commit. Published provider identities remain unchanged.
|
|
|
|
Product `9550dc119d` calls that helper before moving generic continuity state.
|
|
The real-driver server regression first failed with the original checkpoint
|
|
already-exists error, then passed with exact old checkpoint preservation and a
|
|
fresh Core session open. The 13-case cohort covers positive replacement,
|
|
active/foreign/unacknowledged/live-owner refusal, relay cleanup and non-Cloud
|
|
compatibility; five relay/artifact cases and direct server typecheck also passed.
|
|
No PostgreSQL or real provider was used for these controls.
|
|
|
|
Product `5d16e75d84` forwards ordinary Cursor Cloud Advanced Runner selection to
|
|
both Run Test and Finish setup. Its regression first observed the missing
|
|
Runner field. The same commit retains the active loading title editor until
|
|
editing actually ends, using the existing InlineEditor editing callback for
|
|
single-line edits. The unchanged Product and pinned upstream UI both reproduced
|
|
the original editor replacement before the fix. The repaired actual-hook case
|
|
retained the same connected/focused input and saved through the ordinary path.
|
|
All 341 affected UI cases, UI typecheck and token gates passed. The unchanged
|
|
browser case then edited a title through a simulated outage, recovered its write
|
|
and preserved it on reload: 1/1 passed, 5.6 seconds, no retry. The initial command
|
|
collected zero tests because of an anchored title filter; that harness failure
|
|
is retained separately and is not a browser-test pass.
|
|
|
|
Product `77b4234716` keys the early editor by issue. A separate red regression
|
|
proved that navigation from actively edited A to cached B while preferences
|
|
were pending reused A's input. The fixed case retires A, preserves B's own
|
|
input/focus/draft through readiness and keeps A's stored draft separate, with no
|
|
save on cancellation. The two affected files passed 232 tests, UI typecheck and
|
|
token gates. The earlier unchanged browser pass retains its original patch
|
|
identity; this later edit changes only cross-task editor lifetime.
|
|
|
|
Earlier Core `314b9a2cc894` CI failed because a Rust integration constructor
|
|
omitted the new optional launch-profile field. The separate test-only None fix
|
|
passed workspace test compilation and the integration case, and Core `9283`
|
|
Rust CI passed. Core `9283` also retained an unclassified decision-expiry timing
|
|
failure (nextWakeAt 90 seconds earlier; 2,092 passed, one failed, four skipped).
|
|
Product `b029` retained an E2E failure after a verified first continuation when
|
|
the reloaded conversation was still loading; the later always-allow scenario
|
|
never ran. Do not silently call these old failures green or infer a cause.
|
|
Require the final exact-head checks and reviews.
|
|
|
|
### Final local handoff and unresolved native create — 2026-10-28
|
|
|
|
All later campaigns and direct controls below pin served source
|
|
`ed4ef4796586723c47ba39cc4e0620dc489e4123`. Product code
|
|
`146376c108f82c4130cabd112d6566a5f44b453a` has identical production, Runner and
|
|
README bytes. Its only other differences are four test-only chat brief fixture
|
|
files. Those files do not change the Cloud live definition or runtime inputs.
|
|
A deterministic partial-write regression first failed, then atomic publication
|
|
at every brief writer passed. Full credential-free support passed 4,725 tests
|
|
with two skipped, plus 137 Node checks. E2E typecheck passed. Full recursive
|
|
typecheck passed at merged code `e1aeeaa2e4`; the later fixture-only change was
|
|
covered by the E2E typecheck. Current Core and Product code CI/review passed;
|
|
this final documentation update still needs its own latest-head gates.
|
|
|
|
The separate older full repository test run was stopped at its exact owned
|
|
coordinator after about 2 hours 35 minutes, with exit 130 and known failures.
|
|
It remains partial and not green. The host had exhausted its System V semaphore
|
|
capacity. That fact does not establish the cause of every earlier test failure.
|
|
No unaffected local suite was rerun for this documentation update.
|
|
|
|
| Later campaign | First measured boundary | Native work and retained grade |
|
|
| --- | --- | --- |
|
|
| Sonnet-5 | Local package-manager resolution | No fixture/native job admitted; no canonical live result. Retain the local tooling block |
|
|
| Sonnet-6 | Sandboxed tsx IPC listener denied | No fixture/native job admitted; no canonical live result. Retain the local tooling block |
|
|
| Sonnet-7 | One native create POST returned HTTP 500; exact proposed Agent GET returned 404 | No accepted Run, question, SSE stream or cut. Original candidate-failure result retained; cleanup passed after ordinary Board intervention |
|
|
| Sonnet-8 | Embedded PostgreSQL initdb exited 1 while host semaphore capacity was 87,381/87,381 across 5,140 sets | Zero native requests. Keep the original failed/cleanup-failure grade despite later local retirement; the exact failing syscall stderr was not retained |
|
|
| Sonnet-9 | One native create POST returned HTTP 500 after host recovery; exact proposed Agent GET returned 404 | No accepted Run, question, SSE stream or cut. Original candidate-failure result retained; cleanup passed after ordinary Board intervention |
|
|
|
|
Canonical result SHA-256 values remain:
|
|
|
|
- Sonnet-7: `d39a52de698ed89289d78ac598edaa645c03cba2b99aac3517feaf817d8e3671`.
|
|
- Sonnet-8: `847c7d6732b70a20b31c47ee6d23b0032e2c02399050769e12ae82d63cf63907`.
|
|
- Sonnet-9: `bc8b717e6c24645301354edb63b364c57a0e129604d627e2d96d6cc87a8bf723`.
|
|
|
|
The 500 campaigns do not test the repaired terminal accounting or cancellation
|
|
composition. Their capture remains pending without a matching committed
|
|
terminal. Vendor usage and dollar cost remain unknown, not measured zero.
|
|
Each create was issued once. No automatic paid mutation retry occurred.
|
|
|
|
Three minimal native controls omitted MCP. Bearer and Basic auth each returned
|
|
HTTP 200 from `/v1/me` for the same hashed user and key metadata. Sonnet minimal
|
|
create returned HTTP 500 under both schemes. A catalog-supported
|
|
`gpt-5.4-mini` Bearer control also returned 500, with a generic provider message
|
|
and no provider error code. Its create response arrived in about 7.23 seconds;
|
|
the exact proposed Agent lookup returned 404 in about 0.25 seconds. Request
|
|
metadata matched except for fresh ownership identity and selected model.
|
|
All three direct controls had one create POST, no cancel or DELETE, no
|
|
mutation retry, no accepted Run identity and no remaining active owned work.
|
|
No Run lookup was fabricated when the provider supplied no Run identity.
|
|
|
|
These controls show that the failure persists without Paperclip MCP, across
|
|
both successful authentication schemes, and across Sonnet and the selected
|
|
Mini model. They do not identify an account, repository, entitlement,
|
|
provisioning or service root cause. Read-only account UI inspection showed a
|
|
connected GitHub account and no visible blocking notice; it supplied neither a
|
|
confirmed cause nor a campaign billing receipt. No account setting or payment
|
|
was changed. No additional native creates are planned.
|
|
|
|
| Diagnostic evidence | SHA-256 |
|
|
| --- | --- |
|
|
| Same-identity auth/create comparison | `75fb7a722f9593c464dba4dd19b8299c644c0cd88d1a9eb8558edde1451a1bd1` |
|
|
| Minimal Sonnet Bearer control | `da538d42435d2fdbaa8609c0e081996f321df536245942feae369f9e3ca9e599` |
|
|
| Minimal Sonnet Basic control | `0f58432420baae4017ed34b686e80a6414ba58a0f47ea1c873205513c6d2fcee` |
|
|
| Minimal Mini Bearer control | `546a36f418f15eb403e31876f3b920d31eb80529af35d05a027dabb512c11a59` |
|
|
| Sonnet/Mini comparison | `5223faf425827ab4cefdd1a7cca739f35ba84538b73ed4eb6db36491ba8d0453` |
|
|
|
|
Final ordinary UI verification retained the explicit native Cloud/Sonnet and
|
|
private secret binding across save/reload, then passed the real no-prompt
|
|
key/catalog Test. The only warning was the user-approved lack of independent
|
|
effective-model acknowledgment. Clearing the paused manager through the UI
|
|
persisted `reportsTo: null`; the trial is idle and server health/recovery are
|
|
ready. Temporary plaintext credential material was removed after the encrypted
|
|
secret and real Test were validated; the valid 30-day binding remains available.
|
|
The private local app and separate callback listener remain running for the
|
|
user's test drive. No callback exposure of the board or general API was added:
|
|
public root and API probes returned 404, unauthenticated callback POST returned
|
|
401, and callback GET returned 405 with `Allow: POST`.
|
|
|
|
The final sanitized trial-state receipt has SHA-256
|
|
`a66701bc674e43bc0150b233c7ae962d32437f19823b0c21df82aec82e40f5a6`.
|
|
The private screenshot shown to the user has SHA-256
|
|
`e38c7e65561e333b1b9237c92fbdca6ce6c919bdcf9512c7936342189434b93e`.
|
|
Neither a ready configuration Test nor this screenshot qualifies C3/C5/C4.
|
|
|
|
The latest private Runner archive and compiled-consumer proofs passed on the
|
|
recorded macOS arm64 host with Node 26.4.0. The tarball has 1,696 entries,
|
|
14,031,063 bytes and no bundled `node_modules` or symlinks. Extracted stdio/Unix
|
|
MCP checks exercised a synthetic accepted tool result, terminal retention and
|
|
ACK, clean exit and socket removal. The separate compiled consumer loaded 175
|
|
modules inside its extracted closure and made zero parent or child provider
|
|
requests; no turn was submitted. These prove the tested private package
|
|
closure, not ordinary public installation or live Cloud acceptance.
|
|
|
|
| Current package/runtime artifact | SHA-256 |
|
|
| --- | --- |
|
|
| Private Runner archive | `eb7fbb3d65752de71bbc29f411e5d2c62904184134fdfe3a3b8791cb30901d7c` |
|
|
| Local daemon | `519ca52449ec584311107460f155d6b951272001447e15e9a4ac1790989463cc` |
|
|
| Cloud CJS proxy | `15e1c48df44e4e3bc48eb8814430cf2e37c800c4c4c8c00915bee8a8b8fe8c23` |
|
|
| Cloud ESM proxy | `1a1c92e3985f2af42baff74a6f30e08075709980289f1c1b595fd902acf16eeb` |
|
|
| Full compiled transport | `be516371bbd21d7f3a0b4d16713166b43e02b22bf67d67823bedd3ce52dc9590` |
|
|
| Compiled 175-module closure | `d65d92fe16a8486e7468b60a4ffa75b504b1eb6fa2ca2d56d31ab9151e1133f5` |
|
|
| Observed 26-file Node dynamic closure | `ce8e6d8d7e9845600a853d7d675810268c29126b6deaafdcc1337a4213c05c48` |
|
|
|
|
Node is still an operator-supplied observed host runtime, not a newly bundled
|
|
or pinned release distribution. The archive proof report has SHA-256
|
|
`a1aecad1bbf8054aa86006251d8ac606a4f2eed33b0265bdee225bc13dbbe20a`;
|
|
the compiled-consumer report has SHA-256
|
|
`89f8fa290e840439707df57311cfdd5cd4a89fddb323de6f1b9afa3160d3017e`.
|
|
Earlier archive identities below remain historical. Source, package, CI and
|
|
controlled proof do not replace the three unqualified live gates. No merge,
|
|
public package publication or production rollout was performed.
|
|
|
|
### Earlier controlled repair evidence
|
|
|
|
The controlled reproduction separated transport delivery from the governed-wait
|
|
deadline. Actual Rust/private Node proxy cases delivered the applied question
|
|
response and canonical interrupted terminal with both immediate and 18-second
|
|
cancellation, without a Stop command. The same real backend under
|
|
`executeNativeSession` passed immediate cancellation but failed the 18-second
|
|
case at `governed_wait_provider_terminal_unproven`. Cloud permits 20 seconds
|
|
for cancellation; the generic governed drain allowed 15 seconds.
|
|
|
|
Core repair `9c54295c5060` adds a trusted, optional terminal-drain bound to the
|
|
existing cancellation result. The Cloud backend supplies 30 seconds from its
|
|
20-second cancellation budget plus handoff margin. Other providers retain the
|
|
15-second default. The runtime validates the bound, preserves the existing
|
|
operation cap and consumption-owner abort, and still requires the matching
|
|
canonical terminal. The same real governed case now passes at both delays.
|
|
Fourteen negative, default, operation-cap and recovery controls, 326 affected
|
|
unit cases and eight bundle/Grok checks passed. Missing, foreign and explicitly
|
|
unconfirmed terminal evidence still fails. No accounting or budget fence changed.
|
|
Copilot advances to immutable v73 because shared identity inputs changed; v72
|
|
bytes and decoding are preserved. Grok v8 bytes are unchanged. This asserts no
|
|
new Copilot or Grok live qualification. Fresh Core review and CI are required.
|
|
|
|
Old Product head `3115d0bf2c` also failed its Copilot v71 source attestation and
|
|
the two already-repaired Cloud launch fixtures. One browser test copied whole
|
|
page text instead of YAML. Its unchanged isolated case passed, then its complete
|
|
six-case browser file passed on the aligned Product source. The original CI
|
|
failure remains retained and its cause is unclassified; new-head CI is still
|
|
required. No speculative UI or browser-test edit was made.
|
|
|
|
The fourth continuation campaign used clean source `de3c7d6b6c27`, with the
|
|
same explicit Sonnet selection, omitted parameters, fixture repository/ref,
|
|
allow-unpriced opt-in, deadlines and zero automatic retries. Full build passed
|
|
and its build stamp matched the source. All source and test files matched
|
|
Product `cacb45fd5bfd`; only this qualification document differed. The Runner
|
|
package source and exact CJS/daemon bytes were unchanged from the previous
|
|
packaged proof.
|
|
|
|
The exact question tool was applied. An interrupt command was issued, followed
|
|
by a Stop command issued about 15 seconds later. Those command timestamps do
|
|
not establish completion times or a fast interrupt acknowledgment. The exact
|
|
native stop receipt records `providerExitConfirmed: true`, `remoteStopped: true`
|
|
and status `FINISHED`.
|
|
The matching Node checkpoint retained its interrupted terminal-delivery batch.
|
|
No canonical turn terminal reached Core before the governed-wait drain failed.
|
|
The checkpoint's later last-write time is not asserted to be terminal creation
|
|
time. The 15-second drain and 20-second Cloud cancellation bounds require a
|
|
controlled composition check; the live timing alone does not prove its cause.
|
|
This is a candidate terminal-handoff divergence; it is not evidence of a
|
|
provider provisioning failure. No eligible replay frame was cut, no answer or
|
|
second run completed, and C4 remained on hold. Missing canonical evidence
|
|
correctly leaves accounting pending; do not weaken that boundary.
|
|
|
|
The ordinary result remains FAIL/cleanup_failure, SHA-256
|
|
`2965928841f50408cc07eb705c9a785680acf2a106735a37ab9a9f1a4f3536f7`.
|
|
Its original cleanup could not confirm deletion. Later independent exact owned
|
|
Agent/Run lookups both returned 404. That reconciliation does not replace the
|
|
original grade. The wrapper restored the exact original CJS and released the
|
|
callback port and source/dist freeze. No further paid work is active.
|
|
|
|
Before that attempt, the accounting repair passed ten focused tests, including
|
|
nine scenarios through the actual PostgreSQL receipt, ledger and budget path.
|
|
Matching completed and interrupted terminals settle as complete and explicitly
|
|
unpriced, with no fabricated counters or zero dollar cost. Allow-unpriced
|
|
permits the next reservation only after ledger settlement; block still blocks.
|
|
Missing, foreign and explicitly unconfirmed terminals, capture failures and
|
|
replaced recorders retain pending debt. Saved canonical evidence also restores
|
|
collection closure on recovery. Generic receipt, ledger and budget code is
|
|
unchanged. Full recursive typecheck passed at Product `cacb45fd5bfd`.
|
|
|
|
The third continuation campaign on `69edecfd84ae` saved and independently
|
|
verified explicit allow-unpriced policies before dispatch. It discovered the
|
|
correct MCP server, created the exact structured question and received the
|
|
browser answer. The committed matching `turn.interrupted` carried
|
|
`error: null` and `status: interrupted`; native cancellation was confirmed and
|
|
the exact owned Node process had exited. Nevertheless, Core emitted incomplete
|
|
Cursor accounting because numeric usage was absent. The run remained pending
|
|
with no accounting receipt, and the normal budget gate paused the company.
|
|
The original ordinary result is FAIL/candidate_failure, SHA-256
|
|
`0326c611f99557fbcd0fb6dcda6bacdbcda6f4fe8079189abef2f0cd748d9596`.
|
|
Cleanup passed; independent final Agent/Run reads returned 404, the exact
|
|
shipping CJS was restored and the callback port was released. One real cut and
|
|
cursor reconnect occurred, but no second run completed, so C3/C5 remain
|
|
unqualified and C4 is unattempted.
|
|
|
|
This is an accounting-producer defect. A confirmed matching committed terminal
|
|
must close collection as explicitly unpriced when Cursor supplies no numeric
|
|
usage. Missing or mismatched terminals, explicitly unconfirmed provider
|
|
termination and capture failures must remain pending. Receipt, ledger and
|
|
budget enforcement retain their existing contracts. Prove these boundaries
|
|
through the actual accounting path before another paid campaign; do not mutate
|
|
the failed measured company to bypass its pending incident.
|
|
|
|
The second continuation campaign on `9683ba4678ee` found the run-bound catalog,
|
|
created the required structured question and received the real browser answer.
|
|
Its next run could not enqueue because the fixture company and agent policies
|
|
blocked unpriced usage. A budget incident paused the company after the first
|
|
unknown-cost turn; retrying the response could not bypass that policy. The
|
|
original result remains FAIL/candidate_failure, SHA-256
|
|
`1dfdd92bef4e69dd09bfde0eb7294f219d5a8bfd8e9803b4e747c2e33791aa93`.
|
|
Cleanup passed and exact owned Agent/Run each returned 404. The original CJS was
|
|
restored. C5 again exercised a real cut/reconnect, but no second turn completed.
|
|
|
|
This is a qualification-policy mismatch, not a reason to change production
|
|
budget enforcement. The bounded fixtures now require explicit
|
|
`PAPERCLIP_CURSOR_CLOUD_ALLOW_UNPRICED_QUALIFICATION=1`, upsert only their owned
|
|
company and agent monthly billed-cent policies, and verify both saved policies
|
|
before dispatch. Each remains active with a 1,000-cent known-cost hard stop;
|
|
unknown pricing is explicitly allowed under the user's test-spending approval.
|
|
It is not a provider dollar cap. Cost reporting remains unknown. Missing opt-in,
|
|
failed readback and changed guards block setup. The red controls, 71 passing
|
|
fixture/registration cases, 19 strengthened budget controls and full E2E
|
|
typecheck are retained. No production default changed. The separate saved local
|
|
trial received the same explicit policy through the public API and verified
|
|
readback; its actual vendor cost remains unknown.
|
|
|
|
Only fixture policy/evidence changed after `9683ba4678ee`; the model prompt,
|
|
provider CJS and native daemon are unchanged. Retain all prior grades at their
|
|
original definition hashes and run a fresh company/Agent campaign. Do not
|
|
unpause the failed measured company or relabel its result.
|
|
|
|
The first live continuation/replay campaign failed its required question on
|
|
`62fb0252e931`. Cursor queried unrelated inherited account MCP namespaces, both
|
|
requiring authentication, and never selected the injected `paperclip` server.
|
|
It then ended with objective unsatisfied and no structured question. The
|
|
ordinary fixture retained its failed grade and cleanup passed; exact Agent/Run
|
|
reads returned 404. No second run or Stop attempt occurred. One real SSE cut
|
|
reconnected to the same owned run using the exact cursor, with ordered unique
|
|
retained events, but this does not pass the complete C3/C5 contract. Original
|
|
CJS bytes were restored after finalization.
|
|
|
|
Code and retained C2 traffic identify a product guidance gap. The request names
|
|
the injected server, but model-facing instructions did not identify it. C2
|
|
found it by a broad tool search; C3 selected similarly named account servers.
|
|
Neither unrelated name comes from the repository, and the current semantic
|
|
question tool remains available. [Cursor's SDK documentation](https://cursor.com/docs/sdk/typescript)
|
|
confirms that Cloud also loads account/team MCP servers; local setting-source
|
|
filters do not apply. The repair now binds one provider server-name constant,
|
|
directs discovery to that server on every turn, distinguishes semantic questions
|
|
from native callbacks, and explains controller-managed authentication without
|
|
VM REST credentials. Two serialized-request regressions first failed; all 46
|
|
Cloud cases then passed. This is a supported correction hypothesis, not a claim
|
|
that model causality has been proved. Keep the outcome oracle unchanged and use
|
|
a fresh campaign because active checkpoints reject instruction-digest changes.
|
|
|
|
Core CI also exposed a real Copilot source-attestation mismatch after shared
|
|
bridge/contract changes. The immutable identity advanced to v72 while preserving
|
|
the original v71 bytes and decoder. Eighty-six identity/compatibility controls
|
|
passed. This refresh does not assert a new Copilot live qualification. The final
|
|
Core source has a green full build, 436 selected TypeScript cases, 33 native
|
|
backend integrations and eight bundle/profile checks; fresh remote gates for
|
|
that source remain pending. Earlier Copilot CI and local failures stay retained.
|
|
|
|
A further recovery race was reproduced during review: the native run could
|
|
finish between two startup reads, causing Rust to reject the valid terminal
|
|
batch against an older active-turn cache. The repair validates active state and
|
|
terminal delivery from one snapshot and updates the cache only after validation.
|
|
The proxy likewise returns one captured state view after the queued checkpoint
|
|
commit. Both native and proxy red controls reproduced the mismatch; all 33
|
|
native integrations and 46 Cloud/facade cases then passed. A paused-write test
|
|
also proves thread/read cannot return the random terminal receipt before it is
|
|
durable: the response stays blocked while disk remains running, then returns
|
|
the exact receipt found in the committed checkpoint. Preserve these controls
|
|
and the earlier review grades; a new review is still required for this repair.
|
|
|
|
The saved local test-drive was restarted on `abb79acfb016` and returned healthy.
|
|
The ordinary UI retained the explicit Sonnet model and organization-secret
|
|
reference, passed the account/catalog Test with its expected experimental
|
|
warning, and completed Finish setup. Independent API state confirms
|
|
`paperclip_runner`, provider `cursor_cloud`, model `claude-sonnet-4-5`,
|
|
`secret_ref`, lifecycle `ready` and idle status. Setup sent no provider prompt.
|
|
The callback-only tunnel again returned 404 for root/API and 401 for an
|
|
unauthenticated native-run request. This validates C1's saved setup on the
|
|
repaired application; the later Stop receipt repair changes no setup behavior.
|
|
|
|
Final inspection found one related Stop receipt gap: shutdown could close Node
|
|
before Rust consumed its retained terminal batch, blocking a later same-Agent
|
|
turn. Retained Node/Rust red controls reproduced it. The repair retains the
|
|
batch through the shutdown receipt, persists and acknowledges it before process
|
|
exit, avoids double settlement, and retries a matching receipt on attachment.
|
|
All 33 native backend integrations and 46 controlled Cloud/proxy/facade cases
|
|
passed, as did Node typecheck and unchanged Grok v8 identity. The complete
|
|
repaired candidate must be rebuilt before the remaining live cells.
|
|
|
|
Both recovery findings now have retained red/green controls. Recovery arms the
|
|
saved absolute deadline before any read, retries only transient read failures
|
|
under that obligation, and aborts pending reads during Stop. Terminal delivery
|
|
is persisted privately before publication. Rust imports and deduplicates that
|
|
delivery into its durable outbox, saves the receipt, then acknowledges the Node
|
|
checkpoint. New work cannot supersede unacknowledged terminal delivery. The
|
|
actual Rust regression reproduced the lost-turn failure and then passed crash
|
|
before final delivery and partial final delivery with lost acknowledgment. All
|
|
32 native backend integrations and 362 selected TypeScript cases passed. Node
|
|
typecheck and the existing Grok v8 immutable identity passed; no Grok identity
|
|
refresh or new Grok live qualification is asserted.
|
|
|
|
The selected CI launch fixture now builds a private proxy, because that lane
|
|
does not contain a shared dist bundle. Its missing-dist failure and two passing
|
|
real-facade controls are retained. The product test roots also preserve short
|
|
Darwin socket paths while using the platform temporary directory elsewhere.
|
|
Stop qualification now observes the exact native delayed command, joins its
|
|
identity to an unfinished Core execution, and checks again immediately before
|
|
UI Stop. Retained native traffic showed argument-free running frames followed
|
|
by running argument updates for the same call. The observer accepts consistent
|
|
updates and rejects completion, changed ownership, stream loss and expiry.
|
|
Its original failures and 73 passing focused controls remain recorded.
|
|
|
|
Evidence impact: the recovery repair changes terminal settlement and the Rust
|
|
artifact identity. Rebuild and qualify final settlement through the remaining
|
|
two-turn continuation cell. It does not change provider artifact discovery,
|
|
download, staging, Core file verification or registration, so retain C6's exact
|
|
Sonnet-2 artifact evidence. C2 keeps its original candidate identity; do not
|
|
relabel that result as a new run. The Stop prompt and observer changed, so only
|
|
the new fixture can establish C4. No live replay or Stop pass exists yet.
|
|
|
|
`cursor-cloud-local-20261028-artifact-sonnet-2` passed on source `b18b743cd45d`.
|
|
The same explicit Sonnet model, omitted parameters, repository/ref, fixture and
|
|
deadlines were used after the path repair. All eight ordinary matchers passed:
|
|
continuity, exact final marker, task done, run succeeded, native/local execution,
|
|
exact registered artifact bytes and MIME, and cleanup. Independent saved state
|
|
contains one accepted result with objective satisfied and one registered,
|
|
downloadable 24-byte artifact. Its SHA-256 is
|
|
`475af2a29ebe3347d92d24efaa58ee6e50a96c1e25297a4410ea12407aa5c1d9`.
|
|
The exact owned Cloud Agent and Run each returned 404 after cleanup. The
|
|
canonical result SHA-256 is
|
|
`eea3414ff54c7de99f4fc533cd4d88d415bc501dc56e95aa73a8c8f7fe09f270`.
|
|
This passes C2/C6 for this candidate; vendor cost remains unknown.
|
|
|
|
The production stager now returns a path relative to the admitted artifact root
|
|
for both fresh and repeated staging. The provider's 33 focused controls passed.
|
|
The product regression first reproduced the exact rejection through the actual
|
|
Core file reader, then passed normal/repeated handoff and post-staging hash
|
|
tamper rejection. A static test import initially failed the server TypeScript
|
|
root boundary and emitted eight unwanted source-side files. Only those
|
|
untracked emitted files were removed; the established dynamic test import fixed
|
|
the compile boundary. Full builds then passed in both the serving checkout and
|
|
the independent Product PR checkout. The latter also passed full workspace
|
|
typecheck, 1,085 focused tests across 18 files, 46 E2E support tests, token gates
|
|
and map gates. These do not replace the unresolved full test gate.
|
|
|
|
The repaired CJS proxy is
|
|
`dbb219296765add55e7568c4494885f64b9ca5cd7a09128247929995a5e20aa6`.
|
|
Its 1,696-entry private tarball (14,012,533 bytes) has SHA-256
|
|
`b25e463011ab6cab7c2b2d9dd53c1b91422025441ab68a66ed0a03880731e551`.
|
|
The controlled extracted-package protocol and shutdown proof passed. A first
|
|
parity check used the wrong working directory, changing esbuild's source labels;
|
|
the unchanged check from the canonical package build directory matched both
|
|
shipped bundles exactly. No runtime bytes changed during the live attempt.
|
|
|
|
Core review at this stage scored 3/5 and identified two recovery defects:
|
|
terminal checkpoint persistence can precede durable delivery of terminal events,
|
|
and recovery reads can fail before the saved absolute deadline is armed. The
|
|
Core owner is repairing both with regressions. Continuation/replay and Stop are
|
|
held until the repaired candidate is built and its evidence impact is recorded.
|
|
Diagnose any new divergence before another paid attempt.
|
|
|
|
Campaign 5 (`8e4c587102`, explicit `gpt-5.4-mini`) created the exact expected
|
|
24-byte file, but native artifact download metadata was rejected before Core
|
|
registration. A separate small native diagnostic observed the actual signed
|
|
download host, `agent-stores.s3.us-east-1.amazonaws.com`, and independently
|
|
verified six expected bytes. The client now accepts that exact host, retaining
|
|
the existing HTTPS and bounded-download restrictions. The original red host
|
|
regression and failed product grade remain retained. Both owned native Agent
|
|
and Run were independently absent after cleanup.
|
|
|
|
Campaign 6 (`3050fa41a933`, same Mini model) independently downloaded and verified
|
|
the expected native file. Cursor made no semantic task calls and ended with
|
|
Paperclip requiring review. The ordinary 600-second fixture deadline graded
|
|
the attempt FAIL; its cleanup matcher passed and exact owned native Agent/Run
|
|
lookups returned 404. File creation/download alone does not pass C2 or C6.
|
|
|
|
One explicit model control uses the same runtime, fixture, repository and
|
|
deadlines with catalog model `claude-sonnet-4-5`, omitting model parameters.
|
|
Official MCP SDK discovery observed 56 tools through the exact owned callback,
|
|
including completion, artifact discovery and registration, without invoking a
|
|
task tool. Sonnet called the semantic tools and supplied correct file metadata.
|
|
The downloaded and staged 24 bytes match the fixture, but Core rejected the
|
|
absolute staged reference with `paperclip_runner_file_handoff_path_denied`.
|
|
The provider stager must return a reference relative to its admitted artifact
|
|
root; Core's existing containment, symlink and hash checks remain authoritative.
|
|
This is an observed integration defect. Preserve the original campaign result
|
|
and run a real stage-to-Core regression before a new hosted attempt.
|
|
|
|
The current clean private Runner tarball has 1,696 entries, 14,012,523 bytes,
|
|
and SHA-256 `bd7b95a988f2ebebdc4fe2e52f19638d4cfb825d3538b89405c1f861e46818e3`.
|
|
Its CJS proxy is `fd6ab6b82b66e5b9bd1a60f70ddca34b7fb44d24c21827c77376931afa52640d`;
|
|
its daemon is `ba78c864a2a688e53d82e26a2c048ad1ab803c4715c1b847324e84a074deffec`.
|
|
After installing only the declared selected dependency closure in an extracted
|
|
consumer, the actual compiled transport, Rust daemon and guarded Node proxy
|
|
opened and closed successfully: 175 loaded modules remained inside that
|
|
consumer, no vendor request occurred, exit was zero and the owned socket was
|
|
removed. A sandboxed listener attempt failed with EPERM; the unchanged check
|
|
passed with local-listener permission. This is package-boundary proof, not a
|
|
public Paperclip install or a passing live task. Rebuild identity after the
|
|
pending stager repair before carrying it forward.
|
|
|
|
The Core PR uses fixed fetched master `d30c8f42b842` and independent dependencies.
|
|
Its full workspace build, 357 focused TypeScript cases, 129 Rust integration
|
|
cases and eight bundle/profile checks passed. Its CJS matches the serving
|
|
candidate; its independently compiled daemon has different bytes, so binary
|
|
equivalence is not claimed. The full repository test gate remains unresolved:
|
|
a frozen two-file control passed all 981 native executor cases and the original
|
|
chat authority case, but found 21 other chat failures (2,581 passed overall).
|
|
Diagnostics and baseline classification are in progress; the failed grade stays
|
|
in the record.
|
|
|
|
Campaign 3 (`cb5cc2493a`) reached private PRP admission, then failed session open
|
|
because the outer Runner launch allowlist omitted six private Cloud config/relay
|
|
bindings. Its original failure is retained. The corrected regression reproduced
|
|
the exact error through transport, sanitized spawn, Rust and the built Node
|
|
proxy, then opened/closed that entire chain without any provider request. Four
|
|
spawn-boundary controls and the full launch check passed. Reserved configured
|
|
environment prefixes remain blocked.
|
|
|
|
Current master `7f10cc058568` was integrated before the first hosted prompt,
|
|
preserving its Stop, recovery, human-input and E2E evidence changes. Only an
|
|
additive documentation conflict required resolution. Its declared editor
|
|
dependencies were installed with pinned pnpm 9; the resolved dependency lock
|
|
was retained privately and the tracked lockfile restored per contribution rules.
|
|
|
|
Campaign 4 (`5de3610003`) reached real Cloud work and delivered 16 semantic calls
|
|
and results to Core. Native discovery emitted some `Invalid arguments` results,
|
|
but subsequent dispatch succeeded; those errors do not establish an MCP outage.
|
|
The concrete remaining failure was internal `call_api` traffic sent to the
|
|
callback-only origin, repeatedly returning 404. The six-minute provider deadline
|
|
cancelled the run. The later cleanup readback confirmed its exact owned Agent
|
|
and Run absent; this reconciliation does not replace the original failed grade.
|
|
No useful artifact or accepted finish was obtained.
|
|
|
|
Two observed defects are repaired on candidate `8e4c587102`: Core authority now
|
|
uses the actual selected private listener for internal HTTP calls, and the
|
|
provider facade preserves native tool names, actual status and bounded/redacted
|
|
result output. Native calls use the builtin facade without inventing MCP/process
|
|
transport or widening raw argument logging. Six Core routing controls and real
|
|
Rust/PRP tool projection checks passed. The official MCP SDK also completed exact
|
|
discovery and tool calls through the callback route, relay and Unix bridge.
|
|
Returning GET 405 instead of 404 removed unsupported-stream error notifications;
|
|
this was protocol noise, not a demonstrated cause of the failed task. Cleanup
|
|
now independently verifies remote absence and retains authorization failures.
|
|
The combined 18 MCP/observer checks and E2E typecheck passed.
|
|
|
|
The required full build passed on `8e4c587102`. Earlier full test runs that spanned
|
|
source changes remain incomplete and are not green qualification. Two failures
|
|
in such a run passed individually in fresh processes on this frozen candidate;
|
|
cache versus test-order effects remain unresolved pending full-file controls.
|
|
One existing Rust receipt-limit check failed under the concurrent target and
|
|
passed unchanged in isolation; its exact cause is not asserted. All 31 native
|
|
backend checks passed. Keep these original failures in the verification record.
|
|
|
|
Candidate `2264a82646dda33e159bf1b95c528f4e383b987c` froze the Runner and
|
|
product integration in two local commits. The first `task-artifact` campaign,
|
|
`cursor-cloud-local-20261028-artifact-1`, found a setup divergence before any
|
|
provider prompt: `assertHarnessTestPassed` rejected the successful Cloud
|
|
account-catalog receipt because the experimental result has warning status.
|
|
The normal saved Test reported its correct informational checks, but lifecycle
|
|
verification kept the fresh agent paused, so ordinary task dispatch never
|
|
started. The original attempt is retained and was stopped for diagnosis rather
|
|
than allowed to consume its task deadline. No Cloud Agent/Run ownership notice
|
|
existed at diagnosis. Teardown later observed one local queued run, but no
|
|
Cloud checkpoint/create intent existed anywhere in the retained private runtime
|
|
tree. Interrupting the waiting browser worker retained its original failed grade
|
|
and unconfirmed-cleanup result; its server and database exited. This is not a
|
|
passing remote-cleanup observation. C1's connection proof remains valid, but
|
|
usable fresh-agent admission is not yet qualified.
|
|
|
|
The lifecycle regression first failed both listed/unlisted model cases (28 other
|
|
cases passed). The fix recognizes the informational Cloud account-ready receipt
|
|
for the native Runner adapter while preserving the experimental warning and
|
|
all authentication/failure guards. All 30 focused cases then passed. This does
|
|
not turn the recommended model catalog into an allowlist or claim a prompt
|
|
response. Evidence impact: the Runner/runtime package bytes are unchanged;
|
|
repeat fresh-agent setup and the artifact cell against the new application
|
|
candidate, retaining the original setup failure.
|
|
|
|
The second campaign, `cursor-cloud-local-20261028-artifact-2`, used candidate
|
|
`c011eb97cf10124b679a0c07779137db5750f320`. Fresh-agent lifecycle reached ready
|
|
and ordinary task dispatch reached native Runner. Its first divergence was
|
|
local PRP admission: `run.prepare` timed out, with zero control-plane connections
|
|
and repeated WebSocket 404/500 responses. Startup had advertised the public
|
|
callback-only origin to the local Runner. The narrow proxy correctly refused
|
|
that unrelated route. No Cloud checkpoint/create intent or remote ownership
|
|
notice existed, and no owned Runner/sidecar process remained after teardown.
|
|
The original failed result and cleanup-uncertainty grade remain retained; no
|
|
provider prompt or vendor cost is asserted from a local running row. Correct
|
|
the server's private PRP listener origin while retaining its public callback
|
|
origin, then rerun the same bounded artifact cell.
|
|
|
|
The startup fix now supplies the actual private HTTP listener host and selected
|
|
port to PRP registration. Public auth/runtime URLs retain their existing meaning;
|
|
remote transports retain their separate advertised endpoints. Twenty-six focused
|
|
runtime-origin, HTTP and PRP tests passed, and server typecheck passed. The next
|
|
artifact attempt must verify this boundary through the full product.
|
|
|
|
A test-only replay injector is ready for C5. Its 28 controlled tests exercise the
|
|
actual Driver/Client, one SSE cut after a complete native event, exact saved
|
|
Last-Event-ID, ordered withheld-frame recovery and deduplication. It preserves
|
|
and restores exact proxy bundle bytes and records only owned identity/cursor
|
|
digests. This is supporting proof only. A future live treatment must record both
|
|
bundle hashes, require the normal product result and grade real reconnect proof;
|
|
it adds no provider prompt to the selected continuation cell.
|
|
|
|
The local restart also reproduced a test-drive bootstrap bug: it used the public
|
|
callback-only `server.apiUrl` and stopped after a 404. Bootstrap API and browser
|
|
now derive their local origin from the actual started listener. Both IPv4/IPv6
|
|
regressions first failed; all 38 CLI tests and CLI typecheck then passed. The
|
|
same saved local instance remains the user-facing test environment. Repository
|
|
comment-policy cleanup changed no logic; in-memory CJS/ESM proxy bundles remained
|
|
byte-identical and the existing Grok identity check still passed. Rebuild and
|
|
record the final Rust artifact identity before carrying package proof forward.
|
|
|
|
The isolated development instance completed the ordinary Cursor Cloud setup path
|
|
through Save & exit, roster, agent overview, and Harness / Runtime reload. The
|
|
saved agent retained native Runner, repository, explicit model placeholder, and
|
|
organization-secret reference. It stayed paused with no provider session or run.
|
|
Missing-model and missing-key checks were visible. Test then reported the missing
|
|
public callback, before any provider prompt. These are local configuration
|
|
controls, not a successful authenticated Cloud setup or task.
|
|
|
|
That walkthrough exposed two defects now covered by regressions: shared
|
|
normalization injected `codexPermissionMode` after valid Cloud conversion, causing
|
|
HTTP 422 on save; the generic runtime form also exposed unsupported Thinking
|
|
effort. The fixed route regression executes PATCH, GET, resave and actual provider
|
|
parsing. Explicit incompatible user configuration remains rejected. Existing
|
|
Codex, Claude, Grok, Dot and Pi cases retain their behavior.
|
|
|
|
Supporting verification on the current source includes:
|
|
|
|
- 275 Runner tests across provider, native backend/launch/contracts and the
|
|
existing semantic bridge; this includes the 26 driver-owned cases above and
|
|
12 real loopback Cloud-client cases.
|
|
- Eleven executor cases cover actual Cloud admission, selected transport and
|
|
credentials, owned artifact root, relay revocation and unknown accounting.
|
|
Three runtime-helper cases exercise private files and a real Unix HTTP peer;
|
|
three relay cases cover authentication, scope, expiry and revocation.
|
|
- Three explicit Product E2E cells are discoverable: task/artifact, same-Agent
|
|
question follow-up and active-run UI Stop. Their 86 supporting cases and
|
|
complete E2E TypeScript check passed. Missing configuration blocks before
|
|
credentials or provider work. The suite refuses public history publication.
|
|
- Rust provider lifecycle and shutdown tests passed, including a regression that
|
|
first reproduced process reuse and then proved a fresh sidecar with the same
|
|
durable thread. Per-turn product execution does not retain a warm daemon.
|
|
- The Grok immutable profile advanced to v8 because its bound shared Runner
|
|
configuration source changed. The historical v7 identity is preserved and
|
|
remains decodable; this is an identity refresh, not new live qualification.
|
|
- `pnpm -r typecheck` and `pnpm build` passed. The first build stopped at the stale
|
|
Grok identity; the next exposed invalid new test fixture types. Both failures
|
|
were corrected. An earlier full test run was interrupted; the final
|
|
`pnpm test:run` run is pending and cannot yet be claimed green.
|
|
- Token gates, map structural checks, and generated protocol checks passed.
|
|
|
|
The clean private Runner candidate tarball contained 1,696 entries and no
|
|
`node_modules` or symlinks. Its extracted proxy completed real stdio and Unix MCP
|
|
framing, exact synthetic tool input/result, controlled HTTP/SSE terminal lookup,
|
|
confirmed shutdown, socket cleanup and exit zero. Both proxy bundles matched
|
|
source and referenced only Node builtins. This proves that candidate's runtime
|
|
closure, not an ordinary public Paperclip installation or live Cursor work.
|
|
|
|
| Candidate artifact | SHA-256 |
|
|
| --- | --- |
|
|
| Private Runner tarball (14,012,694 bytes) | `7d06c80239725b36241db7fb96a6127efc757ae367b0f20843641a0544b9ed3d` |
|
|
| Packaged local daemon | `4492f56745b93392b89e016d2907478ebabcf1025099f79222d66a38dfc8f083` |
|
|
| Cloud CJS proxy | `2ccfd84f1acd7e2d15b85b1b772e46a6497b1febbe80c0fb85d6b4f59e909687` |
|
|
| Cloud ESM proxy | `a582f2b9c1075cfc2185b7d9351072dd06c6d4ae1744f7110873945a10053429` |
|
|
|
|
The observed controller platform was macOS 26.5.2 build 25F84, arm64, with Node
|
|
26.4.0. Node remains an operator-supplied runtime. Its observed 26-file dynamic
|
|
library closure digest was
|
|
`ce8e6d8d7e9845600a853d7d675810268c29126b6deaafdcc1337a4213c05c48`;
|
|
it is not a newly bundled or pinned Node distribution. Retest artifact identity
|
|
after a build input changes. No merge, public package install, publication, or
|
|
deployment has been performed.
|
|
|
|
The tarball proof was refreshed after the README's hosted-secret guidance changed.
|
|
README.md was the only changed extracted entry; all runtime artifact and Node
|
|
closure hashes remained identical. The full controlled packaged round trip and
|
|
shutdown proof passed again. The earlier tarball digest
|
|
`38bc7632101bdc890591dd58dfb9c75a0956a0c5f1db64c55d963af86c01a1ba`
|
|
is retained as historical evidence, not the current candidate archive.
|
|
|
|
Rollback means disabling fresh experimental admission or selecting the existing
|
|
legacy runtime for future work. Do not rewrite persisted run selection or erase
|
|
history. Existing native runs still need their cancellation, reconciliation, and
|
|
finalization paths. No merge, publication, deployment, or live completion claim
|
|
has been made by this plan.
|