docs(guide): describe both library save modes in database.md and architecture.md (#580)

Closes #578. Rewrites the user file library save-mode description in the English database.md and architecture.md guides (independent-new by default, parent-linked on overwrite) and updates all 20 translated copies of each, with i18n_source_hash re-stamped so the parity gate stays green.
This commit is contained in:
SnapOtter
2026-07-19 22:59:34 +08:00
committed by GitHub
parent 1113c761ea
commit 5558cf18b8
42 changed files with 82 additions and 82 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "بنية المستودع الأحادي، وبنية التطبيقات والحزم، ودورة حياة الطلب، وبصمة الموارد الخاصة بـ SnapOtter."
i18n_output_hash: 879baf70cf3d
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ snapotter/
خادم Fastify v5 يكشف 241 مسار أداة عبر خمس وسائط (الصور، والفيديو، والصوت، وPDF، والملف) ويتولى:
- رفع الملفات، وإدارة مساحة العمل المؤقتة، وتخزين الملفات الدائم
- مكتبة ملفات المستخدم بسلاسل نُسَخ (جدول `user_files`) - كل نتيجة معالَجة تربط بملفها المصدري وتسجّل الأداة المُطبَّقة، مع مصغّرات مُولَّدة تلقائيًا لصفحة الملفات
- مكتبة ملفات المستخدم (جدول `user_files`): يُخزَّن التعديل المحفوظ افتراضيًا كملف جديد مستقل، أو كإصدار مرتبط بالأب عند الكتابة فوق الأصل. تسجّل الأدوات المطبَّقة (`toolChain`) وتحصل على مصغّر مُولَّد تلقائيًا لصفحة الملفات
- تنفيذ الأدوات (يوجّه كل طلب أداة إلى محرك الصور أو جسر الذكاء الاصطناعي)
- تنسيق خطوط الأنابيب (ربط أدوات متعددة بالتتابع)
- المعالجة الدفعية مع التحكم في التزامن عبر طوابير مهام BullMQ (المجمّعات: image، media، ai، docs، system)
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "مخطط قاعدة بيانات PostgreSQL، والجداول، وعمليات الترحيل، وإجراءات النسخ الاحتياطي في SnapOtter."
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: fd2c87426e2d
---
@@ -77,7 +77,7 @@ i18n_output_hash: fd2c87426e2d
### user_files {#user-files}
مكتبة ملفات دائمة مع تتبّع سلسلة الإصدارات. كل خطوة معالجة تحفظ نتيجة تنشئ صفًا جديدًا مرتبطًا بأصله عبر `parentId`، مكوّنةً شجرة إصدارات.
مكتبة ملفات دائمة. يُدرَج التعديل المحفوظ افتراضيًا كصف جذري مستقل ("الحفظ كملف جديد": `version` يساوي 1، و`parentId` يساوي null، بحيث يظل الأصل مدرجًا)، أو كإصدار مرتبط بالأب عند الكتابة فوق الأصل (يُضبَط `parentId`، ويُزاد `version`، ليَحُلّ محل الأصل). يسجّل العمود `toolChain` الأدوات المطبَّقة.
| العمود | النوع | الوصف |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "Monorepo-Struktur, App- und Paketarchitektur, Request-Lebenszyklus und Ressourcen-Footprint von SnapOtter."
i18n_output_hash: af8ecb20c86e
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ Gemeinsam genutzte TypeScript-Typen, Konstanten (wie `APP_VERSION` und Werkzeugd
Ein Fastify-v5-Server, der 241 Werkzeug-Routen über fünf Modalitäten (image, video, audio, PDF, file) bereitstellt und Folgendes übernimmt:
- Datei-Uploads, Verwaltung des temporären Arbeitsbereichs und persistenter Dateispeicher
- Benutzer-Dateibibliothek mit Versionsketten (`user_files`-Tabelle) - jedes verarbeitete Ergebnis verweist zurück auf seine Quelldatei und erfasst, welches Werkzeug angewendet wurde, mit automatisch generierten Thumbnails für die Files-Seite
- Benutzer-Dateibibliothek (`user_files`-Tabelle): Ein gespeicherter Edit wird standardmäßig als eigenständige neue Datei abgelegt, oder als übergeordnet verknüpfte Version, wenn du das Original überschreibst. Sie erfasst, welche Werkzeuge angewendet wurden (`toolChain`), und erhält ein automatisch generiertes Thumbnail für die Files-Seite
- Werkzeugausführung (leitet jede Werkzeuganfrage an die Image-Engine oder die KI-Brücke weiter)
- Pipeline-Orchestrierung (das sequenzielle Verketten mehrerer Werkzeuge)
- Stapelverarbeitung mit Nebenläufigkeitssteuerung über BullMQ-Job-Warteschlangen (Pools: image, media, ai, docs, system)
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "PostgreSQL-Datenbankschema, Tabellen, Migrationen und Backup-Verfahren für SnapOtter."
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: dd3579a83805
---
@@ -77,7 +77,7 @@ Gespeicherte Tool-Ketten, die Benutzer in der Oberfläche erstellen.
### user_files {#user-files}
Persistente Dateibibliothek mit Nachverfolgung der Versionskette. Jeder Verarbeitungsschritt, der ein Ergebnis speichert, erstellt eine neue Zeile, die über `parentId` mit ihrem übergeordneten Element verknüpft ist und so einen Versionsbaum bildet.
Persistente Dateibibliothek. Ein gespeicherter Edit wird standardmäßig als eigenständige Root-Zeile eingefügt ("Als neu speichern": `version` 1, `parentId` null, sodass das Original weiterhin gelistet bleibt), oder als übergeordnet verknüpfte Version, wenn du das Original überschreibst (`parentId` gesetzt, `version` erhöht, das Original wird abgelöst). Die Spalte `toolChain` erfasst die angewendeten Werkzeuge.
| Spalte | Typ | Beschreibung |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "Estructura del monorepo, arquitectura de aplicaciones y paquetes, ciclo de vida de las solicitudes y huella de recursos de SnapOtter."
i18n_output_hash: 95af8eadf83e
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ Tipos de TypeScript compartidos, constantes (como `APP_VERSION` y definiciones d
Un servidor Fastify v5 que expone 241 rutas de herramientas en cinco modalidades (imagen, vídeo, audio, PDF, archivo) y que gestiona:
- Subidas de archivos, gestión del espacio de trabajo temporal y almacenamiento persistente de archivos
- Biblioteca de archivos de usuario con cadenas de versiones (tabla `user_files`) - cada resultado procesado enlaza de vuelta a su archivo de origen y registra qué herramienta se aplicó, con miniaturas autogeneradas para la página de Archivos
- Biblioteca de archivos de usuario (tabla `user_files`): una edición guardada se almacena de forma predeterminada como un nuevo archivo independiente, o como una versión enlazada a su padre cuando sobrescribes el original. Registra qué herramientas se aplicaron (`toolChain`) y obtiene una miniatura autogenerada para la página de Archivos
- Ejecución de herramientas (dirige cada solicitud de herramienta al motor de imágenes o al puente de IA)
- Orquestación de canalizaciones (encadenado de varias herramientas de forma secuencial)
- Procesamiento por lotes con control de concurrencia mediante colas de tareas de BullMQ (pools: image, media, ai, docs, system)
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "Esquema de la base de datos PostgreSQL, tablas, migraciones y procedimientos de copia de seguridad de SnapOtter."
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: 70b4aa5ae152
---
@@ -77,7 +77,7 @@ Cadenas de herramientas guardadas que los usuarios crean en la interfaz.
### user_files {#user-files}
Biblioteca de archivos persistente con seguimiento de la cadena de versiones. Cada paso de procesamiento que guarda un resultado crea una nueva fila enlazada a su padre mediante `parentId`, formando un árbol de versiones.
Biblioteca de archivos persistente. Una edición guardada se inserta de forma predeterminada como una fila raíz independiente ("guardar como nuevo": `version` 1, `parentId` null, de modo que el original sigue listado), o como una versión enlazada a su padre cuando sobrescribes el original (`parentId` establecido, `version` incrementado, reemplazándolo). La columna `toolChain` registra las herramientas aplicadas.
| Columna | Tipo | Descripción |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "Structure du monorepo, architecture des applications et des packages, cycle de vie des requêtes et empreinte de ressources de SnapOtter."
i18n_output_hash: 31c734145cf5
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ Types TypeScript partagés, constantes (comme `APP_VERSION` et les définitions
Un serveur Fastify v5 exposant 241 routes d'outils réparties sur cinq modalités (image, vidéo, audio, PDF, fichier) qui gère :
- Les téléversements de fichiers, la gestion de l'espace de travail temporaire et le stockage persistant des fichiers
- La bibliothèque de fichiers utilisateur avec chaînes de versions (table `user_files`) - chaque résultat traité renvoie à son fichier source et enregistre l'outil appliqué, avec des vignettes auto-générées pour la page Fichiers
- Bibliothèque de fichiers utilisateur (table `user_files`) : une modification enregistrée est stockée par défaut comme un nouveau fichier indépendant, ou comme une version liée à son parent lorsque vous écrasez l'original. Elle enregistre les outils appliqués (`toolChain`) et obtient une vignette auto-générée pour la page Fichiers
- L'exécution des outils (achemine chaque requête d'outil vers le moteur d'images ou le pont d'IA)
- L'orchestration de pipelines (enchaînement séquentiel de plusieurs outils)
- Le traitement par lots avec contrôle de la concurrence via les files d'attente de tâches BullMQ (pools : image, media, ai, docs, system)
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "Schéma de base de données PostgreSQL, tables, migrations et procédures de sauvegarde pour SnapOtter."
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: 59270e5542d8
---
@@ -77,7 +77,7 @@ Chaînes d'outils enregistrées que les utilisateurs créent dans l'interface.
### user_files {#user-files}
Bibliothèque de fichiers persistante avec suivi de la chaîne de versions. Chaque étape de traitement qui enregistre un résultat crée une nouvelle ligne liée à son parent via `parentId`, formant un arbre de versions.
Bibliothèque de fichiers persistante. Une modification enregistrée est insérée par défaut comme une ligne racine indépendante ("enregistrer comme nouveau" : `version` à 1, `parentId` à null, de sorte que l'original reste répertorié), ou comme une version liée à son parent lorsque vous écrasez l'original (`parentId` défini, `version` incrémenté, remplaçant l'original). La colonne `toolChain` enregistre les outils appliqués.
| Colonne | Type | Description |
|--------|------|-------------|
+1 -1
View File
@@ -51,7 +51,7 @@ Shared TypeScript types, constants (like `APP_VERSION` and tool definitions), an
A Fastify v5 server exposing 242 tool routes across five modalities (image, video, audio, PDF, file) that handles:
- File uploads, temporary workspace management, and persistent file storage
- User file library with version chains (`user_files` table) - each processed result links back to its source file and records which tool was applied, with auto-generated thumbnails for the Files page
- User file library (`user_files` table): a saved edit is stored as an independent new file by default, or as a parent-linked version when you overwrite the original. It records which tools were applied (`toolChain`) and gets an auto-generated thumbnail for the Files page
- Tool execution (routes each tool request to the image engine or AI bridge)
- Pipeline orchestration (chaining multiple tools sequentially)
- Batch processing with concurrency control via BullMQ job queues (pools: image, media, ai, docs, system)
+1 -1
View File
@@ -74,7 +74,7 @@ Saved tool chains that users create in the UI.
### user_files {#user-files}
Persistent file library with version chain tracking. Each processing step that saves a result creates a new row linked to its parent via `parentId`, forming a version tree.
Persistent file library. A saved edit is inserted as an independent root row by default ("save as new": `version` 1, `parentId` null, so the original stays listed), or as a parent-linked version when you overwrite the original (`parentId` set, `version` incremented, superseding it). The `toolChain` column records the tools applied.
| Column | Type | Description |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "SnapOtter की मोनोरेपो संरचना, ऐप और पैकेज आर्किटेक्चर, अनुरोध जीवनचक्र, और संसाधन फ़ुटप्रिंट।"
i18n_output_hash: c218fe161fec
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ Python स्क्रिप्ट `packages/ai/python/` में रहती
एक Fastify v5 सर्वर जो पाँच मोडैलिटी (image, video, audio, PDF, file) में 241 टूल रूट प्रकट करता है, जो निम्न को संभालता है:
- फ़ाइल अपलोड, अस्थायी वर्कस्पेस प्रबंधन, और स्थायी फ़ाइल स्टोरेज
- संस्करण श्रृंखलाओं के साथ उपयोगकर्ता फ़ाइल लाइब्रेरी (`user_files` तालिका) - प्रत्येक प्रोसेस किया गया परिणाम अपनी स्रोत फ़ाइल वापस लिंक होता है और रिकॉर्ड करता है कि कौन सा टूल लागू किया गया था, Files पेज के लिए स्वतः-जनरेट किए गए थंबनेल के साथ
- उपयोगकर्ता फ़ाइल लाइब्रेरी (`user_files` तालिका): सहेजा गया संपादन डिफ़ॉल्ट रूप से एक स्वतंत्र नई फ़ाइल रूप में संग्रहीत होता है, या जब आप मूल को अधिलेखित करते हैं तो एक पैरेंट-लिंक्ड संस्करण के रूप में। यह रिकॉर्ड करता है कि कौन-से टूल लागू किए गए थे (`toolChain`) और Files पेज के लिए स्वतः-जनरेट किया गया थंबनेल प्राप्त करता है
- टूल निष्पादन (प्रत्येक टूल अनुरोध को इमेज इंजन या AI ब्रिज पर रूट करता है)
- पाइपलाइन ऑर्केस्ट्रेशन (कई टूल को क्रमिक रूप से श्रृंखलाबद्ध करना)
- BullMQ जॉब क्यू के माध्यम से समवर्तीता नियंत्रण के साथ बैच प्रोसेसिंग (पूल: image, media, ai, docs, system)
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "SnapOtter के लिए PostgreSQL डेटाबेस स्कीमा, टेबल, माइग्रेशन और बैकअप प्रक्रियाएँ।"
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: 5592d4435806
---
@@ -77,7 +77,7 @@ SnapOtter डेटा स्थायित्व के लिए [Drizzle ORM
### user_files {#user-files}
ंस्करण-श्रृंखला ट्रैकिंग के साथ स्थायी फ़ाइल लाइब्रेरी। प्रत्येक प्रोसेसिंग चरण जो एक परिणाम सहेजता है, एक नई पंक्ति बनाता है जो `parentId` के माध्यम से अपने पैरेंट से जुड़ी होती है, जिससे एक संस्करण वृक्ष बनता है।
्थायी फ़ाइल लाइब्रेरी। सहेजा गया संपादन डिफ़ॉल्ट रूप से एक स्वतंत्र रूट पंक्ति के रूप में डाला जाता है ("नई के रूप में सहेजें": `version` 1, `parentId` null, ताकि मूल सूचीबद्ध रहे), या जब आप मूल को अधिलेखित करते हैं तो एक पैरेंट-लिंक्ड संस्करण के रूप में (`parentId` सेट, `version` बढ़ा हुआ, उसे प्रतिस्थापित करते हुए)। `toolChain` कॉलम लागू किए गए टूल को रिकॉर्ड करता है।
| कॉलम | प्रकार | विवरण |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "Struktur monorepo, arsitektur aplikasi dan paket, siklus hidup permintaan, dan jejak sumber daya SnapOtter."
i18n_output_hash: d4bd8ceef301
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ Tipe TypeScript bersama, konstanta (seperti `APP_VERSION` dan definisi tool), da
Server Fastify v5 yang mengekspos 241 route tool di lima modalitas (image, video, audio, PDF, file) yang menangani:
- Unggahan file, manajemen workspace sementara, dan penyimpanan file persisten
- Pustaka file pengguna dengan rantai versi (tabel `user_files`) - setiap hasil yang diproses tertaut kembali ke file sumbernya dan mencatat tool mana yang diterapkan, dengan thumbnail yang dibuat otomatis untuk halaman Files
- Pustaka file pengguna (tabel `user_files`): secara default, sebuah editan yang disimpan disimpan sebagai file baru yang independen, atau sebagai versi yang tertaut ke induk ketika Anda menimpa file asli. Ia mencatat tool mana yang diterapkan (`toolChain`) dan mendapatkan thumbnail yang dibuat otomatis untuk halaman Files
- Eksekusi tool (mengarahkan setiap permintaan tool ke image engine atau AI bridge)
- Orkestrasi pipeline (merangkai beberapa tool secara berurutan)
- Pemrosesan batch dengan kontrol konkurensi melalui antrean job BullMQ (pool: image, media, ai, docs, system)
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "Skema database PostgreSQL, tabel, migrasi, dan prosedur pencadangan untuk SnapOtter."
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: 8a963902d4f7
---
@@ -77,7 +77,7 @@ Rangkaian tool tersimpan yang dibuat pengguna di UI.
### user_files {#user-files}
Pustaka file persisten dengan pelacakan rantai versi. Setiap langkah pemrosesan yang menyimpan hasil membuat baris baru yang tertaut ke induknya melalui `parentId`, membentuk sebuah pohon versi.
Pustaka file persisten. Secara default, sebuah editan yang disimpan dimasukkan sebagai baris akar independen ("simpan sebagai baru": `version` 1, `parentId` null, sehingga file asli tetap terdaftar), atau sebagai versi yang tertaut ke induk ketika Anda menimpa file asli (`parentId` diisi, `version` dinaikkan, menggantikannya). Kolom `toolChain` mencatat tool yang diterapkan.
| Kolom | Tipe | Deskripsi |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "Struttura del monorepo, architettura di app e pacchetti, ciclo di vita di una richiesta e impronta sulle risorse di SnapOtter."
i18n_output_hash: 5a4f11a25575
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ Tipi TypeScript condivisi, costanti (come `APP_VERSION` e le definizioni degli s
Un server Fastify v5 che espone 241 route di strumenti su cinque modalità (immagine, video, audio, PDF, file) e gestisce:
- Upload di file, gestione dello spazio di lavoro temporaneo e archiviazione persistente dei file
- Libreria di file utente con catene di versioni (tabella `user_files`) - ogni risultato elaborato rimanda al file sorgente e registra quale strumento è stato applicato, con miniature auto-generate per la pagina File
- Libreria di file utente (tabella `user_files`): per impostazione predefinita, una modifica salvata viene archiviata come nuovo file indipendente, oppure come versione collegata al genitore quando sovrascrivi l'originale. Registra quali strumenti sono stati applicati (`toolChain`) e ottiene una miniatura auto-generata per la pagina File
- Esecuzione degli strumenti (instrada ogni richiesta di strumento all'image engine o all'AI bridge)
- Orchestrazione delle pipeline (concatenamento sequenziale di più strumenti)
- Elaborazione in batch con controllo della concorrenza tramite le code di lavori BullMQ (pool: image, media, ai, docs, system)
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "Schema del database PostgreSQL, tabelle, migrazioni e procedure di backup per SnapOtter."
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: 6498644e25e3
---
@@ -77,7 +77,7 @@ Catene di strumenti salvate che gli utenti creano nell'interfaccia.
### user_files {#user-files}
Libreria di file persistente con tracciamento della catena delle versioni. Ogni passaggio di elaborazione che salva un risultato crea una nuova riga collegata al suo genitore tramite `parentId`, formando un albero delle versioni.
Libreria di file persistente. Per impostazione predefinita, una modifica salvata viene inserita come riga radice indipendente ("salva come nuovo": `version` 1, `parentId` null, così l'originale resta elencato), oppure come versione collegata al genitore quando sovrascrivi l'originale (`parentId` impostato, `version` incrementata, sostituendolo). La colonna `toolChain` registra gli strumenti applicati.
| Colonna | Tipo | Descrizione |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "SnapOtter のモノレポ構造、アプリとパッケージのアーキテクチャ、リクエストのライフサイクル、リソースフットプリント。"
i18n_output_hash: 3a780628a2ab
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ Python スクリプトは `packages/ai/python/` に存在します。大規模
5 つのモダリティ(画像、動画、音声、PDF、ファイル)にまたがる 241 のツールルートを公開する Fastify v5 サーバーで、以下を処理します:
- ファイルアップロード、一時的なワークスペース管理、永続的なファイルストレージ
- バージョンチェーン付きのユーザーファイルライブラリ(`user_files` テーブル) - 処理された各結果は元のソースファイルにリンクされ、どのツールが適用されたかを記録します。Files ページ用の自動生成サムネイル付き
- ユーザーファイルライブラリ(`user_files` テーブル): 保存された編集は、デフォルトでは独立した新しいファイルとして保存され、元のファイルを上書きした場合は親にリンクされたバージョンとして保存されます。どのツールが適用されたか(`toolChain`を記録しFiles ページ用の自動生成サムネイルを取得します
- ツール実行(各ツールリクエストを画像エンジンまたは AI ブリッジにルーティング)
- パイプラインのオーケストレーション(複数のツールを順次連結)
- BullMQ ジョブキュー(プール: image、media、ai、docs、system)による並行制御付きのバッチ処理
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "SnapOtter の PostgreSQL データベーススキーマ、テーブル、マイグレーション、バックアップ手順。"
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: 1113cd0160d9
---
@@ -77,7 +77,7 @@ SnapOtter はデータの永続化に PostgreSQL 17 と [Drizzle ORM](https://or
### user_files {#user-files}
バージョンチェーンの追跡を伴う永続的なファイルライブラリ。結果を保存する各処理ステップは、`parentId` を介して親にリンクされた新しい行を作成し、バージョンツリーを形成します。
永続的なファイルライブラリ。保存された編集は、デフォルトでは独立したルート行として挿入され(「新規として保存」: `version` 1、`parentId` null なので元のファイルは一覧に残ります)、元のファイルを上書きした場合は親にリンクされたバージョンとして挿入されます(`parentId` が設定され、`version` が増加し、元のファイルを置き換えます)。`toolChain` カラムには適用されたツールが記録されます。
| カラム | 型 | 説明 |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "SnapOtter의 모노레포 구조, 앱 및 패키지 아키텍처, 요청 라이프사이클, 리소스 사용량."
i18n_output_hash: 90a5f3b46d1e
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ Python 스크립트가 살고 있습니다 `packages/ai/python/`. 대규모 옵
다섯 가지 모달리티(image, video, audio, PDF, file)에 걸친 241개의 도구 경로를 노출하는 Fastify v5 서버로, 다음을 처리합니다.
- 파일 업로드, 임시 워크스페이스 관리, 영구 파일 저장
- 버전 체인(`user_files` 테이블)이 있는 사용자 파일 라이브러리 - 각 처리 결과는 원본 파일로 다시 연결되고 어떤 도구가 적용되었는지 기록하며, Files 페이지를 위한 썸네일이 자동 생성됩니다
- 사용자 파일 라이브러리(`user_files` 테이블): 저장된 편집본은 기본적으로 독립적인 새 파일로 저장되며, 원본을 덮어쓸 때는 부모와 연결된 버전으로 저장됩니다. 어떤 도구가 적용되었는지(`toolChain`)를 기록하 Files 페이지를 위한 썸네일이 자동 생성됩니다
- 도구 실행(각 도구 요청을 이미지 엔진 또는 AI 브리지로 라우팅)
- 파이프라인 오케스트레이션(여러 도구를 순차적으로 연결)
- BullMQ 작업 큐(풀: image, media, ai, docs, system)를 통한 동시성 제어가 있는 배치 처리
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "SnapOtter의 PostgreSQL 데이터베이스 스키마, 테이블, 마이그레이션, 백업 절차."
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: 4616baed29d0
---
@@ -77,7 +77,7 @@ SnapOtter는 데이터 영속성을 위해 PostgreSQL 17과 [Drizzle ORM](https:
### user_files {#user-files}
버전 체인 추적 기능이 있는 영속 파일 라이브러리. 결과를 저장하는 각 처리 단계는 `parentId`를 통해 부모와 연결된 새 행을 생성하여 버전 트리를 형성합니다.
영속 파일 라이브러리. 저장된 편집본은 기본적으로 독립적인 루트 행으로 삽입되거나("새 파일로 저장": `version`은 1, `parentId`는 null이므로 원본이 목록에 그대로 남습니다), 원본을 덮어쓸 때는 부모와 연결된 버전으로 삽입됩니다(`parentId`가 설정되고 `version`이 증가하여 원본을 대체합니다). `toolChain` 컬럼은 적용된 도구를 기록합니다.
| 컬럼 | 타입 | 설명 |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "Monorepo-structuur, app- en package-architectuur, request-levenscyclus en resourcegebruik van SnapOtter."
i18n_output_hash: 5122b85d1d84
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ Gedeelde TypeScript-types, constanten (zoals `APP_VERSION` en tooldefinities) en
Een Fastify v5-server die 241 toolroutes over vijf modaliteiten (image, video, audio, PDF, file) blootstelt en het volgende afhandelt:
- Bestandsuploads, beheer van tijdelijke werkruimte en persistente bestandsopslag
- Gebruikersbibliotheek voor bestanden met versieketens (`user_files`-tabel) - elk verwerkt resultaat verwijst terug naar het bronbestand en registreert welke tool is toegepast, met automatisch gegenereerde miniaturen voor de Files-pagina
- Gebruikersbibliotheek voor bestanden (`user_files`-tabel): een opgeslagen bewerking wordt standaard opgeslagen als een onafhankelijk nieuw bestand, of als een aan de bovenliggende rij gekoppelde versie wanneer je het origineel overschrijft. Ze registreert welke tools zijn toegepast (`toolChain`) en krijgt een automatisch gegenereerde miniatuur voor de Files-pagina
- Tooluitvoering (routeert elk toolverzoek naar de image-engine of AI-brug)
- Pijplijnorkestratie (meerdere tools sequentieel aan elkaar koppelen)
- Batchverwerking met concurrentiebeheer via BullMQ-taakwachtrijen (pools: image, media, ai, docs, system)
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "PostgreSQL-databaseschema, tabellen, migraties en back-upprocedures voor SnapOtter."
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: e283a792e124
---
@@ -77,7 +77,7 @@ Opgeslagen toolketens die gebruikers in de UI aanmaken.
### user_files {#user-files}
Persistente bestandsbibliotheek met versieketentracering. Elke verwerkingsstap die een resultaat opslaat, maakt een nieuwe rij aan die via `parentId` aan de bovenliggende rij wordt gekoppeld, wat een versieboom vormt.
Persistente bestandsbibliotheek. Een opgeslagen bewerking wordt standaard als een onafhankelijke root-rij ingevoegd ("opslaan als nieuw": `version` 1, `parentId` null, zodat het origineel in de lijst blijft staan), of als een aan de bovenliggende rij gekoppelde versie wanneer je het origineel overschrijft (`parentId` ingesteld, `version` opgehoogd, waarmee het wordt vervangen). De kolom `toolChain` registreert welke tools zijn toegepast.
| Kolom | Type | Beschrijving |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "Struktura monorepozytorium, architektura aplikacji i pakietów, cykl życia żądania oraz zapotrzebowanie na zasoby w SnapOtter."
i18n_output_hash: 571d8852f6c2
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ Współdzielone typy TypeScript, stałe (takie jak `APP_VERSION` i definicje nar
Serwer Fastify v5 udostępniający 241 tras narzędzi w pięciu modalnościach (image, video, audio, PDF, file), który obsługuje:
- Przesyłanie plików, zarządzanie tymczasową przestrzenią roboczą oraz trwałe przechowywanie plików
- Bibliotekę plików użytkownika z łańcuchami wersji (tabela `user_files`) - każdy przetworzony wynik odsyła z powrotem do swojego pliku źródłowego i zapisuje, które narzędzie zostało zastosowane, z automatycznie generowanymi miniaturami dla strony Files
- Bibliotekę plików użytkownika (tabela `user_files`): zapisana edycja jest domyślnie przechowywana jako niezależny nowy plik albo jako wersja powiązana z rodzicem, gdy nadpisujesz oryginał. Zapisuje, które narzędzia zostały zastosowane (`toolChain`), i otrzymuje automatycznie generowaną miniaturę dla strony Files
- Wykonywanie narzędzi (kieruje każde żądanie narzędzia do silnika obrazów lub mostu AI)
- Orkiestrację potoków (sekwencyjne łączenie wielu narzędzi w łańcuch)
- Przetwarzanie wsadowe z kontrolą współbieżności za pomocą kolejek zadań BullMQ (pule: image, media, ai, docs, system)
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "Schemat bazy danych PostgreSQL, tabele, migracje i procedury tworzenia kopii zapasowych w SnapOtter."
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: 3c05e8b14f7d
---
@@ -77,7 +77,7 @@ Zapisane łańcuchy narzędzi, które użytkownicy tworzą w interfejsie.
### user_files {#user-files}
Trwała biblioteka plików ze śledzeniem łańcucha wersji. Każdy krok przetwarzania, który zapisuje wynik, tworzy nowy wiersz powiązany z rodzicem przez `parentId`, tworząc drzewo wersji.
Trwała biblioteka plików. Zapisana edycja jest domyślnie wstawiana jako niezależny wiersz główny („zapisz jako nowy": `version` 1, `parentId` null, więc oryginał pozostaje na liście) albo jako wersja powiązana z rodzicem, gdy nadpisujesz oryginał (`parentId` ustawiony, `version` zwiększony, zastępując go). Kolumna `toolChain` zapisuje zastosowane narzędzia.
| Kolumna | Typ | Opis |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "Estrutura do monorepo, arquitetura de apps e pacotes, ciclo de vida das requisições e uso de recursos do SnapOtter."
i18n_output_hash: 93555b8e15c0
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ Tipos TypeScript compartilhados, constantes (como `APP_VERSION` e as definiçõe
Um servidor Fastify v5 que expõe 241 rotas de ferramentas em cinco modalidades (image, video, audio, PDF, file) e lida com:
- Uploads de arquivos, gerenciamento de espaço de trabalho temporário e armazenamento persistente de arquivos
- Biblioteca de arquivos do usuário com cadeias de versão (tabela `user_files`) - cada resultado processado remete de volta ao seu arquivo de origem e registra qual ferramenta foi aplicada, com miniaturas geradas automaticamente para a página Files
- Biblioteca de arquivos do usuário (tabela `user_files`): uma edição salva é armazenada por padrão como um novo arquivo independente, ou como uma versão vinculada ao pai quando você sobrescreve o original. Ela registra quais ferramentas foram aplicadas (`toolChain`) e recebe uma miniatura gerada automaticamente para a página Files
- Execução de ferramentas (roteia cada requisição de ferramenta para o motor de imagem ou para a ponte de IA)
- Orquestração de pipelines (encadeamento de várias ferramentas em sequência)
- Processamento em lote com controle de concorrência via filas de jobs do BullMQ (pools: image, media, ai, docs, system)
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "Esquema do banco de dados PostgreSQL, tabelas, migrações e procedimentos de backup do SnapOtter."
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: dd1ed517c252
---
@@ -77,7 +77,7 @@ Cadeias de ferramentas salvas que os usuários criam na interface.
### user_files {#user-files}
Biblioteca de arquivos persistente com rastreamento de cadeia de versões. Cada etapa de processamento que salva um resultado cria uma nova linha vinculada ao seu pai via `parentId`, formando uma árvore de versões.
Biblioteca de arquivos persistente. Uma edição salva é inserida por padrão como uma linha raiz independente ("salvar como novo": `version` 1, `parentId` null, então o original permanece listado), ou como uma versão vinculada ao pai quando você sobrescreve o original (`parentId` definido, `version` incrementado, substituindo-o). A coluna `toolChain` registra as ferramentas aplicadas.
| Coluna | Tipo | Descrição |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "Структура монорепозитория, архитектура приложений и пакетов, жизненный цикл запроса и потребление ресурсов SnapOtter."
i18n_output_hash: c47f9f3041c4
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ snapotter/
Сервер Fastify v5, предоставляющий 241 маршрут инструментов в пяти модальностях (image, video, audio, PDF, file), который обрабатывает:
- Загрузку файлов, управление временным рабочим пространством и постоянное хранение файлов
- Библиотеку файлов пользователя с цепочками версий (таблица `user_files`), каждый обработанный результат ссылается на исходный файл и записывает, какой инструмент был применён, с автоматически генерируемыми миниатюрами для страницы Files
- Библиотеку файлов пользователя (таблица `user_files`): по умолчанию сохранённое изменение хранится как независимый новый файл или как связанная с родителем версия, когда вы перезаписываете оригинал. Она записывает, какие инструменты были применены (`toolChain`), и получает автоматически генерируемую миниатюру для страницы Files
- Выполнение инструментов (направляет каждый запрос инструмента в движок изображений или прослойку AI)
- Оркестрацию конвейеров (последовательное объединение нескольких инструментов в цепочку)
- Пакетную обработку с управлением параллелизмом через очереди задач BullMQ (пулы: image, media, ai, docs, system)
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "Схема базы данных PostgreSQL, таблицы, миграции и процедуры резервного копирования для SnapOtter."
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: 0222caf7a400
---
@@ -77,7 +77,7 @@ API-ключи для программного доступа. Необрабо
### user_files {#user-files}
Постоянная библиотека файлов с отслеживанием цепочки версий. Каждый шаг обработки, сохраняющий результат, создаёт новую строку, связанную с родительской через `parentId`, образуя дерево версий.
Постоянная библиотека файлов. По умолчанию сохранённое изменение вставляется как независимая корневая строка («сохранить как новый»: `version` 1, `parentId` null, поэтому оригинал остаётся в списке) или как связанная с родителем версия, когда вы перезаписываете оригинал (`parentId` задан, `version` увеличивается, вытесняя его). Столбец `toolChain` записывает применённые инструменты.
| Столбец | Тип | Описание |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "Monorepo-struktur, app- och paketarkitektur, förfrågningslivscykel och resursavtryck för SnapOtter."
i18n_output_hash: bafad20476af
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ Delade TypeScript-typer, konstanter (som `APP_VERSION` och verktygsdefinitioner)
En Fastify v5-server som exponerar 241 verktygsrutter över fem modaliteter (image, video, audio, PDF, file) och som hanterar:
- Filuppladdningar, hantering av tillfällig arbetsyta och beständig fillagring
- Användarens filbibliotek med versionskedjor (`user_files`-tabellen) - varje bearbetat resultat länkar tillbaka till sin källfil och registrerar vilket verktyg som applicerades, med autogenererade miniatyrbilder för Files-sidan
- Användarens filbibliotek (`user_files`-tabellen): en sparad ändring lagras som standard som en oberoende ny fil, eller som en förälderlänkad version när du skriver över originalet. Det registrerar vilka verktyg som tillämpades (`toolChain`) och får en autogenererad miniatyrbild för Files-sidan
- Verktygsexekvering (dirigerar varje verktygsförfrågan till bildmotorn eller AI-bryggan)
- Pipeline-orkestrering (kedjar samman flera verktyg sekventiellt)
- Batchbearbetning med samtidighetskontroll via BullMQ-jobbköer (pooler: image, media, ai, docs, system)
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "PostgreSQL-databasschema, tabeller, migrationer och säkerhetskopieringsprocedurer för SnapOtter."
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: 0751b689f6eb
---
@@ -77,7 +77,7 @@ Sparade verktygskedjor som användare skapar i användargränssnittet.
### user_files {#user-files}
Beständigt filbibliotek med spårning av versionskedjor. Varje bearbetningssteg som sparar ett resultat skapar en ny rad länkad till sin förälder via `parentId`, vilket bildar ett versionsträd.
Beständigt filbibliotek. En sparad ändring infogas som standard som en oberoende rotrad ("spara som ny": `version` 1, `parentId` null, så originalet ligger kvar i listan), eller som en förälderlänkad version när du skriver över originalet (`parentId` satt, `version` uppräknad, vilket ersätter det). Kolumnen `toolChain` registrerar vilka verktyg som tillämpades.
| Kolumn | Typ | Beskrivning |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "โครงสร้าง monorepo, สถาปัตยกรรมของแอปและแพ็กเกจ, วงจรชีวิตของคำขอ และรอยเท้าทรัพยากรของ SnapOtter"
i18n_output_hash: d1d73eea741b
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ snapotter/
เซิร์ฟเวอร์ Fastify v5 ที่เปิดเผยเส้นทางเครื่องมือ 241 เส้นทางครอบคลุมห้ารูปแบบ (image, video, audio, PDF, file) ที่จัดการ:
- การอัปโหลดไฟล์, การจัดการพื้นที่ทำงานชั่วคราว และที่จัดเก็บไฟล์แบบถาวร
- คลังไฟล์ผู้ใช้พร้อมห่วงโซ่เวอร์ชัน (ตาราง `user_files`) - ผลลัพธ์ที่ประมวลผลแล้วแต่ละรายการเชื่อมโยงกับไปยังไฟล์ต้นทางและบันทึกว่าใช้เครื่องมือใด พร้อมภาพขนาดย่อที่สร้างอัตโนมัติสำหรับหน้า Files
- คลังไฟล์ผู้ใช้ (ตาราง `user_files`): โดยค่าเริ่มต้น การแก้ไขที่บันทึกไว้จะถูกจัดเก็บเป็นไฟล์ใหม่อิสระ หรือเป็นเวอร์ชันที่เชื่อมโยงกับแถวแม่เมื่อคุณเขียนทับไฟล์ต้นฉบับ โดยจะบันทึกว่าใช้เครื่องมือใดบ้าง (`toolChain`) และได้ภาพขนาดย่อที่สร้างอัตโนมัติสำหรับหน้า Files
- การเรียกใช้เครื่องมือ (กำหนดเส้นทางคำขอเครื่องมือแต่ละรายการไปยังเอนจินรูปภาพหรือบริดจ์ AI)
- การประสานงานไปป์ไลน์ (เชื่อมโยงเครื่องมือหลายตัวตามลำดับ)
- การประมวลผลเป็นชุดพร้อมการควบคุมการทำงานพร้อมกันผ่านคิวงาน BullMQ (pool: image, media, ai, docs, system)
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "สคีมาฐานข้อมูล PostgreSQL ตาราง การย้ายข้อมูล และขั้นตอนการสำรองข้อมูลสำหรับ SnapOtter"
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: b589c2175a16
---
@@ -77,7 +77,7 @@ SnapOtter ใช้ PostgreSQL 17 กับ [Drizzle ORM](https://orm.drizzle.te
### user_files {#user-files}
คลังไฟล์ถาวรพร้อมการติดตามสายเวอร์ชัน แต่ละขั้นตอนการประมวลผลที่บันทึกผลลัพธ์จะสร้างแถวใหม่ที่เชื่อมโยงกับแถวแม่ผ่าน `parentId` กลายเป็นต้นไม้เวอร์ชัน
คลังไฟล์ถาวร โดยค่าเริ่มต้น การแก้ไขที่บันทึกไว้จะถูกแทรกเป็นแถวรากอิสระ ("บันทึกเป็นไฟล์ใหม่": `version` 1, `parentId` เป็น null ดังนั้นไฟล์ต้นฉบับยังคงอยู่ในรายการ) หรือเป็นเวอร์ชันที่เชื่อมโยงกับแถวแม่เมื่อคุณเขียนทับไฟล์ต้นฉบับ (กำหนด `parentId`, เพิ่มค่า `version` และแทนที่ไฟล์เดิม) คอลัมน์ `toolChain` บันทึกเครื่องมือที่นำมาใช้
| คอลัมน์ | ชนิด | คำอธิบาย |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "SnapOtter'ın monorepo yapısı, uygulama ve paket mimarisi, istek yaşam döngüsü ve kaynak ayak izi."
i18n_output_hash: b03ab6eecf2d
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ Hem ön uç hem de arka uç tarafından kullanılan paylaşılan TypeScript tür
Beş modalite (image, video, audio, PDF, file) genelinde 241 araç rotası sunan bir Fastify v5 sunucusu; şunları yönetir:
- Dosya yüklemeleri, geçici çalışma alanı yönetimi ve kalıcı dosya depolama
- Versiyon zincirleriyle kullanıcı dosya kütüphanesi (`user_files` tablosu) - işlenmiş her sonuç kaynak dosyasına geri bağlanır ve hangi aracın uygulandığını kaydeder; Files sayfası için otomatik oluşturulan küçük resimlerle
- Kullanıcı dosya kütüphanesi (`user_files` tablosu): kaydedilen bir düzenleme, varsayılan olarak bağımsız yeni bir dosya olarak veya özgün dosyanın üzerine yazdığınızda üst öğeye bağlı bir sürüm olarak saklanır. Hangi araçların uygulandığını kaydeder (`toolChain`) ve Files sayfası için otomatik oluşturulan bir küçük resim alır
- Araç yürütme (her araç isteğini görüntü motoruna veya AI köprüsüne yönlendirir)
- İşlem hattı düzenleme (birden fazla aracı sırayla zincirleme)
- BullMQ iş kuyrukları aracılığıyla eşzamanlılık denetimli toplu işleme (havuzlar: image, media, ai, docs, system)
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "SnapOtter için PostgreSQL veritabanı şeması, tablolar, migration'lar ve yedekleme prosedürleri."
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: 1a738c4f269b
---
@@ -77,7 +77,7 @@ Kullanıcıların arayüzde oluşturduğu kaydedilmiş araç zincirleri.
### user_files {#user-files}
Sürüm zinciri izleme özellikli kalıcı dosya kütüphanesi. Sonucu kaydeden her işleme adımı, `parentId` üzerinden üst öğesine bağlı yeni bir satır oluşturarak bir sürüm ağacı meydana getirir.
Kalıcı dosya kütüphanesi. Kaydedilen bir düzenleme, varsayılan olarak bağımsız bir kök satır olarak eklenir ("yeni olarak kaydet": `version` 1, `parentId` null, böylece özgün dosya listede kalır) veya özgün dosyanın üzerine yazdığınızda üst öğeye bağlı bir sürüm olarak eklenir (`parentId` ayarlanır, `version` artırılır ve onun yerini alır). `toolChain` sütunu, uygulanan araçları kaydeder.
| Sütun | Tür | Açıklama |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "Структура монорепозиторію, архітектура застосунків і пакетів, життєвий цикл запиту та споживання ресурсів SnapOtter."
i18n_output_hash: 6a1de194bb8b
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ snapotter/
Сервер Fastify v5, що надає 241 маршрут інструментів у п'яти модальностях (image, video, audio, PDF, file) і обробляє:
- Завантаження файлів, керування тимчасовим робочим простором та постійне зберігання файлів
- Бібліотеку файлів користувача з ланцюжками версій (таблиця `user_files`) - кожен оброблений результат посилається назад на свій вихідний файл і фіксує, який інструмент було застосовано, з автоматично згенерованими мініатюрами для сторінки Files
- Бібліотеку файлів користувача (таблиця `user_files`): за замовчуванням збережене редагування зберігається як незалежний новий файл, або як пов'язана з батьківською версія, коли ви перезаписуєте оригінал. Вона фіксує, які інструменти було застосовано (`toolChain`), і отримує автоматично згенеровану мініатюру для сторінки Files
- Виконання інструментів (маршрутизує кожен запит інструмента до рушія зображень або мосту AI)
- Оркестрацію конвеєрів (послідовне поєднання кількох інструментів)
- Пакетну обробку з контролем паралельності через черги завдань BullMQ (пули: image, media, ai, docs, system)
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "Схема бази даних PostgreSQL, таблиці, міграції та процедури резервного копіювання для SnapOtter."
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: 8b7453bf7c82
---
@@ -77,7 +77,7 @@ API-ключі для програмного доступу. Необробле
### user_files {#user-files}
Постійна бібліотека файлів із відстеженням ланцюжка версій. Кожен крок обробки, що зберігає результат, створює новий рядок, пов'язаний зі своїм батьківським через `parentId`, утворюючи дерево версій.
Постійна бібліотека файлів. За замовчуванням збережене редагування додається як незалежний кореневий рядок («зберегти як новий»: `version` 1, `parentId` null, тож оригінал лишається у списку) або як пов'язана з батьківською версія, коли ви перезаписуєте оригінал (`parentId` встановлено, `version` збільшено, замінюючи його). Стовпець `toolChain` записує застосовані інструменти.
| Стовпець | Тип | Опис |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "Cấu trúc monorepo, kiến trúc ứng dụng và gói, vòng đời yêu cầu, và dấu chân tài nguyên của SnapOtter."
i18n_output_hash: ac9f6dfbc8b9
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ Các kiểu TypeScript dùng chung, các hằng số (như `APP_VERSION` và đ
Một máy chủ Fastify v5 phơi bày 241 tuyến công cụ trên năm phương thức (image, video, audio, PDF, file) xử lý:
- Tải tệp lên, quản lý không gian làm việc tạm thời, và lưu trữ tệp bền vững
- Thư viện tệp người dùng với chuỗi phiên bản (bảng `user_files`) - mỗi kết quả đã xử lý liên kết ngược về tệp nguồn của nó và ghi lại công cụ nào đã được áp dụng, cùng các ảnh thu nhỏ tự sinh cho trang Files
- Thư viện tệp người dùng (bảng `user_files`): theo mặc định, một chỉnh sửa đã lưu được lưu thành một tệp mới độc lập, hoặc thành một phiên bản liên kết với tệp cha khi bạn ghi đè lên tệp gốc. Nó ghi lại những công cụ nào đã được áp dụng (`toolChain`) và nhận một ảnh thu nhỏ tự sinh cho trang Files
- Thực thi công cụ (định tuyến mỗi yêu cầu công cụ đến image engine hoặc cầu nối AI)
- Điều phối pipeline (kết nối nhiều công cụ theo tuần tự)
- Xử lý hàng loạt với kiểm soát đồng thời qua các hàng đợi công việc BullMQ (nhóm: image, media, ai, docs, system)
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "Lược đồ cơ sở dữ liệu PostgreSQL, bảng, di trú và quy trình sao lưu cho SnapOtter."
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: 6c4e1015e3a3
---
@@ -77,7 +77,7 @@ Các chuỗi công cụ đã lưu mà người dùng tạo trong giao diện.
### user_files {#user-files}
Thư viện tệp bền vững với việc theo dõi chuỗi phiên bản. Mỗi bước xử lý lưu một kết quả sẽ tạo một hàng mới liên kết tới hàng cha của nó qua `parentId`, tạo thành một cây phiên bản.
Thư viện tệp bền vững. Theo mặc định, một chỉnh sửa đã lưu được chèn vào như một hàng gốc độc lập («lưu thành tệp mới»: `version` 1, `parentId` null, nên tệp gốc vẫn được liệt kê), hoặc như một phiên bản liên kết với tệp cha khi bạn ghi đè lên tệp gốc (`parentId` được đặt, `version` tăng lên, thay thế nó). Cột `toolChain` ghi lại các công cụ đã áp dụng.
| Cột | Kiểu | Mô tả |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "SnapOtter 的 monorepo 结构、应用与包架构、请求生命周期以及资源占用。"
i18n_output_hash: bc9e6a754251
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ Python 脚本位于 `packages/ai/python/` 中。大型可选模型包根据需
一个 Fastify v5 服务器,暴露跨五种模态(image、video、audio、PDF、file)的 241 个工具路由,负责处理:
- 文件上传、临时工作区管理以及持久化文件存储
- 带版本链的用户文件库(`user_files` 表)——每个处理结果都会链接回其源文件,并记录所应用的工具,同时为 Files 页面自动生成缩略图
- 用户文件库(`user_files` 表):默认情况下,保存的编辑会存储为一个独立的新文件;而当你覆盖原文件时,则存储为一个与父文件链接的版本。它记录所应用的工具(`toolChain`),并为 Files 页面自动生成缩略图
- 工具执行(将每个工具请求路由到图像引擎或 AI 桥接层)
- 流水线编排(顺序串联多个工具)
- 通过 BullMQ 作业队列进行带并发控制的批处理(池:image、media、ai、docs、system
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "SnapOtter 的 PostgreSQL 数据库架构、表、迁移和备份流程。"
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: 3289d2d06514
---
@@ -77,7 +77,7 @@ SnapOtter 使用 PostgreSQL 17 配合 [Drizzle ORM](https://orm.drizzle.team/)
### user_files {#user-files}
带版本链跟踪的持久化文件库。每个保存结果的处理步骤都会创建一个新行,并通过 `parentId` 链接到其父行,从而形成一棵版本树
持久化文件库。默认情况下,保存的编辑会作为一个独立的根行插入(“保存为新文件”:`version` 为 1、`parentId` 为 null,因此原文件仍会保留在列表中);而当你覆盖原文件时,则作为一个与父行链接的版本(设置 `parentId`、递增 `version`,并取代原文件)。`toolChain` 列记录所应用的工具
| 列 | 类型 | 描述 |
|--------|------|-------------|
+2 -2
View File
@@ -1,7 +1,7 @@
---
description: "SnapOtter 的 monorepo 結構、app 與套件架構、請求生命週期,以及資源占用。"
i18n_output_hash: 733f35af8cb1
i18n_source_hash: 733cb3c10884
i18n_source_hash: a53946e760b0
i18n_provenance: human
---
@@ -54,7 +54,7 @@ Python 腳本位於 `packages/ai/python/` 中。大型可選模型包根據需
一個 Fastify v5 伺服器,公開橫跨五種模態(image、video、audio、PDF、file)的 241 個工具路由,負責處理:
- 檔案上傳、暫存工作區管理,以及持久化檔案儲存
- 具版本鏈的使用者檔案資料庫(`user_files` 資料表)- 每個處理結果都連回其來源檔案並記錄套用了哪工具,並為 Files 頁面自動產生縮圖
- 使用者檔案資料庫(`user_files` 資料表):預設情況下,已儲存的編輯會儲存為一個獨立的新檔案;而當你覆寫原始檔案時,則儲存為一個與父檔案連結的版本。它會記錄套用了哪工具`toolChain`,並為 Files 頁面自動產生縮圖
- 工具執行(將每個工具請求路由至影像引擎或 AI 橋接層)
- 管線協調(依序串接多個工具)
- 透過 BullMQ 工作佇列(poolsimage、media、ai、docs、system)進行具並行控制的批次處理
+2 -2
View File
@@ -1,6 +1,6 @@
---
description: "SnapOtter 的 PostgreSQL 資料庫結構、資料表、遷移,以及備份程序。"
i18n_source_hash: b37398ae91a3
i18n_source_hash: 50d5d4f220cf
i18n_provenance: human
i18n_output_hash: 34debcc24c5a
---
@@ -77,7 +77,7 @@ SnapOtter 使用 PostgreSQL 17 搭配 [Drizzle ORM](https://orm.drizzle.team/)
### user_files {#user-files}
具有版本鏈追蹤的持久化檔案庫。每個儲存結果的處理步驟都會建立一個新列,透過 `parentId` 連結到它的父列,形成一棵版本樹
持久化檔案庫。預設情況下,已儲存的編輯會作為一個獨立的根列插入(「另存為新檔」:`version` 為 1、`parentId` 為 null,因此原始檔案仍會保留在清單中);而當你覆寫原始檔案時,則作為一個與父列連結的版本(設定 `parentId`、遞增 `version`,並取代它)。`toolChain` 欄位會記錄所套用的工具
| 欄位 | 型別 | 描述 |
|--------|------|-------------|