Repository navigation
keeper, front: hosted deployment (Vercel + Railway) with write authorization and durable session - #28
Merged
Merged
Conversation
…lway) Write routes need a team access code, hosted mode refuses the fund key, the session is saved and reloaded, unconfirmed transactions are reconciled by hash before any new write, /config states the backend, the front asks for the access code. Adds Dockerfile, railway.json, vercel.json, docs/deploy.md and interfaces v1.4. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…n network errors Review fixes: the hash of a keeper-signed transaction is captured at signing through the wallet signer and saved before the send; a pending entry found after a restart blocks writes; a session is dropped only when the vault is gone; SIGTERM waits for the write in progress; the data directory is probed at start-up; streams are capped per address; hosted start-up rules moved to hosted.ts with tests. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ore send, tighten hosted rules Second review fixes: chain() releases the guard only on a definite outcome; a hash that cannot be saved stops the send; DUPLICATE is not a refusal; wallet-signed transactions must expire within 200 s; localhost origins are refused on a hosted keeper; restore no longer holds the listening socket; the Euribor seed is copied into a fresh data directory; send() is tested with the real signer. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…th on a hosted keeper, add the Render variant GET /api/health skips the Host check on a hosted keeper only (nothing else does); deploy guide gains a Render + UptimeRobot variant and the cost/limits of the free tier. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…rom the landing page Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Owner
Author
|
[agent:front] Commit 730e764: le Market Advisor s'ouvre aussi depuis la barre du haut du tableau de bord (bouton « Market » quand une session existe), pour pouvoir le montrer sans effacer la session. Lecture seule, aucune route d'écriture. Revue légère par un sous-agent neuf : texte du bouton de fermeture adapté, libellé d'accessibilité ajouté, README mis à jour. Typecheck, 29 tests app et build OK. Vérifié en mode démo dans le navigateur ; non testé sur mobile (375 px) ni sur la Preview Vercel au moment de ce commit. |
…osted proofs), ?demo mode README: project status, live demo section, architecture diagram, demo instructions, Freighter and hosted-keeper proofs (read back from Horizon), progress table, known limits. App: ?demo plays the flow on the in-browser mock on any build, with a link from the access-code window. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…I and third-party disclosure, contract-audit limit Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
5 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ce qui change
Prépare l'hébergement public de Keystone : site statique sur Vercel, keeper dans un conteneur sur Railway. Rien n'est déployé par cette PR. Elle est empilée sur
integration/final(PR #27) : son diff ne montre que le déploiement.POSTexigeAuthorization: Bearer <code>(KEEPER_ACCESS_TOKENS, 32 caractères minimum, comparaison à temps constant). Le code n'est jamais dans le bundle : la page le demande une fois et le garde dans le navigateur.keeper/src/hosted.ts) : refuseSIGNER=keeper,FUND_SECRET, les origines localhost, l'absence de codes/origines/hôtes, et un dossier de données non inscriptible. Écoute0.0.0.0viaKEEPER_HOST, hôtes et origines exacts, sonde Railway limitée àGET /api/health.keeper/src/store.ts) : sauvegardée dansKEEPER_DATA_DIR, rechargée au démarrage et relue sur la chaîne.PendingTransaction). Aucune double transaction involontaire./api/configannoncebackendetwriteAuth; la page signale un backend factice.VITE_KEEPER_URLn'est pas une adresse HTTPS (jamais d'appel vers localhost depuis le site hébergé).Dockerfile,railway.json,vercel.json,docs/deploy.md(mode d'emploi, actions humaines, coûts), interfaces v1.4.Revue
Niveau renforcé (autorisations, interface). Deux passes de sous-agents neufs (diff seul) avec la grille de la section 7.
chain()effaçait la garde pour toute erreur autre qu'un timeout ;savesilencieux ;DUPLICATEpris pour un refus ; pas de borne de validité sur les transactions signées dans Freighter ; localhost accepté dansKEEPER_ALLOWED_ORIGINS. Corrigés, avec tests.Tests
npm run typecheck: OK.npm test: app 29, keeper 114, shared 16, scripts 13, tous verts.npm run build -w @keystone/app: OK.fake(aucune transaction) :/health200,/configindiquebackend: fake,writeAuth: token, POST sans code ou avec un mauvais code 401 (avec en-tête CORS), mauvais Host/Origin 403, SSE correct.VERCEL=1: refusé sans URL, avec localhost ou en HTTP ; accepté en HTTPS.docker build(démon Docker arrêté ; étapes rejouées à la main dans un dossier temporaire), comportement chez Railway et Vercel, Yahoo Finance depuis l'adresse du serveur, Freighter depuis le domaine hébergé. Aucune transaction Stellar envoyée par cette PR.Interfaces
Ajout compatible (v1.4), consommateur : front.
KeystoneConfig.backend?etwriteAuth?, codes d'erreurUnauthorized(401) etPendingTransaction(409),Authorization: Bearersur les routes d'écriture d'un keeper hébergé. Comportement local inchangé.Documentation
README (variables, section « Hosted deployment », limites),
docs/deploy.md(nouveau),docs/interfaces.mdv1.4,.env.example,.gitignore.Checklist
🤖 Generated with Claude Code