内部登录

Better Auth 内部邮箱密码登录壳。这里只展示 readiness、session status、sign-in/sign-out 测试结构,不会把当前预览环境伪装成可用的生产登录。

Back to settings

Opened from cockpit next action.

Review the shared staging import shell before returning to the cockpit.

Back to cockpit

Next Operator Action

Complete Approval Owner Coverage

pending

Name the staging approvers and record reviewed approval evidence before execution. nextRoute=GET /api/readiness; owner=auth-readiness-route; risk=low; stage=proof_point; missingEvidence=2; blocker=Live membership proof is missing_foundation.; milestones=0/5; focus=Human approval.

blocker: approval_owner_gaphumanApproval: blocked; owners=0/4; missing=execution_owner, rollback_owner, validation_owner, environment_ownerRoute Review Gate On HoldValidation Review Gate Blockedreconciliation: reconciled

Operator Release Packet

Complete Approval Owner Coverage; route=GET /api/readiness; freshness=missing; reviewer=none.

Activation Verdict

Verdict
Activation Verdict: Blocked

The internal activation gate is blocked by Human approval while GET /api/readiness remains under review.

Lead Blocker
Human approval

Name the staging approvers and record reviewed approval evidence before execution.

Canary Posture
GET /api/readiness

reviewState=waiting_for_live_membership; lockState=none; selectionMode=ranked_top_candidate

Recertification
blocked

sessionProof=watch; liveMembershipProof=blocked; reviewedEvidence=blocked. Record reviewed command metadata before preparing a staging migration run. After that, Complete subject lookup readiness before treating Better Auth request-path proof as current. After that, Attach a reviewed Prisma membership delegate before treating live membership proof as in progress. freshnessState=missing.

State
pending

Complete Approval Owner Coverage

Chatwoot Activation Freeze
frozen_preview_only

activationAuthority=false; canaryAuthority=false; recertificationAuthority=false.

Blocker
approval_owner_gap

Name the staging approvers and record reviewed approval evidence before execution. nextRoute=GET /api/readiness; owner=auth-readiness-route; risk=low; stage=proof_point; missingEvidence=2; blocker=Live membership proof is missing_foundation.; milestones=0/5; focus=Human approval.

Reviewer
none

No reviewed migration command metadata is recorded yet.

Approval
0/4

Name the staging approvers and record reviewed approval evidence before execution.

Route
GET /api/readiness

reviewState=waiting_for_live_membership; lockState=none; selectionMode=ranked_top_candidate

Rollback
reviewed

rollbackBlocking=false; rollbackVisible=false; Disable hosted auth enforcement to return this route to local-compatible preview behavior.

Freeze Gate Summary

Freeze Gate
blocked

ready=1; hold=4; blocked=3

Lead Blocker
Human approval

Name the staging approvers and record reviewed approval evidence before execution.

Lead Blocker Code
human_approval

label=Human approval

Blocker Ledger

Reviewed bundle intake
blocked

No reviewed bundle intake evidence is recorded yet.

Reviewed evidence freshness
hold

No reviewed staging evidence timeline is recorded yet.

Validation review
blocked

state=missing_foundation; subjectLookup=false; probe=false; requestPaths=5.

Session validity
hold

Trusted-header guardrails, Better Auth runtime readiness, or membership-by-subject bridge wiring are present, but no active trusted workspace session was proven for this request.

Membership validity
hold

This summary models reviewed live membership proof readiness only and never enables production login by itself.; Prisma membership delegate is not available.; Direct authSubjectId -> active membership query capability is not yet available.; No reviewed PostgreSQL probe evidence is recorded yet.; This helper models reviewed staging execution only and never runs a real migration.; Production login remains incomplete even when staging verification evidence is present.; Human approval is still missing or not approved.; Named approval owners are incomplete (0/4); missing=execution_owner, rollback_owner, validation_owner, environment_owner.; Reviewed migration command metadata has not been recorded.; Sanitized probe evidence is not yet ready.; Synthetic verification evidence is not yet complete.; CLIENTPILOT_BETTER_AUTH_SCHEMA_READY is only an input gate.; Production login remains incomplete even when staging evidence is present.; Human-reviewed migration approval evidence is still missing.; Named human approval owners are still missing from staging approval evidence.; Sanitized PostgreSQL probe readiness evidence is still missing.; Synthetic acceptance or route-cutover verification evidence is still missing.

Human approval
blocked

Name the staging approvers and record reviewed approval evidence before execution.

Route lock
hold

The next hosted route is currently following the ranked cutover candidate flow instead of a reviewed lock.

Rollback posture
ready

rollbackVisible=false; Disable hosted auth enforcement to return this route to local-compatible preview behavior.

Release Packet Comparison

Accepted Release Packet
pending

reviewer=none; blocker=approval_owner_gap; freshness=missing.

Current Release Packet
pending

reviewer=none; blocker=approval_owner_gap; freshness=missing.

Release Packet Alignment
aligned

Accepted Release Packet Matches Current Packet

Accepted Freeze Gate
blocked

ready=1; hold=4; blocked=3

Current Freeze Gate
blocked

ready=1; hold=4; blocked=3

Freeze Gate Alignment
aligned

Accepted Freeze Gate Matches Current Packet

Freeze Gate Transition
blocked

Freeze Gate Remains Stable

The accepted receipt packet still matches the current operator release packet. accepted=pending; current=pending.

The accepted freeze-gate summary still matches the current packet. accepted=blocked; current=blocked.

The accepted freeze gate still matches the current packet at blocked.

  • accepted: blocked; ready=1; hold=4; blocked=3
  • current: blocked; ready=1; hold=4; blocked=3
  • leadBlocker: accepted=Human approval; current=Human approval
  • leadBlockerCode: accepted=human_approval; current=human_approval
Login target
better_auth

selected=true; emailPassword=true; internalOnly=true

Current state
selected_ready_to_mount

canMountRoute=true; productionLoginImplemented=false

Operator readiness

Auth boundary
boundary ready

No route request context

Trusted headers
enabled_ready

enabled=true; ready=true

Local session
disabled

canInject=false; localSimulationOnly=true

Membership source
source ready

orgMembership=mock memory; rbac=preflight dry-run; role header is validated

Internal login
better_auth

state=selected_ready_to_mount; emailPassword=true

Schema gate
awaiting_evidence

env=true; evidenceReady=false

Validation gate
blocked

Validation Review Gate Blocked

Staging evidence
none recorded

latest=none; conflicts=0; rollbackVisible=false

Route rehearsal
waiting_for_live_membership

next=GET /api/readiness; candidate=needs_evidence; owner=auth-readiness-route

Auth audit
3 events

latest=server_session_bridge_not_injected; latestFailure=server_session_not_resolved

Staging import
disabled

secretConfigured=false; mode=secret_or_trusted_admin

Migration path
not_requested

Record reviewed command metadata before preparing a staging migration run.

Staging decision
blocked

Record reviewed command metadata before preparing a staging migration run.

Live membership
missing_foundation

subjectLookup=false; probe=false; requestPaths=5

Schema drift
drift_detected

reviewed=true; isolated=false

Production auth
not implemented

orgMembership=false; rbac=false

Identity provider
none

provider=none; ready=false

DB membership
mock memory

dbConfigured=true; canQuery=false; bySubject=false

Current Operator Focus

Schema drift or reviewed SQL isolation issues block staging review.

Focus state
blocked
Resolve Blocking Evidence
Checklist
  • Record reviewed command metadata before preparing a staging migration run.
  • validationGate=blocked; title=Validation Review Gate Blocked
  • schemaDrift=drift_detected
  • routeReview=waiting_for_live_membership; nextRoute=GET /api/readiness
Milestone progress
0/5 satisfied

Record reviewed command metadata before preparing a staging migration run.

Human approval
blocked

Schema drift or reviewed SQL isolation issues block staging review.

Reviewed command
blocked

Record reviewed command metadata before preparing a staging migration run.

Staging verification
blocked

Record reviewed command metadata before preparing a staging migration run.

Live membership proof
blocked

Attach a reviewed Prisma membership delegate before treating live membership proof as in progress.

Route review packet
blocked

Live membership proof is missing_foundation.

Email / password test flow

这个表单会把请求发送到 Better Auth 路由,但不会把当前环境伪装成已经完成 production workspace login。

This only exercises the Better Auth route. Real workspace access still depends on the server-side session bridge and active OrganizationMembership resolution.

Session status shell

Distinguishes route mountability, sign-in request status, server-session bridge evidence, and trusted workspace access evidence.

Auth route mountability
mountable
Better Auth runtime prerequisites are present, so the auth route can mount. Workspace access still depends on the server-session bridge and membership resolution.
Server-session bridge
bridge_not_ready
No trusted Better Auth server-session evidence has been verified for this shell yet.
Last sign-in request
not_tested
No sign-in request has been submitted in this shell yet.
Workspace access evidence
not_proven
No trusted workspace access evidence has been proven. Local preview state must not be treated as real login.

Internal bootstrap shell

Safe preview for the disabled-by-default internal operator bootstrap API. It never stores passwords or internal secrets and does not imply public signup.

Bootstrap route readiness
disabled
Bootstrap is disabled in preview
The internal operator bootstrap API is disabled. This shell only previews payload shape and fail-closed states.
Bootstrap controls
preview_only
allowEmailLinking=false; allowMembershipCreation=false; internalSecretConfigured=false
The internal operator bootstrap API is disabled. This shell only previews payload shape and fail-closed states.
Payload preview
Preview only. This payload omits passwords and internal secrets, and it does not prove workspace access.
{
  "betterAuthUserId": "<betterAuthUserId>",
  "email": "<email>",
  "targetWorkspaceId": "workspace_demo",
  "requestedMembershipRole": "operator"
}

Staging review import shell

Safe preview for reviewed staging bundles. It submits sanitized evidence only and never handles the import secret in the browser.

Staging import readiness
disabled
Staging import is disabled in preview
The staging review import API is disabled. This shell only previews sanitized bundle shape and fail-closed states.
Import controls
preview_only
secretConfigured=false; mode=secret_or_trusted_admin
Route selection lock
Optional operator-reviewed lock for the next hosted route. If supplied, the reviewed bundle carries this selection forward and the rehearsal route mirrors it.
Current lock status
none
No locked route is selected.
Pick a reviewed candidate preset or enter a manual route lock for the next hosted cutover.
The staging review import API is disabled. This shell only previews sanitized bundle shape and fail-closed states.
Payload preview
Preview only. This bundle is sanitized and does not claim that staging access or workspace access has already been proven.
{
  "targetWorkspaceId": "workspace_demo",
  "reviewBundle": {
    "commandMetadata": {
      "commandId": "<commandId>",
      "commandSummary": "<commandSummary>",
      "reviewedByHuman": true,
      "targetClassification": "approved_non_production_database"
    },
    "bundleReview": {
      "source": "external_review_bundle",
      "reviewLabel": "<reviewLabel>",
      "redactionConfirmed": true,
      "attachments": {
        "commandTranscript": true,
        "probeSummary": false,
        "checklist": true
      }
    },
    "approval": {
      "approved": true,
      "owners": {
        "executionOwner": "<executionOwner>",
        "rollbackOwner": "<rollbackOwner>",
        "validationOwner": "<validationOwner>",
        "environmentOwner": "<environmentOwner>"
      }
    },
    "syntheticAcceptance": {
      "passed": false
    },
    "routeCutover": {
      "passed": false
    },
    "rollback": {
      "blocking": false
    }
  }
}

Missing prerequisites

  • No blocker reported in preview mode.

Bootstrap and Review Gates

Bootstrap access
disabled

emailLinking=false; membershipCreation=false; secretConfigured=false

Schema gate
awaiting_evidence

env=true; evidenceReady=false; rollbackRecorded=false

Human approval
blocked

owners=0/4; missing=execution_owner, rollback_owner, validation_owner, environment_owner

Route review gate
hold

Route Review Gate On Hold

Validation gate
blocked

Validation Review Gate Blocked

Evidence recertification
blocked

Proof Recertification Blocked Record reviewed command metadata before preparing a staging migration run. After that, Complete subject lookup readiness before treating Better Auth request-path proof as current. After that, Attach a reviewed Prisma membership delegate before treating live membership proof as in progress.

Reviewed Evidence Acceptance
blocked

Reviewed Evidence Acceptance Blocked; canaryDecision=retired; blocker=reviewed_external_proof_missing. Resolve the reviewed evidence, live membership, or Chatwoot freeze blocker before advancing.

Reviewed Evidence Handoff
missing

proof=missing; acceptance=blocked; membership=missing_foundation; chatwootFreeze=frozen_preview_only. Resolve the reviewed evidence, live membership, or Chatwoot freeze blocker before advancing. Internal handoff only; no live-send or Chatwoot writeback authority.

AG42 Real Staging Prep
missing

AG42 Real Staging Prep Missing Evidence; blocker=reviewed_external_proof_missing; canary=POST /api/customers/[id]/notes; decision=retired. Import sanitized reviewed Better Auth/PostgreSQL staging evidence before advancing. Internal-only: no live send, no Chatwoot writeback, no production rollout.

Hosted write canary
held

Hosted Write Canary Held Keep the shared canary on hold until reviewed route and proof blockers are cleared.

Rollback posture
preview_safe

rollbackVisible=false; rollbackBlocking=false; Disable hosted auth enforcement to return this route to local-compatible preview behavior.

Current Gate Details

Human approval
blocked
Name the staging approvers and record reviewed approval evidence before execution.
Missing owner
execution_owner
Missing owner
rollback_owner
Missing owner
validation_owner
Missing owner
environment_owner
Route review gate
Route Review Gate On Hold
Keep GET /api/readiness on hold. reviewReady=false; missingEvidence=2; reconciliation=reconciled.
Route selected
complete
nextRoute=GET /api/readiness; owner=auth-readiness-route; risk=low; stage=proof_point.
Evidence complete
pending
missingEvidence=2; blocker=Live membership proof is missing_foundation..
Rollback clear
complete
conflicts=0; rollbackVisible=false; rollbackNote=Disable hosted auth enforcement to return this route to local-compatible preview behavior..
Page aligned
complete
The refreshed page matches the accepted receipt.
Validation gate
Validation Review Gate Blocked
Live membership proof is blocking staging validation. state=missing_foundation; subjectLookup=false; probe=false; requestPaths=5.
Schema dual gate
pending
state=awaiting_evidence; approval=false; probe=false; verification=false.
Reviewed execution
pending
state=not_requested; reviewed=false; targetApproved=false; probeReady=false.
Live membership proof
blocked
state=missing_foundation; subjectLookup=false; probe=false; requestPaths=5.
Drift review
blocked
state=drift_detected; reviewedArtifacts=true; reviewedSqlIsolated=false.
Evidence timeline
pending
latestStatus=none; conflicts=0; rollbackVisible=false.
Evidence freshness
pending
No reviewed staging evidence timeline is recorded yet.
Migration execution
not_requested

Record reviewed command metadata before preparing a staging migration run.

Staging decision
blocked

Record reviewed command metadata before preparing a staging migration run.

Live membership proof
missing_foundation

state=missing_foundation; subjectLookup=false; prismaDelegate=false; probe=false; requestPaths=5

Schema drift
drift_detected

reviewed=true; isolated=false

Evidence timeline
none

events=0; conflicts=0; rollbackVisible=false

Reviewed bundle audit
missing

No reviewed bundle audit is recorded yet.

Reviewed execution evidence
missing

No accepted synthetic or reviewed external execution evidence is recorded yet.

Bundle attachments
none

No reviewed bundle attachment contract is recorded yet.

Staging import
disabled

secretConfigured=false; mode=secret_or_trusted_admin

Route candidates
GET /api/readiness

state=waiting_for_live_membership; candidate=needs_evidence; owner=auth-readiness-route; selection=ranked_top_candidate; missing=2.

Next route action
waiting_for_live_membership

Attach a reviewed Prisma membership delegate before treating live membership proof as in progress.

Production auth posture

ready=false; missing=7.

Hosted production
not_ready

missing=7; next=login

Live membership review
missing_foundation

Attach a reviewed Prisma membership delegate before treating live membership proof as in progress.

Route cutover review
waiting_for_live_membership

nextRoute=GET /api/readiness; missing=2

Server-session bridge

Trusted-header guardrails, Better Auth runtime readiness, or membership-by-subject bridge wiring are present, but no active trusted workspace session was proven for this request.

Bridge state
bridge_ready_no_session

requestPaths=5; authSource=none

Trusted session
not_ready

boundaryVerified=false; trustedHeaders=true

Bridge wiring
mountable

localInjection=false; subjectLookup=false

AG-34 Runtime Proof

Better Auth request path=bridge_ready_no_session; live membership=missing_foundation; hosted write canary=held; reviewed external runtime evidence is still pending.

Better Auth path
bridge_ready_no_session

proof=code_path_present -> reviewed_external_proof_pending; route=GET /api/assets; next=Resolve the missing Better Auth runtime session, then capture sanitized reviewed non-production Better Auth runtime evidence.

Live membership path
missing_foundation

proof=code_path_present -> reviewed_external_proof_pending; route=GET /api/assets; next=Attach a reviewed Prisma membership delegate before treating live membership proof as in progress.

Hosted write canary
retired

state=held; proof=code_path_present -> reviewed_external_proof_pending; route=none; next=Keep the single hosted write canary operator-controlled until reviewed external runtime evidence is accepted.

requestPath=bridge_ready_no_session
liveMembership=missing_foundation

Next Hosted Route

routeId=readiness_overview; owner=auth-readiness-route; risk=low; stage=proof_point; target=trusted_session_required; selection=ranked_top_candidate.

Route
GET /api/readiness

candidate=needs_evidence; membershipAction=view_workspace

Review state
waiting_for_live_membership

reviewReady=false; missing=2

Blocker
Live membership proof is missing_foundation.

Shared readiness overview blocker for the next hosted route.

Route lock status
none

No reviewed route lock is active. The next hosted route is currently following the ranked cutover candidate flow instead of a reviewed lock.

Next action
review

Attach a reviewed Prisma membership delegate before treating live membership proof as in progress.

Next Route Review Packet

routeId=readiness_overview; owner=auth-readiness-route; risk=low; stage=proof_point; target=trusted_session_required; selection=ranked_top_candidate.

Required evidence

trusted session fail-closed proof
boundary secret leak regression

Missing evidence

trusted session fail-closed proof
boundary secret leak regression

Readiness overview is the first read-only route migrated to hosted fail-closed mode behind an explicit env flag.

Disable hosted auth enforcement to return this route to local-compatible preview behavior.

Live Membership Proof Routes

probeRecorded=false; probeReady=false; reviewedStagingPathReady=false; migrationExecution=not_requested.

GET /api/assets
GET /api/stories
GET /api/invites
POST /api/imports/chat
POST /api/data/export

Attach a reviewed Prisma membership delegate before treating live membership proof as in progress.

What remains before real login

Better Auth Prisma schema review and migration plan
Server-side auth route validation in a reviewed runtime path
Better Auth session bridge into ClientPilot server session source
Workspace membership resolution from OrganizationMembership
Fail-closed hosted route proofs after trusted session validation
No public signup, no social login, no SSO in the first internal slice