Antigravity
45877db706
mobile: fix notebook icons + redesign home/notebooks + inline MD parser in WebView
...
- notebooks.tsx: detect Lucide icon names (folder, book, etc.) vs emoji
-> render <Folder> component instead of raw string 'folder'
-> colored icon wrap using notebook color
- home.tsx: full redesign — header greeting + quick actions + recent list
-> section-based layout, dense note rows with chevron
- note/[id].tsx: remove 'marked' import (Metro bundler issue)
-> inline minimal MD→HTML parser runs inside WebView JS context
-> handles headings, lists, blockquotes, code blocks, inline styles
-> zero external dependency, works 100% offline
- package.json: remove 'marked' dependency
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 16:49:55 +00:00
Antigravity
0ef12f7399
fix(mobile): render notes with marked (proper Markdown→HTML) + design CSS soigné
...
- Install marked package (UMD, hors-ligne)
- buildHtml: parse Markdown server-side avec marked, inject HTML statique
- CSS: typographie soignée, blockquotes brandés, code dark, tables propres
- Plus de CDN, fonctionne hors-ligne
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 16:43:24 +00:00
Antigravity
7c8695cacf
fix(mobile): migrate to Expo SDK 54, replace NativeWind with StyleSheet
...
CI / Lint, Unit Tests & Build (push) Failing after 1m5s
CI / Deploy production (on server) (push) Has been skipped
- Update package.json to Expo ~54.0.35, expo-router ~6.0.24, RN 0.81.5
- Remove NativeWind/Tailwind dependencies
- Fix babel.config.js: presets babel-preset-expo only
- Rewrite all screens with StyleSheet.create (no className)
- Add lucide-react-native + react-native-svg
- Export design tokens C from _layout.tsx for shared usage
- Install node_modules (702 packages)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 16:18:44 +00:00
Antigravity
9ba30b8644
fix: upgrade Expo SDK 54
CI / Lint, Unit Tests & Build (push) Failing after 1m22s
CI / Deploy production (on server) (push) Has been skipped
2026-05-29 16:00:45 +00:00
Antigravity
7d939e4998
fix: Expo 53 + versions exactes recommandées (Node 22 compatible)
CI / Lint, Unit Tests & Build (push) Failing after 1m18s
CI / Deploy production (on server) (push) Has been skipped
2026-05-29 15:56:19 +00:00
Antigravity
aeedb2846f
feat: App mobile Expo + API mobile dédiée
...
CI / Lint, Unit Tests & Build (push) Failing after 1m21s
CI / Deploy production (on server) (push) Has been skipped
memento-mobile/ (Expo + React Native + expo-router):
- Auth: login email/password → Bearer token (expo-secure-store)
- Layout: guard auth → redirect /(auth)/login ou /(tabs)/home
- Tabs: Accueil, Carnets, Recherche, Profil
- Screens: login, home (recent notes + quick actions), notebooks list,
note viewer (WebView HTML), search (texte), notebook detail, profile
- Design: tokens brand-accent (#A47148), ink, concrete, paper, border
- lib/config.ts: API_URL dev/prod configurable
- lib/api.ts: apiFetch avec Bearer token automatique
- lib/store.ts: Zustand auth store (login/logout/restore)
memento-note/ (API mobile dédiée):
- lib/mobile-auth.ts: createMobileToken / verifyMobileToken (HMAC-SHA256, 90j)
- POST /api/mobile/auth/login: email+password → token + user
- GET /api/mobile/auth/me: valider token, retourner profil
- GET /api/mobile/notebooks: liste carnets avec nb notes
- GET /api/mobile/notes: notes récentes (filtre par carnet optionnel)
- GET /api/mobile/notes/[id]: contenu complet d'une note
- GET /api/mobile/search: recherche fulltext titre+contenu
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 15:53:13 +00:00
Antigravity
c7d2e35ea6
feat: aide contextuelle dans les paramètres (SettingsHelpBox)
...
CI / Lint, Unit Tests & Build (push) Failing after 1m18s
CI / Deploy production (on server) (push) Has been skipped
- Nouveau composant SettingsHelpBox (accordéon bleu, étapes numérotées)
- Intégrations: aide Google Calendar + aide Readwise (inline, avant les boutons)
- MCP: explication de ce qu'est MCP et comment l'utiliser
- IA: explication des fournisseurs, BYOK, Ollama, quotas
- Données: explication import/export/ré-indexation/suppression compte
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 15:30:15 +00:00
Antigravity
cd1be630d2
fix: agent notifications pointaient vers / au lieu de /home?openNote=
...
CI / Lint, Unit Tests & Build (push) Failing after 1m24s
CI / Deploy production (on server) (push) Has been skipped
La landing page est sur /, l'app sur /home.
Correction: actionUrl = /home?openNote=noteId
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 15:17:36 +00:00
Antigravity
c415d93945
feat: Tier 1 & 2 — Daily Note, Voice, Flashcard quota, Readwise, Calendar, Agent Gallery
...
CI / Lint, Unit Tests & Build (push) Failing after 1m7s
CI / Deploy production (on server) (push) Has been skipped
Tier 1:
- BASIC tier: chat (10/mo) + reformulate (10/mo) désormais accessibles
- Nouveaux quotas: ai_flashcard + voice_transcribe dans tous les tiers
- /api/notes/daily : note du jour auto-créée (find or create)
- Bouton Note du Jour dans la sidebar (CalendarDays)
- Voice-to-Text dans l'éditeur (Web Speech API, bouton Mic toolbar)
- Flashcard generation → quota ai_flashcard (au lieu de reformulate)
Tier 2:
- Intégration Readwise: GET/POST/DELETE /api/integrations/readwise
- Intégration Google Calendar: OAuth flow + today's events + meeting notes
- /api/integrations/calendar + /callback
- Page /settings/integrations avec cards Calendar + Readwise
- SettingsNav: onglet Intégrations
- AgentTemplates: catégories + 4 nouveaux templates (Digest/Recap/AutoTagger/Synthesis)
Schema:
- UserAISettings.integrationTokens Json? (migration 20260529160000)
- prisma generate + migrate deploy appliqués
Fix:
- SpeechRecognition types (triple-slash @types/dom-speech-recognition)
- Notebook.create: suppression champ 'description' inexistant
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 15:14:01 +00:00
Antigravity
79fd6553b7
feat(monitoring): business metrics + hardening sécurité
...
CI / Lint, Unit Tests & Build (push) Successful in 5m21s
CI / Deploy production (on server) (push) Successful in 3m43s
Métriques business dans /api/metrics :
- Abonnements par tier/status (BASIC/PRO/ENTERPRISE × ACTIVE/CANCELED)
- Nouveaux abonnements ce mois vs mois dernier
- Désabonnements / churn ce mois vs mois dernier
- Utilisateurs actifs 7j / 30j (proxy : note modifiée)
- Nouvelles inscriptions 7j / ce mois
- Runs agents IA par status (30j + aujourd'hui) + tokens consommés
- Usage IA par feature (requêtes + tokens ce mois)
- Logins aujourd'hui / ce mois (via AuditLog)
- Sessions brainstorm ce mois
- Flashcards total + reviews ce mois
Alertes Prometheus :
- HighChurnRate (> 10 désabonnements ce mois)
- NoNewUsersLast7Days (aucune inscription 7j)
- AgentRunsHighErrorRate (> 20% erreurs agents)
- BusinessMetricsCollectionFailed
Hardening monitoring :
- Ports monitoring → 127.0.0.1 (plus exposés publiquement)
- Images pinned (prometheus v2.53.0, grafana 11.1.0, etc.)
- alertmanager-bridge fake → metalmatze/alertmanager-bot:0.4.3
- /api/metrics sécurisé avec METRICS_TOKEN bearer
- Prometheus auth bearer via credentials_file
- Redis AOF + 256mb, healthcheck → /api/build-info
- repeat_interval 4h, inhibit_rules alertmanager
- Secrets CI/CD : AUTH_GOOGLE_SECRET, METRICS_TOKEN, GRAFANA, MCP_API_KEY
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 14:49:34 +00:00
Antigravity
8571080037
fix(ci): artifact@v4, AUTH_GOOGLE_SECRET secret, REDIS_HOST + Telegram dans deploy.yaml
...
CI / Lint, Unit Tests & Build (push) Successful in 6m41s
CI / Deploy production (on server) (push) Has been cancelled
ci.yaml:
- upload/download-artifact v3 → v4 (Gitea/Forgejo compatibilité)
- AUTH_GOOGLE_SECRET: vars → secrets (Google OAuth était cassé en prod)
deploy.yaml:
- Ajout REDIS_HOST=redis (manquant → Redis inaccessible au démarrage manuel)
- Ajout TELEGRAM_BOT_TOKEN + TELEGRAM_CHAT_ID (notifications manquantes)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 14:42:15 +00:00
Antigravity
5703d5bd49
feat(4-5/4-6): audit logging + zero-data-retention headers
...
CI / Lint, Unit Tests & Build (push) Successful in 5m39s
CI / Deploy production (on server) (push) Failing after 18s
Audit Logging (story 4-6):
- Nouveau modèle AuditLog (userId, action, resource, metadata, ip, createdAt)
- Migration 20260529143000_add_audit_log appliquée
- lib/audit-log.ts : logAuditEvent (fire-and-forget) + logAuditEventAsync + getClientIp
- auth.ts : LOG LOGIN / LOGOUT / USER_CREATED sur chaque event NextAuth
- /api/chat : log AI_REQUEST avec tokens + byok flag dans onFinish
- /api/agents/run-for-note : log AI_REQUEST avec featureKey + noteId
Zero-data-retention (story 4-5):
- OpenAI provider : header OpenAI-No-Training: 1
- Anthropic provider : header Anthropic-No-Train: 1
- DeepSeek provider : header X-No-Train: 1
sprint-status: 4-5 et 4-6 → done
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 14:36:06 +00:00
Antigravity
cd54a983c3
feat: AI chat tone selector + graph node pinning
...
CI / Lint, Unit Tests & Build (push) Successful in 5m48s
CI / Deploy production (on server) (push) Failing after 17s
- ai-chat: sélecteur tone (Professional/Créatif/Académique/Décontracté)
passé via noteContext.tone dans le body vers /api/chat
- network-graph: dragended garde fx/fy → nœud épinglé après drag
double-clic sur nœud pour désépingler (fx=null, fy=null)
- sprint-status: 6-2 et 6-3 passés en done
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 14:20:50 +00:00
Antigravity
aff8e688a5
fix: import markdown via input dynamique (pas d'input caché dans le DOM)
...
CI / Lint, Unit Tests & Build (push) Successful in 5m37s
CI / Deploy production (on server) (push) Failing after 18s
L'input caché dans le toolbar était bloqué par le conteneur parent.
Maintenant l'input est créé dynamiquement dans le handler et détruit
après usage — garanti d'ouvrir l'explorateur fichiers.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 13:44:31 +00:00
Antigravity
435de0a30c
fix: import markdown ouvre l'explorateur (setTimeout hors cycle dropdown)
...
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 13:42:46 +00:00
Antigravity
b825bdb8b2
fix: boucle infinie Maximum update depth dans useAutoTagging + toolbar
...
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
- use-auto-tagging: onQuotaExceeded via ref stable → n'invalide plus
useCallback analyzeContent à chaque render parent
- note-editor-context: filteredSuggestions et existingLabelsLower
stabilisés avec useMemo (était recalculé sans memo → nouvelle ref
à chaque render → état useMemo state se réexécutait → boucle)
- deepseek.ts: generateTags via generateText (pas generateObject)
pour éviter response_format:json_schema non supporté
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 13:40:59 +00:00
Antigravity
1e00b01bc3
fix: quota auto_tag consommé 1x par application réelle, pas à chaque frappe
...
CI / Lint, Unit Tests & Build (push) Successful in 5m33s
CI / Deploy production (on server) (push) Failing after 18s
- Route /api/ai/tags: supprime l'incrément sur les suggestions (UI only)
→ chaque keystroke (debounce 1.5s) ne consommait plus de quota
- notes.ts: incrément unique quand des labels IA sont réellement appliqués
en background (syncNoteLabels)
- PRO limit: 200 → 500 auto_tag/mois (200 était trop bas)
Avant: écrire une note 5min = ~20 incréments pour UNE note
Après: 1 incrément uniquement si des labels sont effectivement appliqués
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 13:17:40 +00:00
Antigravity
4218470830
fix: génération slides dans la langue de la note (15 langues)
...
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
- Récupère note.language (détecté automatiquement) depuis la DB
- LANG_NAMES: mapping code → nom complet (fa→Persian, ar→Arabic, zh→Chinese...)
- Injecte règle de langue absolue dans le prompt: tous les textes
des slides doivent être dans la langue de la note
- Fonctionnement pour les 15 locales du projet
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 13:13:28 +00:00
Antigravity
6f8121e937
fix: nombre slides proportionnel aux vrais mots de la note
...
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
- stripNoteMarkdown() : supprime #, **, URLs, métadonnées (Connection to seed,
Novelty score, Origin...), frontmatter, code blocks
- countNoteWords() : compte les mots sémantiques réels
- slideLimit() : <50 mots → 3 slides, 50-150 → 4, 150-350 → 6, >350 → 8
- Le prompt injecte la règle dynamique avec priorité absolue (⚠️ )
- Suppression des 3 occurrences hardcodées '6-12 slides'
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 13:09:46 +00:00
Antigravity
212420ec62
fix: graphe labels visibles + tooltip/cursor adaptatifs au thème clair/sombre
...
CI / Lint, Unit Tests & Build (push) Successful in 5m42s
CI / Deploy production (on server) (push) Failing after 18s
- SlideChart reçoit isDark et adapte tooltip, tick, grid, cursor, légende
- margin bottom 40px pour que les labels X-axis ne soient plus coupés
- cursor et tooltip blancs en thème clair (fini le carré noir)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 12:46:57 +00:00
Antigravity
3ee07c5f55
fix: chart/diagram fond cohérent avec le thème + slides strictement proportionnels
...
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
- slides-renderer: chart et diagram utilisent bg/text/muted du thème
(plus de fond #111827 forcé)
- slides.tool: prompt ultra-clair (<50 mots = max 3 slides)
+ cappedSlides.slice(0,8) côté serveur comme filet de sécurité
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 12:41:41 +00:00
Antigravity
51d6334f8a
fix: plafond strict 8 slides max + contrainte zod .max(8)
...
CI / Lint, Unit Tests & Build (push) Successful in 6m48s
CI / Deploy production (on server) (push) Has been cancelled
- JAMAIS plus de 8 slides quelle que soit la note
- Zod schema: .max(8) coupe l'array si le modèle déborde
- Prompt: ignore markdown/URLs dans le comptage de mots
- Chart seulement si vraies données numériques dans la note
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 12:34:43 +00:00
Antigravity
6005a2122d
fix: cards/stats slides remplissent toute la hauteur (alignContent stretch)
...
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 12:33:50 +00:00
Antigravity
c741bd1972
fix: normalizeSlide transforme {label,value} → {name,value} pour recharts
...
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
Le graphe était noir car recharts cherchait xKey='name' mais les données
avaient {label,value}. Fix dans normalizeSlide case 'chart':
- data.map({label,value} → {name,value})
- xKey: 'name', yKeys: ['value'] explicitement
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 12:30:48 +00:00
Antigravity
40cfdc9357
fix: slide graphe noire + nombre slides adaptatif
...
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
- slides-renderer: SlideChart supporte le nouveau format plat
(slide.chartType + slide.data[{label,value}]) en plus de slide.chart
→ corrige la slide noire avec légende visible mais graphe vide
- slides.tool: nombre de slides adapté au contenu
(3-4 pour note courte, 5-7 moyenne, 8-12 longue)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 12:26:32 +00:00
Antigravity
c53f292603
revert: restaure SlidesRenderer (graphes) comme renderer principal
...
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
Reverts le changement qui avait cassé les graphes des slides.
data.spec → SlidesRenderer (recharts, graphes OK)
data.html → iframe (fallback si pas de spec)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 12:20:20 +00:00
Antigravity
3fee8d8bbf
fix: ajoute slide_generate et excalidraw_generate dans VALID_FEATURES
...
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
Sans ça isValidFeature retourne false → QuotaExceededError immédiat
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 12:16:59 +00:00
Antigravity
f4208780fd
fix: quota slide_generate pour tier BASIC
...
CI / Lint, Unit Tests & Build (push) Successful in 5m43s
CI / Deploy production (on server) (push) Failing after 17s
- Ajoute slide_generate et excalidraw_generate dans TIER_LIMITS
(BASIC: 3, PRO: 20, BUSINESS: 100, ENTERPRISE: unlimited)
- run-for-note: utilise le bon feature key selon le type d'agent
- slides.tool: incrémente slide_generate (pas reformulate)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 12:10:31 +00:00
Antigravity
9e23c078e9
fix: slide 3 noire, watermark PPTX, quota génération slides
...
CI / Lint, Unit Tests & Build (push) Successful in 5m44s
CI / Deploy production (on server) (push) Failing after 17s
- canvas-board.tsx: préfère data.html (iframe) sur data.spec (ancien renderer)
→ corrige slide 3 noire en mode HTML viewer
- pptx/route.ts: ajoute watermark 'memento-note.com' sur chaque slide
via buildPptx (PPTX téléchargé depuis le canvas)
- run-for-note/route.ts: checkEntitlementOrThrow avant création agent
- slides.tool.ts: incrementUsageAsync après canvas créé avec succès
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 11:58:31 +00:00
Antigravity
45fd501953
fix: PPTX watermark + black slide + pricing page /pricing
...
CI / Lint, Unit Tests & Build (push) Successful in 6m23s
CI / Deploy production (on server) (push) Failing after 18s
- export-pptx.ts: fix watermark position for LAYOUT_WIDE (13.33"×7.5")
→ moved from y:5.35 (71% height) to y:7.1 near bottom-right (x:10.0)
- export-pptx.ts: fix buildSummarySlide dark background (T.primary overlay
covered 100% of slide appearing black) → cream bg with colored stat cards
matching design of other brainstorm slides
- pptx.tool.ts: fix addImageFullSlide using t.primary as bg when no imageUrl
→ falls back to t.bg (light); text colors adapt accordingly
- pricing/page.tsx: create /pricing standalone page reusing exact landing
page pricing section (PLANS array, billing toggle, i18n keys)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 11:45:47 +00:00
Antigravity
8eb8f551fc
Story 6-4/6-5: Chat with PDF (done) + PPTX watermark PLG
...
CI / Lint, Unit Tests & Build (push) Successful in 11m47s
CI / Deploy production (on server) (push) Failing after 18s
Story 6-4 — Chat with PDF:
- Feature déjà implémentée (document-qa-overlay.tsx, ingestion, search)
- Marquée done dans sprint-status
Story 6-5 — PPTX Export Watermark (PLG viral loop):
- lib/brainstorm/export-pptx.ts: addWatermark + withWatermark helpers
- lib/ai/tools/pptx.tool.ts: même pattern monkey-patch addSlide
- Watermark 'memento-note.com' 7pt gris bas-droite sur chaque slide
- Zéro modification des 14+ fonctions de slides existantes
- 174 tests passent, aucune erreur TS
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 11:30:56 +00:00
Antigravity
6b4ed8514f
Epic 6: Stories 6-2 (Markdown roundtrip) + 6-3 (Brainstorm PPTX + Canvas)
...
CI / Lint, Unit Tests & Build (push) Successful in 5m37s
CI / Deploy production (on server) (push) Has been cancelled
Story 6-2 — Markdown roundtrip export/import:
- lib/editor/markdown-export.ts: tiptapHTMLToMarkdown, markdownToHTML, looksLikeMarkdown
- lib/editor/markdown-paste-extension.ts: TipTap extension paste Markdown → blocs
- note-editor-toolbar.tsx: export .md + import .md (file picker)
- rich-text-editor.tsx: intégration MarkdownPasteExtension
- 40 tests unitaires markdown-export.test.ts
Story 6-3 — Brainstorm PPTX + Canvas:
- lib/brainstorm/export-pptx.ts: génération PPTX 5 slides (pptxgenjs)
- app/api/brainstorm/[sessionId]/export-pptx/route.ts: route POST protégée
- brainstorm-page.tsx: bouton PPTX, auto-select session, fix emoji, fix router.replace
- wave-canvas.tsx: fitTrigger recentrage, légende bas-droite
Onboarding activation wizard (Story 6-1):
- components/onboarding/: wizard multi-étapes, hints éditeur
- app/api/onboarding/: route PATCH onboarding
- prisma/migrations: champs onboarding user
Locales: 15 langues mises à jour (brainstorm, markdown, onboarding keys)
Sprint: 6-1 done, 6-2 review, 6-3 review
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-05-29 11:24:56 +00:00
Antigravity
dae56187fc
fix(byok): bypass api key validation in dev and fix minimax endpoint url
CI / Lint, Unit Tests & Build (push) Successful in 5m43s
CI / Deploy production (on server) (push) Failing after 18s
2026-05-28 21:52:08 +00:00
Antigravity
7cc2a9ea3b
feat(byok): fetch live models dynamically from provider api with user api key on input
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
2026-05-28 21:49:32 +00:00
Antigravity
6703e75bf3
refactor(byok): move models suggestions list to server config models-list and fetch dynamically via API
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
2026-05-28 21:44:55 +00:00
Antigravity
11a07adee7
feat(byok): add model selection to BYOK settings panel and overlay custom model on route resolution
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
2026-05-28 21:41:34 +00:00
Antigravity
3b2570d981
chore(ci): correct Gitea runner to runs-on ubuntu-24.04 and feat(billing): implement US-3.7 billing/subscription UX
CI / Deploy production (on server) (push) Has been cancelled
CI / Lint, Unit Tests & Build (push) Has been cancelled
2026-05-28 21:39:08 +00:00
Antigravity
4bfa7c6b69
fix(prisma): provide fallback connection string when DATABASE_URL is unset during CI unit testing
CI / Lint, Unit Tests & Build (push) Failing after 44s
CI / Deploy production (on server) (push) Has been skipped
2026-05-28 21:20:48 +00:00
Antigravity
e3369e03b5
fix(eslint): resolve TypeScript imports require lint rules and prefer-const warnings
CI / Lint, Unit Tests & Build (push) Failing after 42s
CI / Deploy production (on server) (push) Has been skipped
2026-05-28 21:18:51 +00:00
Antigravity
a5342eba4b
fix(ci): use --legacy-peer-deps during npm ci in all workflows
CI / Lint, Unit Tests & Build (push) Failing after 36s
CI / Deploy production (on server) (push) Has been skipped
2026-05-28 21:17:05 +00:00
Antigravity
3a08350568
fix(ci): bypass setup-node and cache steps in Gitea to use runner system Node
CI / Lint, Unit Tests & Build (push) Failing after 9s
CI / Deploy production (on server) (push) Has been skipped
2026-05-28 21:16:44 +00:00
Antigravity
67e9a6e3dd
fix(ci): resolve invalid YAML formatting in Telegram notification steps
CI / Lint, Unit Tests & Build (push) Failing after 46s
CI / Deploy production (on server) (push) Has been skipped
2026-05-28 21:15:17 +00:00
Antigravity
6309b652e8
fix(ci): use npm ci with legacy-peer-deps in Dockerfiles & add workflow_dispatch & fix list styles
2026-05-28 21:14:26 +00:00
Antigravity
457c6fa626
feat(billing): implement robust in-app subscription cancellation & fix CI/CD socket port typo
2026-05-28 20:50:11 +00:00
Antigravity
f5608372dc
fix(billing): filter out free plan for paid users, add direct cancel subscription button, and handle portal errors without crashing Next.js overlay
2026-05-28 19:49:26 +00:00
Antigravity
66bac83a9a
fix(billing): resolve react query cache conflict rendering undefined values, update enterprise CTA label and show plan cards for all tiers
2026-05-28 19:41:35 +00:00
Antigravity
529fb7a935
feat(billing): implement US-3.7 billing and subscription UX with detailed dashboard, real-time invoice history, inline paywall and upgrade confirmation
2026-05-27 22:01:21 +00:00
Antigravity
da4b5d18be
feat(editor): implement US-EDITOR-MOBILE with fixed premium toolbar (44px), action sheet (bottom sheet) for block and AI actions, select all block text, and performance fallbacks
2026-05-27 21:54:15 +00:00
Antigravity
ad8b8b815e
feat(editor): implement US-EDITOR-UX with global block selection, redesigned slash menu (favorites & preview), contextual placeholders, smart paste extended, turn into and undo/redo toasts
2026-05-27 21:47:50 +00:00
Antigravity
e3cb1307d3
perf(editor): optimize typing performance by debouncing context state updates and using useEditorState for BubbleToolbar (US-EDITOR-PERF)
2026-05-27 21:41:19 +00:00