Release Stable Build v2.0.11 (#119)

* Add electron-updater auto-update support

- Install electron-updater package
- Configure GitHub releases publish settings
- Create AppUpdater class with full update lifecycle
- Integrate auto-update into main.js
- Add comprehensive documentation (AUTO-UPDATES.md, TESTING-UPDATES.md)
- Set up dev-app-update.yml for testing

* Add cache clearing documentation for electron-updater

- Introduced CLEAR-UPDATE-CACHE.md to guide users on clearing the electron-updater cache across macOS, Windows, and Linux.
- Added programmatic method for cache clearing in JavaScript.
- Enhanced update handling in main.js and preload.js to support new update events.
- Updated GUI styles for download buttons and progress indicators in update.js and style.css.

* Update auto-update UI and configuration

- Fix version display (newVersion field)
- Add download progress bar with real-time updates
- Reorder buttons: Install & Restart (primary), Manually Download (secondary)
- Update dev-app-update.yml to point to fork
- Update package.json version to 2.0.2

* Add installation effects and draggable progress bar

Introduces animated installation effects overlay and makes the progress bar draggable. Adds maximize window support, improves window controls styling, and enforces a single app instance. Removes the unused Skins page and related translations. Refines  various UI details for a more polished user experience.

* Adjust news card aspect ratio and add Play tab style

Set a default aspect ratio for .news-card and add a specific style for the LATEST NEWS section in the Play tab to override the aspect ratio and use full height.

* Add splash screen to launcher startup

Introduced a new splash screen (splash.html) and updated main.js to display it on startup before loading the main window. The splash screen is shown for 2.5 seconds as a placeholder for future loading logic, improving user experience during application launch.

* Display launcher version in UI

Adds a version display element to the bottom right of the UI, fetching the version from package.json via a new IPC handler. Updates main.js, preload.js, and ui.js to support retrieving and displaying the version, and adds relevant styles in style.css.

* Custom Mod loading fix (#92)

* feat: Add Repair Game functionality including UserData backup and cache clearing

* feat: Add In-App Logs Viewer and Logs Folder shortcut

* feat: Add Open Logs feature

* disable dev tools

* Fix Settings UI

* Implement custom mod loading, autoimport, auto repair

* Fixed Custom Mod loading issues and merge issues

* feat: Externalize sensitive API keys and Discord client ID into environment variables using dotenv.

* feat(mods): add profile-based mod management and auto-repair

* feat: add 'Close launcher on game start' option and improve app termination behavior (#93)

* update main branch to release/v2.0.2b (#86)

* add more linux pkgs, create auto-release and pre-release feature for Github Actions

* removed package-lock from gitignore

* update .gitignore for local build

* add package-lock.json to maintain stability development

* update version to 2.0.2b also add deps for rpm and arch

* update 2.0.2b: add arm64 support, product and executable name, maintainers; remove snap;

* update 2.0.2b: add latest.yml for win & linux, arm64 support; remove snap

* fix release build naming

* Prepare release v2.0.2b

* feat: add 'Close launcher on game start' option and improve app termination behavior

- Added 'Close launcher on game start' setting in GUI and backend.
- Implemented automatic app quit after game launch if setting is enabled.
- Added Cmd+Q (Mac) and Ctrl+Q/Alt+F4 (Win/Linux) shortcuts to quit the app.
- Updated 'window-close' handler to fully quit the app instead of just closing the window.
- Added i18n support for the new setting in English, Spanish, and Portuguese.

---------

Co-authored-by: Fazri Gading <fazrigading@gmail.com>
Co-authored-by: Arnav Singh <hi.arnavsingh3@gmail.com>

* Update publish config to point to chasem-dev fork

* Fix Linux metadata files in workflow and improve error handling

* Bump version to 2.0.5

* Bump version to 2.0.6

* Fix update popup showing for same version - add version comparison checks

* Bump version to 2.0.7

* Fix SHA512 checksum mismatch handling - clear cache and retry automatically

* Bump version to 2.0.8

* Bump version to 2.0.9

* Fix: Use explicit latest-linux.yml to prevent yml file collision

The glob pattern latest*.yml was matching both latest-linux.yml AND
latest.yml from the Linux build, causing the Windows latest.yml to be
overwritten with incorrect checksums.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Bump version to 2.0.10

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Fix: Remove portable target to fix SHA512 checksum mismatch

The portable and nsis targets both produced x64.exe files with the same
name, causing one to overwrite the other. The latest.yml contained the
checksum from one build while the actual file was from the other build.

Removed portable target - nsis installer is sufficient.
Bump version to 2.0.11

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* Remove outdated documentation files related to auto-updates, build instructions, and testing updates. Update `dev-app-update.yml` and `package.json` to reflect the correct GitHub owner. This cleanup streamlines the project and ensures accurate configuration for future updates.

* Add semantic versioning policy documentation - numerical versions only

* Update package-lock.json to include new dependencies and versions, enhancing project stability and compatibility.

* fixed imgur restriction for UK

* fix: adds EGL env var to detect installed NVIDIA GPU

* Update release.yml

* patch v2.0.11-beta: fix env issue in GA release, warn Intel Mac users, add com templates. (#115)

* fix: throw error for Intel Mac user
* docs: first draft of issue and PR template
* fix: env of curseforge API key and discord client ID

* implemented late patch should be in #115

* Final patch for release.yml v2.0.11

---------

Co-authored-by: chasem-dev <myers.a.chase@gmail.com>
Co-authored-by: AMIAY <letudiantenrap.collab@gmail.com>
Co-authored-by: Rahul Sahani <110347707+Rahul-Sahani04@users.noreply.github.com>
Co-authored-by: Arnav Singh <72737311+ArnavSingh77@users.noreply.github.com>
Co-authored-by: Arnav Singh <hi.arnavsingh3@gmail.com>
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Fazri Gading
2026-01-24 00:07:59 +08:00
committed by GitHub
parent 71974e031f
commit b46ce93af7
47 changed files with 8337 additions and 5365 deletions

83
.github/CODE_OF_CONDUCT.md vendored Normal file
View File

@@ -0,0 +1,83 @@
# Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at [INSERT CONTACT METHOD]. All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series of actions.
**Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available at [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at [https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

70
.github/CONTRIBUTING.md vendored Normal file
View File

@@ -0,0 +1,70 @@
# Contributing to Hytale F2P
Thank you for your interest in contributing to Hytale F2P! We welcome contributions from everyone. By participating in this project, you agree to abide by our [Code of Conduct](CODE_OF_CONDUCT.md).
## How to Contribute
### Reporting Bugs
- Use the [Bug Report](.github/ISSUE_TEMPLATE/bug_report.yml) template
- Include as much detail as possible
- Include screenshots if applicable
- Check if the issue has already been reported
### Suggesting Features
- Use the [Feature Request](.github/ISSUE_TEMPLATE/feature_request.yml) template
- Clearly describe the feature and its benefits
- Consider if the feature aligns with the project's goals
### Contributing Code
1. Fork the repository
2. Create a feature branch: `git checkout -b feature/your-feature-name`
3. Make your changes
4. Write tests if applicable
5. Ensure all tests pass
6. Update documentation if needed
7. Commit your changes: `git commit -m 'Add some feature'`
8. Push to the branch: `git push origin feature/your-feature-name`
9. Submit a pull request
### Pull Request Process
- Use the appropriate [Pull Request template](.github/PULL_REQUEST_TEMPLATE/)
- Ensure your PR description clearly describes the changes
- Link to any related issues
- Wait for review and address any feedback
## Development Setup
1. Clone the repository: `git clone https://github.com/your-username/hytale-f2p.git`
2. Install dependencies: `npm install` (or appropriate command)
3. Set up your development environment
4. Run tests: `npm test`
5. Start development server: `npm run dev`
## Code Style
- Follow the existing code style in the project
- Use meaningful variable and function names
- Write clear, concise comments
- Keep functions small and focused
## Testing
- Write unit tests for new features
- Ensure all existing tests pass
- Test on multiple platforms/browsers if applicable
## Documentation
- Update README.md if needed
- Document new features or changes
- Keep documentation up to date
## Questions?
If you have questions about contributing, feel free to ask in our [Discussions](https://github.com/your-username/hytale-f2p/discussions) or create a [Support Request](.github/ISSUE_TEMPLATE/support_request.yml).
Thank you for contributing to Hytale F2P!

View File

@@ -0,0 +1,54 @@
name: Asset Contribution
description: Contribute assets (images, sounds, models, etc.)
title: "[ASSETS] "
labels: ["assets"]
body:
- type: textarea
id: description
attributes:
label: Asset Description
description: Describe the asset(s) you're contributing.
placeholder: "What type of asset is this? What does it represent?"
validations:
required: true
- type: input
id: format
attributes:
label: File Format
description: What format are the asset files in?
placeholder: "e.g. PNG, JPG, MP3, OBJ"
- type: input
id: license
attributes:
label: License
description: What license applies to this asset?
placeholder: "e.g. CC0, MIT, Public Domain"
- type: textarea
id: usage
attributes:
label: Intended Usage
description: Where and how should this asset be used in the project?
placeholder: "This asset should be used for..., in the following context..."
- type: textarea
id: source
attributes:
label: Source/Attribution
description: If this asset is derived from another source, provide attribution.
placeholder: "Created by me, or derived from [source]"
- type: input
id: link
attributes:
label: Download Link
description: Provide a link to download or view the asset.
placeholder: "GitHub release, Google Drive, etc."
- type: textarea
id: additional
attributes:
label: Additional Information
description: Any other information about the asset.

84
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,84 @@
name: Bug Report
description: Create a report to help us improve
title: "[BUG] "
labels: ["bug"]
body:
- type: textarea
id: description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is.
placeholder: "Tell us what you see! The more detail the better."
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: To Reproduce
description: Steps to reproduce the behavior
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen.
validations:
required: true
- type: textarea
id: screenshots
attributes:
label: Screenshots
description: If applicable, add screenshots to help explain your problem.
- type: input
id: version
attributes:
label: Version
description: What version of the project are you running?
placeholder: "e.g. v1.2.3"
validations:
required: true
- type: dropdown
id: os
attributes:
label: Operating System
description: What operating system are you using?
options:
- Windows
- macOS
- Linux
- iOS
- Android
- Other
validations:
required: true
- type: dropdown
id: browser
attributes:
label: Browser (if applicable)
description: What browser are you using?
options:
- Chrome
- Firefox
- Safari
- Edge
- Opera
- Other
- N/A
- type: textarea
id: additional
attributes:
label: Additional context
description: Add any other context about the problem here.

View File

@@ -0,0 +1,42 @@
name: Feature Request
description: Suggest an idea for this project
title: "[FEATURE] "
labels: ["enhancement"]
body:
- type: textarea
id: summary
attributes:
label: Summary
description: Brief explanation of the feature.
placeholder: "Describe in a few sentences what this feature would do."
validations:
required: true
- type: textarea
id: problem
attributes:
label: Is your feature request related to a problem? Please describe.
description: A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
placeholder: "Ex. I'm always frustrated when [...]"
- type: textarea
id: solution
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
placeholder: "Describe what you want to happen."
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
placeholder: "Describe any alternative solutions or features you've considered."
- type: textarea
id: additional
attributes:
label: Additional context
description: Add any other context or screenshots about the feature request here.

View File

@@ -0,0 +1,61 @@
name: Security Vulnerability
description: Report a security vulnerability
title: "[SECURITY] "
labels: ["security"]
body:
- type: markdown
attributes:
value: |
Thank you for reporting a security vulnerability. Please review our [Security Policy](SECURITY.md) for more information on how we handle security issues.
If you are reporting a security vulnerability, please provide as much detail as possible so we can assess and address it promptly.
- type: textarea
id: summary
attributes:
label: Summary
description: Brief description of the security issue.
placeholder: "Describe the security vulnerability in a few sentences."
validations:
required: true
- type: textarea
id: details
attributes:
label: Vulnerability Details
description: Detailed description of the vulnerability, including how it can be exploited.
placeholder: "Provide detailed steps, code snippets, or other information that demonstrates the vulnerability."
validations:
required: true
- type: textarea
id: impact
attributes:
label: Impact
description: What is the potential impact of this vulnerability?
placeholder: "Describe the potential consequences if this vulnerability is exploited."
validations:
required: true
- type: textarea
id: mitigation
attributes:
label: Suggested Mitigation
description: Any suggestions for fixing or mitigating the issue.
placeholder: "Provide any suggestions for how to fix or mitigate this vulnerability."
- type: input
id: contact
attributes:
label: Contact Information (Optional)
description: How can we contact you for more information?
placeholder: "Email address or other contact method"
- type: checkboxes
id: terms
attributes:
label: Terms
description: By submitting this issue, you agree to our responsible disclosure terms.
options:
- label: I understand that this is a private security report and will not publicly disclose details until the issue is resolved.
required: true

View File

@@ -0,0 +1,54 @@
name: Support Request
description: Request help or support
title: "[SUPPORT] "
labels: ["support"]
body:
- type: textarea
id: question
attributes:
label: What do you need help with?
description: Describe your question or issue clearly.
placeholder: "I'm having trouble with..."
validations:
required: true
- type: textarea
id: context
attributes:
label: Context
description: Provide any relevant context or background information.
placeholder: "I've tried..., I expected..., but got..."
- type: input
id: version
attributes:
label: Version
description: What version are you using?
placeholder: "e.g. v1.2.3"
- type: dropdown
id: platform
attributes:
label: Platform
description: What platform are you using?
options:
- Windows
- macOS
- Linux
- iOS
- Android
- Web Browser
- Other
- type: textarea
id: logs
attributes:
label: Logs or Error Messages
description: If applicable, paste any error messages or logs here.
render: shell
- type: textarea
id: additional
attributes:
label: Additional Information
description: Any other information that might help us assist you.

View File

@@ -0,0 +1,42 @@
name: Translation Request
description: Request translation for text or content
title: "[TRANSLATION] "
labels: ["translation"]
body:
- type: input
id: language
attributes:
label: Target Language
description: What language do you want to translate to?
placeholder: "e.g. Spanish (es-ES), French (fr-FR)"
validations:
required: true
- type: textarea
id: source_text
attributes:
label: Source Text
description: The original text that needs to be translated.
placeholder: "Paste the text here..."
validations:
required: true
- type: textarea
id: context
attributes:
label: Context
description: Provide context about where this text appears or how it's used.
placeholder: "This text appears in..., It's used for..."
- type: input
id: file_location
attributes:
label: File Location
description: Where is this text located in the codebase?
placeholder: "e.g. src/components/Button.js:15"
- type: textarea
id: notes
attributes:
label: Additional Notes
description: Any specific instructions or notes for the translator.

View File

@@ -0,0 +1,24 @@
## Description
Brief description of the bug fix.
## Related Issue
Fixes # (issue number)
## Changes Made
- List the changes made to fix the bug
- Be specific about what was changed and why
## Testing
- How did you test the fix?
- What scenarios were covered?
## Screenshots (if applicable)
Add screenshots to demonstrate the fix.
## Checklist
- [ ] My code follows the project's style guidelines
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my feature works
- [ ] New and existing unit tests pass locally with my changes

View File

@@ -0,0 +1,16 @@
## Description
Brief description of the documentation changes.
## Related Issue
Addresses # (issue number)
## Changes Made
- List the documentation files that were added, updated, or removed
- Describe what information was added or corrected
## Checklist
- [ ] Documentation is clear and easy to understand
- [ ] Links and references are correct
- [ ] Code examples (if any) are accurate and functional
- [ ] Spelling and grammar are correct
- [ ] Documentation follows the project's style guidelines

26
.github/PULL_REQUEST_TEMPLATE/hotfix.md vendored Normal file
View File

@@ -0,0 +1,26 @@
## Description
Brief description of the hotfix.
## Related Issue
Fixes # (issue number) - URGENT
## Changes Made
- List the minimal changes made to fix the critical issue
- Be specific about what was changed
## Urgency
Why is this a hotfix? (Critical bug, security issue, production down, etc.)
## Testing
- How was the hotfix tested?
- What was the minimal testing performed?
## Deployment Notes
- Any special deployment considerations?
- Rollback plan if needed?
## Checklist
- [ ] This is a minimal change addressing only the critical issue
- [ ] No new features or unrelated changes included
- [ ] Basic functionality verified
- [ ] Ready for immediate deployment

View File

@@ -0,0 +1,20 @@
## Description
Brief description of the localization changes.
## Related Issue
Addresses # (issue number)
## Changes Made
- List the languages and files that were updated
- Describe what text was translated or updated
## Languages Updated
- Language 1 (locale code)
- Language 2 (locale code)
## Checklist
- [ ] Translations are accurate and culturally appropriate
- [ ] Placeholder variables (%s, %d, etc.) are preserved
- [ ] Text length is appropriate for UI elements
- [ ] No hardcoded strings remain
- [ ] Localization files are properly formatted

View File

@@ -0,0 +1,25 @@
## Description
Brief description of the new feature.
## Related Issue
Addresses # (issue number)
## Changes Made
- List the changes made to implement the feature
- Be specific about new files, modified files, and functionality added
## Testing
- How did you test the new feature?
- What scenarios were covered?
## Screenshots (if applicable)
Add screenshots to demonstrate the new feature.
## Checklist
- [ ] My code follows the project's style guidelines
- [ ] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] I have updated the documentation accordingly

View File

@@ -0,0 +1,27 @@
## Description
Brief description of the refactoring changes.
## Related Issue
Addresses # (issue number)
## Changes Made
- List the refactored code sections
- Describe what was improved (readability, performance, maintainability, etc.)
## Motivation
Why was this refactoring necessary?
## Impact
- Does this change affect any APIs or interfaces?
- Are there any breaking changes?
## Testing
- How was the refactored code tested?
- Did existing tests pass?
## Checklist
- [ ] Code is more readable and maintainable
- [ ] No functionality was broken
- [ ] Performance was not negatively impacted
- [ ] All existing tests pass
- [ ] New tests were added if necessary

18
.github/README1.md vendored
View File

@@ -22,13 +22,25 @@ All builds run in parallel:
### Creating a Release
1. Update version in `package.json`
**⚠️ IMPORTANT: Semantic Versioning Required**
This project uses **strict semantic versioning with numerical versions only**:
-**Valid**: `2.0.1`, `2.0.11`, `2.1.0`, `3.0.0`
-**Invalid**: `2.0.2b`, `2.0.2a`, `2.0.1-beta`
**Format**: `MAJOR.MINOR.PATCH` (e.g., `2.0.11`)
The auto-update system requires semantic versioning for proper version comparison. Letter suffixes are not supported.
**Steps:**
1. Update version in `package.json` (use numerical format only, e.g., `2.0.11`)
2. Commit and push to `main`
3. Create and push a version tag:
```bash
git tag v2.0.1
git push origin v2.0.1
git tag v2.0.11
git push origin v2.0.11
```
The workflow will:

55
.github/SECURITY.md vendored Normal file
View File

@@ -0,0 +1,55 @@
# Security Policy
## Supported Versions
We take security seriously. The following versions of our project are currently being supported with security updates:
| Version | Supported |
| ------- | ------------------ |
| 1.x.x | :white_check_mark: |
| < 1.0 | :x: |
## Reporting a Vulnerability
If you discover a security vulnerability, please report it to us as follows:
**Do not report security vulnerabilities through public GitHub issues.**
Instead, please report security vulnerabilities by:
1. Using the [Security Vulnerability Report](.github/ISSUE_TEMPLATE/security_vulnerability.yml) template (this creates a private issue)
2. Emailing [security@yourdomain.com](mailto:security@yourdomain.com) (if available)
3. Contacting the maintainers directly through secure channels
## What to Include in Your Report
Please include the following information in your report:
- A clear description of the vulnerability
- Steps to reproduce the issue
- Potential impact of the vulnerability
- Any suggested fixes or mitigations
- Your contact information for follow-up
## Our Response Process
1. **Acknowledgment**: We will acknowledge receipt of your report within 48 hours
2. **Investigation**: We will investigate the issue and work on a fix
3. **Updates**: We will provide regular updates on our progress
4. **Resolution**: Once fixed, we will notify you and publicly disclose the issue (with your permission)
## Responsible Disclosure
We kindly ask that you:
- Give us reasonable time to fix the issue before public disclosure
- Avoid accessing or modifying user data
- Avoid denial-of-service attacks or other disruptive actions
## Recognition
We appreciate security researchers who help keep our project safe. With your permission, we will acknowledge your contribution in our security advisories.
## Questions?
If you have questions about our security policy, please contact us through the methods listed above.

View File

@@ -25,6 +25,14 @@ jobs:
cache: 'npm'
- run: npm ci
- name: Create .env file
env:
CF_KEY: ${{ secrets.CURSEFORGE_API_KEY }}
DISCORD_ID: ${{ secrets.DISCORD_CLIENT_ID }}
run: |
echo "CURSEFORGE_API_KEY=$CF_KEY" > .env
echo "DISCORD_CLIENT_ID=$DISCORD_ID" >> .env
- name: Build Linux Packages
run: |
npx electron-builder --linux --x64 --arm64 --publish never
@@ -33,10 +41,11 @@ jobs:
name: linux-builds
path: |
dist/*.AppImage
dist/*.AppImage.blockmap
dist/*.deb
dist/*.rpm
dist/*.pacman
dist/latest.yml
dist/latest-linux.yml
build-windows:
runs-on: windows-latest
@@ -47,12 +56,23 @@ jobs:
node-version: '22'
cache: 'npm'
- run: npm ci
- run: npx electron-builder --win --publish never
- name: Create .env file
env:
CF_KEY: ${{ secrets.CURSEFORGE_API_KEY }}
DISCORD_ID: ${{ secrets.DISCORD_CLIENT_ID }}
run: |
echo "CURSEFORGE_API_KEY=$CF_KEY" > .env
echo "DISCORD_CLIENT_ID=$DISCORD_ID" >> .env
- name: Build Windows Packages
run: npx electron-builder --win --publish never
- uses: actions/upload-artifact@v4
with:
name: windows-builds
path: |
dist/*.exe
dist/*.exe.blockmap
dist/latest.yml
build-macos:
@@ -64,7 +84,17 @@ jobs:
node-version: '22'
cache: 'npm'
- run: npm ci
- run: npx electron-builder --mac --publish never
- name: Create .env file
env:
CF_KEY: ${{ secrets.CURSEFORGE_API_KEY }}
DISCORD_ID: ${{ secrets.DISCORD_CLIENT_ID }}
run: |
echo "CURSEFORGE_API_KEY=$CF_KEY" > .env
echo "DISCORD_CLIENT_ID=$DISCORD_ID" >> .env
- name: Build Windows Packages
run: npx electron-builder --mac --publish never
- uses: actions/upload-artifact@v4
with:
name: macos-builds