Commit Graph
100 Commits
Author SHA1 Message Date
bruno c51bf0eab0 roadmap: ajout #76 BooksLM — console AI contextuelle style NotebookLM par répertoire
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
2026-06-18 23:45:11 -04:00
bruno b6be12969b i18n: add data-i18n to remaining 6 shortcut descriptions
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
2026-06-18 23:18:20 -04:00
bruno a15328093a i18n: fix dashboard tabs and shortcut descriptions
CI / lint (push) Failing after 18s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- Dashboard tabs: Statistiques/Récents/Partagés -> data-i18n spans
- Shortcut descriptions: added 10 help.shortcut_* keys to locales
- Tip text: added help.shortcut_tip key
- Added 3 dashboard.tab_* keys
- en.json/fr.json: 1044 -> 1059 keys
2026-06-18 23:15:01 -04:00
bruno 8db9f4447f i18n: fix hardcoded French in Statistics and Shortcuts panel
CI / lint (push) Failing after 18s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- dashboard.js: Fichiers/Tags uniques/Taille totale/Vaults -> t() calls
- config.js: Tags uniques/Vaults in About -> t() calls
- index.html: Raccourcis & Astuces -> data-i18n
- Added 5 new keys: dashboard.stats_*, help.shortcuts_title
2026-06-18 23:04:10 -04:00
bruno 4b9a450be3 fix: add missing t() import and fix init order
CI / lint (push) Failing after 20s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 12s
- app.js: import { t } alongside initI18n, move initI18n() before UI.initTheme()
- sidebar.js: add import { t } from ./i18n.js
- These fix ReferenceError: t is not defined on startup
2026-06-18 22:55:04 -04:00
bruno 659c227e6a i18n: complete audit — 55 new keys, all hardcoded strings converted to t()
CI / lint (push) Failing after 22s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
- Added 4 missing keys: button.cancel, toast.dir_renamed, toast.file_deleted, toast.file_renamed
- Replaced 41 hardcoded showToast() strings with t() calls across 13 JS files
- Replaced 10 hardcoded textContent/title/innerHTML strings with t() calls
- Fixed theme labels: Sombre/Clair -> t('theme.dark')/t('theme.light')
- Fixed vault selector: Tous les vaults -> t('help.all_vaults')
- Both locale files: 983 -> 1032 keys, perfectly matched
- Bidirectional EN<->FR switching verified in browser
2026-06-18 22:49:19 -04:00
bruno 01dec0a0ec fix: data-i18n on 10 Graph View strong headings
CI / lint (push) Failing after 20s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- Zoom/Pan, Depth slider, Filter by tag, Filter by type
- Visual search, Navigation arrows, Nodes, Info panel, Export PNG
- Context menu
All → EN translations
2026-06-18 16:55:49 -04:00
bruno 2fdca72f02 fix: full i18n for Graph View help section
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- Intro paragraph tagged + translated
- 8 LI descriptions wrapped in data-i18n spans
- 10 existing EN translations fixed
- Title: Vue Graphe → Graph View
- Barnes-Hut paragraph translated
2026-06-18 16:53:18 -04:00
bruno e1d3b22c51 fix: Automatic save heading in Advanced Editing
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
2026-06-18 16:52:10 -04:00
bruno b822196e66 fix: Files section title + ObsiGate indexes paragraph
CI / lint (push) Failing after 27s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 11s
- 📄 Fichiers → 📄 Files
- ObsiGate indexe et affiche → ObsiGate indexes and displays
2026-06-18 16:49:08 -04:00
bruno fa294f0a51 chore: remove helper
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
2026-06-18 16:46:13 -04:00
bruno 88c7a5ead9 fix: full i18n for Files + Advanced Editing help sections
CI / test (push) Has been cancelled
CI / security (push) Has been cancelled
CI / build (push) Has been cancelled
CI / e2e (push) Has been cancelled
CI / lint (push) Has been cancelled
- 18 LI descriptions wrapped in data-i18n spans
- 1 paragraph tagged
- 3 auto key EN translations fixed
- 4 existing span EN translations fixed
- Sections: Markdown rendering, file actions, CodeMirror, AI toolbar
2026-06-18 16:45:58 -04:00
bruno 557cea719d fix: help modal title → ObsiGate User Guide
CI / lint (push) Failing after 18s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
2026-06-18 16:42:06 -04:00
bruno cbe51a2849 fix: Search section title → Search
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
2026-06-18 16:41:17 -04:00
bruno 2f88c22fda fix: full i18n for Tags help section
CI / lint (push) Failing after 21s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- Tag cloud intro + all 4 bullet descriptions
- Inline vs frontmatter: intro + Frontmatter/Inline/Fusion descriptions
- Template filtering: intro + Patterns/Regex/AddRemove descriptions
- 12 fixes total, all EN translations provided
2026-06-18 16:40:37 -04:00
bruno 29b93c933e fix: Tab Mgmt intro + 6 FR descriptions in Tab/Search sections
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- Tab: intro paragraph + Ctrl+Shift+Tab → Previous tab
- Search: History, Colors, Tag facets, Sort by date all → EN
2026-06-18 16:38:55 -04:00
bruno 306951837c fix: missing EN translations for Icons + Clear in Navigation
CI / lint (push) Failing after 18s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
2026-06-18 16:30:51 -04:00
bruno 6653c7965a fix: raw i18n keys + truncated paragraphs in Navigation section
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- Added missing help.desc_filter_usage + help.desc_vault_context keys
- Fixed truncated auto paragraphs (full text now in locale)
- All truncated paragraphs restored to complete text
2026-06-18 16:30:28 -04:00
bruno b587147c81 fix: i18n help introduction hero — badges + stat labels
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 12s
- 5 feature tag badges: data-i18n on span.help-badge
- 3 stat labels: Experience, Search → English
- Access label fixed with dedicated key
- All EN translations provided
2026-06-18 16:19:35 -04:00
bruno 866b3008cc fix: full i18n for Tab Management + Search help sections
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
- 5 EN translations fixed for tab feature descriptions
- 16 Search section LI descriptions + paragraphs wrapped in data-i18n
- Search operators, autocomplete, filter chips, facets all translated
- Examples and combined example paragraphs tagged
2026-06-18 16:16:27 -04:00
bruno 57a7eb480d fix: full i18n for Navigation + Tabs help sections
CI / lint (push) Failing after 18s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- 15 LI descriptions wrapped in data-i18n spans
- 2 filter paragraphs tagged
- 3 tab navigation descriptions fixed
- All EN translations provided
- 914 locale keys
2026-06-18 16:12:02 -04:00
bruno c997183fca chore: remove helper script
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
2026-06-18 15:59:40 -04:00
bruno 661989d85d fix: wrap 73 LI descriptions across all help sections with data-i18n
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
Pattern: <li><strong>TERM</strong> : French desc → wrapped in <span data-i18n>
Covers: Navigation, Tabs, Search, Tags, Files, Editing, Graph,
AI Editor, Palette, Shortcuts, Sharing, Webhooks, Backups,
Security, Customization, Tips sections
901 locale keys, 442 data-i18n attributes
2026-06-18 15:59:19 -04:00
bruno 62378a9352 fix: wrap all LI descriptions in help-interface with data-i18n spans
CI / lint (push) Failing after 23s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
16 descriptions after <strong> now wrapped in <span data-i18n>
All have EN translations (Show/hide sidebar, Return to home, etc.)
Fixed broken hamburger span ('obile)' → '(mobile)')
2026-06-18 15:52:40 -04:00
bruno b4fefe483e fix: tag + translate all help body headings and paragraphs
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- 36 new data-i18n tags on h2/h3/p in help modal body
- Fixed concatenated attributes (pdata-i18n → p data-i18n)
- All section headings translated (Palette, AI Editor, Search, etc.)
- 827 locale keys total, 354 data-i18n attributes
- Help guide title 'Guide utilisation ObsiGate' now translated
2026-06-18 15:43:54 -04:00
bruno 31d8c2603e fix: complete help guide i18n — all body text translated
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
- Help badges, stat labels, headings tagged
- All <li> descriptions after <strong> wrapped in data-i18n
- 30 text fragments in help body tagged + EN translations
- 791 locale keys total, 0 untranslated help keys
- Emojis preserved in nav items
2026-06-18 15:27:04 -04:00
bruno 7977cb89aa fix: admin table i18n + emoji preservation in nav items
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
- Admin panel: table headers, data values, date locale-aware
- Settings/help nav: emojis added to locale values (🔍🔧🔄 etc.)
- auth.js: getLocale import, t() for all user-facing strings
- Added common.never + 6 admin column keys
- 746 locale keys per language
2026-06-18 15:16:08 -04:00
bruno bd8d6ccf63 feat: complete i18n — all French text tagged + translated
CI / lint (push) Failing after 18s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- 82 new data-i18n tags on remaining French text in index.html
- 80 auto-generated keys translated to English
- 315 total data-i18n attributes, 739 locale keys per language
- Help body paragraphs, settings descriptions, about footer
- Dashboard quick help, config parameter labels
- ALL user-visible text now has i18n coverage
2026-06-18 15:01:00 -04:00
bruno 2c4f9c6967 fix: tag settings nav items + dashboard quick help labels
CI / lint (push) Failing after 20s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 14s
- Settings sidebar: 6 items with emoji prefixes → data-i18n
- Settings content: 20+ section/label items tagged
- Dashboard quick help: section title + shortcut descriptions
- About modal: built-with section
- 233 total data-i18n attributes
2026-06-18 14:55:01 -04:00
bruno b03b057f66 fix: i18n for help modal nav, settings nav, about modal, header menu
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
- Help modal: 18 nav links with data-i18n, title, search placeholder
- Settings sidebar: 7 nav items tagged (Recherche..Themes)
- About modal: subtitle tagged
- Header dropdown: all 7 menu items tagged
- 226 total data-i18n attributes in index.html
2026-06-18 14:53:11 -04:00
bruno 31b7f4c569 fix: translate dashboard tabs, header menu items
CI / lint (push) Failing after 19s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
- showWelcome() dashboard: all tabs, empty states, hints → ${t()}
- Header dropdown: 7 menu items with data-i18n (Thème..Déconnexion)
- 61 new locale keys for dashboard, settings nav, help nav, about
- Total: 658 keys per language
2026-06-18 14:47:18 -04:00
bruno 1a27e95c1a fix: admin panel template literal — ' + t() + ' → ${t()}
CI / lint (push) Failing after 18s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 11s
The concatenation syntax was literal text inside backtick template,
showing raw code on screen. Fixed both admin.title and admin.new_user.
2026-06-18 14:44:40 -04:00
bruno 044395500f fix: missing closing paren in t() call causing SyntaxError in ui.js
CI / lint (push) Failing after 18s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
The template literal ${t('modal.in_folder', {path: parentPath || '/'}\nwas missing the closing )} — the / after || was interpreted\nas the start of a regex literal, causing:\n  Uncaught SyntaxError: Invalid regular expression: missing /

Fixed both occurrences (directory + file create modals).
2026-06-18 14:28:49 -04:00
bruno bc7875bc8e chore: remove i18n migration helper scripts
CI / lint (push) Failing after 18s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
2026-06-18 14:18:40 -04:00
bruno 0403be4516 feat: complete i18n coverage — all dynamic content translated
CI / test (push) Has been cancelled
CI / security (push) Has been cancelled
CI / build (push) Has been cancelled
CI / e2e (push) Has been cancelled
CI / lint (push) Has been cancelled
All remaining French strings converted to t() calls:
- ui.js: create/delete file/dir modals, rename/copy/bookmark toasts
- palette.js: confirm dialogs, error toasts
- search.js: result summary text with interpolation
- config.js: about/diagnostics section labels
- auth.js: admin panel title
- viewer.js: forge popout labels
- dashboard.js: shared widget buttons, date locale-aware

57 new locale keys for dynamic content (modals, toasts, admin, about)
Total: 597 keys per language

All 26 modules validated — 163 exports, 0 errors
2026-06-18 14:18:25 -04:00
bruno f91a386566 feat: comprehensive i18n coverage — all static text + auto-translate toasts
CI / lint (push) Failing after 18s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
Locale files expanded to 300+ keys covering all sections:
- Header menu, sidebar, search, viewer, editor, AI toolbar
- Config modal (all sections), help modal, dashboard, graph, mermaid
- Context menus, offline UI, palette, auth, shares, backups
- All toasts and confirmations

Automatic data-i18n tagging in index.html (177 attributes)
via Python script — handles all user-facing static text nodes.
Zero concatenation errors verified.

i18n.js: added tr() reverse-lookup function
(French text → key → current locale translation)

ui.js: showToast() now auto-translates via tr()
— all 24 existing toast call sites benefit automatically
2026-06-18 14:01:37 -04:00
bruno f85482214e feat: i18n system - French/English internationalization
CI / lint (push) Failing after 20s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 9s
Core: i18n.js module with t(), setLocale(), initI18n()
- Flat key→string JSON locale files (fr.json + en.json, 165 keys)
- data-i18n / data-i18n-placeholder / data-i18n-attr DOM attributes
- Live locale switch via setLocale() - no page reload
- Language detection: localStorage > navigator.language > 'fr'
- Fallback: missing key → French → raw key

Wired into:
- app.js: await initI18n() early in init()
- config.js: profile save → await setLocale(), toasts + confirm via t()
- auth.js: network error toast via t()
- index.html: data-i18n on login form, profile section, search placeholder
2026-06-18 13:31:11 -04:00
bruno daab917ed1 Add autocomplete status check and restructure test environments
CI / lint (push) Failing after 26s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after 10s
Add Ollama autocomplete status endpoint to AI routes, update sync panel
UI to display autocomplete state, replace monolithic test compose files
with separate Linux/Windows variants, and add PowerShell build script
for Windows deployment
2026-06-18 09:40:09 -04:00
bruno 8acfd1f19a fix: OLLAMA env vars dans environment (pas env_file)
CI / lint (push) Failing after 3s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -8s
2026-06-16 14:25:17 -04:00
bruno 32b1c0438b fix: ajout Ollama dans docker-compose.yml (production)
CI / lint (push) Failing after 3s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -7s
2026-06-16 13:02:22 -04:00
bruno 83279b536f fix: logout supprime access_token cookie + bouton toujours visible
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -8s
- Backend: delete_cookie access_token (/) + refresh_token
- Logout ne requiert plus auth (graceful si token expire)
- Bouton Deconnexion toujours visible dans le menu
2026-06-16 12:43:50 -04:00
bruno 9f382e4960 fix: logout redirige vers / (page login) au lieu de reload
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -6s
2026-06-16 12:39:44 -04:00
bruno 6c2a9f716a fix: bouton Enregistrer + Deconnexion dans Profil — style harmonieux
CI / lint (push) Failing after 3s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -8s
- config-save-btn: fond accent, texte blanc, border-radius 6px
- Bouton Deconnexion: fond danger-bg, texte danger
- Logout dans initProfile via /api/auth/logout
2026-06-16 12:33:32 -04:00
bruno 85efc068c4 fix: AuthManager import + openConfigModal reference erreur
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -7s
2026-06-16 12:29:54 -04:00
bruno c4b797f0b4 feat: Profil + Deconnexion dans le menu header (⚙️)
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -7s
- Profil: ouvre Config → scroll vers section Profil (langue, nom)
- Deconnexion: logout via /api/auth/logout, visible si auth activee
- Redemarrage: window.location.reload apres logout
2026-06-16 12:17:45 -04:00
bruno 0a0cecf178 feat: section Profil (langue) + ghost text lie a la langue
CI / lint (push) Failing after 10s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -4s
- Section Profil dans Configuration: langue (fr/en/es/de), nom
- Persistance localStorage (obsigate-lang, obsigate-name)
- Ghost text adapte le prompt a la langue du profil
- CSS profile-form, config-select stylise
2026-06-16 12:14:05 -04:00
bruno 2d03586ae0 fix: prompt ghost enrichi (contexte phrase) + trim espaces au Tab
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -7s
- Mid-word: prompt avec contexte de la phrase + exemple
- acceptGhost: trim leading whitespace pour eviter double espace
- Prompt plus direct pour le modele 1.5B
2026-06-16 12:06:01 -04:00
bruno 21ee6265d3 fix: ghost text post-process strip input prefix + mid-word isolation
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -8s
- Mid-word: extrait le mot partiel, demande ONLY remaining letters
- Post-process: strip le texte d'entree du debut de la reponse
- Support caracteres accentues dans la regex mid-word
- Prompt plus direct: Complete this word / Continue this text
2026-06-16 12:01:38 -04:00
bruno 9792c6a08b fix: ghost text visible (innerHTML + span) + IA flexible mot/phrase/bloc
CI / lint (push) Failing after 6s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -6s
- showGhost utilise innerHTML avec span.ghost-prediction (etait invisible)
- Prompt intelligent: mid-word = complete le mot, sinon complete 1-2 phrases
- Seuil reduit: 1 caractere minimum (au lieu de 3)
- Detection doublon amelioree (trimStart)
- Timeout reduit: 800ms → 600ms
2026-06-16 11:55:12 -04:00
bruno eef01ee32a feat: ghost text AI inline + Ollama qwen2.5-coder:1.5b
CI / lint (push) Failing after 7s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -6s
- Ollama provider ajoute dans ai.py (OpenAI-compatible API)
- Service ollama dans docker-compose (auto-pull qwen2.5-coder:1.5b)
- Ghost overlay dans Forge: prediction en texte pale apres le curseur
- Tab pour accepter, Escape pour rejeter, taper pour annuler
- Declenchement automatique apres 800ms de pause
- Scroll sync entre overlay et textarea
- Env vars: AI_DEFAULT_PROVIDER, OLLAMA_BASE_URL, OLLAMA_MODEL
2026-06-16 11:42:28 -04:00
bruno 994a6e1749 fix: dropdown autocomplete centre sous textarea + code nettoye
CI / lint (push) Failing after 1s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -6s
2026-06-16 10:59:58 -04:00
bruno fa4b17d9e9 fix: curseur positionne sur la nouvelle ligne (pas en fin de fichier)
CI / lint (push) Failing after 1s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -8s
2026-06-16 10:54:21 -04:00
bruno 4d0d1420df fix: continuations liste/checkbox/ol preservent le texte apres curseur (+after)
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -8s
2026-06-16 10:52:07 -04:00
bruno 9a868fd465 fix: line numbers — uniform font-size 13.5px + updateLineNumbers apres loadFile
CI / lint (push) Failing after 1s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -7s
2026-06-16 10:45:40 -04:00
bruno d3b8062b6e fix: autocomplete fallback markdown + error catch
CI / lint (push) Failing after 1s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -8s
2026-06-16 10:40:03 -04:00
bruno dab76c86f3 fix: position autocomplete dropdown — fixed viewport + getCaretCoordinates overflow visible
CI / lint (push) Failing after 1s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -7s
2026-06-16 10:36:39 -04:00
bruno 4379f0c844 fix: list continuation ligne complete + autocomplete lazy-load
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -8s
- Listes: reconstruit fullLine (before+after) pour matcher regex milieu de ligne
- curseur dans le prefixe → laisse le navigateur gerer (pas d'interception)
- Autocomplete: suggest/detectContext charges via import() dynamique
- Alt+Backslash gere les deux variantes de key (\ et Backslash)
2026-06-16 10:29:41 -04:00
bruno 36c1546098 fix: header Forge — affiche Forge + titre/fichier, restaure ObsiGate a la fermeture
CI / lint (push) Failing after 10s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -7s
2026-06-16 10:13:19 -04:00
bruno 5fc110a1b2 fix: checkbox vide casse la liste + raccourci Alt+\ pour autocomplete
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -7s
- Enter sur '- [ ]' sans texte: casse la liste (supprime la ligne vide)
- Raccourci: Alt+/ → Alt+\ (n'entre pas en conflit avec le slash menu)
- Aide F1, barre statut, console mis a jour
2026-06-16 10:08:50 -04:00
bruno 9c73dd8d51 feat: Alt+/ autocomplete + auto-continue listes/checkboxes au Enter
CI / lint (push) Failing after 6s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -6s
- Raccourci: Ctrl+Space → Alt+/ (evite conflit OS)
- Enter sur ligne liste (-, *, +) → continue la puce
- Enter sur ligne vide (puce sans texte) → termine la liste
- Enter sur liste numerotee (1.) → auto-incremente (2.)
- Enter sur checkbox (- [ ]) → nouvelle checkbox vide
- Aide F1 mise a jour, barre statut mise a jour
2026-06-16 09:43:39 -04:00
bruno 06a986d01c feat: autocomplete intelligent partage (Forge + CodeMirror)
CI / lint (push) Failing after 1s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -7s
- autocomplete.js: detection de contexte (mermaid, code, frontmatter, wikilink, markdown)
- Suggestions Mermaid: 15 types + syntaxe par type (flowchart, sequence, class, etc.)
- Suggestions Code: snippets Python/JS/Bash/SQL + 15 langages
- Suggestions Frontmatter: 9 champs YAML
- Suggestions Markdown: titres, formatting, callouts, tableaux
- Wikilinks: [[ cherche dans l'index via API /search/advanced
- Integration Forge: Ctrl+Space, auto-trigger [[ et ```, Tab/Enter pour accepter
- Dropdown flottant positionne au curseur, navigation fleches
2026-06-16 09:12:21 -04:00
bruno a002acb2b2 fix: liens wikilink utilisent TabManager.openPreview (corrige titre du tab)
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -2s
2026-06-16 08:23:23 -04:00
bruno 1a26827a5f fix: About — reduction drastique espacements pour eliminer scrollbar
CI / lint (push) Failing after 1s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -7s
2026-06-16 07:54:41 -04:00
bruno 4104ed9fa2 fix: panneau About plus large (540px) + espacements reduits — sans scrollbar
CI / lint (push) Failing after 23s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -7s
2026-06-16 07:52:13 -04:00
bruno ff2d95aad0 fix: restaurer CSS complet (ecrase par write_file append)
CI / lint (push) Failing after 3s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -8s
2026-06-16 07:47:33 -04:00
bruno 66039028a5 feat: panneau A propos elegant + retrait Editor POC
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -8s
- Remplace Editor POC par A propos (sparkles) dans le menu header
- Modale About avec animation fade+scale, logo SVG, hero gradient
- Stats live: fichiers, vaults (API /health), tests (285)
- Stack techno: 12 badges (FastAPI, vanilla JS, Docker, etc.)
- Footer: date livraison, blague aleatoire (10 variantes humour)
- Touche d'humour: git push --force accidentels, CSS > backend
- Fermeture: bouton X, clic overlay, Escape
- initAboutModal dans sync.js + config.js export
2026-06-16 07:37:39 -04:00
bruno fccee296a5 fix: Forge — preserver scroll position pendant autoHeight (empeche saut du curseur)
CI / lint (push) Failing after 7s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -7s
2026-06-16 07:19:08 -04:00
bruno 23f4f9f4f2 fix: CSP — ajout cloudflareinsights.com + legacy.js deja corrige
CI / lint (push) Failing after 3s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -3s
- CSP script-src: ajout https://static.cloudflareinsights.com
- legacy.js ligne 98 a deja le null-check if(filterBtn)
- L'erreur production vient d'un ancien deploy, sera resolu au prochain rebuild
2026-06-15 23:29:46 -04:00
bruno d1841a057d feat: #65 systeme de themes — 15 themes x dark/light
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -8s
- themes.js: 15 palettes (Defaut ObsiGate, GitHub, Linear, Spotify, Notion,
  Discord, Dracula, One Dark, Tokyo Night, Nord, Night Owl, Anthracite,
  Cyberpunk, Navy Elegance, Tons Terreux)
- Chaque theme a un mode sombre ET clair
- UI: grille de themes dans Configuration → Themes
- Toggle Sombre/Clair par theme
- Persistance localStorage (obsigate-theme + obsigate-theme-mode)
- Preview visuel: barre de couleur + accent bouton
- initThemes() appele au startup dans sync.js
- Defaut ObsiGate conserve le theme actuel
2026-06-15 23:20:35 -04:00
bruno 671befe610 feat: #59 finalisation mode hors-ligne PWA — badge + conflits
CI / lint (push) Failing after 4s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -6s
- Badge hors-ligne dans le header (icone wifi-off + compteur pending)
- Modale resolution de conflits (garder local vs serveur)
- CSS offline-indicator, offline-pending badge
- Integration: initOffline (sync.js), cacheViewedFile (viewer.js), searchOffline (search.js)
- IndexedDB: files, content, pending stores avec sync queue
- ROADMAP: #59 marque FAIT
2026-06-15 23:04:47 -04:00
bruno 8248bb0846 feat: #58 Tests E2E Playwright — 44 tests desktop + CI
CI / lint (push) Failing after 6s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / e2e (push) Has been skipped
CI / security (push) Failing after -6s
- playwright.config.ts: chromium-desktop + chromium-mobile
- tests/e2e/obsigate.spec.ts: 44 tests en 11 sections
  - Dashboard & Navigation (8 tests)
  - Full-Text Search (10 tests)
  - File Navigation & Viewer (5 tests)
  - Editor (4 tests: Forge, basic modal, Ctrl+S)
  - Mermaid Diagrams (2 tests)
  - PDF Export, Dark Mode, Responsive, Saved Searches
  - Keyboard Shortcuts (Ctrl+K, /, Escape)
  - Context Menu directory
- CI: nouveau job e2e dans .gitea/workflows/ci.yml
- ROADMAP: #58 marque FAIT
- .gitignore: node_modules, test-results, playwright-report
2026-06-15 22:54:30 -04:00
bruno 4431546a3a fix: activer file watcher + supprimer env var trompeuse OBSIGATE_WATCHER_ENABLED
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -7s
- config.json avait watcher_enabled=false → passe a true
- Le watcher natif surveille TestVault + TestDir
- Les nouveaux fichiers sont maintenant indexes en temps reel
- Suppression de OBSIGATE_WATCHER_ENABLED=false des compose (non lu par le code)
2026-06-15 17:06:47 -04:00
bruno 83d21bad1a fix: syntaxe viewer.js — accolade et ligne orphelines apres patch filtre
CI / lint (push) Failing after 1s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -5s
2026-06-15 16:59:36 -04:00
bruno 5466457a06 feat: filtre sauvegardes (Tous/Recherches/Repertoires) extensible
CI / lint (push) Failing after 3s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -7s
- Barre de filtres avec 3 pills: Tous, Recherches, Repertoires
- Chaque saved-search-item a data-type=search|directory
- _applySavedFilter() masque/affiche selon le filtre actif
- _initSavedFilter() initialise les listeners (run once)
- Extensible: ajouter un pill + data-type suffit
- Gere l'etat empty quand aucun resultat pour le filtre
2026-06-15 16:57:19 -04:00
bruno 2c7b8b525a fix: icone type distinct + position a droite dans les recherches sauvegardees
CI / lint (push) Failing after 5s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -3s
- Recherche classique: icone search (loupe) grise a droite
- Recherche repertoire: icone folder-search bleue a droite
- Icones dans .saved-search-meta, poussees a droite via margin-left:auto
- Les badges/vault restent a gauche dans .saved-search-badges
2026-06-15 16:51:49 -04:00
bruno 1116957c19 feat: menu contextuel repertoire → Sauvegarder recherche + icone dossier
CI / lint (push) Failing after 5s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -2s
- ContextMenuManager: option Ajouter aux recherches sauvegardees pour repertoires
- _saveDirectorySearch: POST /api/saved-searches avec include_paths=repertoire/**
- Bascule automatique vers longlet Sauvegardes dans le sidebar
- loadSavedSearches: icone folder-search + classe saved-search-dir pour recherches dossier
- Recherches dossier affichent le chemin au lieu d'une query vide
2026-06-15 16:45:45 -04:00
bruno 5ec54d3cc2 fix: barre flottante deplacee hors content-area (avant </body>) — immunisee contre innerHTML
CI / lint (push) Failing after 6s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -5s
2026-06-15 16:33:54 -04:00
bruno c2d7000edf fix: barre flottante en position fixed (viewport) pour visibilite permanente
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -8s
2026-06-15 16:28:07 -04:00
bruno 91d7074a07 fix: preserver la barre flottante lors du innerHTML clear du content-area
CI / lint (push) Failing after 2s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -7s
2026-06-15 16:23:23 -04:00
bruno d0bc5ebbd0 fix: mise a jour legacy.js + app.js pour les nouveaux IDs rb-* (barre flottante)
CI / lint (push) Failing after 1s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -8s
2026-06-15 15:16:54 -04:00
bruno 1ce3a6d65c feat: barre de recherche epuree + barre flottante de resultats
CI / lint (push) Failing after 1s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -7s
- Header: retire Aa/wd/.*, compteur 0/0, fleches nav (reste filtre + clear)
- Nouvelle barre flottante sticky en bas du content-area
- Style pill arrondi, fond semi-transparent, ombre legere
- Contient: compteur, nav prev/next, toggles Aa/wd/.*
- Apparait seulement quand des resultats sont affiches
- Disparait au clear ou retour dashboard
- Mobile: filtre + clear restent visibles
- IDs renommes rb-* pour eviter collisions
2026-06-15 15:12:18 -04:00
bruno 75a28da8d9 style: formatage HTML index.html — indentation multi-lignes coherente
CI / lint (push) Failing after 1s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -7s
2026-06-15 14:55:36 -04:00
bruno 0f4a7405db feat: section aide rapide dans le dashboard stats
CI / lint (push) Failing after 1s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -8s
- Boite elegante sous les statistiques avec icone clavier
- 10 raccourcis clavier essentiels (palette, recherche, edition)
- Badges style touches clavier (mono, accent, bordure)
- Astuce Ctrl+survol et editeur Forge
- Toggle masquer/afficher avec persistence localStorage
- Layout grid responsive (auto-fill minmax 260px)
2026-06-15 14:11:49 -04:00
bruno dd52f379bf fix: rename variables Forge pour eviter conflit const saveBtn
CI / lint (push) Failing after 5s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -2s
2026-06-15 13:59:15 -04:00
bruno cc2ec9e869 fix: suppression boutons doublons Forge + delegation parent modal
CI / lint (push) Failing after 7s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -8s
- Retrait des 3 boutons (delete/cancel/save) de la barre Forge (doublons)
- Retrait des handlers JS associés dans editor-poc.html
- Le header parent ObsiGate reste visible quand Forge est ouvert
- Les boutons save/delete du parent délèguent à Forge via postMessage
- Forge écoute 'parent-save' et 'parent-delete' du parent
- state.editorVault/editorPath settés dans viewer.js pour le parent
2026-06-15 13:57:21 -04:00
bruno feeb46b873 feat: finalisation éditeur Forge + mode hors-ligne PWA + consolidation roadmap
CI / lint (push) Failing after 7s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after -7s
- Forge: Tab indent, Ctrl+K, auto-focus, AI status, messages erreur FR
- Forge: slash commands clean, cache-bust iframe, preview serveur
- Forge: iframe 82vh, hauteur auto, table inline, sélecteur langage
- PWA hors-ligne: IndexedDB (offline-db.js + offline.js)
- Mermaid: thème dark complet, highlight.js preview
- Backend: màj CSP, rename chain, bookmarks/history/shares
- Roadmap: consolidation dans docs/ROADMAP.md (75 items)
- Infra: docker-compose.podman.yml, suppression test-vault
- .gitignore: exclusion odysseus/
2026-06-14 20:27:37 -04:00
bruno 0cdebc5b40 feat: finalize Forge editor — Tab indent, Ctrl+K, auto-focus, AI status, French errors
CI / lint (push) Failing after 3s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in -1s
Tab/Shift+Tab: indent/dedent list items. Ctrl+K: link insertion prompt. Qi button: position:fixed (always visible). Auto-focus textarea on load. AI ready indicator in status bar. All error messages in French. Force-save shows 'Sauvegarde' toast.
2026-06-10 09:09:53 -04:00
bruno 8cf7b55747 fix: slash commands clean /command + cache-bust Forge iframe
CI / lint (push) Failing after 5s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Successful in -3s
Bug 1: selectSlashAction now strips /command text before executing. Bug 2: Forge URL includes _ts=Date.now() to prevent cache.
2026-06-10 08:59:58 -04:00
bruno 89b0a5a024 Consolidate roadmap files into docs/ROADMAP.md 2026-06-09 10:38:50 -04:00
bruno 75291eac42 feat: Mermaid + highlight.js rendering in preview pane
CI / lint (push) Successful in 16s
CI / security (push) Successful in 11s
CI / test (push) Successful in 40s
CI / build (push) Successful in 4s
Added CDN scripts: mermaid@11, highlight.js@11 with atom-one-dark theme. After server-rendered HTML is injected, processPreviewBlocks() renders Mermaid diagrams via mermaid.render() and highlights code blocks via hljs.highlightElement(). Preview now matches ObsiGate viewer fidelity.
2026-06-06 01:05:16 -04:00
bruno 88185c70e0 feat: preview uses ObsiGate server-side rendering (Mermaid, highlight, wikilinks)
CI / lint (push) Successful in 15s
CI / security (push) Successful in 7s
CI / test (push) Successful in 23s
CI / build (push) Successful in 3s
Preview now saves content via API then fetches rendered HTML from GET /api/file/{vault}?path=... instead of client-side marked.parse(). This enables Mermaid diagrams, syntax highlighting, wikilink resolution, and frontmatter cards. Demo mode still uses marked.js fallback. Debounce increased to 500ms. Loading spinner during render.
2026-06-06 00:53:40 -04:00
bruno 3090fe62fe fix: Forge iframe height uses 82vh (bypasses flex parent issue)
CI / lint (push) Successful in 14s
CI / security (push) Successful in 8s
CI / test (push) Successful in 24s
CI / build (push) Successful in 2s
height:100% doesn't work when parent uses flex height. position:absolute collapses the parent. 82vh = 90vh modal - header. Also set bodyEl overflow:hidden.
2026-06-06 00:40:35 -04:00
bruno 6388718b87 fix: Forge iframe fills full modal height (position:absolute)
CI / lint (push) Successful in 15s
CI / security (push) Successful in 9s
CI / test (push) Successful in 38s
CI / build (push) Successful in 3s
.editor-body has flex height, so percentage height on iframe didn't work. Changed to position:absolute;inset:0 which fills the relative parent regardless of flex sizing.
2026-06-06 00:35:57 -04:00
bruno 12eaa9f659 fix: textarea fills full editor height when content is short
CI / lint (push) Successful in 15s
CI / security (push) Successful in 11s
CI / test (push) Successful in 26s
CI / build (push) Successful in 3s
autoHeight() now uses Math.max(contentH, wrapH-48) so textarea fills available space even with short content, and grows beyond when content is long.
2026-06-06 00:27:17 -04:00
bruno ac9382d12e fix: auto-height on file load so entire content is visible
CI / lint (push) Successful in 15s
CI / security (push) Successful in 9s
CI / test (push) Successful in 26s
CI / build (push) Successful in 3s
Added autoHeight() helper called after ta.value is set in both demo mode and API load. Previously only triggered on input event, so loaded files only showed first line (scrollHeight was 0 until user typed).
2026-06-06 00:18:11 -04:00
bruno ba30d1e7ce feat: Forge opens in editor modal instead of new tab
CI / lint (push) Successful in 14s
CI / security (push) Successful in 8s
CI / test (push) Successful in 29s
CI / build (push) Successful in 3s
Forge button now reuses the existing editor-modal with an iframe. Same position as the Edit/CodeMirror modal. On close, the forge iframe is removed and the current file is refreshed (picks up changes saved by the POC's auto-save). Updated both frontend/js/viewer.js and frontend/app.js.
2026-06-06 00:11:21 -04:00
bruno c58eb9314e fix: remove 160px bottom padding, editor now uses full height
CI / lint (push) Successful in 14s
CI / security (push) Successful in 8s
CI / test (push) Successful in 36s
CI / build (push) Successful in 3s
2026-06-06 00:06:17 -04:00
bruno 53cd202a93 fix: bubble menu always positioned at selection end
CI / lint (push) Successful in 15s
CI / security (push) Successful in 9s
CI / test (push) Successful in 24s
CI / build (push) Successful in 2s
Changed from selectionStart to selectionEnd so bubble follows where user finished selecting. Removed broken fallback that repositioned to textarea bottom on every scroll. Simple viewport clamp instead.
2026-06-06 00:04:04 -04:00
bruno 76a5b23e96 feat: inline table form + code language picker (no more prompt dialogs)
CI / lint (push) Successful in 15s
CI / security (push) Successful in 9s
CI / test (push) Successful in 25s
CI / build (push) Successful in 3s
Table: inline form with cols/rows inputs, positioned at cursor. Enter to insert, Esc to cancel. Code block: language picker with 41 languages (bash,js,ts,py,java,rust,go,c,cpp,html,css,json,yaml,sql,dockerfile...), navigable via arrows+Enter. All positioned via caretToPixel like other menus. Click outside closes.
2026-06-06 00:02:16 -04:00
bruno f42e37489b fix: table prompt in French, tab title shows filename
CI / lint (push) Successful in 14s
CI / security (push) Successful in 7s
CI / test (push) Successful in 25s
CI / build (push) Successful in 2s
"Nombre de colonnes/lignes" prompts. Tab title now shows "Title - ObsiGate Forge" when file loaded, "ObsiGate Forge - Demo" in demo mode.
2026-06-05 23:34:30 -04:00