From b6f6297c655b4ec1afc0c8dfc22973c3d05b3dad Mon Sep 17 00:00:00 2001 From: Silberengel Date: Fri, 27 Feb 2026 20:34:11 +0100 Subject: [PATCH] bug-fixes Nostr-Signature: d98d2d6a6eb27ba36f19015f7d6969fe3925c40b23187d70ccc9b61141c6b4b7 573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc 8727e3015e38a78d7a6105c26e5b1469dc4d6d701e58d5d6c522ab529b4daa2d39d4353eb6d091f3c1fd28ad0289eae808494c9e2722bf9065dd2b2e9001664f --- nostr/commit-signatures.jsonl | 1 + src/lib/components/CodeEditor.svelte | 65 +++- src/lib/components/CommentRenderer.svelte | 54 +-- src/lib/components/DiscussionRenderer.svelte | 29 +- src/lib/services/git/file-manager.ts | 254 +++++++++++---- .../git/file-manager/commit-operations.ts | 38 ++- .../repos/[npub]/[repo]/branches/+server.ts | 308 ++++++++++++------ .../[repo]/clone-urls/reachability/+server.ts | 22 +- .../repos/[npub]/[repo]/commits/+server.ts | 2 +- .../api/repos/[npub]/[repo]/readme/+server.ts | 2 +- .../api/repos/[npub]/[repo]/tree/+server.ts | 2 +- .../api/repos/[npub]/[repo]/verify/+server.ts | 56 +++- src/routes/repos/[npub]/[repo]/+page.svelte | 86 ++++- .../[repo]/components/DiscussionsTab.svelte | 116 ++++++- .../[npub]/[repo]/components/DocsTab.svelte | 65 +++- .../[npub]/[repo]/components/FilesTab.svelte | 179 ++++++++-- .../[npub]/[repo]/components/TabLayout.svelte | 24 +- .../dialogs/CreateDocumentationDialog.svelte | 133 ++++++++ .../dialogs/CreateThreadDialog.svelte | 17 + .../[repo]/components/dialogs/Modal.svelte | 5 +- .../[repo]/services/commit-operations.ts | 12 +- .../[npub]/[repo]/services/file-operations.ts | 25 +- .../repos/[npub]/[repo]/stores/repo-state.ts | 10 + .../[npub]/[repo]/utils/file-processing.ts | 13 +- 24 files changed, 1232 insertions(+), 286 deletions(-) create mode 100644 src/routes/repos/[npub]/[repo]/components/dialogs/CreateDocumentationDialog.svelte diff --git a/nostr/commit-signatures.jsonl b/nostr/commit-signatures.jsonl index a43ff10..5123260 100644 --- a/nostr/commit-signatures.jsonl +++ b/nostr/commit-signatures.jsonl @@ -109,3 +109,4 @@ {"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1772142558,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","remove redundancy"]],"content":"Signed commit: remove redundancy","id":"11ac91151bebd4dd49b91bcdef7b0b7157f0afd8ce710f7231be4860fb073d08","sig":"a7efcafa5ea83a0c37eae4562a84a7581c3d5c5dd1416f8f3e2bd2633d8523ae0eb7cc56dc4292c127ea16fb2dd5bc639483cb096263a850956b47312ed7ff6f"} {"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1772182112,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","refactor 12"]],"content":"Signed commit: refactor 12","id":"73671ae6535309f9eae164f7a3ec403b1bc818ef811b9692fd0122d0b72c2774","sig":"0df56b009f5afb77de334225ab30cff55586ac0cf48f5ee435428201a1e72dc357a0fb5e80ef196f5bd76d6d448056d25f0feab0b1bcbe45f9af1a2a0d5453ca"} {"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1772188835,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","refactor 13"]],"content":"Signed commit: refactor 13","id":"f41c8662dcbf1be408c560d11eda0890c40582a8ea8bb3220116e645cc6a2bb5","sig":"2b7b70089cecfa4652fe236fa586a6fe1b05c1c95434a160717cbf5ee2f37382cdd8e8f31d7b3a7576ee5264e9e70c7a8651591caaea0cd311d1be4c561d282f"} +{"kind":1640,"pubkey":"573634b648634cbad10f2451776089ea21090d9407f715e83c577b4611ae6edc","created_at":1772193104,"tags":[["author","Silberengel","silberengel7@protonmail.com"],["message","bug-fixes"]],"content":"Signed commit: bug-fixes","id":"02dcdcda1083cffd91dbf8906716c2ae09f06f77ef8590802afecd85f0b3108a","sig":"13d2b30ed37af03fd47dc09536058babb4dc63d1cfc55b8f38651ffd6342abcddc840b543c085b047721e9102b2d07e3dae78ff31d5990c92c04410ef1efcd5b"} diff --git a/src/lib/components/CodeEditor.svelte b/src/lib/components/CodeEditor.svelte index 9cef1a7..9e7c43a 100644 --- a/src/lib/components/CodeEditor.svelte +++ b/src/lib/components/CodeEditor.svelte @@ -79,6 +79,8 @@ autocompletion(), highlightSelectionMatches(), highlightField, + // Enable line wrapping to prevent horizontal overflow + EditorView.lineWrapping, keymap.of([ ...closeBracketsKeymap, ...defaultKeymap, @@ -230,15 +232,54 @@ .code-editor { height: 100%; width: 100%; - overflow: auto; + max-width: 100%; + overflow-x: hidden; + overflow-y: auto; + min-width: 0; + box-sizing: border-box; } :global(.code-editor .cm-editor) { height: 100%; + width: 100%; + max-width: 100%; + min-width: 0; + box-sizing: border-box; + overflow: hidden; } :global(.code-editor .cm-scroller) { - overflow: auto; + overflow-x: hidden !important; + overflow-y: auto; + width: 100%; + max-width: 100%; + min-width: 0; + box-sizing: border-box; + } + + :global(.code-editor .cm-content) { + max-width: 100% !important; + min-width: 0; + box-sizing: border-box; + word-wrap: break-word; + overflow-wrap: break-word; + overflow-x: hidden !important; + width: 100%; + } + + :global(.code-editor .cm-line) { + max-width: 100% !important; + min-width: 0; + box-sizing: border-box; + word-wrap: break-word; + overflow-wrap: break-word; + overflow-x: hidden !important; + } + + :global(.code-editor .cm-line > *) { + max-width: 100% !important; + word-wrap: break-word !important; + overflow-wrap: break-word !important; } :global(.code-editor .cm-highlight-marker) { @@ -246,4 +287,24 @@ padding: 2px 0; border-radius: 2px; } + + /* Prevent any CodeMirror element from causing horizontal overflow */ + :global(.code-editor .cm-gutters), + :global(.code-editor .cm-gutter), + :global(.code-editor .cm-panels), + :global(.code-editor .cm-panel), + :global(.code-editor .cm-focused) { + max-width: 100%; + box-sizing: border-box; + overflow-x: hidden !important; + } + + /* Ensure all text content in CodeMirror wraps */ + :global(.code-editor .cm-content), + :global(.code-editor .cm-line), + :global(.code-editor .cm-lineContent) { + overflow-x: hidden !important; + word-break: break-word; + overflow-wrap: break-word; + } diff --git a/src/lib/components/CommentRenderer.svelte b/src/lib/components/CommentRenderer.svelte index 84c9d9a..023b3b8 100644 --- a/src/lib/components/CommentRenderer.svelte +++ b/src/lib/components/CommentRenderer.svelte @@ -1,3 +1,15 @@ + + {#snippet leftPane()} + {#if isMaintainer && onCreateFile} +
+ +
+ {/if} ● Unsaved changes {/if} - {#if currentFile && supportsPreview((currentFile.split('.').pop() || '').toLowerCase()) && !isMaintainer} + {#if currentFile && supportsPreview((currentFile.split('.').pop() || '').toLowerCase())} + + + {/snippet} + + + diff --git a/src/routes/repos/[npub]/[repo]/components/dialogs/CreateThreadDialog.svelte b/src/routes/repos/[npub]/[repo]/components/dialogs/CreateThreadDialog.svelte index adb742a..3518eeb 100644 --- a/src/routes/repos/[npub]/[repo]/components/dialogs/CreateThreadDialog.svelte +++ b/src/routes/repos/[npub]/[repo]/components/dialogs/CreateThreadDialog.svelte @@ -37,6 +37,7 @@ label { display: block; margin-bottom: 1rem; + color: var(--text-primary); } label input, @@ -46,6 +47,22 @@ margin-top: 0.25rem; border: 1px solid var(--border-color, #e0e0e0); border-radius: 4px; + background-color: var(--bg-primary); + color: var(--text-primary); + font-family: inherit; + } + + label textarea { + font-family: 'IBM Plex Mono', monospace; + font-size: 0.9rem; + resize: vertical; + } + + label input:focus, + label textarea:focus { + outline: none; + border-color: var(--button-primary); + box-shadow: 0 0 0 2px rgba(var(--button-primary-rgb, 220, 20, 60), 0.2); } .modal-actions { diff --git a/src/routes/repos/[npub]/[repo]/components/dialogs/Modal.svelte b/src/routes/repos/[npub]/[repo]/components/dialogs/Modal.svelte index fdddb72..790c1e3 100644 --- a/src/routes/repos/[npub]/[repo]/components/dialogs/Modal.svelte +++ b/src/routes/repos/[npub]/[repo]/components/dialogs/Modal.svelte @@ -7,9 +7,10 @@ ariaLabel?: string; onClose: () => void; children?: Snippet; + maxWidth?: string; } - let { open, title, ariaLabel, onClose, children }: Props = $props(); + let { open, title, ariaLabel, onClose, children, maxWidth = '500px' }: Props = $props(); {#if open} @@ -27,6 +28,7 @@