Commit graph

50 commits

Author SHA1 Message Date
Snider
52b4a1c6eb feat: Refactor profile selection to support multiple miners and improve event handling 2025-12-11 14:52:36 +00:00
Snider
eab37128cd feat: Refactor profile selection logic to support multiple miners and improve UI layout 2025-12-11 14:52:29 +00:00
Snider
a513ba4670 feat: Rename checkSystemState to forceRefreshState and refactor polling logic for improved clarity 2025-12-11 14:36:08 +00:00
Snider
d132cdc8ff feat: Refactor profile edit form to use custom element bindings and improve event handling 2025-12-11 14:29:08 +00:00
Snider
47a27669f9 feat: Enhance profile creation form with custom element bindings and improved styling 2025-12-11 14:19:45 +00:00
Snider
f913410563 feat: Refactor profile creation form for improved accessibility and styling 2025-12-11 14:08:15 +00:00
Snider
a3ff0bbdaf feat: Optimize saveProfiles method by removing unnecessary read lock 2025-12-11 14:08:02 +00:00
Snider
0d412e6faa feat: Add setup wizard and profile management components with styling 2025-12-10 22:17:38 +00:00
Snider
8f888a3749 feat: Refactor dashboard layout and integrate admin panel functionality 2025-12-07 18:31:27 +00:00
Snider
0d531032bf feat: Implement admin panel for miner management with setup wizard 2025-12-07 17:08:26 +00:00
Snider
816f860b73 feat: Enhance mining configuration management and API documentation 2025-12-07 16:26:18 +00:00
Snider
2576d4bc1b feat: Update server configuration and add XMRig miner management functionality 2025-12-07 15:14:30 +00:00
Snider
6795a928d1 fix: Update .gitignore to exclude log files and miner-cli binary 2025-12-07 12:53:45 +00:00
fa618b41a2
Merge pull request #10 from Snider/add-docs-folder
Add descriptive markdown documentation to docs folder
2025-11-25 00:09:27 +00:00
google-labs-jules[bot]
960ae087fa Add descriptive markdown documentation to docs folder
Added comprehensive documentation including:
- API.md: REST API reference.
- CLI.md: Command Line Interface usage.
- ARCHITECTURE.md: System design and components.
- DEVELOPMENT.md: Developer guide.
- README.md: Index for the documentation.
2025-11-25 00:03:35 +00:00
d9dfb242d6
Merge pull request #7 from Snider/add-docstrings-to-mining-package
Add comprehensive docstrings to the mining package
2025-11-14 14:35:28 +00:00
google-labs-jules[bot]
6412362ea6 feat: Add comprehensive docstrings to the mining package
This commit adds comprehensive Go docstrings to the `pkg/mining` package,
including `mining.go`, `manager.go`, `manager_interface.go`, and `xmrig.go`.

The docstrings cover all public types, interfaces, functions, and methods,
and include examples where appropriate to illustrate usage.

This change improves the developer experience by making the code easier to
understand and use.
2025-11-14 14:32:57 +00:00
27ccac2eb5
Merge pull request #6 from Snider/feature-good-bad-ugly-tests
feat: add _Good, _Bad, _Ugly tests
2025-11-13 21:26:33 +00:00
google-labs-jules[bot]
e107920b16 feat: add _Good, _Bad, _Ugly tests
Refactors the existing test suite to use a `_Good`, `_Bad`, and `_Ugly` testing structure. This new format improves the clarity and organization of the tests by distinguishing between happy path scenarios (_Good), expected failures (_Bad), and edge cases (_Ugly).

In addition to reorganizing the existing tests, this change also introduces new `_Bad` test cases to `xmrig_test.go` to cover previously untested failure modes, such as a missing miner binary and an unreachable API. This improves the overall quality and robustness of the test suite.
2025-11-13 21:24:25 +00:00
71efcb71e2
Merge pull request #5 from Snider/feature-increase-test-coverage
Feature increase test coverage
2025-11-13 19:50:29 +00:00
google-labs-jules[bot]
0533a9fb9c fix(ui): Correct UI build and server configuration
Corrected the build script in `ui/package.json` to correctly bundle the Angular application. Also updated `pkg/mining/service.go` to serve the correct bundled JavaScript file.

Verified the backend server is running and accessible by testing the Swagger UI endpoint.
2025-11-13 19:49:58 +00:00
google-labs-jules[bot]
c74f360dd0 feat(mining): Increase test coverage for service and manager
Added tests for GetMiner and ListMiners in the manager, and for the GetInfo and Doctor endpoints in the service. This increases the overall test coverage of the pkg/mining package.
2025-11-13 19:23:33 +00:00
google-labs-jules[bot]
1e2fa7a85a feat(mining): Increase test coverage for manager
Added tests for StartMiner and StopMiner in the manager, increasing test coverage for the pkg/mining package.

Refactored the findMinerBinary function to fall back to the system PATH, making the application more robust and easier to test.
2025-11-13 19:17:07 +00:00
2885a152f3
Enhance README with usage examples and details
Added example command and updated HTML script tag.
2025-11-10 02:26:09 +00:00
Snider
27834c332c integrates Highcharts for live hashrate visualization and updates dashboard layout 2025-11-10 02:22:56 +00:00
0d2dc1ddd8
Enhance README with usage example and description update
Updated project description and added usage example.
2025-11-10 01:59:39 +00:00
01fb04ef02
Merge pull request #4 from Snider/feature-increase-test-coverage
feat: Increase test coverage for pkg/mining
2025-11-10 00:59:13 +00:00
google-labs-jules[bot]
baf732b999 feat: Increase test coverage for pkg/mining
This commit introduces a number of new tests for the `pkg/mining` package,
increasing the overall test coverage from 8.2% to 41.4%.

The following changes were made:

- Added tests for the `XMRigMiner` struct, including its methods for
  installation, starting, stopping, and getting stats.
- Added tests for the `Service` layer, including the API endpoints for
  listing, starting, stopping, and getting stats for miners.
- Added tests for the `Manager`, including starting and stopping multiple
  miners, collecting stats, and getting hashrate history.
- Introduced a `ManagerInterface` to decouple the `Service` layer from the
  concrete `Manager` implementation, facilitating testing with mocks.
- Fixed a failing test on Windows by creating a Windows-compatible
  dummy executable.
- Improved encapsulation in tests by adding and using getter methods for
  private fields.
2025-11-10 00:55:35 +00:00
google-labs-jules[bot]
5fd7b4b40a feat: Increase test coverage for pkg/mining
This commit introduces a number of new tests for the `pkg/mining` package,
increasing the overall test coverage from 8.2% to 40.7%.

The following changes were made:

- Added tests for the `XMRigMiner` struct, including its methods for
  installation, starting, stopping, and getting stats.
- Added tests for the `Service` layer, including the API endpoints for
  listing, starting, stopping, and getting stats for miners.
- Added tests for the `Manager`, including starting and stopping multiple
  miners, collecting stats, and getting hashrate history.
- Introduced a `ManagerInterface` to decouple the `Service` layer from the
  concrete `Manager` implementation, facilitating testing with mocks.
- Fixed a failing test on Windows by creating a Windows-compatible
  dummy executable.
2025-11-10 00:45:35 +00:00
google-labs-jules[bot]
0f8f61071e feat: Increase test coverage for pkg/mining
This commit introduces a number of new tests for the `pkg/mining` package,
increasing the overall test coverage from 8.2% to 40.7%.

The following changes were made:

- Added tests for the `XMRigMiner` struct, including its methods for
  installation, starting, stopping, and getting stats.
- Added tests for the `Service` layer, including the API endpoints for
  listing, starting, stopping, and getting stats for miners.
- Added tests for the `Manager`, including starting and stopping multiple
  miners, collecting stats, and getting hashrate history.
- Introduced a `ManagerInterface` to decouple the `Service` layer from the
  concrete `Manager` implementation, facilitating testing with mocks.
2025-11-10 00:06:35 +00:00
ab91100e38
Merge pull request #3 from Snider/feat-ci-improvements
Feat ci improvements
2025-11-09 23:36:23 +00:00
google-labs-jules[bot]
30497ac317 feat(ci): add matrix testing and conditional release
- Adds a `test` job to the `release.yml` workflow that runs on a matrix of operating systems (Linux, macOS, Windows).
- The `release` job is now dependent on the `test` job.
- The workflow is now triggered on every push, but the `release` job only runs on tag pushes.
- Adds a `test-release` target to the `Makefile` to run tests and cross-compile the binaries for all platforms.
- Updates the `release.yml` workflow to use the new `test-release` target.
- Adds a step to the `test` job to upload the coverage report to Codecov.
- Reorganizes the badges in the `README.md` file.
2025-11-09 23:11:21 +00:00
google-labs-jules[bot]
0fb239a239 feat(ci): add pre-release testing and codecov
- Adds a `test-release` target to the `Makefile` to run tests and cross-compile the binaries for all platforms.
- Updates the `release.yml` workflow to use the new `test-release` target before the `GoReleaser` action.
- Adds a step to the `release.yml` workflow to upload the coverage report to Codecov.
- Reorganizes the badges in the `README.md` file.
2025-11-09 23:05:47 +00:00
Snider
e36ce20d96 adds mbe-mining-dashboard.js to release binaries so you can interact with the miner-cli via a web interface. 2025-11-09 19:46:14 +00:00
Snider
fdac15ba43 windows build fix 2025-11-09 19:13:48 +00:00
Snider
6fd424f562 should add the custom element compile js file to the release. 2025-11-09 19:06:05 +00:00
Snider
9093ce16e9 adds a system log entry on miner start CryptoCurrency Miner started: %s (Binary: %s) because it's rude to not say hello to the OS's AV. 2025-11-09 05:35:40 +00:00
Snider
dc0eae0888 creates <mde-mining-dashboard> custom html element, for miner control and stats display. 2025-11-09 04:41:07 +00:00
Snider
a043a09d22 adds historial hashrate data that reduces from 10s res to 1m res after a rolling 5m window. 2025-11-09 04:08:10 +00:00
Snider
6ac80d211a Add logOutput field to control stdout/stderr logging and update miner management 2025-11-09 03:10:55 +00:00
Snider
98fa23af78 should add discord notifications, in theory. 2025-11-09 01:50:50 +00:00
Snider
3a1d9fdfa6 updates goreleaser 2025-11-09 01:36:03 +00:00
Snider
3ed1ccf08a updates goreleaser 2025-11-09 01:30:16 +00:00
Snider
bda2416816 adds miner-cli, a miner management and lifecycle tool 2025-11-09 01:02:31 +00:00
00ca76f6f2
Merge pull request #1 from Snider/copilot/create-go-package-cli
Create modular Go package with CLI for miner management
2025-11-08 17:02:11 +00:00
copilot-swe-agent[bot]
c4b7ee54f2 Remove binary from git and update gitignore
Co-authored-by: Snider <631881+Snider@users.noreply.github.com>
2025-11-08 16:54:44 +00:00
copilot-swe-agent[bot]
4217632a77 All tests passing, security verified, package complete
Co-authored-by: Snider <631881+Snider@users.noreply.github.com>
2025-11-08 16:53:57 +00:00
copilot-swe-agent[bot]
c8aecba99c Complete Go 1.24 package with CLI, tests, and configuration
- Initialize Go module with dependencies
- Create core mining package with Manager, Miner, and MinerConfig
- Implement comprehensive tests with 100% coverage
- Create CLI using Cobra with start, stop, list, status commands
- Add demo main.go for development and testing
- Configure CodeRabbit for automated reviews
- Configure GoReleaser for multi-platform releases
- Add EUPL-1.2 license
- Create Makefile with common targets
- Update README with badges and documentation
- Add .gitignore for Go projects

Co-authored-by: Snider <631881+Snider@users.noreply.github.com>
2025-11-08 16:52:16 +00:00
copilot-swe-agent[bot]
d32df5d138 Initial plan 2025-11-08 16:43:06 +00:00
Snider
832caa8166
Initial commit 2025-11-08 16:43:01 +00:00