@@ -76,7 +76,6 @@ test.afterEach(async ({ page }) => {
7676} ) ;
7777
7878test ( '[P0] real daemon run streams, persists, and previews an artifact' , async ( { page } ) => {
79- await page . goto ( '/' ) ;
8079 await createProject ( page , 'Real daemon run smoke' ) ;
8180 await expectWorkspaceReady ( page ) ;
8281
@@ -106,7 +105,6 @@ test('[P0] real daemon run streams, persists, and previews an artifact', async (
106105} ) ;
107106
108107test ( '[P0] real daemon run persists an artifact streamed across multiple chunks' , async ( { page } ) => {
109- await page . goto ( '/' ) ;
110108 await createProject ( page , 'Chunked daemon run smoke' ) ;
111109 await expectWorkspaceReady ( page ) ;
112110
@@ -121,7 +119,6 @@ test('[P0] real daemon run persists an artifact streamed across multiple chunks'
121119} ) ;
122120
123121test ( '[P1] plain stdout daemon runtime persists artifact tags into project files and preview' , async ( { page } ) => {
124- await page . goto ( '/' ) ;
125122 await createProject ( page , 'Plain stream artifact smoke' , 'qwen' ) ;
126123 await expectWorkspaceReady ( page ) ;
127124
@@ -135,7 +132,6 @@ test('[P1] plain stdout daemon runtime persists artifact tags into project files
135132} ) ;
136133
137134test ( '[P0] real daemon run surfaces process/parser errors in chat' , async ( { page } ) => {
138- await page . goto ( '/' ) ;
139135 await createProject ( page , 'Daemon error smoke' ) ;
140136 await expectWorkspaceReady ( page ) ;
141137
@@ -146,7 +142,6 @@ test('[P0] real daemon run surfaces process/parser errors in chat', async ({ pag
146142} ) ;
147143
148144test ( '[P0] real daemon run classifies a Claude mid-stream socket drop as a retryable connection error' , async ( { page } ) => {
149- await page . goto ( '/' ) ;
150145 await createProject ( page , 'Daemon socket-drop smoke' , 'claude' ) ;
151146 await expectWorkspaceReady ( page ) ;
152147
@@ -162,7 +157,6 @@ test('[P0] real daemon run classifies a Claude mid-stream socket drop as a retry
162157} ) ;
163158
164159test ( '[P0] real daemon run supports a follow-up turn in the same project' , async ( { page } ) => {
165- await page . goto ( '/' ) ;
166160 await createProject ( page , 'Daemon follow-up smoke' ) ;
167161 await expectWorkspaceReady ( page ) ;
168162
@@ -182,7 +176,6 @@ test('[P0] real daemon run supports a follow-up turn in the same project', async
182176} ) ;
183177
184178test ( '[P1] real daemon run treats an in-place artifact edit as produced work' , async ( { page } ) => {
185- await page . goto ( '/' ) ;
186179 await createProject ( page , 'Daemon artifact edit smoke' , 'claude' ) ;
187180 await expectWorkspaceReady ( page ) ;
188181
@@ -222,6 +215,7 @@ test('[P1] real daemon run treats an in-place artifact edit as produced work', a
222215 await expect ( editedHeading ) . toBeVisible ( ) ;
223216 await editedHeading . click ( ) ;
224217 await expect ( editedHeading ) . toHaveAttribute ( 'data-od-edit-selected' , 'true' ) ;
218+ await page . getByTestId ( 'manual-edit-open-inspector' ) . click ( ) ;
225219 const fontSizeInput = page
226220 . locator ( '.manual-edit-modal .cc-section' )
227221 . filter ( { hasText : 'TYPOGRAPHY' } )
@@ -241,7 +235,6 @@ test('[P1] real daemon run treats an in-place artifact edit as produced work', a
241235} ) ;
242236
243237test ( '[P1] Plan mode daemon run creates, opens, and restores an editable markdown plan' , async ( { page } ) => {
244- await page . goto ( '/' ) ;
245238 await createProject ( page , 'Plan mode markdown smoke' ) ;
246239 await expectWorkspaceReady ( page ) ;
247240
@@ -275,7 +268,6 @@ test('[P1] Plan mode daemon run creates, opens, and restores an editable markdow
275268// generated HTML instead of staying on the markdown plan.
276269test ( '[P1] Plan mode generation turn auto-opens the generated HTML file' , async ( { page } ) => {
277270 test . setTimeout ( 120_000 ) ;
278- await page . goto ( '/' ) ;
279271 await createProject ( page , 'Plan mode html auto-open smoke' , 'claude' ) ;
280272 await expectWorkspaceReady ( page ) ;
281273
@@ -311,7 +303,6 @@ test('[P1] Plan mode generation turn auto-opens the generated HTML file', async
311303// auto-open path cannot mask the turn-end selection.
312304test ( '[P1] Plan mode regeneration re-opens the existing generated HTML file' , async ( { page } ) => {
313305 test . setTimeout ( 120_000 ) ;
314- await page . goto ( '/' ) ;
315306 await createProject ( page , 'Plan mode html regen smoke' ) ;
316307 await expectWorkspaceReady ( page ) ;
317308
@@ -345,7 +336,6 @@ test('[P1] Plan mode regeneration re-opens the existing generated HTML file', as
345336} ) ;
346337
347338test ( '[P0] real daemon run restores a delayed artifact turn after reload' , async ( { page } ) => {
348- await page . goto ( '/' ) ;
349339 await createProject ( page , 'Delayed daemon reload smoke' ) ;
350340 await expectWorkspaceReady ( page ) ;
351341
@@ -373,7 +363,6 @@ test('[P0] real daemon run restores a delayed artifact turn after reload', async
373363test ( '[P1] real daemon run reconnects after reload while the run is still active' , async ( { page } ) => {
374364 test . setTimeout ( 90_000 ) ;
375365
376- await page . goto ( '/' ) ;
377366 await createProject ( page , 'Running daemon reload smoke' ) ;
378367 await expectWorkspaceReady ( page ) ;
379368
@@ -407,7 +396,6 @@ test('[P1] real daemon run reconnects after reload while the run is still active
407396test ( '[P1] artifact persistence survives page reload during an active real daemon run' , async ( { page } ) => {
408397 test . setTimeout ( 120_000 ) ;
409398
410- await page . goto ( '/' ) ;
411399 await createProject ( page , 'Running daemon reload smoke' ) ;
412400 await expectWorkspaceReady ( page ) ;
413401
@@ -476,7 +464,6 @@ test('[P1] artifact persistence survives page reload during an active real daemo
476464} ) ;
477465
478466test ( '[P1] real daemon run survives reload before the create response reaches the browser' , async ( { page } ) => {
479- await page . goto ( '/' ) ;
480467 await createProject ( page , 'Delayed daemon create-response reload smoke' ) ;
481468 await expectWorkspaceReady ( page ) ;
482469
@@ -497,7 +484,6 @@ test('[P1] real daemon run survives reload before the create response reaches th
497484} ) ;
498485
499486test ( '[P0] empty daemon output fails cleanly, persists after reload, and does not leave ghost files' , async ( { page } ) => {
500- await page . goto ( '/' ) ;
501487 await createProject ( page , 'Empty daemon failure smoke' ) ;
502488 await expectWorkspaceReady ( page ) ;
503489
@@ -522,7 +508,6 @@ test('[P0] empty daemon output fails cleanly, persists after reload, and does no
522508} ) ;
523509
524510test ( '[P1] plain stdout daemon runtime surfaces stderr-only failures without ghost files' , async ( { page } ) => {
525- await page . goto ( '/' ) ;
526511 await createProject ( page , 'Plain stderr failure smoke' , 'qwen' ) ;
527512 await expectWorkspaceReady ( page ) ;
528513
@@ -545,7 +530,6 @@ test('[P1] plain stdout daemon runtime surfaces stderr-only failures without gho
545530} ) ;
546531
547532test ( '[P0] separate projects keep daemon artifacts isolated across recent-project navigation' , async ( { page } ) => {
548- await page . goto ( '/' ) ;
549533 await createProject ( page , 'Real daemon isolation alpha' ) ;
550534 await expectWorkspaceReady ( page ) ;
551535 await sendPrompt ( page , 'Create a deterministic smoke artifact' ) ;
@@ -719,18 +703,17 @@ test('[P0] real daemon run supports fake non-Codex runtime protocols', async ({
719703async function createProject ( page : Page , name : string , agentId : FakeAgentId = 'codex' ) {
720704 await configureFakeAgent ( page , agentId ) ;
721705 await installBrowserAgentConfig ( page , agentId ) ;
722- await gotoEntryHome ( page ) ;
723- await setBrowserAgentConfig ( page , agentId ) ;
724- await page . reload ( { waitUntil : 'domcontentloaded' } ) ;
706+ const projectId = `real-daemon-${ agentId } -${ Date . now ( ) } -${ Math . random ( ) . toString ( 36 ) . slice ( 2 , 8 ) } ` ;
707+ await createProjectViaApi ( page , projectId , name ) ;
708+ try {
709+ await page . goto ( `/projects/${ projectId } ` , { waitUntil : 'domcontentloaded' } ) ;
710+ } catch ( error ) {
711+ const message = error instanceof Error ? error . message : String ( error ) ;
712+ if ( ! / E R R _ A B O R T E D | f r a m e w a s d e t a c h e d / i. test ( message ) ) throw error ;
713+ }
725714 await waitForLoadingToClear ( page ) ;
726- await setBrowserAgentConfig ( page , agentId ) ;
727- await configureFakeAgent ( page , agentId ) ;
728715 await expectBrowserAgentConfig ( page , agentId ) ;
729716 await dismissPrivacyDialog ( page ) ;
730- await openNewProjectModalFromProjects ( page ) ;
731- await page . getByTestId ( 'new-project-tab-prototype' ) . click ( ) ;
732- await page . getByTestId ( 'new-project-name' ) . fill ( name ) ;
733- await page . getByTestId ( 'create-project' ) . click ( ) ;
734717}
735718
736719async function createByokOpenCodeProject ( page : Page , name : string ) {
0 commit comments