fix: onboarding auth, stale CI build, autocomplete attrs

- Add identity.create + server.echo to UNAUTHENTICATED_METHODS
- Clear web/dist before frontend build to prevent stale artifacts
- Add autocomplete attrs to login inputs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dorian 2026-03-27 19:19:51 +00:00
parent 9741e73824
commit 018f3c84d3
3 changed files with 9 additions and 1 deletions

View File

@ -22,7 +22,9 @@ jobs:
cargo build --release --manifest-path core/Cargo.toml cargo build --release --manifest-path core/Cargo.toml
- name: Build frontend - name: Build frontend
run: cd neode-ui && npm ci && npm run build run: |
rm -rf web/dist/neode-ui
cd neode-ui && npm ci && npm run build
- name: Type check frontend - name: Type check frontend
run: cd neode-ui && npx vue-tsc -b --noEmit run: cd neode-ui && npx vue-tsc -b --noEmit

View File

@ -11,11 +11,14 @@ pub(super) const UNAUTHENTICATED_METHODS: &[&str] = &[
"auth.setup", "auth.setup",
"auth.onboardingComplete", "auth.onboardingComplete",
"health", "health",
// Server readiness check (Login.vue polls this before showing form)
"server.echo",
// Onboarding flow (before user has a session — DID creation, signing, backup) // Onboarding flow (before user has a session — DID creation, signing, backup)
"node.did", "node.did",
"node.signChallenge", "node.signChallenge",
"node.nostr-pubkey", "node.nostr-pubkey",
"node.createBackup", "node.createBackup",
"identity.create",
"identity.verify", "identity.verify",
"identity.resolve-did", "identity.resolve-did",
// Onboarding restore (before user account exists) // Onboarding restore (before user account exists)

View File

@ -53,6 +53,7 @@
id="setup-password" id="setup-password"
v-model="password" v-model="password"
type="password" type="password"
autocomplete="new-password"
class="w-full px-4 py-3 bg-transparent border border-white/20 rounded-lg text-white placeholder-white/40 focus:outline-none focus:border-white/40 focus:ring-1 focus:ring-white/20 transition-colors" class="w-full px-4 py-3 bg-transparent border border-white/20 rounded-lg text-white placeholder-white/40 focus:outline-none focus:border-white/40 focus:ring-1 focus:ring-white/20 transition-colors"
:placeholder="t('login.enterPasswordSetup')" :placeholder="t('login.enterPasswordSetup')"
@keyup.enter="handleSetupWithSound" @keyup.enter="handleSetupWithSound"
@ -68,6 +69,7 @@
id="setup-confirm-password" id="setup-confirm-password"
v-model="confirmPassword" v-model="confirmPassword"
type="password" type="password"
autocomplete="new-password"
class="w-full px-4 py-3 bg-transparent border border-white/20 rounded-lg text-white placeholder-white/40 focus:outline-none focus:border-white/40 focus:ring-1 focus:ring-white/20 transition-colors" class="w-full px-4 py-3 bg-transparent border border-white/20 rounded-lg text-white placeholder-white/40 focus:outline-none focus:border-white/40 focus:ring-1 focus:ring-white/20 transition-colors"
:placeholder="t('login.confirmPasswordPlaceholder')" :placeholder="t('login.confirmPasswordPlaceholder')"
@keyup.enter="handleSetupWithSound" @keyup.enter="handleSetupWithSound"
@ -151,6 +153,7 @@
id="login-password" id="login-password"
v-model="password" v-model="password"
type="password" type="password"
autocomplete="current-password"
class="w-full px-4 py-3 bg-transparent border border-white/20 rounded-lg text-white placeholder-white/40 focus:outline-none focus:border-white/40 focus:ring-1 focus:ring-white/20 transition-colors" class="w-full px-4 py-3 bg-transparent border border-white/20 rounded-lg text-white placeholder-white/40 focus:outline-none focus:border-white/40 focus:ring-1 focus:ring-white/20 transition-colors"
:placeholder="t('login.enterPasswordPlaceholder')" :placeholder="t('login.enterPasswordPlaceholder')"
@keyup.enter="handleLoginWithSound" @keyup.enter="handleLoginWithSound"