feat: backport auth-validation preflight + email_login credentials #6

Open
Hugh Commit wants to merge 1 commits from far-138/backport-phase-3 into main
Member

Summary

Backport of upstream Shannon PR #335 — auth-validation preflight + email_login credentials.

Changes

  • Auth-validation preflight: New validate-authentication agent runs a real browser login before the full pipeline, catching bad credentials early and saving API budget
  • email_login credentials: New nested credential type for magic-link and email-OTP flows with $email_address, $email_password, $email_totp placeholder substitution
  • credentials.password now optional: Schema changed from required: ["username", "password"] to required: ["username"] for passwordless flows
  • Playwright stealth config: Anti-detection browser configuration (disables webdriver flag, fakes plugins, stubs chrome.runtime, realistic UA)
  • resolvePromptDir refactor: Prompt directory resolution centralized into prompt-manager.ts
  • AUTH_LOGIN_FAILED error code: New non-retryable error classification for failed logins
  • Removed dangerous-pattern check on credentials.password: Passwords can contain special characters legitimately
  • Pipeline-testing stub: Returns { "login_success": true } for fast iteration
  • CLI/Docker: .playwright directory added to workspace overlays

Verification

  • pnpm run check
  • pnpm biome

Resolves FAR-138
Parent: FAR-135

## Summary Backport of upstream Shannon PR [#335](https://github.com/KeygraphHQ/shannon/pull/335) — auth-validation preflight + email_login credentials. ### Changes - **Auth-validation preflight**: New `validate-authentication` agent runs a real browser login before the full pipeline, catching bad credentials early and saving API budget - **`email_login` credentials**: New nested credential type for magic-link and email-OTP flows with `$email_address`, `$email_password`, `$email_totp` placeholder substitution - **`credentials.password` now optional**: Schema changed from `required: ["username", "password"]` to `required: ["username"]` for passwordless flows - **Playwright stealth config**: Anti-detection browser configuration (disables webdriver flag, fakes plugins, stubs chrome.runtime, realistic UA) - **`resolvePromptDir` refactor**: Prompt directory resolution centralized into `prompt-manager.ts` - **`AUTH_LOGIN_FAILED` error code**: New non-retryable error classification for failed logins - **Removed dangerous-pattern check on `credentials.password`**: Passwords can contain special characters legitimately - **Pipeline-testing stub**: Returns `{ "login_success": true }` for fast iteration - **CLI/Docker**: `.playwright` directory added to workspace overlays ### Verification - `pnpm run check` ✅ - `pnpm biome` ✅ Resolves [FAR-138](/FAR/issues/FAR-138) Parent: [FAR-135](/FAR/issues/FAR-135)
Hugh Commit added 1 commit 2026-05-20 00:59:59 +00:00
feat: backport auth-validation preflight + email_login credentials
CI / Type-check & lint (pull_request) Successful in 16s
CI / Build & push worker image (pull_request) Has been skipped
CI / Build & push API image (pull_request) Has been skipped
47a6e4933a
Backport upstream Shannon PR #335:
- Add credential validation activity that drives a real browser login
  before the full pipeline, catching bad credentials early
- New email_login credentials type for magic-link and email-OTP flows
- Make credentials.password optional for passwordless flows
- Playwright stealth config (chrome.runtime, plugin simulation, UA)
- Centralize prompt directory resolution into resolvePromptDir helper
- New AUTH_LOGIN_FAILED error code with non-retryable classification
- Remove dangerous-pattern validation on credentials.password
- Pipeline-testing stub for auth validation (returns success)
- Auth validation timeout of 10 minutes for browser-based login
- .playwright directory workspace overlay for CLI/Docker

Co-Authored-By: Paperclip <noreply@paperclip.ing>
Some checks are pending
CI / Type-check & lint (pull_request) Successful in 16s
CI / Build & push worker image (pull_request) Has been skipped
CI / Build & push API image (pull_request) Has been skipped
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin far-138/backport-phase-3:far-138/backport-phase-3
git checkout far-138/backport-phase-3
Sign in to join this conversation.