diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 10958583f..82783fdf3 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -8,36 +8,41 @@ assignees: '' # Bug Report -## Description +## Installation Method -**Bug Summary:** -[Provide a brief but clear summary of the bug] - -**Steps to Reproduce:** -[Outline the steps to reproduce the bug. Be as detailed as possible.] - -**Expected Behavior:** -[Describe what you expected to happen.] - -**Actual Behavior:** -[Describe what actually happened.] +[Describe the method you used to install the project, e.g., git clone, Docker, pip, etc.] ## Environment -- **Open WebUI Version:** [e.g., 0.1.120] -- **Ollama (if applicable):** [e.g., 0.1.30, 0.1.32-rc1] +- **Open WebUI Version:** [e.g., v0.3.11] +- **Ollama (if applicable):** [e.g., v0.2.0, v0.1.32-rc1] - **Operating System:** [e.g., Windows 10, macOS Big Sur, Ubuntu 20.04] - **Browser (if applicable):** [e.g., Chrome 100.0, Firefox 98.0] -## Reproduction Details - **Confirmation:** - [ ] I have read and followed all the instructions provided in the README.md. - [ ] I am on the latest version of both Open WebUI and Ollama. - [ ] I have included the browser console logs. - [ ] I have included the Docker container logs. +- [ ] I have provided the exact steps to reproduce the bug in the "Steps to Reproduce" section below. + +## Expected Behavior: +[Describe what you expected to happen.] + +## Actual Behavior: +[Describe what actually happened.] + +## Description + +**Bug Summary:** +[Provide a brief but clear summary of the bug] + +## Reproduction Details + +**Steps to Reproduce:** +[Outline the steps to reproduce the bug. Be as detailed as possible.] ## Logs and Screenshots @@ -47,13 +52,9 @@ assignees: '' **Docker Container Logs:** [Include relevant Docker container logs, if applicable] -**Screenshots (if applicable):** +**Screenshots/Screen Recordings (if applicable):** [Attach any relevant screenshots to help illustrate the issue] -## Installation Method - -[Describe the method you used to install the project, e.g., manual installation, Docker, package manager, etc.] - ## Additional Information [Include any additional details that may help in understanding and reproducing the issue. This could include specific configurations, error messages, or anything else relevant to the bug.] diff --git a/docs/SECURITY.md b/docs/SECURITY.md index 4a0c37e7c..6c1b881b5 100644 --- a/docs/SECURITY.md +++ b/docs/SECURITY.md @@ -11,10 +11,25 @@ Our primary goal is to ensure the protection and confidentiality of sensitive da ## Reporting a Vulnerability -If you discover a security issue within our system, please notify us immediately via a pull request or contact us on discord. +We appreciate the community's interest in identifying potential vulnerabilities. However, effective immediately, we will **not** accept low-effort vulnerability reports. To ensure that submissions are constructive and actionable, please adhere to the following guidelines: + +1. **No Vague Reports**: Submissions such as "I found a vulnerability" without any details will be treated as spam and will not be accepted. + +2. **In-Depth Understanding Required**: Reports must reflect a clear understanding of the codebase and provide specific details about the vulnerability, including the affected components and potential impacts. + +3. **Proof of Concept (PoC) is Mandatory**: Each submission must include a well-documented proof of concept (PoC) that demonstrates the vulnerability. If confidentiality is a concern, reporters are encouraged to create a private fork of the repository and share access with the maintainers. Reports lacking valid evidence will be disregarded. + +4. **Required Patch Submission**: Along with the PoC, reporters must provide a patch or actionable steps to remediate the identified vulnerability. This helps us evaluate and implement fixes rapidly. + +5. **Streamlined Merging Process**: When vulnerability reports meet the above criteria, we can consider them for immediate merging, similar to regular pull requests. Well-structured and thorough submissions will expedite the process of enhancing our security. + +Submissions that do not meet these criteria will be closed, and repeat offenders may face a ban from future submissions. We aim to create a respectful and constructive reporting environment, where high-quality submissions foster better security for everyone. ## Product Security -We regularly audit our internal processes and system's architecture for vulnerabilities using a combination of automated and manual testing techniques. +We regularly audit our internal processes and system architecture for vulnerabilities using a combination of automated and manual testing techniques. We are also planning to implement SAST and SCA scans in our project soon. -We are planning on implementing SAST and SCA scans in our project soon. +For immediate concerns or detailed reports that meet our guidelines, please create an issue in our [issue tracker](/open-webui/open-webui/issues) or contact us on [Discord](https://discord.gg/5rJgQTnV4s). + +--- +_Last updated on **2024-08-06**._ \ No newline at end of file diff --git a/src/lib/components/chat/Messages/Markdown.svelte b/src/lib/components/chat/Messages/Markdown.svelte deleted file mode 100644 index e43907530..000000000 --- a/src/lib/components/chat/Messages/Markdown.svelte +++ /dev/null @@ -1,132 +0,0 @@ - - -{#each tokens as token, tokenIdx} - {#if token.type === 'hr'} -
- {:else if token.type === 'heading'} - - - - {:else if token.type === 'code'} - - {:else if token.type === 'table'} - - - - {#each token.header as header, headerIdx} - - {/each} - - - - {#each token.rows as row, rowIdx} - - {#each row ?? [] as cell, cellIdx} - - {/each} - - {/each} - -
- -
- -
- {:else if token.type === 'blockquote'} -
- -
- {:else if token.type === 'list'} - {#if token.ordered} -
    - {#each token.items as item, itemIdx} -
  1. - -
  2. - {/each} -
- {:else} - - {/if} - {:else if token.type === 'html'} - {@html token.text} - {:else if token.type === 'paragraph'} -

- -

- {:else if token.type === 'text'} - {#if top} -

- {#if token.tokens} - - {:else} - {unescapeHtml(token.text)} - {/if} -

- {:else if token.tokens} - - {:else} - {unescapeHtml(token.text)} - {/if} - {:else if token.type === 'space'} - {''} - {:else} - {console.log('Unknown token', token)} - {/if} -{/each} diff --git a/src/lib/components/chat/Messages/MarkdownInlineTokens.svelte b/src/lib/components/chat/Messages/MarkdownInlineTokens.svelte index 7ccc0e565..19d22de37 100644 --- a/src/lib/components/chat/Messages/MarkdownInlineTokens.svelte +++ b/src/lib/components/chat/Messages/MarkdownInlineTokens.svelte @@ -1,16 +1,10 @@ {#each tokens as token} diff --git a/src/lib/components/chat/Messages/MarkdownTokens.svelte b/src/lib/components/chat/Messages/MarkdownTokens.svelte new file mode 100644 index 000000000..843d03a6f --- /dev/null +++ b/src/lib/components/chat/Messages/MarkdownTokens.svelte @@ -0,0 +1,222 @@ + + +
+ {#each tokens as token, tokenIdx (`${id}-${tokenIdx}`)} + {#if token.type === 'code'} + {#if token.lang === 'mermaid'} +
{revertSanitizedResponseContent(token.text)}
+ {:else} + + {/if} + + + {:else} + {@html marked.parse(token.raw, { + ...defaults, + gfm: true, + breaks: true, + renderer + })} + {/if} + {/each} +
diff --git a/src/lib/components/chat/Messages/ResponseMessage.svelte b/src/lib/components/chat/Messages/ResponseMessage.svelte index 0f96da729..fdc846205 100644 --- a/src/lib/components/chat/Messages/ResponseMessage.svelte +++ b/src/lib/components/chat/Messages/ResponseMessage.svelte @@ -1,6 +1,7 @@ -
- - - { - showImagePreview = true; - }} - src={_src} - {alt} - class=" rounded-lg cursor-pointer" - draggable="false" - data-cy="image" - /> -
+ +