diff --git a/docs/architecture/browser-receipt.json b/docs/architecture/browser-receipt.json new file mode 100644 index 0000000..6c15467 --- /dev/null +++ b/docs/architecture/browser-receipt.json @@ -0,0 +1,548 @@ +{ + "schemaVersion": 1, + "ok": true, + "command": "visual-check", + "evidenceKind": "automated-browser", + "status": "pass", + "visualReview": "pending", + "artifact": { + "path": "/mnt/data/Development/GitLite/docs/architecture/gitty-runtime.html", + "sha256": "33ab3aad21863795fbdad67a1f7eab75e4b3fd682c318b8bad34ab7f3717be27", + "bytes": 814934 + }, + "state": { + "detail": "read", + "motion": "still" + }, + "chrome": { + "status": "available", + "executable": "/opt/helium-browser-bin/chrome" + }, + "diagnostics": [], + "containment": { + "status": "pass", + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 8.855263157894736, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1533, + "diagramWidth": 1503, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1733, + "diagramWidth": 1703, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "readability": { + "status": "pass", + "minimumProjectedNodeTextPx": 6, + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 8.855263157894736, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1533, + "diagramWidth": 1503, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1733, + "diagramWidth": 1703, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "viewerChrome": { + "status": "pass", + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 8.855263157894736, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1533, + "diagramWidth": 1503, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1733, + "diagramWidth": 1703, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "captures": { + "status": "pass", + "screenshots": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 8.855263157894736, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light", + "file": "gitty-runtime.visual-check.1440x900.light.png" + }, + { + "width": 1440, + "height": 900, + "theme": "dark", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 8.855263157894736, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "dark", + "file": "gitty-runtime.visual-check.1440x900.dark.png" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light", + "file": "gitty-runtime.visual-check.2048x1320.light.png" + }, + { + "width": 2048, + "height": 1320, + "theme": "dark", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "dark", + "file": "gitty-runtime.visual-check.2048x1320.dark.png" + } + ], + "contactSheet": "gitty-runtime.visual-check.html" + }, + "sidecars": { + "receipt": "gitty-runtime.visual-check.json", + "contactSheet": "gitty-runtime.visual-check.html" + } +} diff --git a/docs/architecture/delivery-receipt.json b/docs/architecture/delivery-receipt.json new file mode 100644 index 0000000..c0d21c4 --- /dev/null +++ b/docs/architecture/delivery-receipt.json @@ -0,0 +1,31 @@ +{ + "schemaVersion": 1, + "ok": true, + "command": "deliver", + "type": "architecture", + "input": "/mnt/data/Development/GitLite/docs/architecture/gitty-runtime.json", + "output": "/mnt/data/Development/GitLite/docs/architecture/gitty-runtime.html", + "specification": { + "sha256": "00f6492407bbd4487f595c696c894b90d5c2fe14f3e1a8e499953c4a378f6268", + "bytes": 7214 + }, + "artifact": { + "sha256": "33ab3aad21863795fbdad67a1f7eab75e4b3fd682c318b8bad34ab7f3717be27", + "bytes": 814934 + }, + "validation": { + "checksPassed": 9, + "checkCount": 9, + "compositionProfile": "showcase", + "compositionStatus": "pass", + "errors": 0, + "warnings": 0 + }, + "evidence": { + "verified": true, + "repository": "https://git.cbsk-tech.de/Christoph/GitLite.git", + "revision": "47b8544ba889a1357f6578469d2163bbd438ab00", + "references": 10, + "linkMode": "local-only" + } +} diff --git a/docs/architecture/gitty-runtime.html b/docs/architecture/gitty-runtime.html new file mode 100644 index 0000000..cecea0e --- /dev/null +++ b/docs/architecture/gitty-runtime.html @@ -0,0 +1,15024 @@ + + + + + + + Gitty runtime architecture Diagram + + + + + + + + +
+ +
+
+
+

Gitty runtime architecture

+
+
+ + + + + + + +
+ + Gitty runtime architecture + An architecture diagram generated by Archify. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Workspace UI · Svelte 5 · WebView · WebView + + + + Workspace UI + Svelte 5 · WebView + + + + Tauri commands · Invoke / event bridge · Native application process + + + + Tauri commands + Invoke / event bridge + + + + Git operations · Rust · blocking tasks · Native application process + + + + Git operations + Rust · blocking tasks + + + + Git + Git LFS · Native subprocesses · OS processes & filesystem + + + + Git + Git LFS + Native subprocesses + + + + Local repository · Worktree · index · .git · OS processes & filesystem + + + + Local repository + Worktree · index · .git + + + + Hosting adapters · Issues · reviews · boards · Native application process + + + + Hosting adapters + Issues · reviews · boards + + + + Git hosting · GitHub · GitLab · others · Architecture component + + + + Git hosting + GitHub · GitLab · others + + + + AI assistance · commit_ai crate · Native application process + + + + AI assistance + commit_ai crate + + + + Model endpoint · OpenAI · Anthropic · custom · Architecture component + + + + Model endpoint + OpenAI · Anthropic · custom + + + + OS keychain · Credentials / API keys · Architecture component + + + + OS keychain + Credentials / API keys + + + + + + IPC invoke + + + + Rust call + + + + spawn + + + + read / write + + + + Rust call + + + + HTTPS API + + + + diff + notes + + + + HTTP(S) + + + + keyring API + + + + + + WebView + + + + + Native application process + + + + + OS processes & filesystem + + + + + Legend + + + Frontend + + + + Backend + + + + Database + + + + Security + + + + External + + + +

+ + + + + + + + + +
+ + +
+
+
+
+

Primary path

+
+
    +
  • • UI invokes registered commands; Rust runs Git off the async executor. Results return to the UI.
  • +
  • • Git LFS handles large objects. Git uses HTTPS / SSH for fetch, pull, push and clone.
  • +
+
+ +
+
+
+

Supporting runtime

+
+
    +
  • • Hosting: GitHub, GitLab, Azure DevOps and Gitea; REST calls use reqwest.
  • +
  • • AI: diffs / notes and API keys are passed to the selected provider through native commands.
  • +
  • • Workspace preferences live in WebView localStorage.
  • +
+
+ +
+
+
+

Trust & external services

+
+
    +
  • • IPC crosses into native filesystem and process privileges; CSP is currently null.
  • +
  • • OS keychain also stores hosting credentials. Network endpoints may be cloud or self-hosted.
  • +
  • • Aptabase telemetry and the Windows/macOS update CDN are secondary dependencies; Linux uses package updates.
  • +
+
+
+ +
+ + + + diff --git a/docs/architecture/gitty-runtime.json b/docs/architecture/gitty-runtime.json new file mode 100644 index 0000000..23f7701 --- /dev/null +++ b/docs/architecture/gitty-runtime.json @@ -0,0 +1,353 @@ +{ + "schema_version": 1, + "diagram_type": "architecture", + "meta": { + "title": "Gitty runtime architecture", + "locale": "en", + "quality_profile": "showcase", + "repository": { + "url": "https://git.cbsk-tech.de/Christoph/GitLite.git", + "revision": "47b8544ba889a1357f6578469d2163bbd438ab00", + "link_mode": "local-only" + } + }, + "components": [ + { + "id": "workspace", + "type": "frontend", + "label": "Workspace UI", + "sublabel": "Svelte 5 \u00b7 WebView", + "pos": [ + 60, + 220 + ], + "size": [ + 180, + 70 + ], + "sources": [ + { + "path": "src/App.svelte", + "line": 1 + } + ] + }, + { + "id": "dispatch", + "type": "backend", + "label": "Tauri commands", + "sublabel": "Invoke / event bridge", + "pos": [ + 325, + 220 + ], + "size": [ + 180, + 70 + ], + "sources": [ + { + "path": "src-tauri/src/main.rs", + "line": 334 + } + ] + }, + { + "id": "git-service", + "type": "backend", + "label": "Git operations", + "sublabel": "Rust \u00b7 blocking tasks", + "pos": [ + 590, + 220 + ], + "size": [ + 180, + 70 + ], + "sources": [ + { + "path": "src-tauri/src/git.rs", + "line": 577 + } + ] + }, + { + "id": "git-process", + "type": "external", + "label": "Git + Git LFS", + "sublabel": "Native subprocesses", + "pos": [ + 855, + 220 + ], + "size": [ + 180, + 70 + ], + "sources": [ + { + "path": "src-tauri/src/git.rs", + "line": 415 + } + ] + }, + { + "id": "repository", + "type": "database", + "label": "Local repository", + "sublabel": "Worktree \u00b7 index \u00b7 .git", + "pos": [ + 1120, + 220 + ], + "size": [ + 180, + 70 + ], + "sources": [ + { + "path": "src-tauri/src/git.rs", + "line": 7436 + } + ] + }, + { + "id": "hosting-client", + "type": "backend", + "label": "Hosting adapters", + "sublabel": "Issues \u00b7 reviews \u00b7 boards", + "pos": [ + 325, + 70 + ], + "size": [ + 180, + 70 + ], + "sources": [ + { + "path": "src-tauri/src/integrations.rs", + "line": 1 + } + ] + }, + { + "id": "host-services", + "type": "external", + "label": "Git hosting", + "sublabel": "GitHub \u00b7 GitLab \u00b7 others", + "pos": [ + 60, + 70 + ], + "size": [ + 180, + 70 + ], + "sources": [ + { + "path": "src-tauri/src/integrations.rs", + "line": 1 + } + ] + }, + { + "id": "ai-client", + "type": "backend", + "label": "AI assistance", + "sublabel": "commit_ai crate", + "pos": [ + 590, + 390 + ], + "size": [ + 180, + 70 + ], + "sources": [ + { + "path": "src-tauri/crates/commit_ai/src/lib.rs", + "line": 1 + } + ] + }, + { + "id": "ai-endpoint", + "type": "external", + "label": "Model endpoint", + "sublabel": "OpenAI \u00b7 Anthropic \u00b7 custom", + "pos": [ + 855, + 390 + ], + "size": [ + 180, + 70 + ], + "sources": [ + { + "path": "src-tauri/crates/commit_ai/src/cloud.rs", + "line": 1 + } + ] + }, + { + "id": "keychain", + "type": "security", + "label": "OS keychain", + "sublabel": "Credentials / API keys", + "pos": [ + 60, + 390 + ], + "size": [ + 180, + 70 + ], + "sources": [ + { + "path": "src-tauri/src/git.rs", + "line": 3033 + } + ] + } + ], + "boundaries": [ + { + "kind": "security-group", + "label": "WebView", + "wraps": [ + "workspace" + ], + "pad": 25 + }, + { + "kind": "security-group", + "label": "Native application process", + "wraps": [ + "dispatch", + "git-service", + "hosting-client", + "ai-client" + ], + "pad": 28 + }, + { + "kind": "region", + "label": "OS processes & filesystem", + "wraps": [ + "git-process", + "repository" + ], + "pad": 28 + } + ], + "connections": [ + { + "id": "ui-invoke", + "from": "workspace", + "to": "dispatch", + "label": "IPC invoke", + "variant": "emphasis" + }, + { + "id": "dispatch-git", + "from": "dispatch", + "to": "git-service", + "label": "Rust call", + "variant": "emphasis" + }, + { + "id": "spawn-git", + "from": "git-service", + "to": "git-process", + "label": "spawn", + "variant": "emphasis" + }, + { + "id": "git-files", + "from": "git-process", + "to": "repository", + "label": "read / write", + "variant": "emphasis" + }, + { + "id": "dispatch-hosting", + "from": "dispatch", + "to": "hosting-client", + "label": "Rust call", + "variant": "default", + "fromSide": "top", + "toSide": "bottom" + }, + { + "id": "hosting-api", + "from": "hosting-client", + "to": "host-services", + "label": "HTTPS API", + "variant": "default" + }, + { + "id": "git-ai", + "from": "git-service", + "to": "ai-client", + "label": "diff + notes", + "variant": "default", + "fromSide": "bottom", + "toSide": "top", + "labelAt": [ + 680, + 304 + ] + }, + { + "id": "ai-http", + "from": "ai-client", + "to": "ai-endpoint", + "label": "HTTP(S)", + "variant": "default" + }, + { + "id": "command-secrets", + "from": "dispatch", + "to": "keychain", + "label": "keyring API", + "variant": "security", + "fromSide": "bottom", + "toSide": "right", + "labelAt": [ + 300, + 425 + ] + } + ], + "cards": [ + { + "dot": "cyan", + "title": "Primary path", + "items": [ + "UI invokes registered commands; Rust runs Git off the async executor. Results return to the UI.", + "Git LFS handles large objects. Git uses HTTPS / SSH for fetch, pull, push and clone." + ] + }, + { + "dot": "violet", + "title": "Supporting runtime", + "items": [ + "Hosting: GitHub, GitLab, Azure DevOps and Gitea; REST calls use reqwest.", + "AI: diffs / notes and API keys are passed to the selected provider through native commands.", + "Workspace preferences live in WebView localStorage." + ] + }, + { + "dot": "rose", + "title": "Trust & external services", + "items": [ + "IPC crosses into native filesystem and process privileges; CSP is currently null.", + "OS keychain also stores hosting credentials. Network endpoints may be cloud or self-hosted.", + "Aptabase telemetry and the Windows/macOS update CDN are secondary dependencies; Linux uses package updates." + ] + } + ] +} diff --git a/docs/architecture/gitty-runtime.visual-check.1440x900.dark.png b/docs/architecture/gitty-runtime.visual-check.1440x900.dark.png new file mode 100644 index 0000000..edd6b35 Binary files /dev/null and b/docs/architecture/gitty-runtime.visual-check.1440x900.dark.png differ diff --git a/docs/architecture/gitty-runtime.visual-check.1440x900.light.png b/docs/architecture/gitty-runtime.visual-check.1440x900.light.png new file mode 100644 index 0000000..9321a85 Binary files /dev/null and b/docs/architecture/gitty-runtime.visual-check.1440x900.light.png differ diff --git a/docs/architecture/gitty-runtime.visual-check.2048x1320.dark.png b/docs/architecture/gitty-runtime.visual-check.2048x1320.dark.png new file mode 100644 index 0000000..08253fe Binary files /dev/null and b/docs/architecture/gitty-runtime.visual-check.2048x1320.dark.png differ diff --git a/docs/architecture/gitty-runtime.visual-check.2048x1320.light.png b/docs/architecture/gitty-runtime.visual-check.2048x1320.light.png new file mode 100644 index 0000000..3d2f81d Binary files /dev/null and b/docs/architecture/gitty-runtime.visual-check.2048x1320.light.png differ diff --git a/docs/architecture/gitty-runtime.visual-check.html b/docs/architecture/gitty-runtime.visual-check.html new file mode 100644 index 0000000..72ee11b --- /dev/null +++ b/docs/architecture/gitty-runtime.visual-check.html @@ -0,0 +1,32 @@ + + + + + +Archify automated browser evidence · gitty-runtime.html + + + +

Automated browser evidence

gitty-runtime.html · visual-check containment pass · perceptual visual review pending

+
+
+ light 1440 by 900 +
LIGHT · 1440×900 · containment pass
+
+
+ dark 1440 by 900 +
DARK · 1440×900 · containment pass
+
+
+ light 2048 by 1320 +
LIGHT · 2048×1320 · containment pass
+
+
+ dark 2048 by 1320 +
DARK · 2048×1320 · containment pass
+
+
+ + diff --git a/docs/architecture/gitty-runtime.visual-check.json b/docs/architecture/gitty-runtime.visual-check.json new file mode 100644 index 0000000..6c15467 --- /dev/null +++ b/docs/architecture/gitty-runtime.visual-check.json @@ -0,0 +1,548 @@ +{ + "schemaVersion": 1, + "ok": true, + "command": "visual-check", + "evidenceKind": "automated-browser", + "status": "pass", + "visualReview": "pending", + "artifact": { + "path": "/mnt/data/Development/GitLite/docs/architecture/gitty-runtime.html", + "sha256": "33ab3aad21863795fbdad67a1f7eab75e4b3fd682c318b8bad34ab7f3717be27", + "bytes": 814934 + }, + "state": { + "detail": "read", + "motion": "still" + }, + "chrome": { + "status": "available", + "executable": "/opt/helium-browser-bin/chrome" + }, + "diagnostics": [], + "containment": { + "status": "pass", + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 8.855263157894736, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1533, + "diagramWidth": 1503, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1733, + "diagramWidth": 1703, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "readability": { + "status": "pass", + "minimumProjectedNodeTextPx": 6, + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 8.855263157894736, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1533, + "diagramWidth": 1503, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1733, + "diagramWidth": 1703, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "viewerChrome": { + "status": "pass", + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 8.855263157894736, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1533, + "diagramWidth": 1503, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1733, + "diagramWidth": 1703, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "captures": { + "status": "pass", + "screenshots": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 8.855263157894736, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light", + "file": "gitty-runtime.visual-check.1440x900.light.png" + }, + { + "width": 1440, + "height": 900, + "theme": "dark", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 8.855263157894736, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "dark", + "file": "gitty-runtime.visual-check.1440x900.dark.png" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light", + "file": "gitty-runtime.visual-check.2048x1320.light.png" + }, + { + "width": 2048, + "height": 1320, + "theme": "dark", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1368, + "minimumProjectedNodeTextPx": 9, + "minimumProjectedNodeText": "Svelte 5 · WebView", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "dark", + "file": "gitty-runtime.visual-check.2048x1320.dark.png" + } + ], + "contactSheet": "gitty-runtime.visual-check.html" + }, + "sidecars": { + "receipt": "gitty-runtime.visual-check.json", + "contactSheet": "gitty-runtime.visual-check.html" + } +} diff --git a/docs/architecture/handoff-receipt.json b/docs/architecture/handoff-receipt.json new file mode 100644 index 0000000..cbcf46d --- /dev/null +++ b/docs/architecture/handoff-receipt.json @@ -0,0 +1,11 @@ +{ + "diagram_type": "architecture", + "output": "/mnt/data/Development/GitLite/docs/architecture/gitty-runtime.html", + "specification_sha256": "00f6492407bbd4487f595c696c894b90d5c2fe14f3e1a8e499953c4a378f6268", + "artifact_sha256": "33ab3aad21863795fbdad67a1f7eab75e4b3fd682c318b8bad34ab7f3717be27", + "validation": "9/9 showcase, 0 errors, 0 warnings", + "browser_evidence": "passed", + "visual_review": "passed", + "correction_rounds": 1, + "visual_review_scope": "Inspected delivered screenshots at 2048x1320 light and 1440x900 dark; readable nodes, unobstructed routes, visible cards. Automated containment passed at all four desktop sizes." +} diff --git a/docs/diagrams/README.md b/docs/diagrams/README.md new file mode 100644 index 0000000..7b7d9e8 --- /dev/null +++ b/docs/diagrams/README.md @@ -0,0 +1,34 @@ +# Gitty: drei Detaildiagramme + +Die Diagramme beschreiben den Code bei Revision `47b8544ba889a1357f6578469d2163bbd438ab00`. +Die Inhalte sind Deutsch; feste Archify-Bedienelemente und HTML-Sprachkennung bleiben Englisch. + +- [KI-Commit-Nachricht](ai-commit.html): Datenfluss von vorgemerkten Änderungen und Notizen zum bearbeitbaren Vorschlag. +- [Repository klonen](clone-repository.html): Hauptablauf, Anmeldung mit Wiederholung und LFS-Nachbereitung. +- [Merge und Konfliktauflösung](merge-conflicts.html): Zustände des normalen Merge mit konfliktfreiem Abschluss und Abbruch. + +## Geprüfte Codebelege + +| Thema | Datei und Einstieg | Aussage | +|---|---|---| +| KI-Aufruf | `src/App.svelte:1327`, `src/lib/git.ts:425` | Bestehende Nachricht wird als Notiz verwendet; Schlüssel werden geladen und per IPC weitergegeben. Die Antwort ersetzt das Nachrichtenfeld. | +| KI-Datenbasis | `src-tauri/src/git.rs:2178` | Staged-Dateiliste und gecachter Diff; generierte Lockfiles sind im Detaildiff ausgenommen. | +| KI-Anbieter | `src-tauri/src/git.rs:2216`, `src-tauri/crates/commit_ai/src/cloud.rs` | OpenAI, Anthropic oder eigener Endpunkt; native HTTP-Anfrage und Antwortverarbeitung. Der Diagrammpfeil zum Vorschlag fasst den Rückweg durch Rust und IPC zusammen. | +| Prompt | `src-tauri/crates/commit_ai/src/lib.rs:51` | Leere Änderungen werden abgewiesen; der Diff wird vor der Anfrage begrenzt. Die Instruktionen sind kein technischer Geheimnisfilter. | +| Clone-UI | `src/App.svelte:2571` | Zugangsdaten aus dem Store, Auth-Fehlerdialog, erneuter Versuch und Anwenden des RepositoryBundle. | +| Clone-Backend | `src-tauri/src/git.rs:648`, `src-tauri/src/git.rs:5840` | spawn_blocking, Zielprüfung, Git-Clone, LFS-Nachbereitung und Bundle. LFS-Fehler werden als Warnung weitergegeben. | +| Merge | `src-tauri/src/git.rs:3279` | Konflikte kommen als GitStatus zurück. Andere Merge-Fehler werden als Fehler gemeldet. | +| Fortsetzen / Abbruch | `src-tauri/src/git.rs:3336` | Fortsetzen prüft laufenden Merge und offene Konflikte; commit --no-edit. Abbruch: merge --abort. | +| Konflikt lösen | `src-tauri/src/git.rs:5000`, `src-tauri/src/git.rs:5042` | ours/theirs übernehmen oder Text schreiben; danach git add und aktualisierter Status. | + +## Abstraktion und Grenzen + +Die KI-Grafik zeigt Datenherkunft und Empfänger, keine vollständige Aufrufsequenz. Der OS-Keychain-Pfeil umfasst den Weg über native Credential-Befehle, UI und den erneuten Tauri-Aufruf. + +Der Merge-Hauptpfad liest sich von links nach rechts: Starten, bei Konflikten warten, alle Dateien lösen und vormerken, anschließend ausdrücklich fortsetzen. Wiederholte Dateiauflösungen sind in diesem Hauptzustand zusammengefasst. Ein erfolgreicher konfliktfreier Merge überspringt die Konfliktzustände. Abbruch ist auch nach vollständiger Auflösung möglich, solange der Merge noch läuft; diese zusätzliche Kante ist zugunsten der Übersicht ausgelassen. Squash und reine ff-only-Ablehnungen sind nicht als normaler Konfliktpfad dargestellt. + +## Prüfung + +Alle drei Artefakte: 9/9 Showcase-Prüfungen, keine Kompositionsfehler oder Warnungen. Browserprüfung: 1440×900, 1600×1000, 1920×1080 und 2048×1320 ohne Seitenüberlauf. Visuelle Prüfung der finalen Screenshots: 1440×900 dunkel und 2048×1320 hell. + +Die JSON-Spezifikationen liegen neben den HTML-Dateien. `handoff-receipts.json` enthält Typ, Pfad, SHA-256, Dateigrößen und getrennte Validierungs-, Browser- und Sichtprüfungsstatus. Die jeweiligen `.delivery.json` und `.browser.json` sind die unveränderten Werkzeugprotokolle. diff --git a/docs/diagrams/ai-commit.browser.json b/docs/diagrams/ai-commit.browser.json new file mode 100644 index 0000000..387ea77 --- /dev/null +++ b/docs/diagrams/ai-commit.browser.json @@ -0,0 +1,548 @@ +{ + "schemaVersion": 1, + "ok": true, + "command": "visual-check", + "evidenceKind": "automated-browser", + "status": "pass", + "visualReview": "pending", + "artifact": { + "path": "/mnt/data/Development/GitLite/docs/diagrams/ai-commit.html", + "sha256": "c29e634d61bf0b7eeee9bffe6d6fc9ac1f0e3419dd42d20dc474f2c8cde8c26b", + "bytes": 804685 + }, + "state": { + "detail": "read", + "motion": "still" + }, + "chrome": { + "status": "available", + "executable": "/opt/helium-browser-bin/chrome" + }, + "diagnostics": [], + "containment": { + "status": "pass", + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 981, + "diagramWidth": 951, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1022, + "diagramWidth": 992, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1184, + "diagramWidth": 1154, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1566, + "diagramWidth": 1516, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "readability": { + "status": "pass", + "minimumProjectedNodeTextPx": 6, + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 981, + "diagramWidth": 951, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1022, + "diagramWidth": 992, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1184, + "diagramWidth": 1154, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1566, + "diagramWidth": 1516, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "viewerChrome": { + "status": "pass", + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 981, + "diagramWidth": 951, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1022, + "diagramWidth": 992, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1184, + "diagramWidth": 1154, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1566, + "diagramWidth": 1516, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "captures": { + "status": "pass", + "screenshots": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 981, + "diagramWidth": 951, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light", + "file": "ai-commit.visual-check.1440x900.light.png" + }, + { + "width": 1440, + "height": 900, + "theme": "dark", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 981, + "diagramWidth": 951, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "dark", + "file": "ai-commit.visual-check.1440x900.dark.png" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1566, + "diagramWidth": 1516, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light", + "file": "ai-commit.visual-check.2048x1320.light.png" + }, + { + "width": 2048, + "height": 1320, + "theme": "dark", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1566, + "diagramWidth": 1516, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "dark", + "file": "ai-commit.visual-check.2048x1320.dark.png" + } + ], + "contactSheet": "ai-commit.visual-check.html" + }, + "sidecars": { + "receipt": "ai-commit.visual-check.json", + "contactSheet": "ai-commit.visual-check.html" + } +} diff --git a/docs/diagrams/ai-commit.delivery.json b/docs/diagrams/ai-commit.delivery.json new file mode 100644 index 0000000..e8106e6 --- /dev/null +++ b/docs/diagrams/ai-commit.delivery.json @@ -0,0 +1,24 @@ +{ + "schemaVersion": 1, + "ok": true, + "command": "deliver", + "type": "dataflow", + "input": "/mnt/data/Development/GitLite/docs/diagrams/ai-commit.json", + "output": "/mnt/data/Development/GitLite/docs/diagrams/ai-commit.html", + "specification": { + "sha256": "56fb5f77f2300ccd958e3d51b037ad1169ad431894e3afff00775edae2caae7a", + "bytes": 3071 + }, + "artifact": { + "sha256": "c29e634d61bf0b7eeee9bffe6d6fc9ac1f0e3419dd42d20dc474f2c8cde8c26b", + "bytes": 804685 + }, + "validation": { + "checksPassed": 9, + "checkCount": 9, + "compositionProfile": "showcase", + "compositionStatus": "pass", + "errors": 0, + "warnings": 0 + } +} diff --git a/docs/diagrams/ai-commit.html b/docs/diagrams/ai-commit.html new file mode 100644 index 0000000..9e59624 --- /dev/null +++ b/docs/diagrams/ai-commit.html @@ -0,0 +1,14946 @@ + + + + + + + Gitty · KI-Commit-Nachricht Diagram + + + + + + + + +
+ +
+
+
+

Gitty · KI-Commit-Nachricht

+
+
+ + + + + + + +
+ + Gitty · KI-Commit-Nachricht + A data-flow diagram generated by Archify. + + + + + + + + + + + + + + + + + + + + + + + + + 01 / Lokale Eingaben + + + 02 / Native Verarbeitung + + + 03 / Modell-Endpunkt + + + 04 / Ergebnis + + + + + + + + + + + Git-Index · Vorgemerkte Änderungen · 01 / Lokale Eingaben + + + + Git-Index + Vorgemerkte Änderungen + + + + Notizen & Auswahl · Anbieter / Modell · 01 / Lokale Eingaben + + + + Notizen & Auswahl + Anbieter / Modell + + + + Diff & Prompt · Rust + commit_ai · 02 / Native Verarbeitung + + + + Diff & Prompt + Rust + commit_ai + + + + KI-Anbieter · Gewählter Endpunkt · 03 / Modell-Endpunkt + + + + KI-Anbieter + Gewählter Endpunkt + + + + Vorschlag · Bearbeitbar im Commit-Feld · 04 / Ergebnis + + + + Vorschlag + Bearbeitbar im Commit-Feld + + + + OS-Keychain · API-Schlüssel via UI · 02 / Native Verarbeitung + + + + OS-Keychain + API-Schlüssel via UI + + + + + + Diff + + + + Notizen + + + + Prompt + + + + Antwort + + + + API-Key + + + + + Legend + + + primary data + + + + policy / PII + + + + data store + + + + data flow + + + +

+ + + + + + + + + +
+ + +
+
+
+
+

Datenbasis

+
+
    +
  • • Nur vorgemerkte Änderungen bilden den Diff. Notizen sind optional.
  • +
  • • Die Oberfläche übergibt Modell, Anbieter und API-Schlüssel per Tauri-Aufruf.
  • +
+
+ +
+
+
+

Vertrauensgrenzen

+
+
    +
  • • Schlüssel liegen im OS-Keychain, werden aber in die Oberfläche geladen.
  • +
  • • Diff und Notizen verlassen bei Cloud-Anbietern den Rechner; eigene Endpunkte können lokal sein.
  • +
  • • Unterstützt: OpenAI, Anthropic und eigene kompatible Endpunkte.
  • +
+
+ +
+
+
+

Vorschlag statt Commit

+
+
    +
  • • Die Antwort füllt das bearbeitbare Nachrichtenfeld.
  • +
  • • Ein Commit wird erst durch eine separate Nutzeraktion erstellt.
  • +
+
+
+ +
+ + + + diff --git a/docs/diagrams/ai-commit.json b/docs/diagrams/ai-commit.json new file mode 100644 index 0000000..d900755 --- /dev/null +++ b/docs/diagrams/ai-commit.json @@ -0,0 +1,147 @@ +{ + "schema_version": 1, + "diagram_type": "dataflow", + "meta": { + "title": "Gitty · KI-Commit-Nachricht", + "quality_profile": "showcase", + "viewBox": [ + 880, + 520 + ] + }, + "stages": [ + { + "label": "Lokale Eingaben" + }, + { + "label": "Native Verarbeitung" + }, + { + "label": "Modell-Endpunkt" + }, + { + "label": "Ergebnis" + } + ], + "nodes": [ + { + "id": "staged", + "type": "database", + "label": "Git-Index", + "sublabel": "Vorgemerkte Änderungen", + "stage": 0, + "row": 1 + }, + { + "id": "notes", + "type": "frontend", + "label": "Notizen & Auswahl", + "sublabel": "Anbieter / Modell", + "stage": 0, + "row": 0 + }, + { + "id": "prepare", + "type": "backend", + "label": "Diff & Prompt", + "sublabel": "Rust + commit_ai", + "stage": 1, + "row": 1 + }, + { + "id": "model", + "type": "external", + "label": "KI-Anbieter", + "sublabel": "Gewählter Endpunkt", + "stage": 2, + "row": 1 + }, + { + "id": "draft", + "type": "frontend", + "label": "Vorschlag", + "sublabel": "Bearbeitbar im Commit-Feld", + "stage": 3, + "row": 1 + }, + { + "id": "keys", + "type": "security", + "label": "OS-Keychain", + "sublabel": "API-Schlüssel via UI", + "stage": 1, + "row": 2 + } + ], + "flows": [ + { + "id": "diff", + "from": "staged", + "to": "prepare", + "label": "Diff", + "variant": "emphasis" + }, + { + "id": "context", + "from": "notes", + "to": "prepare", + "label": "Notizen", + "variant": "default", + "toSide": "top", + "via": [ + [ + 315, + 157 + ] + ] + }, + { + "id": "request", + "from": "prepare", + "to": "model", + "label": "Prompt", + "variant": "emphasis" + }, + { + "id": "response", + "from": "model", + "to": "draft", + "label": "Antwort", + "variant": "emphasis" + }, + { + "id": "secret", + "from": "keys", + "to": "prepare", + "label": "API-Key", + "variant": "security" + } + ], + "cards": [ + { + "dot": "cyan", + "title": "Datenbasis", + "items": [ + "Nur vorgemerkte Änderungen bilden den Diff. Notizen sind optional.", + "Die Oberfläche übergibt Modell, Anbieter und API-Schlüssel per Tauri-Aufruf." + ] + }, + { + "dot": "rose", + "title": "Vertrauensgrenzen", + "items": [ + "Schlüssel liegen im OS-Keychain, werden aber in die Oberfläche geladen.", + "Diff und Notizen verlassen bei Cloud-Anbietern den Rechner; eigene Endpunkte können lokal sein.", + "Unterstützt: OpenAI, Anthropic und eigene kompatible Endpunkte." + ] + }, + { + "dot": "emerald", + "title": "Vorschlag statt Commit", + "items": [ + "Die Antwort füllt das bearbeitbare Nachrichtenfeld.", + "Ein Commit wird erst durch eine separate Nutzeraktion erstellt." + ] + } + ] +} diff --git a/docs/diagrams/ai-commit.visual-check.1440x900.dark.png b/docs/diagrams/ai-commit.visual-check.1440x900.dark.png new file mode 100644 index 0000000..4ba2c3b Binary files /dev/null and b/docs/diagrams/ai-commit.visual-check.1440x900.dark.png differ diff --git a/docs/diagrams/ai-commit.visual-check.1440x900.light.png b/docs/diagrams/ai-commit.visual-check.1440x900.light.png new file mode 100644 index 0000000..91129e7 Binary files /dev/null and b/docs/diagrams/ai-commit.visual-check.1440x900.light.png differ diff --git a/docs/diagrams/ai-commit.visual-check.2048x1320.dark.png b/docs/diagrams/ai-commit.visual-check.2048x1320.dark.png new file mode 100644 index 0000000..51478a0 Binary files /dev/null and b/docs/diagrams/ai-commit.visual-check.2048x1320.dark.png differ diff --git a/docs/diagrams/ai-commit.visual-check.2048x1320.light.png b/docs/diagrams/ai-commit.visual-check.2048x1320.light.png new file mode 100644 index 0000000..f4e7b18 Binary files /dev/null and b/docs/diagrams/ai-commit.visual-check.2048x1320.light.png differ diff --git a/docs/diagrams/ai-commit.visual-check.html b/docs/diagrams/ai-commit.visual-check.html new file mode 100644 index 0000000..d04bfab --- /dev/null +++ b/docs/diagrams/ai-commit.visual-check.html @@ -0,0 +1,32 @@ + + + + + +Archify automated browser evidence · ai-commit.html + + + +

Automated browser evidence

ai-commit.html · visual-check containment pass · perceptual visual review pending

+
+
+ light 1440 by 900 +
LIGHT · 1440×900 · containment pass
+
+
+ dark 1440 by 900 +
DARK · 1440×900 · containment pass
+
+
+ light 2048 by 1320 +
LIGHT · 2048×1320 · containment pass
+
+
+ dark 2048 by 1320 +
DARK · 2048×1320 · containment pass
+
+
+ + diff --git a/docs/diagrams/ai-commit.visual-check.json b/docs/diagrams/ai-commit.visual-check.json new file mode 100644 index 0000000..387ea77 --- /dev/null +++ b/docs/diagrams/ai-commit.visual-check.json @@ -0,0 +1,548 @@ +{ + "schemaVersion": 1, + "ok": true, + "command": "visual-check", + "evidenceKind": "automated-browser", + "status": "pass", + "visualReview": "pending", + "artifact": { + "path": "/mnt/data/Development/GitLite/docs/diagrams/ai-commit.html", + "sha256": "c29e634d61bf0b7eeee9bffe6d6fc9ac1f0e3419dd42d20dc474f2c8cde8c26b", + "bytes": 804685 + }, + "state": { + "detail": "read", + "motion": "still" + }, + "chrome": { + "status": "available", + "executable": "/opt/helium-browser-bin/chrome" + }, + "diagnostics": [], + "containment": { + "status": "pass", + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 981, + "diagramWidth": 951, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1022, + "diagramWidth": 992, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1184, + "diagramWidth": 1154, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1566, + "diagramWidth": 1516, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "readability": { + "status": "pass", + "minimumProjectedNodeTextPx": 6, + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 981, + "diagramWidth": 951, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1022, + "diagramWidth": 992, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1184, + "diagramWidth": 1154, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1566, + "diagramWidth": 1516, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "viewerChrome": { + "status": "pass", + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 981, + "diagramWidth": 951, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1022, + "diagramWidth": 992, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1184, + "diagramWidth": 1154, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1566, + "diagramWidth": 1516, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "captures": { + "status": "pass", + "screenshots": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 981, + "diagramWidth": 951, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light", + "file": "ai-commit.visual-check.1440x900.light.png" + }, + { + "width": 1440, + "height": 900, + "theme": "dark", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 981, + "diagramWidth": 951, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "dark", + "file": "ai-commit.visual-check.1440x900.dark.png" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1566, + "diagramWidth": 1516, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light", + "file": "ai-commit.visual-check.2048x1320.light.png" + }, + { + "width": 2048, + "height": 1320, + "theme": "dark", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1566, + "diagramWidth": 1516, + "viewBoxWidth": 880, + "minimumProjectedNodeTextPx": 6.6, + "minimumProjectedNodeText": "Bearbeitbar im Commit-Feld", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "dark", + "file": "ai-commit.visual-check.2048x1320.dark.png" + } + ], + "contactSheet": "ai-commit.visual-check.html" + }, + "sidecars": { + "receipt": "ai-commit.visual-check.json", + "contactSheet": "ai-commit.visual-check.html" + } +} diff --git a/docs/diagrams/clone-repository.browser.json b/docs/diagrams/clone-repository.browser.json new file mode 100644 index 0000000..7dad037 --- /dev/null +++ b/docs/diagrams/clone-repository.browser.json @@ -0,0 +1,548 @@ +{ + "schemaVersion": 1, + "ok": true, + "command": "visual-check", + "evidenceKind": "automated-browser", + "status": "pass", + "visualReview": "pending", + "artifact": { + "path": "/mnt/data/Development/GitLite/docs/diagrams/clone-repository.html", + "sha256": "073e7a45ad071e43b8a2ce3385897d6d7d04ecd92d89f87bbbae85e7dcba72be", + "bytes": 807347 + }, + "state": { + "detail": "read", + "motion": "still" + }, + "chrome": { + "status": "available", + "executable": "/opt/helium-browser-bin/chrome" + }, + "diagnostics": [], + "containment": { + "status": "pass", + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1536, + "diagramWidth": 1506, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1856, + "diagramWidth": 1826, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "readability": { + "status": "pass", + "minimumProjectedNodeTextPx": 6, + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1536, + "diagramWidth": 1506, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1856, + "diagramWidth": 1826, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "viewerChrome": { + "status": "pass", + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1536, + "diagramWidth": 1506, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1856, + "diagramWidth": 1826, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "captures": { + "status": "pass", + "screenshots": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light", + "file": "clone-repository.visual-check.1440x900.light.png" + }, + { + "width": 1440, + "height": 900, + "theme": "dark", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "dark", + "file": "clone-repository.visual-check.1440x900.dark.png" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light", + "file": "clone-repository.visual-check.2048x1320.light.png" + }, + { + "width": 2048, + "height": 1320, + "theme": "dark", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "dark", + "file": "clone-repository.visual-check.2048x1320.dark.png" + } + ], + "contactSheet": "clone-repository.visual-check.html" + }, + "sidecars": { + "receipt": "clone-repository.visual-check.json", + "contactSheet": "clone-repository.visual-check.html" + } +} diff --git a/docs/diagrams/clone-repository.delivery.json b/docs/diagrams/clone-repository.delivery.json new file mode 100644 index 0000000..6c5df98 --- /dev/null +++ b/docs/diagrams/clone-repository.delivery.json @@ -0,0 +1,24 @@ +{ + "schemaVersion": 1, + "ok": true, + "command": "deliver", + "type": "workflow", + "input": "/mnt/data/Development/GitLite/docs/diagrams/clone-repository.json", + "output": "/mnt/data/Development/GitLite/docs/diagrams/clone-repository.html", + "specification": { + "sha256": "08ddcd0a8efa4f6992112be4e1d8a81fb39fca161298eef83febd346393cb52c", + "bytes": 4223 + }, + "artifact": { + "sha256": "073e7a45ad071e43b8a2ce3385897d6d7d04ecd92d89f87bbbae85e7dcba72be", + "bytes": 807347 + }, + "validation": { + "checksPassed": 9, + "checkCount": 9, + "compositionProfile": "showcase", + "compositionStatus": "pass", + "errors": 0, + "warnings": 0 + } +} diff --git a/docs/diagrams/clone-repository.html b/docs/diagrams/clone-repository.html new file mode 100644 index 0000000..0589ec4 --- /dev/null +++ b/docs/diagrams/clone-repository.html @@ -0,0 +1,14967 @@ + + + + + + + Gitty · Repository klonen und öffnen Diagram + + + + + + + + +
+ +
+
+
+

Gitty · Repository klonen und öffnen

+
+
+ + + + + + + +
+ + Gitty · Repository klonen und öffnen + A workflow diagram generated by Archify. + + + + + + + + + + + + + + + + + + + + + + + + + 01 / Klonen & Öffnen + + + + EX / Anmeldung + + + + + + + + + + + + + + + + + + + Remote & Ziel · Dialog / Integration · Klonen & Öffnen + + + + Remote & Ziel + Dialog / Integration + + + + Zugang prüfen · OS-Keychain / Git · Klonen & Öffnen + + + + Zugang prüfen + OS-Keychain / Git + + + + Git klont · Ziel lokal validieren · Klonen & Öffnen + + + + Git klont + Ziel lokal validieren + + + + LFS nachladen · Falls erforderlich · Klonen & Öffnen + + + + LFS nachladen + Falls erforderlich + + + + Daten bündeln · Status / Historie / Dateien · Klonen & Öffnen + + + + Daten bündeln + Status / Historie / Dateien + + + + Repository öffnen · Bundle in UI anwenden · Klonen & Öffnen + + + + Repository öffnen + Bundle in UI anwenden + + + + Neu anmelden · Zugangsdaten eingeben · Anmeldung + + + + Neu anmelden + Zugangsdaten eingeben + + + + + + Auth-Fehler + + + + Start + + + + IPC + + + + Erfolg + + + + Weiter + + + + Bundle + + + + Erneut versuchen + + + + + Legend + + + Oberfläche + + + + Verarbeitung + + + + Zugang + + + + Repository-Daten + + + +

+ + + + + + + + + +
+ + +
+
+
+
+

Auswahl & Ausführung

+
+
    +
  • • URL oder Hosting-Integration liefert das Remote; Zielordner und Optionen kommen aus dem Dialog.
  • +
  • • Tauri führt den Clone in spawn_blocking aus. Git nutzt HTTPS oder SSH.
  • +
+
+ +
+
+
+

LFS ist ein Folgeschritt

+
+
    +
  • • Nur bei vorhandenem HEAD: LFS erkennen, lokale Filter / Hook einrichten, Objekte laden.
  • +
  • • Ein LFS-Fehler wird zur Warnung; das geklonte Repository wird trotzdem geöffnet.
  • +
+
+ +
+
+
+

Fehler & Optionen

+
+
    +
  • • Bei Authentifizierungsfehlern öffnet die UI den Anmeldedialog; neue Zugangsdaten erlauben einen erneuten Versuch.
  • +
  • • Branch, shallow, blobless und sparse sind optionale Varianten. Andere Clone-Fehler bleiben im Dialog sichtbar.
  • +
+
+
+ +
+ + + + diff --git a/docs/diagrams/clone-repository.json b/docs/diagrams/clone-repository.json new file mode 100644 index 0000000..4f28daf --- /dev/null +++ b/docs/diagrams/clone-repository.json @@ -0,0 +1,194 @@ +{ + "schema_version": 2, + "diagram_type": "workflow", + "meta": { + "title": "Gitty · Repository klonen und öffnen", + "quality_profile": "showcase", + "legend": { + "entries": { + "frontend": { + "label": "Oberfläche" + }, + "backend": { + "label": "Verarbeitung" + }, + "security": { + "label": "Zugang" + }, + "database": { + "label": "Repository-Daten" + } + } + } + }, + "lanes": [ + { + "id": "main", + "label": "Klonen & Öffnen" + }, + { + "id": "auth", + "label": "Anmeldung", + "variant": "exception" + } + ], + "mainPath": [ + "choose", + "credentials", + "clone", + "lfs", + "bundle", + "open" + ], + "nodes": [ + { + "id": "choose", + "lane": "main", + "col": 0, + "type": "frontend", + "label": "Remote & Ziel", + "sublabel": "Dialog / Integration", + "width": 155, + "yOffset": 0 + }, + { + "id": "credentials", + "lane": "main", + "col": 1, + "type": "security", + "label": "Zugang prüfen", + "sublabel": "OS-Keychain / Git", + "width": 155, + "yOffset": 0 + }, + { + "id": "clone", + "lane": "main", + "col": 2, + "type": "backend", + "label": "Git klont", + "sublabel": "Ziel lokal validieren", + "width": 155, + "yOffset": 0 + }, + { + "id": "lfs", + "lane": "main", + "col": 3, + "type": "backend", + "label": "LFS nachladen", + "sublabel": "Falls erforderlich", + "width": 155, + "yOffset": 0 + }, + { + "id": "bundle", + "lane": "main", + "col": 4, + "type": "database", + "label": "Daten bündeln", + "sublabel": "Status / Historie / Dateien", + "width": 155, + "yOffset": 0 + }, + { + "id": "open", + "lane": "main", + "col": 5, + "type": "frontend", + "label": "Repository öffnen", + "sublabel": "Bundle in UI anwenden", + "width": 155, + "yOffset": 0 + }, + { + "id": "signin", + "lane": "auth", + "col": 2, + "type": "security", + "label": "Neu anmelden", + "sublabel": "Zugangsdaten eingeben", + "width": 155, + "yOffset": 25 + } + ], + "edges": [ + { + "id": "main-0", + "from": "choose", + "to": "credentials", + "label": "Start", + "variant": "emphasis" + }, + { + "id": "main-1", + "from": "credentials", + "to": "clone", + "label": "IPC", + "variant": "emphasis" + }, + { + "id": "main-2", + "from": "clone", + "to": "lfs", + "label": "Erfolg", + "variant": "emphasis" + }, + { + "id": "main-3", + "from": "lfs", + "to": "bundle", + "label": "Weiter", + "variant": "emphasis" + }, + { + "id": "main-4", + "from": "bundle", + "to": "open", + "label": "Bundle", + "variant": "emphasis" + }, + { + "id": "auth-error", + "from": "clone", + "to": "signin", + "label": "Auth-Fehler", + "variant": "security", + "role": "error" + }, + { + "id": "retry-clone", + "from": "signin", + "to": "credentials", + "label": "Erneut versuchen", + "variant": "dashed", + "role": "return" + } + ], + "cards": [ + { + "dot": "cyan", + "title": "Auswahl & Ausführung", + "items": [ + "URL oder Hosting-Integration liefert das Remote; Zielordner und Optionen kommen aus dem Dialog.", + "Tauri führt den Clone in spawn_blocking aus. Git nutzt HTTPS oder SSH." + ] + }, + { + "dot": "amber", + "title": "LFS ist ein Folgeschritt", + "items": [ + "Nur bei vorhandenem HEAD: LFS erkennen, lokale Filter / Hook einrichten, Objekte laden.", + "Ein LFS-Fehler wird zur Warnung; das geklonte Repository wird trotzdem geöffnet." + ] + }, + { + "dot": "rose", + "title": "Fehler & Optionen", + "items": [ + "Bei Authentifizierungsfehlern öffnet die UI den Anmeldedialog; neue Zugangsdaten erlauben einen erneuten Versuch.", + "Branch, shallow, blobless und sparse sind optionale Varianten. Andere Clone-Fehler bleiben im Dialog sichtbar." + ] + } + ] +} diff --git a/docs/diagrams/clone-repository.validation.json b/docs/diagrams/clone-repository.validation.json new file mode 100644 index 0000000..371fbbc --- /dev/null +++ b/docs/diagrams/clone-repository.validation.json @@ -0,0 +1,91 @@ +{ + "schemaVersion": 1, + "ok": true, + "command": "validate", + "type": "workflow", + "input": "/mnt/data/Development/GitLite/docs/diagrams/clone-repository.json", + "checks": [ + { + "name": "single_svg", + "ok": true, + "details": [ + "found 1 block(s)" + ] + }, + { + "name": "finite_svg", + "ok": true, + "details": [] + }, + { + "name": "orthogonal_arrows", + "ok": true, + "details": [] + }, + { + "name": "label_route_clearance", + "ok": true, + "details": [] + }, + { + "name": "relationship_crossings", + "ok": true, + "details": [] + }, + { + "name": "relationship_corridors", + "ok": true, + "details": [] + }, + { + "name": "container_border_runs", + "ok": true, + "details": [] + }, + { + "name": "route_rhythm", + "ok": true, + "details": [] + }, + { + "name": "legend_clearance", + "ok": true, + "details": [] + } + ], + "composition": { + "schemaVersion": 1, + "profile": "showcase", + "status": "pass", + "summary": { + "errors": 0, + "warnings": 0 + }, + "metrics": { + "properCrossings": 0, + "ambiguousCorridors": 0, + "containerBorderRuns": 0, + "labelRouteClearanceIssues": 0, + "minLabelRouteClearance": 72.6, + "desktopReadabilityIssues": 0, + "minProjectedNodeTextPx": null, + "maxBends": 3, + "routesOverSuggestedBends": 1, + "maxStretch": 1.159, + "routesOverSuggestedStretch": 0, + "minSegmentPx": 16, + "minInteriorSegmentPx": 93.5, + "shortSegmentCount": 0, + "shortEndpointSegmentCount": 0, + "shortInteriorSegmentCount": 0, + "microSegmentCount": 0 + }, + "suggestedLimits": { + "bendsPerRelationship": 2, + "stretch": 1.35, + "segmentPx": 16, + "microSegmentPx": 8 + }, + "issues": [] + } +} diff --git a/docs/diagrams/clone-repository.visual-check.1440x900.dark.png b/docs/diagrams/clone-repository.visual-check.1440x900.dark.png new file mode 100644 index 0000000..c7291a3 Binary files /dev/null and b/docs/diagrams/clone-repository.visual-check.1440x900.dark.png differ diff --git a/docs/diagrams/clone-repository.visual-check.1440x900.light.png b/docs/diagrams/clone-repository.visual-check.1440x900.light.png new file mode 100644 index 0000000..c953db4 Binary files /dev/null and b/docs/diagrams/clone-repository.visual-check.1440x900.light.png differ diff --git a/docs/diagrams/clone-repository.visual-check.2048x1320.dark.png b/docs/diagrams/clone-repository.visual-check.2048x1320.dark.png new file mode 100644 index 0000000..aac76ea Binary files /dev/null and b/docs/diagrams/clone-repository.visual-check.2048x1320.dark.png differ diff --git a/docs/diagrams/clone-repository.visual-check.2048x1320.light.png b/docs/diagrams/clone-repository.visual-check.2048x1320.light.png new file mode 100644 index 0000000..d5144c1 Binary files /dev/null and b/docs/diagrams/clone-repository.visual-check.2048x1320.light.png differ diff --git a/docs/diagrams/clone-repository.visual-check.html b/docs/diagrams/clone-repository.visual-check.html new file mode 100644 index 0000000..7b3b43f --- /dev/null +++ b/docs/diagrams/clone-repository.visual-check.html @@ -0,0 +1,32 @@ + + + + + +Archify automated browser evidence · clone-repository.html + + + +

Automated browser evidence

clone-repository.html · visual-check containment pass · perceptual visual review pending

+
+
+ light 1440 by 900 +
LIGHT · 1440×900 · containment pass
+
+
+ dark 1440 by 900 +
DARK · 1440×900 · containment pass
+
+
+ light 2048 by 1320 +
LIGHT · 2048×1320 · containment pass
+
+
+ dark 2048 by 1320 +
DARK · 2048×1320 · containment pass
+
+
+ + diff --git a/docs/diagrams/clone-repository.visual-check.json b/docs/diagrams/clone-repository.visual-check.json new file mode 100644 index 0000000..7dad037 --- /dev/null +++ b/docs/diagrams/clone-repository.visual-check.json @@ -0,0 +1,548 @@ +{ + "schemaVersion": 1, + "ok": true, + "command": "visual-check", + "evidenceKind": "automated-browser", + "status": "pass", + "visualReview": "pending", + "artifact": { + "path": "/mnt/data/Development/GitLite/docs/diagrams/clone-repository.html", + "sha256": "073e7a45ad071e43b8a2ce3385897d6d7d04ecd92d89f87bbbae85e7dcba72be", + "bytes": 807347 + }, + "state": { + "detail": "read", + "motion": "still" + }, + "chrome": { + "status": "available", + "executable": "/opt/helium-browser-bin/chrome" + }, + "diagnostics": [], + "containment": { + "status": "pass", + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1536, + "diagramWidth": 1506, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1856, + "diagramWidth": 1826, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "readability": { + "status": "pass", + "minimumProjectedNodeTextPx": 6, + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1536, + "diagramWidth": 1506, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1856, + "diagramWidth": 1826, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "viewerChrome": { + "status": "pass", + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1536, + "diagramWidth": 1506, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1856, + "diagramWidth": 1826, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "captures": { + "status": "pass", + "screenshots": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light", + "file": "clone-repository.visual-check.1440x900.light.png" + }, + { + "width": 1440, + "height": 900, + "theme": "dark", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1376, + "diagramWidth": 1346, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "dark", + "file": "clone-repository.visual-check.1440x900.dark.png" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light", + "file": "clone-repository.visual-check.2048x1320.light.png" + }, + { + "width": 2048, + "height": 1320, + "theme": "dark", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1920, + "diagramWidth": 1870, + "viewBoxWidth": 1223, + "minimumProjectedNodeTextPx": 8, + "minimumProjectedNodeText": "Dialog / Integration", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "dark", + "file": "clone-repository.visual-check.2048x1320.dark.png" + } + ], + "contactSheet": "clone-repository.visual-check.html" + }, + "sidecars": { + "receipt": "clone-repository.visual-check.json", + "contactSheet": "clone-repository.visual-check.html" + } +} diff --git a/docs/diagrams/handoff-receipts.json b/docs/diagrams/handoff-receipts.json new file mode 100644 index 0000000..139d2f9 --- /dev/null +++ b/docs/diagrams/handoff-receipts.json @@ -0,0 +1,41 @@ +[ + { + "diagram_type": "dataflow", + "output": "/mnt/data/Development/GitLite/docs/diagrams/ai-commit.html", + "specification_sha256": "56fb5f77f2300ccd958e3d51b037ad1169ad431894e3afff00775edae2caae7a", + "specification_bytes": 3071, + "artifact_sha256": "c29e634d61bf0b7eeee9bffe6d6fc9ac1f0e3419dd42d20dc474f2c8cde8c26b", + "artifact_bytes": 804685, + "validation": "9/9 showcase, 0 errors, 0 warnings", + "browser_evidence": "passed", + "visual_review": "passed", + "visual_review_scope": "2048x1320 light and 1440x900 dark screenshots; node/card fit and route clarity inspected", + "correction_rounds": 0 + }, + { + "diagram_type": "workflow", + "output": "/mnt/data/Development/GitLite/docs/diagrams/clone-repository.html", + "specification_sha256": "08ddcd0a8efa4f6992112be4e1d8a81fb39fca161298eef83febd346393cb52c", + "specification_bytes": 4223, + "artifact_sha256": "073e7a45ad071e43b8a2ce3385897d6d7d04ecd92d89f87bbbae85e7dcba72be", + "artifact_bytes": 807347, + "validation": "9/9 showcase, 0 errors, 0 warnings", + "browser_evidence": "passed", + "visual_review": "passed", + "visual_review_scope": "2048x1320 light and 1440x900 dark screenshots; node/card fit and route clarity inspected", + "correction_rounds": 2 + }, + { + "diagram_type": "lifecycle", + "output": "/mnt/data/Development/GitLite/docs/diagrams/merge-conflicts.html", + "specification_sha256": "3315fa02f50459dd80c1931541cea6f5e3e45b74b03bc891579d30ccb2a64181", + "specification_bytes": 2890, + "artifact_sha256": "80280ff54042e17ba73c15a0c67055605d7d61803e2980284d7b06f80871a1fa", + "artifact_bytes": 802325, + "validation": "9/9 showcase, 0 errors, 0 warnings", + "browser_evidence": "passed", + "visual_review": "passed", + "visual_review_scope": "2048x1320 light and 1440x900 dark screenshots; node/card fit and route clarity inspected", + "correction_rounds": 2 + } +] diff --git a/docs/diagrams/merge-conflicts.browser.json b/docs/diagrams/merge-conflicts.browser.json new file mode 100644 index 0000000..dbfcc47 --- /dev/null +++ b/docs/diagrams/merge-conflicts.browser.json @@ -0,0 +1,548 @@ +{ + "schemaVersion": 1, + "ok": true, + "command": "visual-check", + "evidenceKind": "automated-browser", + "status": "pass", + "visualReview": "pending", + "artifact": { + "path": "/mnt/data/Development/GitLite/docs/diagrams/merge-conflicts.html", + "sha256": "80280ff54042e17ba73c15a0c67055605d7d61803e2980284d7b06f80871a1fa", + "bytes": 802325 + }, + "state": { + "detail": "read", + "motion": "still" + }, + "chrome": { + "status": "available", + "executable": "/opt/helium-browser-bin/chrome" + }, + "diagnostics": [], + "containment": { + "status": "pass", + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1047, + "diagramWidth": 1017, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1085, + "diagramWidth": 1055, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1209, + "diagramWidth": 1179, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1537, + "diagramWidth": 1487, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "readability": { + "status": "pass", + "minimumProjectedNodeTextPx": 6, + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1047, + "diagramWidth": 1017, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1085, + "diagramWidth": 1055, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1209, + "diagramWidth": 1179, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1537, + "diagramWidth": 1487, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "viewerChrome": { + "status": "pass", + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1047, + "diagramWidth": 1017, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1085, + "diagramWidth": 1055, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1209, + "diagramWidth": 1179, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1537, + "diagramWidth": 1487, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "captures": { + "status": "pass", + "screenshots": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1047, + "diagramWidth": 1017, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light", + "file": "merge-conflicts.visual-check.1440x900.light.png" + }, + { + "width": 1440, + "height": 900, + "theme": "dark", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1047, + "diagramWidth": 1017, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "dark", + "file": "merge-conflicts.visual-check.1440x900.dark.png" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1537, + "diagramWidth": 1487, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light", + "file": "merge-conflicts.visual-check.2048x1320.light.png" + }, + { + "width": 2048, + "height": 1320, + "theme": "dark", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1537, + "diagramWidth": 1487, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "dark", + "file": "merge-conflicts.visual-check.2048x1320.dark.png" + } + ], + "contactSheet": "merge-conflicts.visual-check.html" + }, + "sidecars": { + "receipt": "merge-conflicts.visual-check.json", + "contactSheet": "merge-conflicts.visual-check.html" + } +} diff --git a/docs/diagrams/merge-conflicts.delivery.json b/docs/diagrams/merge-conflicts.delivery.json new file mode 100644 index 0000000..0f5ca02 --- /dev/null +++ b/docs/diagrams/merge-conflicts.delivery.json @@ -0,0 +1,24 @@ +{ + "schemaVersion": 1, + "ok": true, + "command": "deliver", + "type": "lifecycle", + "input": "/mnt/data/Development/GitLite/docs/diagrams/merge-conflicts.json", + "output": "/mnt/data/Development/GitLite/docs/diagrams/merge-conflicts.html", + "specification": { + "sha256": "3315fa02f50459dd80c1931541cea6f5e3e45b74b03bc891579d30ccb2a64181", + "bytes": 2890 + }, + "artifact": { + "sha256": "80280ff54042e17ba73c15a0c67055605d7d61803e2980284d7b06f80871a1fa", + "bytes": 802325 + }, + "validation": { + "checksPassed": 9, + "checkCount": 9, + "compositionProfile": "showcase", + "compositionStatus": "pass", + "errors": 0, + "warnings": 0 + } +} diff --git a/docs/diagrams/merge-conflicts.html b/docs/diagrams/merge-conflicts.html new file mode 100644 index 0000000..b841134 --- /dev/null +++ b/docs/diagrams/merge-conflicts.html @@ -0,0 +1,14923 @@ + + + + + + + Gitty · Merge und Konfliktauflösung Diagram + + + + + + + + +
+ +
+
+
+

Gitty · Merge und Konfliktauflösung

+
+
+ + + + + + + +
+ + Gitty · Merge und Konfliktauflösung + A lifecycle diagram generated by Archify. + + + + + + + + + + + + + + + + + + + + + + + + + 01 / Normaler Merge · Konfliktpfad + + 02 / Nutzeraktion + + 03 / Abbruch + + + + + + + + + + + Bereit · Branch ausgewählt · Normaler Merge · Konfliktpfad + + + + Bereit + Branch ausgewählt + + + + Merge läuft · git merge --no-edit · Normaler Merge · Konfliktpfad + + + + Merge läuft + git merge --no-edit + + + + Konflikte offen · Nutzereingriff nötig · Normaler Merge · Konfliktpfad + + + + Konflikte offen + Nutzereingriff nötig + + + + Alles aufgelöst · Änderungen vorgemerkt · Normaler Merge · Konfliktpfad + + + + Alles aufgelöst + Änderungen vorgemerkt + + + + Abgeschlossen · Status aktualisiert · Normaler Merge · Konfliktpfad + + + + Abgeschlossen + Status aktualisiert + + + + Abgebrochen · Vorheriger Stand · Abbruch + + + + Abgebrochen + Vorheriger Stand + + + + + + Ohne Konflikte + + + + Abbrechen + + + + + Legend + + + Start + + + + Aktiv + + + + Wartend + + + + Erfolgreich + + + + Beendet + + + +

+ + + + + + + + + +
+ + +
+
+
+
+

Konflikte sind ein Zustand

+
+
    +
  • • Konflikte sind GitStatus. Ohne Konflikte endet der Merge direkt.
  • +
+
+ +
+
+
+

Auflösen & Fortsetzen

+
+
    +
  • • Speichern → git add. Alles gelöst → Fortsetzen → git commit --no-edit.
  • +
+
+ +
+
+
+

Abbruch & Geltungsbereich

+
+
    +
  • • git merge --abort beendet den laufenden Merge. Squash ist hier ausgenommen.
  • +
+
+
+ +
+ + + + diff --git a/docs/diagrams/merge-conflicts.json b/docs/diagrams/merge-conflicts.json new file mode 100644 index 0000000..1069e7e --- /dev/null +++ b/docs/diagrams/merge-conflicts.json @@ -0,0 +1,143 @@ +{ + "schema_version": 1, + "diagram_type": "lifecycle", + "meta": { + "title": "Gitty · Merge und Konfliktauflösung", + "quality_profile": "showcase", + "viewBox": [ + 980, + 630 + ], + "legend": { + "entries": { + "start": { + "label": "Start" + }, + "active": { + "label": "Aktiv" + }, + "waiting": { + "label": "Wartend" + }, + "success": { + "label": "Erfolgreich" + }, + "neutral": { + "label": "Beendet" + } + } + } + }, + "lanes": [ + { + "id": "main", + "label": "Normaler Merge · Konfliktpfad" + }, + { + "id": "user", + "label": "Nutzeraktion" + }, + { + "id": "terminal", + "label": "Abbruch" + } + ], + "states": [ + { + "id": "ready", + "type": "start", + "label": "Bereit", + "sublabel": "Branch ausgewählt", + "lane": "main", + "col": 0 + }, + { + "id": "merging", + "type": "active", + "label": "Merge läuft", + "sublabel": "git merge --no-edit", + "lane": "main", + "col": 1 + }, + { + "id": "conflicts", + "type": "waiting", + "label": "Konflikte offen", + "sublabel": "Nutzereingriff nötig", + "lane": "main", + "col": 2 + }, + { + "id": "resolved", + "type": "active", + "label": "Alles aufgelöst", + "sublabel": "Änderungen vorgemerkt", + "lane": "main", + "col": 3 + }, + { + "id": "done", + "type": "success", + "label": "Abgeschlossen", + "sublabel": "Status aktualisiert", + "lane": "main", + "col": 4 + }, + { + "id": "aborted", + "type": "neutral", + "label": "Abgebrochen", + "sublabel": "Vorheriger Stand", + "lane": "terminal", + "col": 0 + } + ], + "transitions": [ + { + "id": "clean-merge", + "from": "merging", + "to": "done", + "label": "Ohne Konflikte", + "variant": "emphasis", + "fromSide": "top", + "toSide": "top", + "route": "top-channel" + }, + { + "id": "abort-merge", + "from": "conflicts", + "to": "aborted", + "label": "Abbrechen", + "variant": "security", + "fromSide": "bottom", + "toSide": "top", + "labelAt": [ + 402, + 202 + ] + } + ], + "cards": [ + { + "dot": "cyan", + "title": "Konflikte sind ein Zustand", + "items": [ + "Konflikte sind GitStatus. Ohne Konflikte endet der Merge direkt." + ] + }, + { + "dot": "amber", + "title": "Auflösen & Fortsetzen", + "items": [ + "Speichern → git add. Alles gelöst → Fortsetzen → git commit --no-edit." + ] + }, + { + "dot": "rose", + "title": "Abbruch & Geltungsbereich", + "items": [ + "git merge --abort beendet den laufenden Merge. Squash ist hier ausgenommen." + ] + } + ] +} diff --git a/docs/diagrams/merge-conflicts.validation.json b/docs/diagrams/merge-conflicts.validation.json new file mode 100644 index 0000000..268f637 --- /dev/null +++ b/docs/diagrams/merge-conflicts.validation.json @@ -0,0 +1,91 @@ +{ + "schemaVersion": 1, + "ok": true, + "command": "validate", + "type": "lifecycle", + "input": "/mnt/data/Development/GitLite/docs/diagrams/merge-conflicts.json", + "checks": [ + { + "name": "single_svg", + "ok": true, + "details": [ + "found 1 block(s)" + ] + }, + { + "name": "finite_svg", + "ok": true, + "details": [] + }, + { + "name": "orthogonal_arrows", + "ok": true, + "details": [] + }, + { + "name": "label_route_clearance", + "ok": true, + "details": [] + }, + { + "name": "relationship_crossings", + "ok": true, + "details": [] + }, + { + "name": "relationship_corridors", + "ok": true, + "details": [] + }, + { + "name": "container_border_runs", + "ok": true, + "details": [] + }, + { + "name": "route_rhythm", + "ok": true, + "details": [] + }, + { + "name": "legend_clearance", + "ok": true, + "details": [] + } + ], + "composition": { + "schemaVersion": 1, + "profile": "showcase", + "status": "pass", + "summary": { + "errors": 0, + "warnings": 0 + }, + "metrics": { + "properCrossings": 0, + "ambiguousCorridors": 0, + "containerBorderRuns": 0, + "labelRouteClearanceIssues": 0, + "minLabelRouteClearance": 34, + "desktopReadabilityIssues": 0, + "minProjectedNodeTextPx": null, + "maxBends": 2, + "routesOverSuggestedBends": 0, + "maxStretch": 1.121, + "routesOverSuggestedStretch": 0, + "minSegmentPx": 28, + "minInteriorSegmentPx": 462, + "shortSegmentCount": 0, + "shortEndpointSegmentCount": 0, + "shortInteriorSegmentCount": 0, + "microSegmentCount": 0 + }, + "suggestedLimits": { + "bendsPerRelationship": 2, + "stretch": 1.35, + "segmentPx": 16, + "microSegmentPx": 8 + }, + "issues": [] + } +} diff --git a/docs/diagrams/merge-conflicts.visual-check.1440x900.dark.png b/docs/diagrams/merge-conflicts.visual-check.1440x900.dark.png new file mode 100644 index 0000000..d1a565a Binary files /dev/null and b/docs/diagrams/merge-conflicts.visual-check.1440x900.dark.png differ diff --git a/docs/diagrams/merge-conflicts.visual-check.1440x900.light.png b/docs/diagrams/merge-conflicts.visual-check.1440x900.light.png new file mode 100644 index 0000000..8f289fe Binary files /dev/null and b/docs/diagrams/merge-conflicts.visual-check.1440x900.light.png differ diff --git a/docs/diagrams/merge-conflicts.visual-check.2048x1320.dark.png b/docs/diagrams/merge-conflicts.visual-check.2048x1320.dark.png new file mode 100644 index 0000000..ca6891d Binary files /dev/null and b/docs/diagrams/merge-conflicts.visual-check.2048x1320.dark.png differ diff --git a/docs/diagrams/merge-conflicts.visual-check.2048x1320.light.png b/docs/diagrams/merge-conflicts.visual-check.2048x1320.light.png new file mode 100644 index 0000000..65f0407 Binary files /dev/null and b/docs/diagrams/merge-conflicts.visual-check.2048x1320.light.png differ diff --git a/docs/diagrams/merge-conflicts.visual-check.html b/docs/diagrams/merge-conflicts.visual-check.html new file mode 100644 index 0000000..456ae36 --- /dev/null +++ b/docs/diagrams/merge-conflicts.visual-check.html @@ -0,0 +1,32 @@ + + + + + +Archify automated browser evidence · merge-conflicts.html + + + +

Automated browser evidence

merge-conflicts.html · visual-check containment pass · perceptual visual review pending

+
+
+ light 1440 by 900 +
LIGHT · 1440×900 · containment pass
+
+
+ dark 1440 by 900 +
DARK · 1440×900 · containment pass
+
+
+ light 2048 by 1320 +
LIGHT · 2048×1320 · containment pass
+
+
+ dark 2048 by 1320 +
DARK · 2048×1320 · containment pass
+
+
+ + diff --git a/docs/diagrams/merge-conflicts.visual-check.json b/docs/diagrams/merge-conflicts.visual-check.json new file mode 100644 index 0000000..dbfcc47 --- /dev/null +++ b/docs/diagrams/merge-conflicts.visual-check.json @@ -0,0 +1,548 @@ +{ + "schemaVersion": 1, + "ok": true, + "command": "visual-check", + "evidenceKind": "automated-browser", + "status": "pass", + "visualReview": "pending", + "artifact": { + "path": "/mnt/data/Development/GitLite/docs/diagrams/merge-conflicts.html", + "sha256": "80280ff54042e17ba73c15a0c67055605d7d61803e2980284d7b06f80871a1fa", + "bytes": 802325 + }, + "state": { + "detail": "read", + "motion": "still" + }, + "chrome": { + "status": "available", + "executable": "/opt/helium-browser-bin/chrome" + }, + "diagnostics": [], + "containment": { + "status": "pass", + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1047, + "diagramWidth": 1017, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1085, + "diagramWidth": 1055, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1209, + "diagramWidth": 1179, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1537, + "diagramWidth": 1487, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "readability": { + "status": "pass", + "minimumProjectedNodeTextPx": 6, + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1047, + "diagramWidth": 1017, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1085, + "diagramWidth": 1055, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1209, + "diagramWidth": 1179, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1537, + "diagramWidth": 1487, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "viewerChrome": { + "status": "pass", + "viewports": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1047, + "diagramWidth": 1017, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1600, + "height": 1000, + "theme": "light", + "innerWidth": 1600, + "innerHeight": 1000, + "scrollWidth": 1600, + "scrollHeight": 1000, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1085, + "diagramWidth": 1055, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 1920, + "height": 1080, + "theme": "light", + "innerWidth": 1920, + "innerHeight": 1080, + "scrollWidth": 1920, + "scrollHeight": 1080, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1209, + "diagramWidth": 1179, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1537, + "diagramWidth": 1487, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light" + } + ] + }, + "captures": { + "status": "pass", + "screenshots": [ + { + "width": 1440, + "height": 900, + "theme": "light", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1047, + "diagramWidth": 1017, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light", + "file": "merge-conflicts.visual-check.1440x900.light.png" + }, + { + "width": 1440, + "height": 900, + "theme": "dark", + "innerWidth": 1440, + "innerHeight": 900, + "scrollWidth": 1440, + "scrollHeight": 900, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1047, + "diagramWidth": 1017, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 51, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "dark", + "file": "merge-conflicts.visual-check.1440x900.dark.png" + }, + { + "width": 2048, + "height": 1320, + "theme": "light", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1537, + "diagramWidth": 1487, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "light", + "file": "merge-conflicts.visual-check.2048x1320.light.png" + }, + { + "width": 2048, + "height": 1320, + "theme": "dark", + "innerWidth": 2048, + "innerHeight": 1320, + "scrollWidth": 2048, + "scrollHeight": 1320, + "overflowX": false, + "overflowY": false, + "ok": true, + "readerWidth": 1537, + "diagramWidth": 1487, + "viewBoxWidth": 980, + "minimumProjectedNodeTextPx": 7, + "minimumProjectedNodeText": "Branch ausgewählt", + "minimumProjectedNodeTextDetail": "context", + "minimumRequiredNodeTextPx": 6, + "readabilityOk": true, + "hasLegend": true, + "hasNavigationDock": true, + "legendDockIntersectionArea": 0, + "dockStageIntersectionArea": 0, + "dockStageGap": 10.21875, + "requiredDockStageGap": 10, + "viewerChromeStageOk": true, + "viewerChromeReserve": 41, + "viewerChromeActive": true, + "viewerChromeOk": true, + "resolvedTheme": "dark", + "file": "merge-conflicts.visual-check.2048x1320.dark.png" + } + ], + "contactSheet": "merge-conflicts.visual-check.html" + }, + "sidecars": { + "receipt": "merge-conflicts.visual-check.json", + "contactSheet": "merge-conflicts.visual-check.html" + } +}