prime-time: service-auth-adapters (WorkOS + better-auth)#83
Conversation
|
@openhands-agent model=openrouter/qwen/qwen3.7-max output=pr-comment Run IMPL-EVAL for the Read first (in order):
Production/enterprise bar to certify (NO stubs, NO no-ops):
Independently RE-RUN the selected gates (this is NOT an e2e-cli-gate slice — do NOT run
Allowed deferrals (do not fail the slice for these — confirm they are recorded in drift.md): WorkOS webhook->DB sync, CLI auth-provider scaffold prompts, and pre-existing repo-wide Emit a verdict of exactly |
OpenHands Agent — CompletedModel: openrouter/qwen/qwen3.7-max IMPL-EVAL Summary — service-auth-adaptersSummaryIndependent IMPL-EVAL completed for the Verdict: All production/enterprise bar requirements verified with file:line evidence. All required gates passed (exit code 0). No stubs, no no-ops, no contract redefinition, no catalog violations. Changes EvaluatedNew packages
Key implementation details
Additive-only contract consumption
Catalog law compliance
Validation (independently re-run gates)
All gates passed with raw exit code 0. Node-compat smoke verification
Both provider SDKs resolve and execute under Deno's node-compatibility layer. Remaining RisksRecorded deferrals (documented in drift.md, not gate failures)
Operational considerations
Next StepsBranch Evaluator session: Separate-session IMPL-EVAL, cycle 1, 2026-06-20 Run: https://github.com/rickylabs/netscript/actions/runs/27867455720 |
…erges into umbrella Both squash-merged into feat/framework-prime-time after separate-session IMPL-EVAL PASS (qwen3.7-max, cycle 1). Track-4 auth-kv-oauth PLAN-EVAL is in flight on #73. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
…oval)
Wrapping plan that rescopes auth from standalone adapters into the standard
core-package + plugin shape, per user pivot:
- NEW @netscript/plugin-auth-core (mirrors plugin-sagas-core): oRPC auth.contract
v1, stream-event schema, AuthBackendPort + selection seam, config/presets.
- NEW plugins/auth (mirrors plugins/sagas): unified /auth/* oRPC service,
real-time streams (v1), CLI, database/auth.prisma, scaffold + Aspire, e2e gates.
- Backends (@netscript/auth-{workos,better-auth,kv-oauth}) refactored to PURE
AuthBackendPort: no mount, no schema-gen, no CLI. Reach-back refactor of the
landed #83 contribution leak (gen-better-auth-prisma + per-adapter Hono mount).
- oRPC + streams are v1 (every peer plugin ships them), not deferred.
- 3-level stacked PR topology per netscript-pr skill: #73 prime-time umbrella
-> feat/prime-time/auth (auth umbrella, sub-PR of #73) -> AS1..AS6 leaf sub-PRs.
kv-oauth = paused AS2b, resumes by pulling umbrella once AS1 lands.
- Absorbs the Track-4 auth-kv-oauth PLAN-EVAL PASS as the AS2b backend (~70%).
DRAFT — no implementation, no PR open/rename before user approval + PLAN-EVAL PASS.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018fq9V7ujx7e1rWXi57qkPG
Track-2 — service-auth-adapters (prime-time slice)
Real auth provider adapters for
@netscript/service(consumes the #77AuthenticatorPort/AuthorizerPort/Principalseam). Additive only.Packages
@netscript/auth-workos—createWorkosAuthenticator(sealed-sessionloadSealedSession().authenticate()->Principal, rotated-session cookie emission) andcreateWorkosAccessTokenAuthenticator(realjoseJWKS JWT verification, audience-bound).@netscript/auth-better-auth—createNetscriptBetterAuth(wraps better-auth's first-partyprismaAdapterover a consumer-owned Prisma client; no@netscript/databasedep per PLAN-EVAL layering fix),createBetterAuthAuthenticator(auth.api.getSession+ Set-Cookie capture),mountBetterAuthHandler, and.llm/tools/auth/gen-better-auth-prisma.tsschema-gen wrapper.Catalog law
better-auth ^1.6.20+@workos-inc/node ^10.4.0to the catalog; referenced only in the new packages viacatalog:.@prisma/client/joseunchanged. No de-catalog, no version-pin edits.Gates (selected; NOT an e2e-cli-gate slice)
@workos-inc/node@10.4.0+better-auth@1.6.20import & run under Deno 2.8.3.deno publish --dry-runper package + rootpublish:dry-run— PASS (isolated declarations satisfied, no carve-out).AuthenticatorPortwith no type errors.Deferred / drift
arch:check+deps:audit(undici/vite) findings are outside this slice and recorded in drift.Run artifacts:
.llm/tmp/run/feat-framework-prime-time--supervisor/slices/service-auth-adapters/.Generator: WSL Codex daemon thread
019ee450-0594-75c1-8c59-2d61194916aa. Awaiting IMPL-EVAL (OpenHands qwen3.7-max, separate session) before merge into the umbrella.