2025-10-30 14:18:37 +00:00
# Developer Guide
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
This guide provides instructions for building, testing, and interacting with the Core project.
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
## Project Structure
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
The project is organized into the following main directories:
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
- `pkg/` : Contains the core Go packages that make up the framework.
- `cmd/` : Contains the entry points for the two main applications:
- `core-gui/` : The Wails-based GUI application.
- `core/` : The command-line interface (CLI) application.
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
## Development Workflow
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
This project uses [Task ](https://taskfile.dev/ ) for task automation. The `Taskfile.yml` in the root directory defines a set of tasks to streamline common development operations.
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
### Prerequisites
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
- [Go ](https://go.dev/ )
- [Node.js ](https://nodejs.org/ )
- [Wails ](https://wails.io/ )
- [Task ](https://taskfile.dev/ )
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
### Available Tasks
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
To run any of the following tasks, open your terminal in the project's root directory and execute the `task` command.
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
#### General Tasks
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
- `task test` : Runs all Go tests recursively for the entire project.
- `task check` : A comprehensive check that runs `go mod tidy` , the full test suite, and a CodeRabbit review.
- `task review` : Submits the current changes for a CodeRabbit review.
- `task cov` : Generates a test coverage profile (`coverage.txt` ).
- `task cov-view` : Opens the HTML coverage report in your browser.
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
#### GUI Application (`cmd/core-gui`)
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
These tasks are run from the root directory and operate on the GUI application.
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
- `task gui:build` : Builds the GUI application.
- `task gui:package` : Packages a production build of the GUI application.
- `task gui:run` : Runs the GUI application.
- `task gui:dev` : Runs the GUI application in development mode, with hot-reloading enabled.
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
#### CLI Application (`cmd/core`)
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
These tasks are run from the root directory and operate on the CLI application.
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
- `task cli:build` : Builds the CLI application.
- `task cli:build:dev` : Builds the CLI application for development.
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
## Building and Running
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
### GUI Application
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
To run the GUI application in development mode:
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
```bash
task gui:dev
```
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
To build the final application for your platform:
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
```bash
task gui:build
```
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
### CLI Application
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
To build the CLI application:
2025-10-27 03:14:50 +00:00
2025-10-30 14:18:37 +00:00
```bash
task cli:build
2025-10-27 03:14:50 +00:00
```
2025-10-30 14:18:37 +00:00
The executable will be located in the `cmd/core/bin` directory.