test: full native-loop E2E (PUC-1/2/7/8) + real-SDK smoke (spec §6.8, §7.1 rung 3)
Task 9 of the native-surfaces migration plan. fullLoop.test.ts walks the whole inner loop in one doc, stub-turned: enter (snapshot baseline) -> two comment asks -> reply -> offer -> pending proposals (F12 optimistic-apply, decorated + isApplied) -> human tweak inside a pending proposal's range (INV-11: breaks the raw fingerprint anchor, but finalizeInPlace/"Keep" is built to survive that) -> keep one (attribution split via spansFor: claude's words + the human tweak, char-honest) -> reject the other (buffer text returns EXACTLY to its pre-proposal text, INV-5) -> markReviewed -> change count 0. scripts/smoke-native-loop.mjs + test/e2e/smoke/nativeLoop.ts are the rung-3 manual gate: launches the real EDH against sandbox/, posts a real comment via ThreadController.createThreadOnSelection with BOTH turns left unstubbed (the real @cline/sdk, INV-8), waits for the reply/offer, makes + accepts the edit, and prints the created proposal ids. Lives outside test/e2e/suite so it is never swept into `npm run test:e2e`; `npm run smoke:native` builds + compiles then runs it. Operator-run only (real credentials) -- not executed here, verified by typecheck + a syntax/structural pass only. 300 unit + 86 workspace/5 no-workspace host E2E green (1 pending, pre-existing #54 undo-suite skip). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -352,6 +352,7 @@
|
||||
"pretest:e2e": "npm run build && npm run clean:e2e && tsc -p tsconfig.e2e.json",
|
||||
"test:e2e": "node ./out/test/e2e/runTest.js",
|
||||
"smoke:live": "npm run build && node scripts/smoke-live-turn.mjs",
|
||||
"smoke:native": "npm run pretest:e2e && node scripts/smoke-native-loop.mjs",
|
||||
"vscode:prepublish": "node esbuild.mjs"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
Reference in New Issue
Block a user