Repository navigation
Require server-issued CAPTCHA proof for authentication actions - #195
Conversation
🧪 Comprehensive Test Suite
Full-stack smoke gate runs in the CI workflow. |
🧪 Comprehensive Test Suite
Full-stack smoke gate runs in the CI workflow. |
|
Final correction head:
Production-built web served by owned nginx, against the owned production-mode API: 4/4 browser cases passed, zero retries, 16.8 seconds. This covers absent/forged REST+GraphQL proofs, real PoW with failed-password retry and successful login at 390/1440px, and zero login dispatch while verification is pending, failed or expired (including direct form submission). The expiry browser case exercises the widget event contract; service expiry uses a controlled clock in server tests. Final server suite 140/140 passed; focused component/form tests 6/6 passed; types, lint and all four builds passed. Full web rerun is still completing. Prior failures and corrections are retained in the repository lesson. This is independent agent review, not GitHub non-author approval. CI remains open, including the known inherited Undici security failure pending #194; no deployment or email-delivery claim. |
…61027 # Conflicts: # .agents/issues/INDEX.md # .agents/issues/security-audit-index.md
🧪 Comprehensive Test Suite
Full-stack smoke gate runs in the CI workflow. |
|
Composed final head Fresh composed install, types, lint, all four builds and 163/163 harness tests passed. After restarting the owned production-mode API on the composed install, its built-nginx browser run passed 4/4, zero retries, 16.1 seconds. The authentication snapshot's 140 server and 332 web tests remain separately recorded, and exact-head remote CI has passed unit/build/security/real-Neo4j/installer checks while its full browser gate is still running. No deployment was performed. The token-purpose/session-revocation follow-up for #184 is being developed on this branch's reviewed head to preserve the new CAPTCHA policy. It will be a separate dependent PR; it must not be integrated ahead of this PR's remaining gates. |
🧪 Comprehensive Test Suite
Full-stack smoke gate runs in the CI workflow. |
…61027 # Conflicts: # .agents/issues/INDEX.md
|
The failed composition run 40573347298 exposed a development startup mismatch: CI ran Commit After LOD PR #192 merged, this PR was composed with live dev |
🧪 Comprehensive Test Suite
Full-stack smoke gate runs in the CI workflow. |
|
Exact composition Exact-head comprehensive 40579557449 is green; CI 40579557476 is still running. The prior |
…ptcha-20261027 # Conflicts: # .agents/issues/INDEX.md # .agents/issues/security-audit-index.md
🧪 Comprehensive Test Suite
Full-stack smoke gate runs in the CI workflow. |
1 similar comment
🧪 Comprehensive Test Suite
Full-stack smoke gate runs in the CI workflow. |
|
Frozen composition Fresh clean install/build/types/lint, 146 server cases and 176 harness cases passed. Restarted the owned production-mode API on this built source and served its built SPA through the owned nginx fixture: 4/4 CAPTCHA browser cases passed in 13.5s, zero retries, including real proof, absent/forged REST+GraphQL proof and accessible desktop/phone retry behavior. Current CI 40586466883 remains pending; Node 22/24 + installer checks 40586466780 passed. The earlier editor-race CI failure remains retained; integration is not yet claimed. |
🧪 Comprehensive Test Suite
Full-stack smoke gate runs in the CI workflow. |
🧪 Comprehensive Test Suite
Full-stack smoke gate runs in the CI workflow. |
🧪 Comprehensive Test Suite
Full-stack smoke gate runs in the CI workflow. |
|
Current CAPTCHA head A deterministic React.Profiler regression emits at the first widget commit: old source fails 1/5, corrected source passes 5/5. Replacement, error, prior-action and unmount controls reject stale events. Independent review cleared exact source and downstream compositions. Local build/types/lint, 179 harness checks, and 353 web tests passed; the web run used bounded workers after retaining an unrelated unbounded 5-second test timeout and subsequent failure. No timeout/retry settings were relaxed. Rebuilt production SPA passed all four real CAPTCHA browser cases in 17.8s, one worker, zero retries. Token current head |
…er-captcha-20261027
🧪 Comprehensive Test Suite
Full-stack smoke gate runs in the CI workflow. |
1 similar comment
🧪 Comprehensive Test Suite
Full-stack smoke gate runs in the CI workflow. |
|
Imported reviewed LOD correction #207 without changing this feature's own implementation. The composition adds exactly four reviewed paths (renderer effect, regression, lesson and index); independent review verified complete tree/blob unions, parents and unchanged feature code. Source #207 passes LOD desktop/phone2/2, web346/346, harness175/175, smoke6/6, build/types/lint. Refreshed exact-head CI is active; earlier failures/cancelled superseded runs are retained and are not passes. The CSS acceptance failure is addressed by the isolated transition-ownership fix, not by retries or relaxed assertions. |
🧪 Comprehensive Test Suite
Full-stack smoke gate runs in the CI workflow. |
|
Final correction composition is now The combined local motion suite passes 3/3 in 2.1 minutes with zero retries; combined LOD validation and fresh exact-head CI remain pending. Previous green heads do not establish this composition's final acceptance. Earlier LOD/rotation failures and insufficient title-geometry evidence remain retained. Integration follows #207 → #210 → #199 → #195 → #197 → #202 → #206 → #211, with native dev merge verification and post-merge CI before issue closeout. Independent agent review is not a GitHub non-author approval. |
|
Final native dev-only integration evidence for CI40602589187 and Comprehensive40602589295 passed every applicable job. Downloaded strict artifacts verify smoke6, new-user42, LOD2, routes7, mobile27 and performance3, all with zero failed/warned/skipped cases, evidence errors, timeouts or nonzero executions. Effects, showcase, supported-Node coverage, installer and real-Neo4j gates also passed. The main/nightly-only production job is inapplicable to this dev PR. The live base and complete merge result will be checked against the preceding reviewed stack tree immediately around the native operation. Expected resulting tree: This uses the owner's standing dev administrator authority and does not claim a GitHub non-author approval. Issue closeout waits for successful validation of the integrated dev head; intermediate post-merge runs may be superseded by later reviewed stack integration and are not counted as passes. Main, release, deployment and protection remain unchanged. |
Core currently accepts arbitrary six-character CAPTCHA strings and lets direct GraphQL login/signup omit verification. This change requires server-issued, action-bound ALTCHA proof before protected authentication actions, with expiry, bounded issuance and atomic one-use redemption. Production rejects the old signing-key fallback; an unset key uses a random process-local key.
The sign-in/reset UI now obtains the server's proof, clears consumed/expired proof, and exposes accessible error/retry states. Core advertises its contract through
/config; Cloud's existing contract remains separate. Auth-only GraphQL inputs accept proof too, and same-origin auth/challenge routes work through the development proxy and self-host nginx.Fixes #183 after review and required validation. Part of #193. No provider account, dependency upgrade, shared library or deployment is introduced.
Validation so far (Node22.18.0/npm10.8.2, owned fixtures):
ABC123rejection test fails against the old verifier; retained.b12ef2c1f0064ac7cc838ac1e806c52134a6802f; final composed checks/remote CI pending. Draft until resolved.The new
qc:captchacommand requires an explicitly marked owned production-mode fixture and synthetic admin password. Traces remain private. The repo lesson records failures, commands, cause, correction and limits. Challenge ledger/rate limits are process-local; restart invalidates outstanding proof. This is proof-of-work abuse control, not human identity verification. Token purpose/OAuth/reset revocation remain #184; hosted parity and email delivery remain separate. Undici audit correction is tracked by #194 and is not folded into this auth change.