Contributing

Prerequisites

Build & Run

go build -o muxd.exe .        # build
go run .                       # run (new session)
go run . -c                    # resume latest session
go vet ./...                   # lint

Testing

go test ./...                  # run all tests
go test -v ./...               # verbose
go test -race ./...            # race detector
go test -cover ./...           # coverage
go test -run TestFoo ./...     # run specific test

Conventions

Code Style

Package structure

This project uses internal/ sub-packages organized by domain (domain, config, store, provider, tools, agent, checkpoint, daemon, service, tui, telegram). main.go is pure wiring. All business logic lives in packages. See Architecture for the full layout.

Naming

Error handling

Functions

Concurrency

Formatting

What NOT to Do

Pull Requests

  1. Create a branch from main.
  2. Make your changes, ensuring tests pass (go test ./...) and lint is clean (go vet ./...).
  3. Write or update tests for any new or changed behavior.
  4. Keep commits focused: one logical change per commit.
  5. Open a PR with a clear description of what changed and why.