Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 123 additions & 0 deletions .github/ISSUE_TEMPLATE/01-bug-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
name: Bug report
description: Report reproducible behavior that is not working as expected
title: '[Bug]: '
labels:
- bug
body:
- type: markdown
attributes:
value: |
Thanks for helping improve Freedom. Do not include seed phrases, private keys, tokens, credentials, private URLs, or unredacted sensitive logs.

- type: checkboxes
id: preflight
attributes:
label: Preflight
options:
- label: I searched the existing issues for this problem.
required: true
- label: I read the [contribution guidelines](https://github.com/solardev-xyz/freedom-browser/blob/main/CONTRIBUTING.md).
required: true

- type: input
id: freedom-version
attributes:
label: Freedom version
description: Find this under Menu → About. For a source build, include the commit SHA.
placeholder: 0.8.0 or 0123abcd
validations:
required: true

- type: dropdown
id: install-source
attributes:
label: Installation source
options:
- GitHub release
- Built from source
- Other or unofficial package
validations:
required: true

- type: dropdown
id: operating-system
attributes:
label: Operating system
multiple: true
options:
- macOS
- Windows
- Ubuntu
- Other Linux
- Other
validations:
required: true

- type: input
id: system-details
attributes:
label: System version and architecture
description: Include the OS version, CPU architecture, and Wayland or X11 on Linux.
placeholder: macOS 26.1 arm64; Windows 11 x64; Ubuntu 26.04 x64 Wayland
validations:
required: true

- type: textarea
id: target
attributes:
label: What were you trying to open or do?
description: Describe the feature, protocol, name, or sanitized content reference involved.
placeholder: I opened an ipfs:// URL from the address bar and…
validations:
required: true

- type: dropdown
id: node-mode
attributes:
label: Relevant node configuration
options:
- Default managed node
- External or system node
- Not applicable
- Not sure
validations:
required: true

- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: Give the smallest sequence that consistently demonstrates the problem.
placeholder: |
1. Open…
2. Enter…
3. Observe…
validations:
required: true

- type: textarea
id: expected
attributes:
label: Expected behavior
validations:
required: true

- type: textarea
id: actual
attributes:
label: Actual behavior
description: Include the exact visible error or failure mode.
validations:
required: true

- type: input
id: last-working-version
attributes:
label: Last known working version
description: Leave blank if this never worked or you do not know.

- type: textarea
id: diagnostics
attributes:
label: Sanitized logs, screenshots, or other context
description: Remove credentials, keys, personal paths, private URLs, and other sensitive data before attaching anything.
69 changes: 69 additions & 0 deletions .github/ISSUE_TEMPLATE/02-feature-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Feature request
description: Propose an improvement grounded in a concrete user or developer need
title: '[Feature]: '
labels:
- enhancement
body:
- type: checkboxes
id: preflight
attributes:
label: Preflight
options:
- label: I searched the existing issues for this request.
required: true
- label: I read the [contribution guidelines](https://github.com/solardev-xyz/freedom-browser/blob/main/CONTRIBUTING.md).
required: true

- type: textarea
id: problem
attributes:
label: Problem or use case
description: Who needs this and what can they not do today?
validations:
required: true

- type: textarea
id: outcome
attributes:
label: Desired outcome
description: Describe the behavior or result, not only a proposed implementation.
validations:
required: true

- type: dropdown
id: area
attributes:
label: Area
options:
- General browser UI
- Swarm
- IPFS or IPNS
- Radicle
- Naming and resolution
- Wallet or dApp integration
- Privacy, permissions, or security
- Downloads or storage
- Build, packaging, or developer tooling
- Documentation
- Other
validations:
required: true

- type: textarea
id: alternatives
attributes:
label: Alternatives considered
description: Include workarounds or related designs you evaluated.

- type: textarea
id: context
attributes:
label: Additional context
description: Add examples, screenshots, standards, or links that help explain the request.

- type: checkboxes
id: contribution
attributes:
label: Contribution
options:
- label: I may be able to help implement or test this.
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
blank_issues_enabled: true
29 changes: 29 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
## Summary

<!-- What changed, why it is needed, and what users or developers will notice. -->

## Related issue

<!-- Use "Closes #123" when the PR should close an issue. -->

## Verification

<!-- List the checks you actually ran. Do not check a box for a check you did not run. -->

- [ ] `npm run lint`
- [ ] Relevant unit tests
- [ ] Relevant Playwright or live smoke tests
- [ ] `npm run format:check`
- [ ] `git diff --check`

## Visual changes

<!-- Add before/after screenshots or recordings, or write "Not applicable." -->

## Security and privacy

<!-- Note permission, IPC, network, storage, wallet, or sensitive-data impact, or write "No change." -->

## AI assistance

<!-- Disclose material AI assistance and confirm that you reviewed, understood, and verified the submitted work. -->
14 changes: 7 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 24
cache: npm

- name: Install dependencies
Expand Down Expand Up @@ -64,7 +64,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 24
cache: npm

- name: Install dependencies
Expand Down Expand Up @@ -100,7 +100,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 24
cache: npm

- name: Install dependencies
Expand Down Expand Up @@ -153,7 +153,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 24
cache: npm

- name: Install Linux native USB build dependency
Expand Down Expand Up @@ -228,7 +228,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 24
cache: npm

- name: Install Linux native USB build dependency
Expand Down Expand Up @@ -287,7 +287,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 24
cache: npm

- name: Install Linux native USB build dependency
Expand Down Expand Up @@ -344,7 +344,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 20
node-version: 24
cache: npm

- name: Install Linux native USB build dependency
Expand Down
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
24.18.1
60 changes: 60 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Contributing to Freedom Browser

Thanks for helping build a browser for the decentralized web. Contributions to code, tests, documentation, issue triage, and reproducible bug reports are welcome.

## Before you start

- Search the [issue tracker](https://github.com/solardev-xyz/freedom-browser/issues) before opening a report or proposing work.
- For a bug fix, comment on the relevant issue or open a structured bug report.
- For a feature, major refactor, dependency change, or architectural change, open an issue first so maintainers and contributors can agree on scope.
- Keep changes focused. Unrelated cleanup makes review and regression analysis harder.

## Set up the project

Freedom uses Node.js 24 LTS. Follow the [development guide](docs/development.md) to install the pinned version, dependencies, and native node binaries.

Create a branch from an up-to-date `main` branch. Match the naming and organization of nearby code, and read the repository's [architecture boundaries](docs/agent-playbooks/architecture-boundaries.md) before changing process responsibilities or IPC.

Do not add or upgrade dependencies without maintainer approval. Dependencies affect the browser's attack surface, native builds, package size, and license obligations.

## Make and verify changes

- Add or update tests for behavior changes and regressions.
- Run `npm run lint` after code changes and fix introduced errors or warnings.
- Run `npm test` when modifying files with corresponding `.test.js` files.
- Run the relevant Playwright or live smoke suite when the change affects UI flows, protocols, or native nodes.
- Run `npm run format:check` and `git diff --check` before submitting.
- Never commit secrets, API keys, tokens, private keys, seed phrases, unredacted personal data, or signing credentials.

The cross-platform CI matrix runs additional native and integration checks. If you cannot run one of those locally, state that clearly in the pull request rather than marking it as completed.

## Commits and pull requests

Use Conventional Commit subjects:

```text
<type>(<scope>): <imperative summary>
```

Common types are `feat`, `fix`, `docs`, `test`, `refactor`, `chore`, `build`, `ci`, and `perf`. Explain why a non-trivial change is needed in the commit body.

Pull requests should:

- Link the relevant issue.
- Explain the problem and the chosen approach.
- Describe user-visible impact and risk.
- List the checks actually run.
- Include screenshots or recordings for visible UI changes.
- Remain available for review questions and follow-up changes.

Draft pull requests are welcome for early feedback. Maintainers decide whether and when a contribution fits the product roadmap.

## AI-assisted contributions

AI assistance is allowed, but a human must remain accountable for every submission. You must review and understand everything you submit, verify generated claims and tests, and be able to explain and maintain the result. Disclose material AI assistance in the pull request. Unreviewed automated submissions or bot-only conversations may be closed.

## Licensing

Freedom Browser is licensed under the [Mozilla Public License 2.0](LICENSE). Unless explicitly agreed otherwise, submitted contributions are made available under MPL-2.0. Only submit work you have the right to contribute, preserve applicable notices, and do not copy material with incompatible license terms.

If a report may expose a security vulnerability, do not include exploit details, keys, credentials, or sensitive user data in a public issue. Contact `browser@freedom.baby` before public disclosure.
Loading
Loading