Skip to content

keeper: add sourced read-only collateral market advisor - #26

Merged
Lagouze merged 5 commits into
stagingfrom
feature/collateral-market-advisor
Oct 26, 2026
Merged

Lagouze merged 5 commits into
stagingfrom
feature/collateral-market-advisor

Conversation

@Liel2201

@Liel2201 Liel2201 commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

[agent:contract]

Ce qui change

Collateral Market Advisor indépendant de la PR #25 auth, basé sur staging @ 3ed1704.

  • Bouton Landing, panneau ouvrable/fermable, cinq indicateurs datés/sourcés, comparaison KMMF/KBOND, explications, hypothèses et sélection manuelle conservée.
  • GET /api/market-advisor en lecture seule, sans session, wallet ou signer. Sources fixes côté keeper, timeout, mutualisation des refreshs, cache daté et états absent/obsolète explicites.
  • Proxy de volatilité réalisée sur 21 observations / 20 changements quotidiens de rendement souverain AAA euro ; jamais appelé MOVE. Calendrier TARGET (dont Pâques), jours manquants et historique incomplet contrôlés.
  • Score déterministe configurable, quatre issues possibles ; données core obsolètes/absentes exclues. VIX Yahoo activé automatiquement et utilisé comme indicateur secondaire quand sa clôture est disponible et fraîche ; liquidité non mesurée neutre. Aucune mesure de risque spécifique aux tokens fictifs ni intégration Etherfuse.
  • Types et route compatibles documentés dans interfaces v1.3, consommateur front livré dans cette même PR (règle des ajouts compatibles).

Mandat transversal explicitement autorisé par le brief humain Market Intelligence + Authentication Upgrade ; politique générale inchangée. Contrat C2, marge, scénarios Testnet, actifs, preuves et secrets intacts. Aucune transaction Stellar, aucun déploiement public.

Mise à jour Yahoo VIX — 399ec90

Demande humaine : activation de ^VIX via https://query1.finance.yahoo.com/v8/finance/chart/%5EVIX?interval=1d&range=5d. Vérification intégrée du 26/10/2026 à 04:40:58 UTC : clôture du 23/10, métrique source/current, VIX présent dans les inputs du critère valuation. Aucun changement de poids, DA, contrat, marge ou autre fonctionnalité. Source Yahoo ajoutée à la liste existante des liens HTTPS autorisés. Le cas séance ouverte est testé par fixtures, pas observé pendant une séance réelle. Pas de nouvelle validation navigateur dans cette mise à jour ; les limites ci-dessous restent valables.

Deux revues Yahoo indépendantes par sessions neuves : PASS, aucune correction demandée. Les deux reviewers ont exécuté les 17 tests ciblés ; le premier a aussi vérifié une réponse réelle Yahoo HTTP 200. Revues automatisées.

Revue

Revues Codex indépendantes par sessions neuves, sans conversation auteur. Corrections P2 : calendrier Pâques, rejet des jours TARGET absents, validation imbriquée des réponses avant rendu. Tests de régression ajoutés. Dernière revue renforcée sur d593556 : PASS, sans blocage ; npm test/typecheck/build exécutés par le reviewer. Dernier ajout de tests mocks identique à celui de #25, relu indépendamment : PASS. Revues automatisées, pas humaines.

Tests

Commande / contrôle Résultat exécuté
npm ci PASS, dépendances et lockfile inchangés
npm run typecheck PASS, tous les workspaces
npm test PASS : app 13 + keeper 82 + shared 16 + scripts 13 = 124 tests
npm run build -w @keystone/app PASS
Build vault-client PASS via les précommandes keeper
git diff --check et recherche de secrets PASS
Contrat/marge/scénarios/deployments inchangés PASS
Route réelle + validateur HTTP frontend, sans session PASS : GET/session = 404, activité = 0 après lecture des données ECB et Yahoo VIX

Tests : CSV/valeurs absentes/non finies/dates invalides ou futures, SD de référence, calendrier TARGET/Pâques/jour manquant, cache/offline/timeout, quatre issues, poids, JSON Yahoo, alignement timestamps/closes, dernière clôture terminée, timezone, erreurs 429 et provenance du cache, VIX secondaire, origine/host et route sans mutation. Deux scénarios frontend complets en client mock (cure/release/withdraw KMMF, default/refus KBOND), conservation et fetch interdit.

Observations réelles vérifiées le 26/10/2026, via la route production et le validateur frontend :

Indicateur Valeur / date / source
VIX 19.45 points (affichage arrondi ; valeur sérialisée 19.450001), clôture du 23/10/2026, Yahoo Finance / Cboe, ticker ^VIX. Endpoint chart 1d/range 5d vérifié HTTP 200.
Proxy réalisé souverain 2Y 4.4753 bp/day ; 21 observations du 24/09 au 22/10/2026 ; calcul depuis la série ECB AAA 2Y.
Euribor 3M 2.635 % ; moyenne septembre 2026 ; ECB FM, précision du parser keeper existant, attribution Refinitiv/EMMI conservée.
Rendement souverain euro AAA 2Y 3.007495 % p.a. ; 22/10/2026 ; ECB YC, courbe spot ajustée, composition continue.
€STR 2.442 % ; 22/10/2026 ; ECB EST.

Ce snapshot retourne KBOND potentially preferable, scores indicatifs 57.68 / 67.91, sans effet sur le choix ni les prix simulés. Ce n'est pas un conseil d'investissement. Les cours ne sont jamais qualifiés de temps réel. Le VIX est maintenant récupéré automatiquement depuis Yahoo Finance, sans MARKET_VIX_ENABLED, puis affiché avec sa date et utilisé comme stress secondaire. Les quatre indicateurs core restent suffisants si Yahoo est indisponible. Cache, fraîcheur, timeouts et gestion d'erreurs existants réutilisés ; aucune bougie de séance ouverte ni regularMarketPrice présentée comme clôture. Les anciens caches Cboe ne sont pas réattribués à Yahoo. Aucun contournement d'accès.

Navigateur intégré réel : ouverture/fermeture, cinq cartes, observations ECB ci-dessus, sélection manuelle KBOND après fermeture, cas absent et cas obsolète affichant Insufficient market data sans scores, desktop et 375 px sans débordement horizontal. Cas obsolète simulé par un serveur de QA local isolé avançant l'horloge, explicitement marqué, sans modifier la route production. Aucun wallet requis ; aucune erreur console bloquante observée.

Les parcours navigateur mocks ont été commencés, avec appui long sur le défaut KBOND, mais leur résultat final n'a pas été vérifié intégralement après arrêt de l'automatisation. Masquage/réaffichage réel d'onglet : NON TESTÉ, Computer Use ayant arrêté Chrome faute de pouvoir déterminer son URL avec certitude ; aucun contournement. Les deux scénarios complets sont couverts par les tests de client mock ci-dessus.

Avertissements existants de build : chunks volumineux et eval PGlite. Pas de benchmark navigateur avant/après comparable ; assets PGlite inchangés. Refresh upstream au maximum une fois par heure ; le bouton peut afficher le cache daté.

Interfaces

Ajout compatible v1.3 uniquement : GET market-advisor + MarketSnapshot/MarketMetric/MarketAdvice/AdvisorWeights dans packages/shared/src/market.ts, exportés depuis shared et recopiés dans la spec. Consommateur : pôle front (Nathan). Aucune signature existante, prix, haircut, état de session ou calcul de marge modifié. Ajout autorisé dans cette PR avec son consommateur, selon interfaces §6.

Compatibilité des deux nouvelles branches : calcul git merge-tree sans conflit, aucune intégration ni fusion effectuée.

Coordination Nathan : sa PR #24 front/liquid-glass-final touche aussi Landing. Calcul de fusion sans modifier les fichiers : conflit app/src/dashboard/Landing.tsx. Le composant MarketAdvisor est autonome ; Nathan conserve le choix du placement/style/animations dans sa DA. Sa branche n'a pas été modifiée.

Documentation

README : cinq sources réelles, proxy et différence avec MOVE, formules/poids/seuils, hypothèses/limites, configuration, cache, fraîcheur et tests. interfaces v1.3 : route/types/semantique/changelog. AGENTS et décisions consultés ; aucune modification de gouvernance.

Checklist

  • Revue renforcée par sessions neuves, corrections et passe finale PASS
  • Installation, tests/typecheck/builds exécutés
  • Données réelles vérifiées ; aucun chiffre de marché fictif de repli
  • README/spec/types documentés, front consommateur inclus
  • Cœur, preuves et secrets intacts ; zéro transaction Stellar
  • Masquage/réaffichage d'onglet à reprendre
  • VIX Yahoo actif par défaut, date/clôture/cache/scoring secondaire vérifiés
  • Coordination conflit PR front: final Liquid Glass redesign (aura, keystone lock screen, Controls panel, linear coverage, skeletons) #24 avant intégration commune

PR ouverte pour revue, sans fusion.

@Lagouze
Lagouze merged commit 01156b8 into staging Oct 26, 2026
2 checks passed
Lagouze added a commit that referenced this pull request Oct 26, 2026
…sted deployment

front: integrate #24, #25 and #26 and make the app work end to end
@Lagouze
Lagouze deleted the feature/collateral-market-advisor branch October 30, 2026 18:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants