mirror of
https://github.com/KeygraphHQ/shannon.git
synced 2026-10-04 23:36:54 +02:00
feat: share preflight authenticated session across agents (#345)
* feat(auth): reuse preflight's authenticated session across agents * fix(preflight): verify saved auth state parses and has cookies or origins * fix(prompts): strip shared-session block when no auth is configured * fix(shannon): store shared auth state in the per-session audit dir * fix(prompts): write stub auth-state in pipeline-testing preflight * fix(preflight): clear stale auth-state.json before validate-authentication * fix(preflight): drop auth-state.json on workflow completion * docs(claude): refresh auth-state.json description for new layout and cleanup * refactor(prompts): drop unused PLAYWRIGHT_SESSION resolve in login instructions * style(prompts): collapse verifySavedAuthState signature per biome * refactor(prompts): require AUTH_STATE_FILE on authenticated runs * style(prompts): trim numbered-step comments back to step headers
This commit is contained in:
1 parent
8f5d639f0d
commit
7813baf16a
19 files changed
+148
-8
No files matched your search
@@ -22,7 +22,7 @@ import { writePlaywrightStealthConfig } from '../ai/playwright-config-writer.js'
|
||||
import { writeUserSettingsForCodePathAvoids } from '../ai/settings-writer.js';
|
||||
import { AuditSession } from '../audit/index.js';
|
||||
import type { ResumeAttempt } from '../audit/metrics-tracker.js';
|
||||
import { generateSessionJsonPath, type SessionMetadata } from '../audit/utils.js';
|
||||
import { authStateFile, generateSessionJsonPath, type SessionMetadata } from '../audit/utils.js';
|
||||
import type { WorkflowSummary } from '../audit/workflow-logger.js';
|
||||
import type { CheckpointContext } from '../interfaces/checkpoint-provider.js';
|
||||
import { DEFAULT_DELIVERABLES_SUBDIR, deliverablesDir } from '../paths.js';
|
||||
@@ -926,7 +926,15 @@ export async function logWorkflowComplete(input: ActivityInput, summary: Workflo
|
||||
// 5. Write completion entry to workflow.log
|
||||
await auditSession.logWorkflowComplete(cumulativeSummary);
|
||||
|
||||
// 6. Clean up container
|
||||
// 6. Drop the authenticated browser session
|
||||
try {
|
||||
await fs.rm(authStateFile(sessionMetadata), { force: true });
|
||||
} catch (error) {
|
||||
const detail = error instanceof Error ? error.message : String(error);
|
||||
console.warn(`Failed to clean up auth-state.json: ${detail}`);
|
||||
}
|
||||
|
||||
// 7. Clean up container
|
||||
removeContainer(workflowId);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user