Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions .github/workflows/dependabot-automerge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# QNBS-v3: proposed during the deployment-surface/OpenRouter audit (2026-07-28) — a 31-day commit
# gap let 20 Dependabot PRs stack up (see AUDIT.md / TODO.md). Auto-merging PATCH-only bumps once
# CI is green cuts that latency without touching the judgment calls minor/major bumps deserve. The
# existing dev-tooling/tauri-deps groups and the 7-day release cooldown (.npmrc minimum-release-age)
# are unchanged — this only adds a merge step gated on CI + semver-patch.
name: Dependabot Auto-Merge

on:
pull_request:
branches: [main]

permissions:
contents: read

jobs:
auto-merge:
name: Auto-merge patch-level Dependabot PRs
# QNBS-v3: github.actor is the last actor to trigger the event, not the immutable PR author —
# spoofable (confused-deputy risk) for gating a contents:write/pull-requests:write job.
# github.event.pull_request.user.login is set at PR creation and can't be manipulated this way.
if: github.event.pull_request.user.login == 'dependabot[bot]'
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Fetch Dependabot metadata
id: metadata
uses: dependabot/fetch-metadata@25dd0e34f4fe68f24cc83900b1fe3fe149efef98 # v3.1.0
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"

# QNBS-v3: patch-only, on purpose — minor/major bumps (or any bump outside npm/cargo/
# github-actions, e.g. a group update mixing semver levels) still need a human look.
- name: Enable auto-merge for semver-patch updates
if: steps.metadata.outputs.update-type == 'version-update:semver-patch'
run: gh pr merge --auto --squash "$PR_URL"
env:
PR_URL: ${{ github.event.pull_request.html_url }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
10 changes: 0 additions & 10 deletions locales/ar/settings.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
{
"dashboard.backup.exportJson": "تصدير JSON",
"dashboard.backup.hint": "صدّر مشروعك، أو استورد نسخة احتياطية، أو افتح إعدادات النسخ الاحتياطي الكاملة.",
"dashboard.backup.importJson": "استيراد JSON",
"dashboard.backup.latestSnapshot": "أحدث لقطة: {{name}} ‏({{date}})",
"dashboard.backup.openSettings": "إعدادات النسخ الاحتياطي",
"dashboard.backup.title": "النسخ الاحتياطي والاستعادة",
"dashboard.backup.unnamedSnapshot": "لقطة بلا اسم",
"error.boundary.retryAnnouncement": "أُعيد تحميل {{view}} بعد خطأ.",
"error.boundary.retryAnnouncementGeneric": "أُعيد تحميل العرض بعد خطأ.",
"sceneboard.minimap.ariaLabel": "خريطة مصغّرة للوحة الحبكة",
"settings.about.description": "شريكك الإبداعي المدعوم بالذكاء الاصطناعي للكتابة.",
"settings.about.githubDescription": "اعرض الكود المصدري، وأبلغ عن المشكلات، وساهم.",
"settings.about.githubLabel": "مفتوح المصدر على GitHub",
Expand Down
10 changes: 0 additions & 10 deletions locales/de/settings.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
{
"dashboard.backup.exportJson": "JSON exportieren",
"dashboard.backup.hint": "Projekt exportieren, Backup importieren oder Einstellungen öffnen.",
"dashboard.backup.importJson": "JSON importieren",
"dashboard.backup.latestSnapshot": "Letzter Snapshot: {{name}} ({{date}})",
"dashboard.backup.openSettings": "Backup-Einstellungen",
"dashboard.backup.title": "Backup & Wiederherstellung",
"dashboard.backup.unnamedSnapshot": "Unbenannter Snapshot",
"error.boundary.retryAnnouncement": "{{view}} nach einem Fehler neu geladen.",
"error.boundary.retryAnnouncementGeneric": "Ansicht nach einem Fehler neu geladen.",
"sceneboard.minimap.ariaLabel": "Plot-Board-Minikarte",
"settings.about.description": "Ihr KI-gestützter kreativer Partner für das Schreiben.",
"settings.about.githubDescription": "Quellcode ansehen, Fehler melden und mitmachen.",
"settings.about.githubLabel": "Open-Source auf GitHub",
Expand Down
10 changes: 0 additions & 10 deletions locales/el/settings.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
{
"dashboard.backup.exportJson": "Εξαγωγή JSON",
"dashboard.backup.hint": "Εξαγωγή your project, import a backup, or open full backup settings.",
"dashboard.backup.importJson": "Εισαγωγή JSON",
"dashboard.backup.latestSnapshot": "Τελευταίο στιγμιότυπο: {{name}} ({{date}})",
"dashboard.backup.openSettings": "Ρυθμίσεις δημιουργίας αντιγράφων ασφαλείας",
"dashboard.backup.title": "Δημιουργία αντιγράφων ασφαλείας και επαναφορά",
"dashboard.backup.unnamedSnapshot": "Στιγμιότυπο χωρίς όνομα",
"error.boundary.retryAnnouncement": "Το {{view}} φορτώθηκε ξανά μετά από σφάλμα.",
"error.boundary.retryAnnouncementGeneric": "Η προβολή φορτώθηκε ξανά μετά από σφάλμα.",
"sceneboard.minimap.ariaLabel": "Μίνι χάρτης σανίδας οικοπέδου",
"settings.about.description": "Ο δημιουργικός συνεργάτης σας με τεχνητή νοημοσύνη για τη γραφή.",
"settings.about.githubDescription": "Δείτε τον πηγαίο κώδικα, αναφέρετε προβλήματα και συνεισφέρετε.",
"settings.about.githubLabel": "Ανοιχτού κώδικα στο GitHub",
Expand Down
24 changes: 7 additions & 17 deletions locales/en/settings.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
{
"dashboard.backup.exportJson": "Export JSON",
"dashboard.backup.hint": "Export your project, import a backup, or open full backup settings.",
"dashboard.backup.importJson": "Import JSON",
"dashboard.backup.latestSnapshot": "Latest snapshot: {{name}} ({{date}})",
"dashboard.backup.openSettings": "Backup settings",
"dashboard.backup.title": "Backup & restore",
"dashboard.backup.unnamedSnapshot": "Unnamed snapshot",
"error.boundary.retryAnnouncement": "{{view}} reloaded after an error.",
"error.boundary.retryAnnouncementGeneric": "View reloaded after an error.",
"sceneboard.minimap.ariaLabel": "Plot board mini-map",
"settings.about.description": "Your AI-powered creative partner for writing.",
"settings.about.githubDescription": "View source code, report issues, and contribute.",
"settings.about.githubLabel": "Open-source on GitHub",
Expand Down Expand Up @@ -248,16 +238,16 @@
"settings.ai.temperature.creative": "2 – Creative",
"settings.ai.temperature.precise": "0 – Precise",
"settings.ai.testConnection": "Test connection",
"settings.ai.testError.noApiKey": "No {{provider}} API key set",
"settings.ai.testError.httpError": "HTTP {{status}}",
"settings.ai.testError.timeout": "Connection timed out ({{url}})",
"settings.ai.testError.unreachable": "Not reachable ({{url}})",
"settings.ai.testError.pluginUnavailable": "Local server networking is unavailable: the desktop HTTP plugin failed to load.",
"settings.ai.testError.desktopRequired": "Ollama and local OpenAI-compatible servers are only available in the desktop app. Browsers block direct connections from web pages to localhost (CORS and Private Network Access).",
"settings.ai.testError.backendProxyRequired": "Claude requires a backend proxy (CORS restriction)",
"settings.ai.testError.desktopRequired": "Ollama and local OpenAI-compatible servers are only available in the desktop app. Browsers block direct connections from web pages to localhost (CORS and Private Network Access).",
"settings.ai.testError.httpError": "HTTP {{status}}",
"settings.ai.testError.noApiKey": "No {{provider}} API key set",
"settings.ai.testError.noWebgpu": "WebGPU unavailable in this browser — WebLLM needs WebGPU (try Chrome/Edge or enable flags).",
"settings.ai.testError.unknownProvider": "Unknown provider",
"settings.ai.testError.pluginUnavailable": "Local server networking is unavailable: the desktop HTTP plugin failed to load.",
"settings.ai.testError.timeout": "Connection timed out ({{url}})",
"settings.ai.testError.unexpected": "An unexpected error occurred. Please try again.",
"settings.ai.testError.unknownProvider": "Unknown provider",
"settings.ai.testError.unreachable": "Not reachable ({{url}})",
"settings.ai.title": "AI Configuration",
"settings.ai.transformers.hint": "Runs any Xenova-compatible HuggingFace model locally via WebAssembly or WebGPU.",
"settings.ai.transformers.modelId": "Model ID (HuggingFace)",
Expand Down
14 changes: 7 additions & 7 deletions locales/es/dashboard.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@
"dashboard.authorInsights.timelineClear": "Sin avisos desde los metadatos de escena.",
"dashboard.authorInsights.timelineWarnBadge": "{{count}} avisos — revisa fechas/duraciones en el tablero.",
"dashboard.authorInsights.title": "Información de pipeline del autor",
"dashboard.backup.exportJson": "JSON exportieren",
"dashboard.backup.hint": "Projekt exportieren, Backup importieren oder Einstellungen öffnen.",
"dashboard.backup.importJson": "JSON importieren",
"dashboard.backup.latestSnapshot": "Letzter Snapshot: {{name}} ({{date}})",
"dashboard.backup.openSettings": "Backup-Einstellungen",
"dashboard.backup.title": "Backup & Wiederherstellung",
"dashboard.backup.unnamedSnapshot": "Unbenannter Snapshot",
"dashboard.backup.exportJson": "Exportar JSON",
"dashboard.backup.hint": "Exporta tu proyecto, importa una copia de seguridad o abre la configuración completa de copias de seguridad.",
"dashboard.backup.importJson": "Importar JSON",
"dashboard.backup.latestSnapshot": "Última instantánea: {{name}} ({{date}})",
"dashboard.backup.openSettings": "Configuración de copias de seguridad",
"dashboard.backup.title": "Copia de seguridad y restauración",
"dashboard.backup.unnamedSnapshot": "Instantánea sin nombre",
"dashboard.composition.avgPerScene": "Media / escena",
"dashboard.composition.empty": "Añade escenas en el Manuscrito para ver su composición.",
"dashboard.composition.readingTime": "Tiempo de lectura",
Expand Down
10 changes: 0 additions & 10 deletions locales/es/settings.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
{
"dashboard.backup.exportJson": "Export JSON",
"dashboard.backup.hint": "Export your project, import a backup, or open full backup settings.",
"dashboard.backup.importJson": "Import JSON",
"dashboard.backup.latestSnapshot": "Latest snapshot: {{name}} ({{date}})",
"dashboard.backup.openSettings": "Backup settings",
"dashboard.backup.title": "Backup & restore",
"dashboard.backup.unnamedSnapshot": "Unnamed snapshot",
"error.boundary.retryAnnouncement": "{{view}} reloaded after an error.",
"error.boundary.retryAnnouncementGeneric": "View reloaded after an error.",
"sceneboard.minimap.ariaLabel": "Plot board mini-map",
"settings.about.description": "Tu compañero creativo de escritura con IA.",
"settings.about.githubDescription": "Ver el código fuente, reportar errores y contribuir.",
"settings.about.githubLabel": "Código abierto en GitHub",
Expand Down
10 changes: 0 additions & 10 deletions locales/eu/settings.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
{
"dashboard.backup.exportJson": "Esportatu JSON",
"dashboard.backup.hint": "Esportatu zure proiektua, inportatu babeskopia bat edo ireki babeskopien ezarpen osoak.",
"dashboard.backup.importJson": "Inportatu JSON",
"dashboard.backup.latestSnapshot": "Azken argazkia: {{name}} ({{date}})",
"dashboard.backup.openSettings": "Babeskopia-ezarpenak",
"dashboard.backup.title": "Babeskopia egin eta leheneratu",
"dashboard.backup.unnamedSnapshot": "Izenik gabeko argazkia",
"error.boundary.retryAnnouncement": "{{view}} berriro kargatu da errore baten ondoren.",
"error.boundary.retryAnnouncementGeneric": "Ikusi birkargatu da errore baten ondoren.",
"sceneboard.minimap.ariaLabel": "Orube-taula txiki-mapa",
"settings.about.description": "Idazketarako AI-k bultzatutako sormen-kidea.",
"settings.about.githubDescription": "Ikusi iturburu-kodea, jakinarazi arazoen berri eta eman ekarpenak.",
"settings.about.githubLabel": "Kode irekia GitHub-en",
Expand Down
10 changes: 0 additions & 10 deletions locales/fa/settings.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
{
"dashboard.backup.exportJson": "صادرات JSON",
"dashboard.backup.hint": "پروژه خود را صادر کنید، یک نسخه پشتیبان وارد کنید یا تنظیمات پشتیبان کامل را باز کنید.",
"dashboard.backup.importJson": "JSON را وارد کنید",
"dashboard.backup.latestSnapshot": "آخرین عکس فوری: {{name}} ({{date}})",
"dashboard.backup.openSettings": "تنظیمات پشتیبان گیری",
"dashboard.backup.title": "پشتیبان گیری و بازیابی",
"dashboard.backup.unnamedSnapshot": "عکس فوری بدون نام",
"error.boundary.retryAnnouncement": "{{view}} پس از یک خطا دوباره بارگیری شد.",
"error.boundary.retryAnnouncementGeneric": "مشاهده پس از خطا بارگیری مجدد شد.",
"sceneboard.minimap.ariaLabel": "مینی نقشه تخته پلات",
"settings.about.description": "شریک خلاق شما با هوش مصنوعی برای نوشتن.",
"settings.about.githubDescription": "مشاهده کد منبع، گزارش مشکلات، و مشارکت.",
"settings.about.githubLabel": "منبع باز در GitHub",
Expand Down
10 changes: 0 additions & 10 deletions locales/fi/settings.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
{
"dashboard.backup.exportJson": "Vie JSON",
"dashboard.backup.hint": "Vie projektisi, tuo varmuuskopio tai avaa täydelliset varmuuskopiointiasetukset.",
"dashboard.backup.importJson": "Tuo JSON",
"dashboard.backup.latestSnapshot": "Viimeisin tilannekuva: {{name}} ({{date}})",
"dashboard.backup.openSettings": "Varmuuskopiointiasetukset",
"dashboard.backup.title": "Varmuuskopiointi ja palautus",
"dashboard.backup.unnamedSnapshot": "Nimetön tilannekuva",
"error.boundary.retryAnnouncement": "{{view}} ladattu uudelleen virheen jälkeen.",
"error.boundary.retryAnnouncementGeneric": "Näkymä ladattu uudelleen virheen jälkeen.",
"sceneboard.minimap.ariaLabel": "Tonttitaulun minikartta",
"settings.about.description": "Tekoälyllä toimiva luova kumppanisi kirjoittamiseen.",
"settings.about.githubDescription": "Tarkastele lähdekoodia, ilmoita ongelmista ja osallistu.",
"settings.about.githubLabel": "Avoin lähdekoodi GitHubissa",
Expand Down
10 changes: 0 additions & 10 deletions locales/fr/settings.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
{
"dashboard.backup.exportJson": "Export JSON",
"dashboard.backup.hint": "Export your project, import a backup, or open full backup settings.",
"dashboard.backup.importJson": "Import JSON",
"dashboard.backup.latestSnapshot": "Latest snapshot: {{name}} ({{date}})",
"dashboard.backup.openSettings": "Backup settings",
"dashboard.backup.title": "Backup & restore",
"dashboard.backup.unnamedSnapshot": "Unnamed snapshot",
"error.boundary.retryAnnouncement": "{{view}} reloaded after an error.",
"error.boundary.retryAnnouncementGeneric": "View reloaded after an error.",
"sceneboard.minimap.ariaLabel": "Plot board mini-map",
"settings.about.description": "Votre partenaire créatif pour l'écriture, propulsé par l'IA.",
"settings.about.githubDescription": "Voir le code source, signaler des bugs et contribuer.",
"settings.about.githubLabel": "Open-source sur GitHub",
Expand Down
10 changes: 0 additions & 10 deletions locales/he/settings.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
{
"dashboard.backup.exportJson": "ייצוא JSON",
"dashboard.backup.hint": "ייצאו את הפרויקט, ייבאו גיבוי, או פתחו את הגדרות הגיבוי המלאות.",
"dashboard.backup.importJson": "ייבוא JSON",
"dashboard.backup.latestSnapshot": "תמונת המצב האחרונה: {{name}} ‏({{date}})",
"dashboard.backup.openSettings": "הגדרות גיבוי",
"dashboard.backup.title": "גיבוי ושחזור",
"dashboard.backup.unnamedSnapshot": "תמונת מצב ללא שם",
"error.boundary.retryAnnouncement": "{{view}} נטענה מחדש לאחר שגיאה.",
"error.boundary.retryAnnouncementGeneric": "התצוגה נטענה מחדש לאחר שגיאה.",
"sceneboard.minimap.ariaLabel": "מפה ממוזערת של לוח העלילה",
"settings.about.description": "השותף היצירתי המופעל ב‑AI שלכם לכתיבה.",
"settings.about.githubDescription": "צפו בקוד המקור, דווחו על בעיות ותרמו.",
"settings.about.githubLabel": "קוד פתוח ב‑GitHub",
Expand Down
10 changes: 0 additions & 10 deletions locales/hu/settings.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
{
"dashboard.backup.exportJson": "JSON exportálása",
"dashboard.backup.hint": "Exportálja projektjét, importáljon biztonsági másolatot, vagy nyissa meg a teljes biztonsági mentési beállításokat.",
"dashboard.backup.importJson": "JSON importálása",
"dashboard.backup.latestSnapshot": "Legutóbbi pillanatkép: {{name}} ({{date}})",
"dashboard.backup.openSettings": "Biztonsági mentés beállításai",
"dashboard.backup.title": "Biztonsági mentés és visszaállítás",
"dashboard.backup.unnamedSnapshot": "Névtelen pillanatkép",
"error.boundary.retryAnnouncement": "{{view}} hiba után újratöltve.",
"error.boundary.retryAnnouncementGeneric": "A nézet újratöltve hiba után.",
"sceneboard.minimap.ariaLabel": "Telektábla mini-térkép",
"settings.about.description": "Az Ön mesterséges intelligenciájú kreatív partnere az íráshoz.",
"settings.about.githubDescription": "Tekintse meg a forráskódot, jelentse a problémákat és járuljon hozzá.",
"settings.about.githubLabel": "Nyílt forráskód a GitHubon",
Expand Down
10 changes: 0 additions & 10 deletions locales/is/settings.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
{
"dashboard.backup.exportJson": "Flytja út JSON",
"dashboard.backup.hint": "Flyttu út verkefnið þitt, fluttu inn afrit eða opnaðu allar öryggisafritunarstillingar.",
"dashboard.backup.importJson": "Flytja inn JSON",
"dashboard.backup.latestSnapshot": "Nýjasta skyndimynd: {{name}} ({{date}})",
"dashboard.backup.openSettings": "Stillingar fyrir öryggisafrit",
"dashboard.backup.title": "Afrita og endurheimta",
"dashboard.backup.unnamedSnapshot": "Ónefnd skyndimynd",
"error.boundary.retryAnnouncement": "{{view}} endurhlaðinn eftir villu.",
"error.boundary.retryAnnouncementGeneric": "Skoða endurhlaðinn eftir villu.",
"sceneboard.minimap.ariaLabel": "Lítið kort af teikniborði",
"settings.about.description": "Skapandi félagi þinn með gervigreind til að skrifa.",
"settings.about.githubDescription": "Skoðaðu frumkóðann, tilkynntu vandamál og leggðu þitt af mörkum.",
"settings.about.githubLabel": "Opinn uppspretta á GitHub",
Expand Down
10 changes: 0 additions & 10 deletions locales/it/settings.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
{
"dashboard.backup.exportJson": "Export JSON",
"dashboard.backup.hint": "Export your project, import a backup, or open full backup settings.",
"dashboard.backup.importJson": "Import JSON",
"dashboard.backup.latestSnapshot": "Latest snapshot: {{name}} ({{date}})",
"dashboard.backup.openSettings": "Backup settings",
"dashboard.backup.title": "Backup & restore",
"dashboard.backup.unnamedSnapshot": "Unnamed snapshot",
"error.boundary.retryAnnouncement": "{{view}} reloaded after an error.",
"error.boundary.retryAnnouncementGeneric": "View reloaded after an error.",
"sceneboard.minimap.ariaLabel": "Plot board mini-map",
"settings.about.description": "Il tuo partner creativo per la scrittura, potenziato dall'IA.",
"settings.about.githubDescription": "Visualizza il codice sorgente, segnala problemi e contribuisci.",
"settings.about.githubLabel": "Open-source su GitHub",
Expand Down
10 changes: 0 additions & 10 deletions locales/ja/settings.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
{
"dashboard.backup.exportJson": "エクスポート JSON",
"dashboard.backup.hint": "エクスポート your project, import a backup, or open full backup settings.",
"dashboard.backup.importJson": "JSONをインポートする",
"dashboard.backup.latestSnapshot": "最新のスナップショット: {{name}} ({{date}})",
"dashboard.backup.openSettings": "バックアップ設定",
"dashboard.backup.title": "バックアップと復元",
"dashboard.backup.unnamedSnapshot": "名前のないスナップショット",
"error.boundary.retryAnnouncement": "エラー後に {{view}} がリロードされました。",
"error.boundary.retryAnnouncementGeneric": "エラー後にビューがリロードされました。",
"sceneboard.minimap.ariaLabel": "プロットボードのミニマップ",
"settings.about.description": "AI を活用したライティングのためのクリエイティブ パートナー。",
"settings.about.githubDescription": "ソース コードを表示し、問題を報告し、貢献します。",
"settings.about.githubLabel": "GitHub 上のオープンソース",
Expand Down
Loading
Loading