Skip to content

Conversation

altafan
Copy link
Collaborator

@altafan altafan commented Jul 3, 2025

This is the final refactor before releasing v7.

It contains mainly renamings in server/ to ensure we stick as much as possible with the terms used in the docs.

This also adds some side changes to tidy up the admin proto and adds commands to the arkd cli in order to cover all apis exposed by the admin interface.

Please @louisinger review (😂)

Summary by CodeRabbit

Here are the updated release notes based on the provided changes:

  • New Features

    • Added a comprehensive CLI for wallet and administrative operations, including wallet creation/restoration, unlocking, withdrawal, round info, intents management, and market hour configuration.
    • Introduced new environment configuration files for various deployment scenarios including regtest and light modes.
    • Implemented robust service layers for managing transaction rounds, intents, offchain transactions, event streaming, and multisignature signing.
    • Enhanced database schemas and migrations for PostgreSQL and SQLite to support new domain concepts like intents, offchain transactions, and commitment transactions.
    • Added a new GitHub Actions workflow for releasing binaries and Docker images.
  • Improvements

    • Refactored core domain models, renaming "TxRequest" to "Intent" and "VirtualTx" to "ArkTx", and updated related data structures and methods for consistency.
    • Migrated to new package namespaces and directory structures under "arkade-os/arkd".
    • Expanded the Makefile with detailed build, test, lint, coverage, and database management targets.
    • Updated documentation and the README to reflect the repository rename, new environment variables, and usage instructions.
    • Improved error handling, input validation, and CLI output formatting.
    • Updated naming conventions for transaction IDs and domain entities (e.g., CommitmentTxid).
    • Replaced several internal data structures and workflows to use new tree and batch concepts.
    • Updated Docker and docker-compose configurations to align with new environment variables and image builds.
    • Upgraded GitHub Actions workflows with newer action versions and refined artifact naming.
    • Added detailed comments to critical functions for better understanding.
  • Bug Fixes

    • Corrected field names and types (e.g., ExpireAt → ExpiresAt, Redeemed → Unrolled) and updated database queries accordingly.
    • Fixed consistency issues in transaction ID naming (e.g., CommitmentTxid vs Txid).
    • Enhanced CI/CD workflows and Docker configurations for reliability and platform compatibility.
  • Chores

    • Removed deprecated files, legacy test cases, and outdated scripts.
    • Upgraded CI/CD workflows, GitHub Actions, and Dockerfiles with modern versions and improved artifact handling.
    • Cleaned and expanded .gitignore and .dockerignore files to cover more build artifacts and metadata.
    • Deleted legacy client Makefile, go.mod, and build scripts.
    • Removed internal packages and tests related to transaction graph and script validation replaced by new implementations.
  • Style

    • Applied consistent naming conventions and formatting across the codebase, CLI flags, and configuration files.
    • Improved code comments and documentation for clarity and maintainability.
  • Documentation

    • Updated the README and in-code comments to align with new features, domain model changes, and architecture updates.
    • Added a SECURITY.md file with a developer PGP key entry.

Copy link

coderabbitai bot commented Jul 3, 2025

Walkthrough

This change is a comprehensive refactor and expansion of the project, rebranding the repository from ark-network/ark to arkade-os/arkd, and systematically renaming core domain concepts (e.g., "TxRequest" to "Intent", "VirtualTx" to "ArkTx", "RoundTx" to "CommitmentTx"). It introduces new service layers, restructures database schemas and migrations for both PostgreSQL and SQLite, updates the API and protobuf definitions, and enhances the CLI with new commands and flags. Extensive file additions, deletions, and renames are present, along with a migration to new package paths and expanded Makefile and CI/CD workflows.

Changes

File(s) or Path(s) Change Summary
.github/workflows/ark.autogen_client.yaml, .github/workflows/ark.unit.yaml Deleted GitHub Actions workflows for SDK client verification and unit tests.
.github/workflows/artifacts.yaml, .github/workflows/proto.yaml, .github/workflows/release.yaml, .github/workflows/trivy.yaml, .github/workflows/integration.yaml, .github/workflows/unit.yaml Updated and added CI workflows: upgraded action versions, renamed artifact steps, added buf proto publishing, and restructured triggers and artifact paths.
.dockerignore, .gitignore, common/.gitignore, client/.gitignore Broadened ignore rules for Docker and git, expanded patterns for binaries, build artifacts, and metadata.
.golangci.yml Added GolangCI-Lint configuration file.
Dockerfile, arkdwallet.Dockerfile, docker-compose.regtest.yml Updated Dockerfiles and compose configs for new binary names, environment variable conventions (ARK_ARKD_), and build/run paths.
Makefile, client/Makefile, common/Makefile Major Makefile overhaul: new build/test/lint targets, modularization, and removal of obsolete client/common Makefiles.
README.md Updated documentation for new repo name, binary names, environment variables, and usage instructions.
LICENSE Changed copyright holder name.
api-spec/*, buf.gen.yaml, api-spec/protobuf/buf.yaml, api-spec/go.mod Changed module paths, updated OpenAPI/protobuf definitions: removed transaction history endpoints, refactored output types, and renamed fields/types for new domain model.
cmd/arkd-wallet/main.go, cmd/arkd/commands.go, cmd/arkd/flags.go, cmd/arkd/main.go, cmd/arkd/utils.go Added/updated CLI commands, flags, and utility functions for new wallet/admin operations, using new package paths and domain model.
common/tree/*, common/types.go, common/utils.go, common/bip322/errors.go, common/encoding_test.go, common/fixtures/encoding.json, common/note/note_test.go Removed legacy tree, types, and test files; replaced by new structures in pkg/ark-lib/tree and elsewhere.
envs/arkd.dev.env, envs/arkd.light.env, envs/arkd-wallet.bitcoind.regtest.env, envs/arkd-wallet.neutrino.regtest.env Added new environment variable configuration files for various deployment scenarios.
go.mod Changed module path, added local replaces, expanded dependencies, and updated versions.
internal/config/config.go Updated config struct/types for new time representations, package paths, and service initialization.
internal/core/application/* Added new application service layers: admin, indexer, main service, with updated interfaces, types, and event handling; refactored fraud, sweeper, and utility logic for new domain model and tree structures.
internal/core/domain/* Systematic renaming: "TxRequest" → "Intent", "VirtualTx" → "ArkTx", "RoundTx" → "CommitmentTx", field and method name changes, updated event types, and refactored repository interfaces.
internal/core/ports/* Updated all ports/interfaces for new domain types, renamed methods, and switched cryptographic key types to btcec.PublicKey.
internal/infrastructure/db/badger/*, internal/infrastructure/db/postgres/*, internal/infrastructure/db/sqlite/* Refactored repositories for new schema: renamed methods, queries, types, and fields; updated SQL migrations and codegen configs; switched to new tree structures and intent-based logic.
internal/infrastructure/db/postgres/sqlc/queries/models.go, internal/infrastructure/db/sqlite/sqlc/queries/models.go Refactored/generated new DB models for intents, offchain transactions, and updated vtxo/round structures.
internal/infrastructure/db/postgres/sqlc/queries/query.sql.go, internal/infrastructure/db/postgres/sqlc/query.sql Added/generated new SQLC queries and Go wrappers for updated schema, including upserts, selects, and updates for new entities.
client/go.mod, client/scripts/build-all Removed client module definition and build scripts as part of repo reorganization.
Many test files across common/, internal/core/domain/, internal/infrastructure/db/ Deleted or refactored tests to match new domain types and structures.

Sequence Diagram(s)

sequenceDiagram
    participant CLI
    participant ArkdServer
    participant AdminService
    participant RepoManager
    participant WalletService

    CLI->>ArkdServer: HTTP request (e.g., create intent, get round info)
    ArkdServer->>AdminService: Call corresponding method (e.g., CreateNotes, GetRoundDetails)
    AdminService->>RepoManager: Query or update database as needed
    AdminService->>WalletService: Perform wallet-related operations (e.g., address, balance)
    AdminService-->>ArkdServer: Return result
    ArkdServer-->>CLI: HTTP response (JSON)
Loading
sequenceDiagram
    participant ArkdServer
    participant Service
    participant RepoManager
    participant WalletService
    participant EventChannel

    ArkdServer->>Service: RegisterIntent(proof, message)
    Service->>RepoManager: Validate and store intent
    Service->>WalletService: Verify BIP322 proof
    Service-->>EventChannel: Emit event (IntentRegistered)
    Service-->>ArkdServer: Return intent ID
Loading

Possibly related PRs

  • arkade-os/arkd#647: Updates API and domain model, including removal of GetSweptCommitmentTx and introduction of GetBatchSweepTransactions, which aligns with this PR's renaming and endpoint changes.
  • arkade-os/arkd#644: Modifies vtxo representation and settlement fields, directly related to this PR's updates to vtxo models, repository methods, and transaction linkage semantics.
✨ Finishing Touches
  • 📝 Generate Docstrings

🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@tiero
Copy link
Member

tiero commented Jul 3, 2025

Shall we drop server, client, SDK and move common to pkg ? So we have flat structure

@altafan altafan marked this pull request as ready for review July 4, 2025 00:22
altafan and others added 2 commits July 4, 2025 14:38
* SubmitOffchainTx: prevent multiple opreturn outputs

* use bytes.HasPrefix instead of bytes.Contains
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

♻️ Duplicate comments (4)
.github/workflows/integration.yaml (1)

19-20: Unreleased Go version & trailing whitespace still present

'>=1.23.1' targets a Go version that does not yet exist, and there is leftover trailing space on the same line. CI will break on the first and linters on the second.

-          go-version: '>=1.23.1'␠
+          # 1.22.x is the latest stable; alternatively use 'stable'
+          go-version: '1.22.x'
.github/workflows/unit.yaml (1)

28-29: Unreleased Go version

Same issue as in the integration workflow – Go 1.23.x is not released yet.

-          go-version: '>=1.23.1'
+          go-version: '1.22.x'
README.md (1)

4-5: Docker badge still points to /ark instead of /arkd

The badge URL and hyperlink haven’t been updated to the new image path, so the badge is broken.

-[![Docker Image](https://img.shields.io/badge/docker-ghcr.io%2Farkade--os%2Fark-blue?logo=docker)](https://github.com/arkade-os/arkd/pkgs/container/ark)
+[![Docker Image](https://img.shields.io/badge/docker-ghcr.io%2Farkade--os%2Farkd-blue?logo=docker)](https://github.com/arkade-os/arkd/pkgs/container/arkd)
internal/infrastructure/db/postgres/round_repo.go (1)

614-637: Don't ignore JSON marshaling errors in createUpsertTransactionParams

The function silently ignores errors when marshaling the children map, which could hide actual problems and make debugging difficult.

 func createUpsertTransactionParams(
 	node tree.TxTreeNode, roundID string, txType string, position int64,
-) queries.UpsertTxParams {
+) (queries.UpsertTxParams, error) {
 	params := queries.UpsertTxParams{
 		Tx:       node.Tx,
 		RoundID:  roundID,
 		Type:     txType,
 		Position: int32(position),
 	}
 
 	if txType == "connector" || txType == "tree" {
 		params.Txid = node.Txid
 		if len(node.Children) > 0 {
-			// nolint
-			children, _ := json.Marshal(node.Children)
+			children, err := json.Marshal(node.Children)
+			if err != nil {
+				return queries.UpsertTxParams{}, fmt.Errorf("failed to marshal children: %w", err)
+			}
 			params.Children = pqtype.NullRawMessage{
 				RawMessage: children,
 				Valid:      true,
 			}
 		}
 	}
 
-	return params
+	return params, nil
 }

Note: This change will require updating all call sites to handle the returned error.

🧹 Nitpick comments (8)
SECURITY.md (1)

16-16: Consider publishing the full 40-character fingerprint for stronger verification

All existing rows show only the 16-char short ID. That works, but the modern recommendation is to list the full 40-hex-digit fingerprint so users can validate the correct key with gpg --with-fingerprint.
If you have the full value handy, adding it here would improve trustworthiness of the table.

.github/workflows/integration.yaml (1)

38-38: Missing newline at EOF

POSIX tools and several linters complain when a newline is absent at the end of the file. Add one for consistency.

internal/infrastructure/db/postgres/sqlc.yaml (1)

38-45: Add terminating newline for YAML-lint compliance

The file lacks a final newline (YAMLlint error new-line-at-end-of-file).

-          - column: "intent.message"
-            go_type: "database/sql.NullString"
\ No newline at end of file
+          - column: "intent.message"
+            go_type: "database/sql.NullString"
+
.github/workflows/unit.yaml (2)

42-47: Checkout should precede tool setup

Best practice is to actions/checkout before actions/setup-go so the latter can cache modules based on go.sum. Swapping these two steps saves cache misses.


60-60: Missing newline at EOF

Add a trailing newline for linter hygiene.

README.md (1)

72-73: Spelling: “Maximume”

Minor typo – should be “Maximum”.

-| `ARKD_REDIS_NUM_OF_RETRIES` | Maximume number of retries for redis write operations in case of conflicts | - |
+| `ARKD_REDIS_NUM_OF_RETRIES` | Maximum number of retries for redis write operations in case of conflicts | - |
cmd/arkd/utils.go (1)

212-257: Consider error handling for invalid JSON structure

The generic post function assumes the response is always a map with the specified key. If the API returns a different JSON structure when key is not empty, this could cause runtime panics.

Consider adding validation:

  if key == "" {
    return
  }
  res := make(map[string]T)
  if err = json.Unmarshal(buf, &res); err != nil {
+   // Try unmarshaling directly if map unmarshaling fails
+   var directResult T
+   if directErr := json.Unmarshal(buf, &directResult); directErr == nil {
+     result = directResult
+     return
+   }
    return
  }
+ if _, exists := res[key]; !exists {
+   err = fmt.Errorf("key '%s' not found in response", key)
+   return
+ }
  result = res[key]
internal/infrastructure/db/postgres/sqlc/queries/query.sql.go (1)

59-105: Consider adding pagination to prevent memory issues with large datasets.

The SelectAllVtxos query retrieves all records without any limit. For production systems with many VTXOs, this could cause memory exhaustion.

Consider implementing:

  • LIMIT/OFFSET based pagination
  • Cursor-based pagination for better performance
  • A streaming approach for bulk operations
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5fa8800 and c10b725.

⛔ Files ignored due to path filters (2)
  • api-spec/protobuf/gen/ark/v1/admin.pb.go is excluded by !**/*.pb.go, !**/gen/**
  • api-spec/protobuf/gen/ark/v1/admin.pb.gw.go is excluded by !**/*.pb.gw.go, !**/gen/**
📒 Files selected for processing (28)
  • .github/workflows/integration.yaml (2 hunks)
  • .github/workflows/unit.yaml (1 hunks)
  • README.md (7 hunks)
  • SECURITY.md (1 hunks)
  • api-spec/openapi/swagger/ark/v1/admin.swagger.json (4 hunks)
  • api-spec/protobuf/ark/v1/admin.proto (3 hunks)
  • cmd/arkd/commands.go (1 hunks)
  • cmd/arkd/flags.go (1 hunks)
  • cmd/arkd/utils.go (1 hunks)
  • docker-compose.regtest.yml (2 hunks)
  • internal/core/application/admin.go (1 hunks)
  • internal/core/application/indexer.go (1 hunks)
  • internal/core/application/service_event.go (4 hunks)
  • internal/core/application/utils.go (13 hunks)
  • internal/core/ports/tx_builder.go (1 hunks)
  • internal/infrastructure/db/postgres/migration/20250702115345_init.down.sql (1 hunks)
  • internal/infrastructure/db/postgres/migration/20250702115345_init.up.sql (1 hunks)
  • internal/infrastructure/db/postgres/round_repo.go (23 hunks)
  • internal/infrastructure/db/postgres/sqlc.yaml (1 hunks)
  • internal/infrastructure/db/postgres/sqlc/queries/models.go (5 hunks)
  • internal/infrastructure/db/postgres/sqlc/queries/query.sql.go (1 hunks)
  • internal/infrastructure/db/postgres/sqlc/query.sql (1 hunks)
  • internal/infrastructure/db/sqlite/market_hour_repo.go (1 hunks)
  • internal/infrastructure/db/sqlite/migration/20250702160209_init.down.sql (1 hunks)
  • internal/infrastructure/db/sqlite/migration/20250702160209_init.up.sql (1 hunks)
  • internal/infrastructure/db/sqlite/round_repo.go (21 hunks)
  • internal/infrastructure/db/sqlite/sqlc.yaml (1 hunks)
  • internal/infrastructure/db/sqlite/sqlc/queries/models.go (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (13)
  • internal/infrastructure/db/postgres/migration/20250702115345_init.down.sql
  • internal/infrastructure/db/sqlite/sqlc.yaml
  • docker-compose.regtest.yml
  • internal/infrastructure/db/sqlite/market_hour_repo.go
  • internal/core/application/service_event.go
  • internal/core/ports/tx_builder.go
  • cmd/arkd/flags.go
  • api-spec/protobuf/ark/v1/admin.proto
  • internal/infrastructure/db/postgres/migration/20250702115345_init.up.sql
  • internal/core/application/admin.go
  • internal/infrastructure/db/sqlite/migration/20250702160209_init.up.sql
  • internal/infrastructure/db/postgres/sqlc/query.sql
  • internal/infrastructure/db/sqlite/round_repo.go
🧰 Additional context used
🧬 Code Graph Analysis (3)
internal/core/application/indexer.go (1)
internal/core/ports/repo_manager.go (1)
  • RepoManager (5-12)
internal/infrastructure/db/postgres/sqlc/queries/models.go (2)
internal/config/config.go (1)
  • RoundInterval (135-135)
internal/infrastructure/db/sqlite/sqlc/queries/models.go (2)
  • Tx (151-158)
  • CheckpointTx (11-17)
internal/infrastructure/db/postgres/sqlc/queries/query.sql.go (2)
internal/infrastructure/db/postgres/sqlc/queries/models.go (10)
  • VtxoVw (186-203)
  • MarketHour (62-69)
  • OffchainTxVw (81-94)
  • Tx (153-160)
  • CheckpointTx (13-19)
  • Round (103-115)
  • RoundIntentsVw (117-122)
  • RoundTxsVw (124-131)
  • IntentWithReceiversVw (51-60)
  • IntentWithInputsVw (28-49)
internal/infrastructure/db/sqlite/sqlc/queries/models.go (10)
  • VtxoVw (184-201)
  • MarketHour (60-67)
  • OffchainTxVw (79-92)
  • Tx (151-158)
  • CheckpointTx (11-17)
  • Round (101-113)
  • RoundIntentsVw (115-120)
  • RoundTxsVw (122-129)
  • IntentWithReceiversVw (49-58)
  • IntentWithInputsVw (26-47)
🪛 YAMLlint (1.37.1)
.github/workflows/integration.yaml

[error] 20-20: trailing spaces

(trailing-spaces)


[error] 38-38: no new line character at the end of file

(new-line-at-end-of-file)

.github/workflows/unit.yaml

[error] 60-60: no new line character at the end of file

(new-line-at-end-of-file)

internal/infrastructure/db/postgres/sqlc.yaml

[error] 45-45: no new line character at the end of file

(new-line-at-end-of-file)

🪛 LanguageTool
README.md

[uncategorized] ~129-~129: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ..._port_bitcoin ``` If none of the above option is specified, the wallet uses Neutrino ...

(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)


[uncategorized] ~182-~182: Loose punctuation mark.
Context: ...y Structure - api-spec: Ark Protocol Buffer API specification. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~183-~183: Loose punctuation mark.
Context: ...fer API specification. - pkg: collection of reusable packages and ser...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~184-~184: Loose punctuation mark.
Context: ...services. - ark-lib: collection of data structures and funct...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: .... - arkd-wallet: bitcoin wallet service used as liquidit...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~186-~186: Loose punctuation mark.
Context: ...d signer. - ark-cli: ark offchain and onchain wallet as comm...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~187-~187: Loose punctuation mark.
Context: ...ne interface. - internal: arkd implementation. - [core](./int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~188-~188: Loose punctuation mark.
Context: ...mentation. - core: contains the core business logic of ark...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~189-~189: Loose punctuation mark.
Context: ...lication`](./internal/core/application/): contains the implementation of the serv...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~190-~190: Loose punctuation mark.
Context: ... - domain: models and events managed by the applic...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~191-~191: Loose punctuation mark.
Context: ... - ports: collection of interfaces of the service...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~192-~192: Loose punctuation mark.
Context: ...astructure`](./internal/infrastructure/): contains implementations of the interfa...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~193-~193: Loose punctuation mark.
Context: ... - interface: contains the implementations of the int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~195-~195: Loose punctuation mark.
Context: ...ST endpoints. - test/e2e: contains the integration tests. ## Dev...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~203-~203: Loose punctuation mark.
Context: ... root of the repository: - make build: Builds the arkd binary for your platf...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~204-~204: Loose punctuation mark.
Context: ...ry for your platform. - make build-all: Builds the arkd binary for all platfo...

(UNLIKELY_OPENING_PUNCTUATION)


[grammar] ~218-~218: The word “setup” is a noun. The verb is spelled with a white space.
Context: ...cal Bitcoin networks 3. Start Nigiri to setup a regtest Bitcoin environment: ```s...

(NOUN_VERB_CONFUSION)


[uncategorized] ~278-~278: Possible missing comma found.
Context: ...ake docker-stop ``` In the envs/ folder you can find the several dev-mode confi...

(AI_HYDRA_LEO_MISSING_COMMA)

SECURITY.md

[misspelling] ~16-~16: Possible spelling mistake found.
Context: ...com/altafan.gpg) | 6C7639DEA147673B | | Andrew Camilleri | [https://github.com/Kukks.gpg](https:...

(EN_MULTITOKEN_SPELLING_TWO)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: integration tests
  • GitHub Check: unit tests
🔇 Additional comments (12)
internal/infrastructure/db/sqlite/migration/20250702160209_init.down.sql (1)

1-22: Down migration looks good

IF EXISTS guards and the order (indexes ➜ views ➜ tables) make the rollback idempotent and dependency-safe.

api-spec/openapi/swagger/ark/v1/admin.swagger.json (3)

200-230: LGTM: Well-designed API improvements

The changes from POST to GET for the rounds endpoint with time-based query parameters follow REST conventions and provide better querying capabilities.


352-359: LGTM: Enhanced response with timing metadata

Adding startedAt and endedAt timestamp fields provides valuable timing information for round details.


512-517: LGTM: Improved output structure

Separating vtxoScript and onchainAddress into distinct fields provides clearer semantics compared to a single address field.

internal/infrastructure/db/sqlite/sqlc/queries/models.go (1)

1-202: LGTM: Well-structured database models

The auto-generated SQLite models correctly use nullable types and align with the domain refactoring from TxRequest to Intent and VirtualTx to OffchainTx.

cmd/arkd/utils.go (1)

317-336: LGTM: Secure TLS configuration

The TLS configuration properly sets minimum TLS 1.2 and validates certificates using a custom CA pool.

internal/core/application/indexer.go (3)

174-177: LGTM: Proper mutual exclusivity validation

The logic correctly ensures that spendable, spent, and recoverable filters are mutually exclusive, preventing conflicting query parameters.


247-247: LGTM: Error message formatting fixed

The error message now correctly uses %v to format the slice, addressing the previous review comment about improper formatting.


396-433: LGTM: Robust pagination implementation

The pagination function handles edge cases well, including empty results, bounds checking, and proper page calculation.

internal/infrastructure/db/postgres/sqlc/queries/models.go (1)

130-131: LGTM: PostgreSQL-specific JSON handling

Using pqtype.NullRawMessage for JSON fields is appropriate for PostgreSQL and provides proper null handling for complex data types.

internal/infrastructure/db/postgres/sqlc/queries/query.sql.go (1)

505-598: Indexes verified for complex joins
Appropriate indexes exist on all join keys in the PostgreSQL migrations—including

  • round.id (primary key)
  • intent.round_id
  • tx.round_id
  • receiver.intent_id
  • vtxo.intent_id

No further action is required here.

internal/core/application/utils.go (1)

101-141: LGTM! Domain model updates correctly implemented.

The function properly handles the renamed fields (ArkTx, CommitmentTxidsList, RootCommitmentTxId) and uses the appropriate constants.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

♻️ Duplicate comments (3)
README.md (1)

4-4: Fix Docker image badge reference

The Docker image badge still references the old repository path.

-[![Docker Image](https://img.shields.io/badge/docker-ghcr.io%2Fark--network%2Fark-blue?logo=docker)](https://github.com/arkade-os/arkd/pkgs/container/ark)
+[![Docker Image](https://img.shields.io/badge/docker-ghcr.io%2Farkade--os%2Farkd-blue?logo=docker)](https://github.com/arkade-os/arkd/pkgs/container/arkd)
.github/workflows/unit.yaml (1)

30-37: Fix inconsistent job description

The echo message mentions "go work sync" but the job only runs go mod tidy.

Either update the message or add the missing command:

       - name: Check for changes
         run: |
           go mod tidy
           if [[ -n $(git status --porcelain) ]]; then
-            echo "Changes detected after running go work sync and go mod tidy"
+            echo "Changes detected after running go mod tidy"
             git diff
             exit 1
           fi
.github/workflows/release.yaml (1)

23-27: Fix YAML structure for buf_token

The buf_token is incorrectly placed outside the with: section.

       - name: Publish protos
         uses: bufbuild/buf-push-action@v1
         with:
           input: api-spec/protobuf
-        buf_token: ${{ secrets.BUF_TOKEN }}
+          buf_token: ${{ secrets.BUF_TOKEN }}
🧹 Nitpick comments (6)
README.md (1)

129-129: Fix grammatical error

"option" should be "options" (plural).

-If none of the above option is specified, the wallet uses Neutrino by default with peer discovery.
+If none of the above options is specified, the wallet uses Neutrino by default with peer discovery.
.github/workflows/artifacts.yaml (1)

41-41: Remove trailing whitespace

         overwrite: true
-    
+
.github/workflows/unit.yaml (1)

61-61: Add newline at end of file

       - name: unit testing
         run: make test
+
.github/workflows/release.yaml (3)

29-30: Consider adding job dependencies

The jobs will run in parallel. If the protobuf definitions need to be published before building, consider adding dependencies.

   build-and-upload:
     runs-on: ubuntu-latest
+    needs: buf-push
     steps:

   docker-build-and-push:
     runs-on: ubuntu-latest
+    needs: buf-push
     steps:

Also applies to: 167-168


24-24: Remove trailing whitespace

Multiple lines have trailing whitespace that should be removed.

Clean up trailing spaces on lines 24, 26, 125, and 200.

Also applies to: 26-26, 125-125, 200-200


207-207: Add newline at end of file

Add a newline character after the last line.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c10b725 and 27426f2.

📒 Files selected for processing (5)
  • .github/workflows/artifacts.yaml (1 hunks)
  • .github/workflows/release.yaml (1 hunks)
  • .github/workflows/unit.yaml (1 hunks)
  • README.md (7 hunks)
  • cmd/arkd/commands.go (1 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[uncategorized] ~129-~129: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ..._port_bitcoin ``` If none of the above option is specified, the wallet uses Neutrino ...

(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)


[uncategorized] ~182-~182: Loose punctuation mark.
Context: ...y Structure - api-spec: Ark Protocol Buffer API specification. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~183-~183: Loose punctuation mark.
Context: ...fer API specification. - pkg: collection of reusable packages and ser...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~184-~184: Loose punctuation mark.
Context: ...services. - ark-lib: collection of data structures and funct...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: .... - arkd-wallet: bitcoin wallet service used as liquidit...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~186-~186: Loose punctuation mark.
Context: ...d signer. - ark-cli: ark offchain and onchain wallet as comm...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~187-~187: Loose punctuation mark.
Context: ...ne interface. - internal: arkd implementation. - [core](./int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~188-~188: Loose punctuation mark.
Context: ...mentation. - core: contains the core business logic of ark...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~189-~189: Loose punctuation mark.
Context: ...lication`](./internal/core/application/): contains the implementation of the serv...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~190-~190: Loose punctuation mark.
Context: ... - domain: models and events managed by the applic...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~191-~191: Loose punctuation mark.
Context: ... - ports: collection of interfaces of the service...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~192-~192: Loose punctuation mark.
Context: ...astructure`](./internal/infrastructure/): contains implementations of the interfa...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~193-~193: Loose punctuation mark.
Context: ... - interface: contains the implementations of the int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~195-~195: Loose punctuation mark.
Context: ...ST endpoints. - test/e2e: contains the integration tests. ## Dev...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~203-~203: Loose punctuation mark.
Context: ... root of the repository: - make build: Builds the arkd binary for your platf...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~204-~204: Loose punctuation mark.
Context: ...ry for your platform. - make build-all: Builds the arkd binary for all platfo...

(UNLIKELY_OPENING_PUNCTUATION)


[grammar] ~218-~218: The word “setup” is a noun. The verb is spelled with a white space.
Context: ...cal Bitcoin networks 3. Start Nigiri to setup a regtest Bitcoin environment: ```s...

(NOUN_VERB_CONFUSION)


[uncategorized] ~278-~278: Possible missing comma found.
Context: ...ake docker-stop ``` In the envs/ folder you can find the several dev-mode confi...

(AI_HYDRA_LEO_MISSING_COMMA)

🪛 YAMLlint (1.37.1)
.github/workflows/artifacts.yaml

[error] 41-41: trailing spaces

(trailing-spaces)

.github/workflows/release.yaml

[error] 24-24: trailing spaces

(trailing-spaces)


[error] 26-26: trailing spaces

(trailing-spaces)


[error] 125-125: trailing spaces

(trailing-spaces)


[error] 200-200: trailing spaces

(trailing-spaces)


[error] 207-207: no new line character at the end of file

(new-line-at-end-of-file)

.github/workflows/unit.yaml

[error] 61-61: no new line character at the end of file

(new-line-at-end-of-file)

🪛 actionlint (1.7.7)
.github/workflows/release.yaml

27-27: unexpected key "buf_token" for "step" section. expected one of "continue-on-error", "env", "id", "if", "name", "run", "shell", "timeout-minutes", "uses", "with", "working-directory"

(syntax-check)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: unit tests
  • GitHub Check: integration tests

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (4)
README.md (1)

4-4: Docker badge still points to deprecated container name
Both the shield URL and the hyperlink still use ark instead of arkd, so the badge is broken.

-[![Docker Image](https://img.shields.io/badge/docker-ghcr.io%2Farkade--os%2Fark-blue?logo=docker)](https://github.com/arkade-os/arkd/pkgs/container/ark)
+[![Docker Image](https://img.shields.io/badge/docker-ghcr.io%2Farkade--os%2Farkd-blue?logo=docker)](https://github.com/arkade-os/arkd/pkgs/container/arkd)
.github/workflows/unit.yaml (2)

22-29: Run go work sync before the tidy check (message currently lies)

The log says it ran both go work sync and go mod tidy, but only the latter is executed.
Running go work sync catches workspace drifts that go mod tidy misses.

-      - name: Check for changes
-        run: |
-          go mod tidy
+      - name: Ensure workspace tidy
+        run: |
+          go work sync
+          go mod tidy
           if [[ -n $(git status --porcelain) ]]; then

41-45: Invalid golangci-lint version (v2.1.6) – action will 404

golangci-lint follows v1.x.x semantic-versioning; v2.1.6 does not exist and the job will fail at runtime.

-          version: v2.1.6
+          # pin to the latest stable v1.x tag
+          version: v1.62.2
.github/workflows/release.yaml (1)

24-27: buf_token key is mis-indented – step will fail to parse

actionlint flags the key because it is outside the with: block.
Indent it two spaces so it’s a proper input to buf-push-action.

-      - name: Publish protos
-        uses: bufbuild/buf-push-action@v1        
-        with:
-          input: api-spec/protobuf  
-        buf_token: ${{ secrets.BUF_TOKEN }}
+      - name: Publish protos
+        uses: bufbuild/buf-push-action@v1
+        with:
+          input: api-spec/protobuf
+          buf_token: ${{ secrets.BUF_TOKEN }}
🧹 Nitpick comments (7)
README.md (4)

72-72: Typo: “Maximume” → “Maximum”

-| `ARKD_REDIS_NUM_OF_RETRIES` | Maximume number of retries for redis write operations in case of conflicts | - |
+| `ARKD_REDIS_NUM_OF_RETRIES` | Maximum number of retries for Redis write operations in case of conflicts | - |

129-130: Grammar: plural & article agreement

-If none of the above option is specified, the wallet uses Neutrino by default with peer discovery.
+If none of the above options are specified, the wallet falls back to Neutrino with peer discovery.

218-219: Verb form: “setup” → “set up”

-3. Start Nigiri to setup a regtest Bitcoin environment:
+3. Start Nigiri to set up a regtest Bitcoin environment:

278-278: Minor wording tweak for clarity

-In the `envs/` folder you can find the several dev-mode configurations for `arkd` and `arkd-wallet`.
+The `envs/` folder contains several dev-mode configurations for `arkd` and `arkd-wallet`.
.github/workflows/artifacts.yaml (1)

40-42: Remove stray trailing spaces to satisfy YAML linters

Line 41 contains only whitespace and triggers trailing-spaces violations (yamllint).
Safe to delete – keeps the workflow green and avoids needless churn in future diffs.

-          overwrite: true
- 
+          overwrite: true
.github/workflows/unit.yaml (1)

52-53: Add missing newline at end-of-file

Several linters flag this; cheap to fix and keeps diffs cleaner.

-        run: make test
+        run: make test
+
.github/workflows/release.yaml (1)

190-190: Trailing spaces & final newline

A few lines (24, 26, 125, 200) still have trailing spaces; the file also lacks a terminating newline. Cleaning these avoids noisy diffs and linter failures.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 27426f2 and 1d67940.

📒 Files selected for processing (5)
  • .github/workflows/artifacts.yaml (1 hunks)
  • .github/workflows/release.yaml (1 hunks)
  • .github/workflows/unit.yaml (1 hunks)
  • README.md (7 hunks)
  • cmd/arkd/commands.go (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • cmd/arkd/commands.go
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/artifacts.yaml

[error] 41-41: trailing spaces

(trailing-spaces)

.github/workflows/release.yaml

[error] 24-24: trailing spaces

(trailing-spaces)


[error] 26-26: trailing spaces

(trailing-spaces)


[error] 125-125: trailing spaces

(trailing-spaces)


[error] 200-200: trailing spaces

(trailing-spaces)


[error] 207-207: no new line character at the end of file

(new-line-at-end-of-file)

.github/workflows/unit.yaml

[error] 53-53: no new line character at the end of file

(new-line-at-end-of-file)

🪛 actionlint (1.7.7)
.github/workflows/release.yaml

27-27: unexpected key "buf_token" for "step" section. expected one of "continue-on-error", "env", "id", "if", "name", "run", "shell", "timeout-minutes", "uses", "with", "working-directory"

(syntax-check)

🪛 LanguageTool
README.md

[uncategorized] ~129-~129: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ..._port_bitcoin ``` If none of the above option is specified, the wallet uses Neutrino ...

(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)


[uncategorized] ~182-~182: Loose punctuation mark.
Context: ...y Structure - api-spec: Ark Protocol Buffer API specification. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~183-~183: Loose punctuation mark.
Context: ...fer API specification. - pkg: collection of reusable packages and ser...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~184-~184: Loose punctuation mark.
Context: ...services. - ark-lib: collection of data structures and funct...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: .... - arkd-wallet: bitcoin wallet service used as liquidit...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~186-~186: Loose punctuation mark.
Context: ...d signer. - ark-cli: ark offchain and onchain wallet as comm...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~187-~187: Loose punctuation mark.
Context: ...ne interface. - internal: arkd implementation. - [core](./int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~188-~188: Loose punctuation mark.
Context: ...mentation. - core: contains the core business logic of ark...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~189-~189: Loose punctuation mark.
Context: ...lication`](./internal/core/application/): contains the implementation of the serv...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~190-~190: Loose punctuation mark.
Context: ... - domain: models and events managed by the applic...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~191-~191: Loose punctuation mark.
Context: ... - ports: collection of interfaces of the service...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~192-~192: Loose punctuation mark.
Context: ...astructure`](./internal/infrastructure/): contains implementations of the interfa...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~193-~193: Loose punctuation mark.
Context: ... - interface: contains the implementations of the int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~195-~195: Loose punctuation mark.
Context: ...ST endpoints. - test/e2e: contains the integration tests. ## Dev...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~203-~203: Loose punctuation mark.
Context: ... root of the repository: - make build: Builds the arkd binary for your platf...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~204-~204: Loose punctuation mark.
Context: ...ry for your platform. - make build-all: Builds the arkd binary for all platfo...

(UNLIKELY_OPENING_PUNCTUATION)


[grammar] ~218-~218: The word “setup” is a noun. The verb is spelled with a white space.
Context: ...cal Bitcoin networks 3. Start Nigiri to setup a regtest Bitcoin environment: ```s...

(NOUN_VERB_CONFUSION)


[uncategorized] ~278-~278: Possible missing comma found.
Context: ...ake docker-stop ``` In the envs/ folder you can find the several dev-mode confi...

(AI_HYDRA_LEO_MISSING_COMMA)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: unit tests
  • GitHub Check: integration tests
🔇 Additional comments (1)
.github/workflows/release.yaml (1)

183-206: Nice upgrade to docker/build-push-action@v6

Action version bump + multi-arch build args look good and align with other workflows.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (2)
README.md (2)

4-4: Docker badge still points to the old ark image

The badge and link should reference arkd, not the deprecated ark image.

-[![Docker Image](https://img.shields.io/badge/docker-ghcr.io%2Farkade--os%2Fark-blue?logo=docker)](https://github.com/arkade-os/arkd/pkgs/container/ark)
+[![Docker Image](https://img.shields.io/badge/docker-ghcr.io%2Farkade--os%2Farkd-blue?logo=docker)](https://github.com/arkade-os/arkd/pkgs/container/arkd)

68-68: Event-DB URL description contradicts the allowed types

The table says the type can only be redis or inmemory, yet the URL description talks about postgres. Clarify which backend is actually supported and align the wording.

-| `ARKD_EVENT_DB_URL` | Event database url if `ARKD_EVENT_DB_TYPE` is set to `postgres` | - |
+| `ARKD_EVENT_DB_URL` | Event database URL if `ARKD_EVENT_DB_TYPE` is set to `redis` | - |
🧹 Nitpick comments (3)
README.md (3)

71-72: Spelling/wording fix

Minor typo and style improvements.

-| `ARKD_REDIS_NUM_OF_RETRIES` | Maximume number of retries for redis write operations in case of conflicts | - |
+| `ARKD_REDIS_NUM_OF_RETRIES` | Maximum number of retries for Redis write operations in case of conflicts | - |

77-77: Remove stray space and capitalise sentence

-| `ARKD_WALLET_ADDR` |  the arkd wallet address to connect to in the form `host:port` | - |
+| `ARKD_WALLET_ADDR` | The arkd wallet address to connect to in the form `host:port` | - |

129-129: Grammar fix

-If none of the above option is specified, the wallet uses Neutrino by default with peer discovery.
+If none of the above options are specified, the wallet uses Neutrino by default with peer discovery.
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1d67940 and 45e275e.

📒 Files selected for processing (1)
  • README.md (7 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[uncategorized] ~129-~129: The grammatical number of this noun doesn’t look right. Consider replacing it.
Context: ..._port_bitcoin ``` If none of the above option is specified, the wallet uses Neutrino ...

(AI_EN_LECTOR_REPLACEMENT_NOUN_NUMBER)


[uncategorized] ~182-~182: Loose punctuation mark.
Context: ...y Structure - api-spec: Ark Protocol Buffer API specification. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~183-~183: Loose punctuation mark.
Context: ...fer API specification. - pkg: collection of reusable packages and ser...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~184-~184: Loose punctuation mark.
Context: ...services. - ark-lib: collection of data structures and funct...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: .... - arkd-wallet: bitcoin wallet service used as liquidit...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~186-~186: Loose punctuation mark.
Context: ...d signer. - ark-cli: ark offchain and onchain wallet as comm...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~187-~187: Loose punctuation mark.
Context: ...ne interface. - internal: arkd implementation. - [core](./int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~188-~188: Loose punctuation mark.
Context: ...mentation. - core: contains the core business logic of ark...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~189-~189: Loose punctuation mark.
Context: ...lication`](./internal/core/application/): contains the implementation of the serv...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~190-~190: Loose punctuation mark.
Context: ... - domain: models and events managed by the applic...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~191-~191: Loose punctuation mark.
Context: ... - ports: collection of interfaces of the service...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~192-~192: Loose punctuation mark.
Context: ...astructure`](./internal/infrastructure/): contains implementations of the interfa...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~193-~193: Loose punctuation mark.
Context: ... - interface: contains the implementations of the int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~195-~195: Loose punctuation mark.
Context: ...ST endpoints. - test/e2e: contains the integration tests. ## Dev...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~203-~203: Loose punctuation mark.
Context: ... root of the repository: - make build: Builds the arkd binary for your platf...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~204-~204: Loose punctuation mark.
Context: ...ry for your platform. - make build-all: Builds the arkd binary for all platfo...

(UNLIKELY_OPENING_PUNCTUATION)


[grammar] ~218-~218: The word “setup” is a noun. The verb is spelled with a white space.
Context: ...cal Bitcoin networks 3. Start Nigiri to setup a regtest Bitcoin environment: ```s...

(NOUN_VERB_CONFUSION)


[uncategorized] ~278-~278: Possible missing comma found.
Context: ...ake docker-stop ``` In the envs/ folder you can find the several dev-mode confi...

(AI_HYDRA_LEO_MISSING_COMMA)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: unit tests
  • GitHub Check: integration tests

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (2)
README.md (2)

4-4: Docker badge still points to the legacy ark container

Both the badge image URL and the link target should reference the new arkd container path.

-[![Docker Image](https://img.shields.io/badge/docker-ghcr.io%2Farkade--os%2Fark-blue?logo=docker)](https://github.com/arkade-os/arkd/pkgs/container/ark)
+[![Docker Image](https://img.shields.io/badge/docker-ghcr.io%2Farkade--os%2Farkd-blue?logo=docker)](https://github.com/arkade-os/arkd/pkgs/container/arkd)

68-68: Inconsistent database type in ARKD_EVENT_DB_URL description

The preceding row limits ARKD_EVENT_DB_TYPE to redis or inmemory, yet the URL description mentions postgres.

-| `ARKD_EVENT_DB_URL` | Event database url if `ARKD_EVENT_DB_TYPE` is set to `postgres` | - |
+| `ARKD_EVENT_DB_URL` | Event database URL if `ARKD_EVENT_DB_TYPE` is set to `redis` | - |
🧹 Nitpick comments (4)
README.md (4)

8-8: Go Reference badge is not clickable

The badge is rendered as a plain image. Wrap it in a link so that readers can reach the pkg.go.dev page directly.

-![Go Reference](https://pkg.go.dev/badge/github.com/arkade-os/arkd.svg)
+[![Go Reference](https://pkg.go.dev/badge/github.com/arkade-os/arkd.svg)](https://pkg.go.dev/github.com/arkade-os/arkd)

182-187: Nested bullets need proper indentation

The sub-packages under pkg/ appear at the same indentation level as the parent, which renders as a flat list instead of a nested one. Indent the child items by two spaces.

-  - [`ark-lib`](./pkg/ark-lib): collection of data structures and functions reusable by arkd and sdk.
-  - [`arkd-wallet`](./pkg/arkd-wallet): bitcoin wallet service used as liquidity provider and signer.
-  - [`ark-cli`](./pkg/ark-cli): ark offchain and onchain wallet as command line interface.
+  - [`ark-lib`](./pkg/ark-lib): collection of data structures and functions reusable by arkd and sdk.
+  - [`arkd-wallet`](./pkg/arkd-wallet): bitcoin wallet service used as liquidity provider and signer.
+  - [`ark-cli`](./pkg/ark-cli): ark off-chain and on-chain wallet CLI.

189-189: Line-number anchor is brittle

The link README.md#L19-L22 will break as soon as the README changes again. Prefer linking to a stable heading anchor instead.


218-218: Use “set up” (verb) instead of “setup” (noun)

-3. Start Nigiri to setup a regtest Bitcoin environment:
+3. Start Nigiri to set up a regtest Bitcoin environment:
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 45e275e and 7264cc5.

📒 Files selected for processing (1)
  • README.md (7 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[uncategorized] ~182-~182: Loose punctuation mark.
Context: ...y Structure - api-spec: Ark Protocol Buffer API specification. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~183-~183: Loose punctuation mark.
Context: ...fer API specification. - pkg: collection of reusable packages and ser...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~184-~184: Loose punctuation mark.
Context: ...services. - ark-lib: collection of data structures and funct...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: .... - arkd-wallet: bitcoin wallet service used as liquidit...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~186-~186: Loose punctuation mark.
Context: ...d signer. - ark-cli: ark offchain and onchain wallet as comm...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~187-~187: Loose punctuation mark.
Context: ...ne interface. - internal: arkd implementation. - [core](./int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~188-~188: Loose punctuation mark.
Context: ...mentation. - core: contains the core business logic of ark...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~189-~189: Loose punctuation mark.
Context: ...lication`](./internal/core/application/): contains the implementation of the serv...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~190-~190: Loose punctuation mark.
Context: ... - domain: models and events managed by the applic...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~191-~191: Loose punctuation mark.
Context: ... - ports: collection of interfaces of the service...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~192-~192: Loose punctuation mark.
Context: ...astructure`](./internal/infrastructure/): contains implementations of the interfa...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~193-~193: Loose punctuation mark.
Context: ... - interface: contains the implementations of the int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~195-~195: Loose punctuation mark.
Context: ...ST endpoints. - test/e2e: contains the integration tests. ## Dev...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~203-~203: Loose punctuation mark.
Context: ... root of the repository: - make build: Builds the arkd binary for your platf...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~204-~204: Loose punctuation mark.
Context: ...ry for your platform. - make build-all: Builds the arkd binary for all platfo...

(UNLIKELY_OPENING_PUNCTUATION)


[grammar] ~218-~218: The word “setup” is a noun. The verb is spelled with a white space.
Context: ...cal Bitcoin networks 3. Start Nigiri to setup a regtest Bitcoin environment: ```s...

(NOUN_VERB_CONFUSION)


[uncategorized] ~278-~278: Possible missing comma found.
Context: ...ake docker-stop ``` In the envs/ folder you can find the several dev-mode confi...

(AI_HYDRA_LEO_MISSING_COMMA)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: unit tests
  • GitHub Check: integration tests
🔇 Additional comments (1)
README.md (1)

216-216: Go 1.23 is not released yet

Specify “Go 1.22+” (latest stable at the time of writing) or simply “latest stable Go” to avoid confusion.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (2)
README.md (2)

218-219: Verb form: “set up”, not “setup”

Minor grammar tweak for clarity.

-3. Start Nigiri to setup a regtest Bitcoin environment:
+3. Start Nigiri to set up a regtest Bitcoin environment:

8-8: Make the Go Reference badge clickable

Linking the badge improves usability.

-![Go Reference](https://pkg.go.dev/badge/github.com/arkade-os/arkd.svg)
+[![Go Reference](https://pkg.go.dev/badge/github.com/arkade-os/arkd.svg)](https://pkg.go.dev/github.com/arkade-os/arkd)
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 7264cc5 and 62af889.

📒 Files selected for processing (1)
  • README.md (7 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[uncategorized] ~182-~182: Loose punctuation mark.
Context: ...y Structure - api-spec: Ark Protocol Buffer API specification. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~183-~183: Loose punctuation mark.
Context: ...fer API specification. - pkg: collection of reusable packages and ser...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~184-~184: Loose punctuation mark.
Context: ...services. - ark-lib: collection of data structures and funct...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: .... - arkd-wallet: bitcoin wallet service used as liquidit...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~186-~186: Loose punctuation mark.
Context: ...d signer. - ark-cli: ark offchain and onchain wallet as comm...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~187-~187: Loose punctuation mark.
Context: ...ne interface. - internal: arkd implementation. - [core](./int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~188-~188: Loose punctuation mark.
Context: ...mentation. - core: contains the core business logic of ark...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~189-~189: Loose punctuation mark.
Context: ...lication`](./internal/core/application/): contains the implementation of the serv...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~190-~190: Loose punctuation mark.
Context: ... - domain: models and events managed by the applic...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~191-~191: Loose punctuation mark.
Context: ... - ports: collection of interfaces of the service...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~192-~192: Loose punctuation mark.
Context: ...astructure`](./internal/infrastructure/): contains implementations of the interfa...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~193-~193: Loose punctuation mark.
Context: ... - interface: contains the implementations of the int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~195-~195: Loose punctuation mark.
Context: ...ST endpoints. - test/e2e: contains the integration tests. ## Dev...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~203-~203: Loose punctuation mark.
Context: ... root of the repository: - make build: Builds the arkd binary for your platf...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~204-~204: Loose punctuation mark.
Context: ...ry for your platform. - make build-all: Builds the arkd binary for all platfo...

(UNLIKELY_OPENING_PUNCTUATION)


[grammar] ~218-~218: The word “setup” is a noun. The verb is spelled with a white space.
Context: ...cal Bitcoin networks 3. Start Nigiri to setup a regtest Bitcoin environment: ```s...

(NOUN_VERB_CONFUSION)


[uncategorized] ~278-~278: Possible missing comma found.
Context: ...ake docker-stop ``` In the envs/ folder you can find the several dev-mode confi...

(AI_HYDRA_LEO_MISSING_COMMA)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: integration tests
  • GitHub Check: unit tests

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

♻️ Duplicate comments (1)
README.md (1)

67-68: Wrong condition for ARKD_EVENT_DB_URL

The description still references postgres, but ARKD_EVENT_DB_TYPE only lists redis | inmemory. This was flagged in previous reviews and is still unresolved.

-| `ARKD_EVENT_DB_URL` | Event database url if `ARKD_EVENT_DB_TYPE` is set to `postgres` | - |
+| `ARKD_EVENT_DB_URL` | Event database URL if `ARKD_EVENT_DB_TYPE` is set to `redis` | - |
🧹 Nitpick comments (2)
README.md (2)

189-191: Line-number URLs are fragile

Linking to README.md#L19-L22 will break as soon as the file shifts. Prefer section-anchor links.

-    - [`application`](./internal/core/application/): contains the implementation of the service responsible for the [core operations](https://github.com/arkade-os/arkd/tree/master/README.md#L19-L22).
+    - [`application`](./internal/core/application/): contains the implementation of the service responsible for the [core operations](#what-is-arkd).

218-219: Minor grammar: “set up” (verb) not “setup”

-3. Start Nigiri to setup a regtest Bitcoin environment:
+3. Start Nigiri to set up a regtest Bitcoin environment:
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 62af889 and 01b3bbf.

📒 Files selected for processing (1)
  • README.md (7 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[uncategorized] ~182-~182: Loose punctuation mark.
Context: ...y Structure - api-spec: Ark Protocol Buffer API specification. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~183-~183: Loose punctuation mark.
Context: ...fer API specification. - pkg: collection of reusable packages and ser...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~184-~184: Loose punctuation mark.
Context: ...services. - ark-lib: collection of data structures and funct...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: .... - arkd-wallet: bitcoin wallet service used as liquidit...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~186-~186: Loose punctuation mark.
Context: ...d signer. - ark-cli: ark offchain and onchain wallet as comm...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~187-~187: Loose punctuation mark.
Context: ...ne interface. - internal: arkd implementation. - [core](./int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~188-~188: Loose punctuation mark.
Context: ...mentation. - core: contains the core business logic of ark...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~189-~189: Loose punctuation mark.
Context: ...lication`](./internal/core/application/): contains the implementation of the serv...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~190-~190: Loose punctuation mark.
Context: ... - domain: models and events managed by the applic...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~191-~191: Loose punctuation mark.
Context: ... - ports: collection of interfaces of the service...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~192-~192: Loose punctuation mark.
Context: ...astructure`](./internal/infrastructure/): contains implementations of the interfa...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~193-~193: Loose punctuation mark.
Context: ... - interface: contains the implementations of the int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~195-~195: Loose punctuation mark.
Context: ...ST endpoints. - test/e2e: contains the integration tests. ## Dev...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~203-~203: Loose punctuation mark.
Context: ... root of the repository: - make build: Builds the arkd binary for your platf...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~204-~204: Loose punctuation mark.
Context: ...ry for your platform. - make build-all: Builds the arkd binary for all platfo...

(UNLIKELY_OPENING_PUNCTUATION)


[grammar] ~218-~218: The word “setup” is a noun. The verb is spelled with a white space.
Context: ...cal Bitcoin networks 3. Start Nigiri to setup a regtest Bitcoin environment: ```s...

(NOUN_VERB_CONFUSION)


[uncategorized] ~278-~278: Possible missing comma found.
Context: ...ake docker-stop ``` In the envs/ folder you can find the several dev-mode confi...

(AI_HYDRA_LEO_MISSING_COMMA)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: unit tests
  • GitHub Check: integration tests

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (2)
README.md (2)

6-6: Drop or repoint the stale unit-test workflow badge

unit.yaml was removed earlier, yet the badge still links to it.
Keep the README accurate by either

-[![ci_unit](https://github.com/arkade-os/arkd/actions/workflows/unit.yaml/badge.svg)](https://github.com/arkade-os/arkd/actions/workflows/unit.yaml)
+<!-- Unit-test workflow removed in v7; re-add badge once reinstated -->

or by targeting an existing workflow.
Broken badges look unmaintained.


67-68: Wrong condition for ARKD_EVENT_DB_URL – references the wrong DB type

The URL is used only when the event DB is Redis, not Postgres.

-| `ARKD_EVENT_DB_URL` | Event database url if `ARKD_EVENT_DB_TYPE` is set to `postgres` | - |
+| `ARKD_EVENT_DB_URL` | Redis connection URL if `ARKD_EVENT_DB_TYPE` is set to `redis` | - |

Persisting the old wording keeps the docs misleading and contradicts the enum two lines above.

🧹 Nitpick comments (2)
README.md (2)

73-73: 7-day expiry constant is off by 128 seconds

604672 s ≈ 6 days 23 h 51 m 12 s.
If you really mean a full week, use 604 800 s.

-| `ARKD_VTXO_TREE_EXPIRY` | VTXO tree expiry in seconds | `604672` (7 days) |
+| `ARKD_VTXO_TREE_EXPIRY` | VTXO tree expiry in seconds | `604800` (7 days) |

218-218: Verb/noun confusion: “setup” → “set up”

-3. Start Nigiri to setup a regtest Bitcoin environment:
+3. Start Nigiri to set up a regtest Bitcoin environment:

Small polish; improves readability and passes spell-checkers.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 01b3bbf and f7a25fc.

📒 Files selected for processing (1)
  • README.md (7 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[uncategorized] ~182-~182: Loose punctuation mark.
Context: ...y Structure - api-spec: Ark Protocol Buffer API specification. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~183-~183: Loose punctuation mark.
Context: ...fer API specification. - pkg: collection of reusable packages and ser...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~184-~184: Loose punctuation mark.
Context: ...services. - ark-lib: collection of data structures and funct...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: .... - arkd-wallet: bitcoin wallet service used as liquidit...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~186-~186: Loose punctuation mark.
Context: ...d signer. - ark-cli: ark offchain and onchain wallet as comm...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~187-~187: Loose punctuation mark.
Context: ...ne interface. - internal: arkd implementation. - [core](./int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~188-~188: Loose punctuation mark.
Context: ...mentation. - core: contains the core business logic of ark...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~189-~189: Loose punctuation mark.
Context: ...lication`](./internal/core/application/): contains the implementation of the serv...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~190-~190: Loose punctuation mark.
Context: ... - domain: models and events managed by the applic...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~191-~191: Loose punctuation mark.
Context: ... - ports: collection of interfaces of the service...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~192-~192: Loose punctuation mark.
Context: ...astructure`](./internal/infrastructure/): contains implementations of the interfa...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~193-~193: Loose punctuation mark.
Context: ... - interface: contains the implementations of the int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~195-~195: Loose punctuation mark.
Context: ...ST endpoints. - test/e2e: contains the integration tests. ## Dev...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~203-~203: Loose punctuation mark.
Context: ... root of the repository: - make build: Builds the arkd binary for your platf...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~204-~204: Loose punctuation mark.
Context: ...ry for your platform. - make build-all: Builds the arkd binary for all platfo...

(UNLIKELY_OPENING_PUNCTUATION)


[grammar] ~218-~218: The word “setup” is a noun. The verb is spelled with a white space.
Context: ...cal Bitcoin networks 3. Start Nigiri to setup a regtest Bitcoin environment: ```s...

(NOUN_VERB_CONFUSION)


[uncategorized] ~278-~278: Possible missing comma found.
Context: ...ake docker-stop ``` In the envs/ folder you can find the several dev-mode confi...

(AI_HYDRA_LEO_MISSING_COMMA)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: unit tests
  • GitHub Check: integration tests
🔇 Additional comments (1)
README.md (1)

216-216: Verify the stated Go requirement – 1.23 is not released

Go 1.22 is the latest at the time of writing. Re-check the minimum version and update before tagging v7.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (2)
README.md (2)

6-6: Unit-test badge still points to removed unit.yaml workflow

unit.yaml no longer exists, so this badge will 404 once the branch is merged. Either restore the workflow (with the exact name) or drop / update the badge.

-[![ci_unit](https://github.com/arkade-os/arkd/actions/workflows/unit.yaml/badge.svg)](https://github.com/arkade-os/arkd/actions/workflows/unit.yaml)
+<!-- Unit-test workflow removed in v7; re-add badge once reinstated -->

68-68: Wrong condition for ARKD_EVENT_DB_URL

The URL is used when the event DB type is redis, not postgres.

-| `ARKD_EVENT_DB_URL` | Event database url if `ARKD_EVENT_DB_TYPE` is set to `postgres` | - |
+| `ARKD_EVENT_DB_URL` | Event database URL if `ARKD_EVENT_DB_TYPE` is set to `redis` | - |
🧹 Nitpick comments (2)
README.md (2)

218-218: Grammar nit – use “set up” (verb) instead of “setup” (noun)

-3. Start Nigiri to setup a regtest Bitcoin environment:
+3. Start Nigiri to set up a regtest Bitcoin environment:

269-269: Line-number anchor in integration-test link is brittle

The link relies on a hard-coded #L218 anchor which will break every time the README changes. Point to a section heading instead, e.g.:

-3. Run integration tests ([start nigiri](https://github.com/arkade-os/arkd/tree/master/README.md#L218) if needed first):
+3. Run integration tests ([start Nigiri](#3-start-nigiri-to-set-up-a-regtest-bitcoin-environment) if needed first):

(or any stable local heading).

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f7a25fc and 0a058fa.

📒 Files selected for processing (3)
  • README.md (7 hunks)
  • cmd/arkd/commands.go (1 hunks)
  • cmd/arkd/flags.go (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • cmd/arkd/flags.go
  • cmd/arkd/commands.go
🧰 Additional context used
🪛 LanguageTool
README.md

[uncategorized] ~182-~182: Loose punctuation mark.
Context: ...y Structure - api-spec: Ark Protocol Buffer API specification. ...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~183-~183: Loose punctuation mark.
Context: ...fer API specification. - pkg: collection of reusable packages and ser...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~184-~184: Loose punctuation mark.
Context: ...services. - ark-lib: collection of data structures and funct...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~185-~185: Loose punctuation mark.
Context: .... - arkd-wallet: bitcoin wallet service used as liquidit...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~186-~186: Loose punctuation mark.
Context: ...d signer. - ark-cli: ark offchain and onchain wallet as comm...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~187-~187: Loose punctuation mark.
Context: ...ne interface. - internal: arkd implementation. - [core](./int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~188-~188: Loose punctuation mark.
Context: ...mentation. - core: contains the core business logic of ark...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~189-~189: Loose punctuation mark.
Context: ...lication`](./internal/core/application/): contains the implementation of the serv...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~190-~190: Loose punctuation mark.
Context: ... - domain: models and events managed by the applic...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~191-~191: Loose punctuation mark.
Context: ... - ports: collection of interfaces of the service...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~192-~192: Loose punctuation mark.
Context: ...astructure`](./internal/infrastructure/): contains implementations of the interfa...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~193-~193: Loose punctuation mark.
Context: ... - interface: contains the implementations of the int...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~195-~195: Loose punctuation mark.
Context: ...ST endpoints. - test/e2e: contains the integration tests. ## Dev...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~203-~203: Loose punctuation mark.
Context: ... root of the repository: - make build: Builds the arkd binary for your platf...

(UNLIKELY_OPENING_PUNCTUATION)


[uncategorized] ~204-~204: Loose punctuation mark.
Context: ...ry for your platform. - make build-all: Builds the arkd binary for all platfo...

(UNLIKELY_OPENING_PUNCTUATION)


[grammar] ~218-~218: The word “setup” is a noun. The verb is spelled with a white space.
Context: ...cal Bitcoin networks 3. Start Nigiri to setup a regtest Bitcoin environment: ```s...

(NOUN_VERB_CONFUSION)


[uncategorized] ~278-~278: Possible missing comma found.
Context: ...ake docker-stop ``` In the envs/ folder you can find the several dev-mode confi...

(AI_HYDRA_LEO_MISSING_COMMA)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: integration tests
  • GitHub Check: unit tests

@altafan altafan merged commit 20be97a into next-version Jul 7, 2025
4 checks passed
@coderabbitai coderabbitai bot mentioned this pull request Jul 8, 2025
@coderabbitai coderabbitai bot mentioned this pull request Aug 20, 2025
@altafan altafan deleted the final-refactor branch September 16, 2025 12:43
This was referenced Sep 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants