diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 98694f8..b7f271f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,6 +9,9 @@ on: jobs: build-and-test: runs-on: ubuntu-latest + permissions: + contents: read + id-token: write # Codecov OIDC upload; no stored token needed steps: - uses: actions/checkout@v4 @@ -34,4 +37,12 @@ jobs: # outside internal/httpx constructs a raw http.Client / http.NewRequest — # so un-receipted egress can't merge. - name: Test - run: go test ./... + run: go test -coverprofile=coverage.out -covermode=atomic ./... + + - name: Upload coverage + if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository + uses: codecov/codecov-action@v5 + with: + files: coverage.out + use_oidc: true + fail_ci_if_error: false diff --git a/.gitignore b/.gitignore index e4febd6..c06a9cd 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ build/ dist/ security-roast-report.md .claude/ +coverage.out diff --git a/CHANGELOG.md b/CHANGELOG.md index c7f0788..206174f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,16 @@ All notable changes to qmax-code. Versions follow [Semantic Versioning](https:// ## [Unreleased] +### Changed +- Go module path is now `github.com/Quality-Max/qmax-code`, matching the + GitHub repository. The old lowercase path stopped the Go proxy and + pkg.go.dev from resolving the module. `go install + github.com/Quality-Max/qmax-code@latest` works from the next tagged release. + +### Added +- Package documentation for `pkg.go.dev` and a Go Reference badge. +- CI uploads test coverage to Codecov. + ## [1.38.0] - 2026-10-14 ### Changed diff --git a/README.md b/README.md index bec8592..e31cb08 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,7 @@ [![GitHub downloads](https://img.shields.io/github/downloads/Quality-Max/qmax-code/total?label=downloads)](https://github.com/Quality-Max/qmax-code/releases) [![License: Apache 2.0](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE) [![Made with Go](https://img.shields.io/badge/made%20with-Go%201.25.13+-00ADD8.svg)](https://go.dev/) +[![Go Reference](https://pkg.go.dev/badge/github.com/Quality-Max/qmax-code.svg)](https://pkg.go.dev/github.com/Quality-Max/qmax-code) [![Announcement](https://img.shields.io/badge/announcement-Apache%202.0-7c6cf0.svg)](docs/releases/v1.38.0.md) [![Buy Me a Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-support-yellow?logo=buymeacoffee)](https://buymeacoffee.com/qualitymax) @@ -123,6 +124,12 @@ curl -sL https://qualitymax.io/static/install-qmax-code.txt | bash To build from source instead: +```bash +go install github.com/Quality-Max/qmax-code@latest +``` + +Or from a checkout: + ```bash git clone https://github.com/Quality-Max/qmax-code.git cd qmax-code diff --git a/claude_code_command.go b/claude_code_command.go index b909df3..62cd1fd 100644 --- a/claude_code_command.go +++ b/claude_code_command.go @@ -13,8 +13,8 @@ import ( "runtime" "strings" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/setup" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/setup" ) const maxClaudeCodeAuthBytes = 64 * 1024 diff --git a/claude_code_command_test.go b/claude_code_command_test.go index 88b776b..3161e81 100644 --- a/claude_code_command_test.go +++ b/claude_code_command_test.go @@ -7,7 +7,7 @@ import ( "path/filepath" "testing" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) func TestReadClaudeCodeAuthFile(t *testing.T) { diff --git a/codex_command.go b/codex_command.go index 32f5ed0..2ec04cd 100644 --- a/codex_command.go +++ b/codex_command.go @@ -11,9 +11,9 @@ import ( "os/exec" "path/filepath" - "github.com/qualitymax/qmax-code/internal/agent" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/setup" + "github.com/Quality-Max/qmax-code/internal/agent" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/setup" ) const maxCodexAuthBytes = 64 * 1024 diff --git a/codex_command_test.go b/codex_command_test.go index a02ba23..074f15f 100644 --- a/codex_command_test.go +++ b/codex_command_test.go @@ -8,7 +8,7 @@ import ( "path/filepath" "testing" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) func TestReadCodexAuthFileRequiresOAuthTokens(t *testing.T) { diff --git a/config_command.go b/config_command.go index b44d484..513c695 100644 --- a/config_command.go +++ b/config_command.go @@ -6,10 +6,10 @@ import ( "strconv" "strings" - "github.com/qualitymax/qmax-code/internal/agent" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/sysutil" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/agent" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/sysutil" + "github.com/Quality-Max/qmax-code/internal/tui" ) // handleConfigCommand implements the `qmax-code config ...` subcommand diff --git a/config_command_test.go b/config_command_test.go index 5408ee3..bad6de7 100644 --- a/config_command_test.go +++ b/config_command_test.go @@ -6,8 +6,8 @@ import ( "path/filepath" "testing" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/tui" ) func withTempHome(t *testing.T) string { diff --git a/doc.go b/doc.go new file mode 100644 index 0000000..6d56eec --- /dev/null +++ b/doc.go @@ -0,0 +1,18 @@ +// Command qmax-code is a QA-focused AI terminal agent. +// +// It runs standalone against a local repository or connects to QualityMax, +// and can switch inference between the Anthropic API, Cerebras, Ollama, and +// hosted coding agents (Claude Code, Codex, Antigravity, OpenCode) through +// /orch. Its focus is QA work: generating and running tests, crawling apps, +// reviewing diffs, and recording receipts. +// +// Install a release binary: +// +// curl -sL https://qualitymax.io/static/install-qmax-code.txt | bash +// +// Or build from source with Go 1.25.13 or newer: +// +// go install github.com/Quality-Max/qmax-code@latest +// +// Run qmax-code --help for flags and the README for slash commands. +package main diff --git a/gate_command.go b/gate_command.go index 494f35b..625f004 100644 --- a/gate_command.go +++ b/gate_command.go @@ -5,7 +5,7 @@ import ( "fmt" "io" - "github.com/qualitymax/qmax-code/internal/gate" + "github.com/Quality-Max/qmax-code/internal/gate" ) func runGateCommand(ctx context.Context, args []string, stdout, stderr io.Writer) int { diff --git a/go.mod b/go.mod index 40c7913..7c67459 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/qualitymax/qmax-code +module github.com/Quality-Max/qmax-code go 1.25.13 diff --git a/internal/agent/agent.go b/internal/agent/agent.go index 5ff44d1..167f3f5 100644 --- a/internal/agent/agent.go +++ b/internal/agent/agent.go @@ -12,11 +12,11 @@ import ( "sync" "time" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/httpx" - "github.com/qualitymax/qmax-code/internal/session" - "github.com/qualitymax/qmax-code/internal/sysutil" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/httpx" + "github.com/Quality-Max/qmax-code/internal/session" + "github.com/Quality-Max/qmax-code/internal/sysutil" + "github.com/Quality-Max/qmax-code/internal/tui" ) // AgentConfig holds configuration for the LLM agent. diff --git a/internal/agent/agy_agent.go b/internal/agent/agy_agent.go index 7f139ad..0489e19 100644 --- a/internal/agent/agy_agent.go +++ b/internal/agent/agy_agent.go @@ -14,9 +14,9 @@ import ( "sync" "time" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/sysutil" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/sysutil" + "github.com/Quality-Max/qmax-code/internal/tui" ) // AgyAgent orchestrates an Antigravity CLI (`agy`) subprocess for LLM @@ -33,23 +33,23 @@ import ( // 5. conversation_id is kept for --conversation on the next turn type AgyAgent struct { TurnTranscript - agyBin string - modelID string // "" = agy default; otherwise --model + agyBin string + modelID string // "" = agy default; otherwise --model effort string // "low" | "medium" | "high" outputVerbose bool narrateToolCalls string // "off" | "brief" | "full" — see narrationDirective permissionMode string // "standard" | "unattended" - conversationID string - sctx *api.SessionContext - lastTurnIn int - lastTurnOut int - lastTurnOK bool - lastLimitHit bool - lastLimitReset time.Time - lastStderr string - mu sync.Mutex - runMu sync.Mutex - runCancel context.CancelFunc + conversationID string + sctx *api.SessionContext + lastTurnIn int + lastTurnOut int + lastTurnOK bool + lastLimitHit bool + lastLimitReset time.Time + lastStderr string + mu sync.Mutex + runMu sync.Mutex + runCancel context.CancelFunc } const agyQASystemPrompt = `You are QMax, an elite QA engineer running inside Google Antigravity. diff --git a/internal/agent/cc_agent.go b/internal/agent/cc_agent.go index 17c31ca..0909f4a 100644 --- a/internal/agent/cc_agent.go +++ b/internal/agent/cc_agent.go @@ -13,9 +13,9 @@ import ( "sync" "time" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/sysutil" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/sysutil" + "github.com/Quality-Max/qmax-code/internal/tui" ) // CLIAgent is the interface implemented by both CCAgent (claude CLI) and @@ -70,24 +70,24 @@ type PlanLimitReporter interface { // 5. CC session ID is saved for --resume on the next turn type CCAgent struct { TurnTranscript - claudeBin string - modelID string // "" = let CC decide; otherwise passed as --model - effort string // "low" | "medium" | "high" — injected into system prompt + claudeBin string + modelID string // "" = let CC decide; otherwise passed as --model + effort string // "low" | "medium" | "high" — injected into system prompt outputVerbose bool // false = compact answer style; true = previous detailed style narrateToolCalls string // "off" | "brief" | "full" — see narrationDirective permissionMode string // "standard" | "unattended" — see Run() for behavior - ccSessionID string // CC's own session ID, for --resume - mcpConfigPath string // temp MCP config written once per qmax session - mcpConfigInfo os.FileInfo - sctx *api.SessionContext - lastToolName string // track last tool name for result display - fileSnaps map[string]fileSnapshot // CC tool_use id → pre-edit snapshot - lastTurnIn int // token usage of the most recent turn (from CC's result event) - lastTurnOut int - lastTurnOK bool // true once a result event carried usage this turn - mu sync.Mutex - runMu sync.Mutex - runCancel context.CancelFunc // non-nil while Run() is active + ccSessionID string // CC's own session ID, for --resume + mcpConfigPath string // temp MCP config written once per qmax session + mcpConfigInfo os.FileInfo + sctx *api.SessionContext + lastToolName string // track last tool name for result display + fileSnaps map[string]fileSnapshot // CC tool_use id → pre-edit snapshot + lastTurnIn int // token usage of the most recent turn (from CC's result event) + lastTurnOut int + lastTurnOK bool // true once a result event carried usage this turn + mu sync.Mutex + runMu sync.Mutex + runCancel context.CancelFunc // non-nil while Run() is active } // ccStandardAllowlist is the curated list passed to `claude --allowedTools` in diff --git a/internal/agent/cc_agent_session_test.go b/internal/agent/cc_agent_session_test.go index f5c2281..500e4d2 100644 --- a/internal/agent/cc_agent_session_test.go +++ b/internal/agent/cc_agent_session_test.go @@ -17,9 +17,9 @@ import ( "strings" "testing" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/session" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/session" + "github.com/Quality-Max/qmax-code/internal/tui" ) // mockCLIAgent is a CLIAgent stub that returns scripted responses without diff --git a/internal/agent/cerebras.go b/internal/agent/cerebras.go index f89ac65..d45f7fa 100644 --- a/internal/agent/cerebras.go +++ b/internal/agent/cerebras.go @@ -10,8 +10,8 @@ import ( "strings" "time" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/httpx" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/httpx" ) // Cerebras integration — drive the full native agent loop through Cerebras's diff --git a/internal/agent/cerebras_agent.go b/internal/agent/cerebras_agent.go index 342b432..c36f613 100644 --- a/internal/agent/cerebras_agent.go +++ b/internal/agent/cerebras_agent.go @@ -5,9 +5,9 @@ import ( "encoding/json" "fmt" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/session" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/session" + "github.com/Quality-Max/qmax-code/internal/tui" ) // RunCerebrasAgent runs a complete conversation turn through Cerebras using diff --git a/internal/agent/cerebras_agent_test.go b/internal/agent/cerebras_agent_test.go index b6aa2af..be8f12b 100644 --- a/internal/agent/cerebras_agent_test.go +++ b/internal/agent/cerebras_agent_test.go @@ -8,8 +8,8 @@ import ( "strings" "testing" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/tui" ) // captureStdout redirects os.Stdout for the duration of fn and returns diff --git a/internal/agent/cerebras_test.go b/internal/agent/cerebras_test.go index 46262aa..ddccf61 100644 --- a/internal/agent/cerebras_test.go +++ b/internal/agent/cerebras_test.go @@ -5,7 +5,7 @@ import ( "strings" "testing" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) func TestValidateCerebrasKey(t *testing.T) { diff --git a/internal/agent/codex_agent.go b/internal/agent/codex_agent.go index 3dcf15c..8ce9bdc 100644 --- a/internal/agent/codex_agent.go +++ b/internal/agent/codex_agent.go @@ -10,10 +10,10 @@ import ( "sync" "time" - "github.com/qualitymax/qmax-code/codexrunner" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/sysutil" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/codexrunner" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/sysutil" + "github.com/Quality-Max/qmax-code/internal/tui" ) // CodexAgent orchestrates an OpenAI Codex CLI subprocess for LLM inference. @@ -36,15 +36,15 @@ type CodexAgent struct { narrateToolCalls string // "off" | "brief" | "full" — see narrationDirective sctx *api.SessionContext continuity *codexrunner.Continuity - lastTurnIn int // token usage of the most recent turn, when codex reports it - lastTurnOut int - lastTurnOK bool - lastLimitHit bool // true if the plan limit was hit this turn - lastLimitReset time.Time // provider-reported reset (usually zero for codex) - mu sync.Mutex - turnMu sync.Mutex // keeps checkpoint selection and execution atomic - runMu sync.Mutex - runCancel context.CancelFunc // non-nil while Run() is active + lastTurnIn int // token usage of the most recent turn, when codex reports it + lastTurnOut int + lastTurnOK bool + lastLimitHit bool // true if the plan limit was hit this turn + lastLimitReset time.Time // provider-reported reset (usually zero for codex) + mu sync.Mutex + turnMu sync.Mutex // keeps checkpoint selection and execution atomic + runMu sync.Mutex + runCancel context.CancelFunc // non-nil while Run() is active } // FindCodex returns the path to the codex CLI binary, or "" if not installed. diff --git a/internal/agent/codex_agent_continuity_test.go b/internal/agent/codex_agent_continuity_test.go index c638cc3..3fc834e 100644 --- a/internal/agent/codex_agent_continuity_test.go +++ b/internal/agent/codex_agent_continuity_test.go @@ -6,8 +6,8 @@ import ( "strings" "testing" - "github.com/qualitymax/qmax-code/codexrunner" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/codexrunner" + "github.com/Quality-Max/qmax-code/internal/api" ) func TestCodexAgentUsesNativeContinuityAndClearStartsFresh(t *testing.T) { diff --git a/internal/agent/conversation.go b/internal/agent/conversation.go index 19fde35..9b33c77 100644 --- a/internal/agent/conversation.go +++ b/internal/agent/conversation.go @@ -7,10 +7,10 @@ import ( "strings" "sync" - "github.com/qualitymax/qmax-code/codexrunner" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/session" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/codexrunner" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/session" + "github.com/Quality-Max/qmax-code/internal/tui" ) // AppendHistory adds messages to both the working context and lossless archive. diff --git a/internal/agent/conversation_test.go b/internal/agent/conversation_test.go index 084ff88..9c365da 100644 --- a/internal/agent/conversation_test.go +++ b/internal/agent/conversation_test.go @@ -9,9 +9,9 @@ import ( "strings" "testing" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/session" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/session" + "github.com/Quality-Max/qmax-code/internal/tui" ) type conversationSpy struct { diff --git a/internal/agent/fable_test.go b/internal/agent/fable_test.go index 4b2c9fc..89739a7 100644 --- a/internal/agent/fable_test.go +++ b/internal/agent/fable_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) type fableTestTransport func(*http.Request) (*http.Response, error) diff --git a/internal/agent/filediff.go b/internal/agent/filediff.go index cd8462e..ac3b799 100644 --- a/internal/agent/filediff.go +++ b/internal/agent/filediff.go @@ -6,7 +6,7 @@ import ( "path/filepath" "strings" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/tui" ) // fileSnapshot captures a file's pre-edit content so the TUI can render a live diff --git a/internal/agent/filediff_test.go b/internal/agent/filediff_test.go index e53bdba..3c3c1fb 100644 --- a/internal/agent/filediff_test.go +++ b/internal/agent/filediff_test.go @@ -5,23 +5,23 @@ import ( "path/filepath" "testing" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/tui" ) func TestIsFileEditTool(t *testing.T) { cases := map[string]bool{ - "edit_file": true, - "write_file": true, - "Edit": true, // Claude Code - "Write": true, - "NotebookEdit": true, - "qmax__edit_file": true, // mcp-prefixed - "opencode.edit": true, - "applypatch": true, - "read_file": false, - "bash": false, - "update_plan": false, - "webfetch": false, + "edit_file": true, + "write_file": true, + "Edit": true, // Claude Code + "Write": true, + "NotebookEdit": true, + "qmax__edit_file": true, // mcp-prefixed + "opencode.edit": true, + "applypatch": true, + "read_file": false, + "bash": false, + "update_plan": false, + "webfetch": false, } for name, want := range cases { if got := isFileEditTool(name); got != want { @@ -36,8 +36,8 @@ func TestToolPathFieldVariants(t *testing.T) { want string }{ {map[string]interface{}{"path": "a.go"}, "a.go"}, - {map[string]interface{}{"file_path": "b.go"}, "b.go"}, // CC - {map[string]interface{}{"filePath": "c.go"}, "c.go"}, // OpenCode + {map[string]interface{}{"file_path": "b.go"}, "b.go"}, // CC + {map[string]interface{}{"filePath": "c.go"}, "c.go"}, // OpenCode {map[string]interface{}{"notebook_path": "n.ipynb"}, "n.ipynb"}, {map[string]interface{}{"files": map[string]interface{}{"path": "d.go"}}, "d.go"}, {map[string]interface{}{"command": "ls"}, ""}, diff --git a/internal/agent/live_feed_extra_test.go b/internal/agent/live_feed_extra_test.go index fa4fb0f..e43a910 100644 --- a/internal/agent/live_feed_extra_test.go +++ b/internal/agent/live_feed_extra_test.go @@ -9,8 +9,8 @@ import ( "strings" "testing" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/sysutil" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/sysutil" ) // ─── annotateWithClientNote ─────────────────────────────────────────────────── diff --git a/internal/agent/live_feed_test.go b/internal/agent/live_feed_test.go index 6851bdb..3bbc698 100644 --- a/internal/agent/live_feed_test.go +++ b/internal/agent/live_feed_test.go @@ -3,7 +3,7 @@ package agent import ( "testing" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) // captureLiveURL pulls live_browser_url out of a status JSON payload diff --git a/internal/agent/local_only_test.go b/internal/agent/local_only_test.go index f9d92b3..c2a55f6 100644 --- a/internal/agent/local_only_test.go +++ b/internal/agent/local_only_test.go @@ -5,7 +5,7 @@ import ( "strings" "testing" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) func TestStandaloneToolCatalogsContainOnlyLocalTools(t *testing.T) { diff --git a/internal/agent/mcp_reconnect_test.go b/internal/agent/mcp_reconnect_test.go index 819cc15..0a0e03b 100644 --- a/internal/agent/mcp_reconnect_test.go +++ b/internal/agent/mcp_reconnect_test.go @@ -7,9 +7,9 @@ import ( "strings" "testing" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/sysutil" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/sysutil" + "github.com/Quality-Max/qmax-code/internal/tui" ) // withTempHome points $HOME at a fresh temp dir for the test and restores it diff --git a/internal/agent/ollama.go b/internal/agent/ollama.go index 5bf3554..d38f084 100644 --- a/internal/agent/ollama.go +++ b/internal/agent/ollama.go @@ -13,9 +13,9 @@ import ( "sync" "time" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/httpx" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/httpx" + "github.com/Quality-Max/qmax-code/internal/tui" ) // Ollama integration — use a self-hosted local model for chat and, diff --git a/internal/agent/ollama_agent.go b/internal/agent/ollama_agent.go index 8c48b20..c8c8d93 100644 --- a/internal/agent/ollama_agent.go +++ b/internal/agent/ollama_agent.go @@ -6,8 +6,8 @@ import ( "fmt" "strings" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/tui" ) // OllamaAgentMode provides a full Ollama-powered agent that handles both diff --git a/internal/agent/ollama_test.go b/internal/agent/ollama_test.go index 2cb179c..bb3d373 100644 --- a/internal/agent/ollama_test.go +++ b/internal/agent/ollama_test.go @@ -3,10 +3,9 @@ package agent import ( "testing" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) - func TestValidateOllamaURL(t *testing.T) { tests := []struct { name string diff --git a/internal/agent/opencode_agent.go b/internal/agent/opencode_agent.go index 54e2fe6..adae125 100644 --- a/internal/agent/opencode_agent.go +++ b/internal/agent/opencode_agent.go @@ -16,8 +16,8 @@ import ( "sync" "time" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/tui" ) // OpenCodeAgent orchestrates an opencode CLI subprocess for LLM inference. diff --git a/internal/agent/opencode_config.go b/internal/agent/opencode_config.go index 764690b..330899c 100644 --- a/internal/agent/opencode_config.go +++ b/internal/agent/opencode_config.go @@ -13,8 +13,8 @@ import ( "strings" "time" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/sysutil" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/sysutil" ) // userOpenCodeConfigDir returns the directory opencode reads its own global diff --git a/internal/agent/opencode_config_test.go b/internal/agent/opencode_config_test.go index fe7efe6..c068597 100644 --- a/internal/agent/opencode_config_test.go +++ b/internal/agent/opencode_config_test.go @@ -9,7 +9,7 @@ import ( "testing" "time" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) func TestWriteOpenCodeConfigProducesProviderBlockAndMCP(t *testing.T) { diff --git a/internal/agent/opencode_run_test.go b/internal/agent/opencode_run_test.go index bbea7ed..e23f559 100644 --- a/internal/agent/opencode_run_test.go +++ b/internal/agent/opencode_run_test.go @@ -7,8 +7,8 @@ import ( "strings" "testing" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/tui" ) // TestRedactStderrTail pins the defensive redaction applied to the stderr tail diff --git a/internal/agent/opencode_stream_test.go b/internal/agent/opencode_stream_test.go index 39464c0..c45028d 100644 --- a/internal/agent/opencode_stream_test.go +++ b/internal/agent/opencode_stream_test.go @@ -4,7 +4,7 @@ import ( "strings" "testing" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/tui" ) // ocSuccessStream is a real stream captured from diff --git a/internal/agent/orphaned_tool_use_test.go b/internal/agent/orphaned_tool_use_test.go index a4c4b5b..8895f63 100644 --- a/internal/agent/orphaned_tool_use_test.go +++ b/internal/agent/orphaned_tool_use_test.go @@ -3,7 +3,7 @@ package agent import ( "testing" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) // Regression for the "messages.13.content: Input should be a valid list" diff --git a/internal/agent/plan.go b/internal/agent/plan.go index 547d889..d97dec0 100644 --- a/internal/agent/plan.go +++ b/internal/agent/plan.go @@ -5,7 +5,7 @@ import ( "fmt" "strings" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/tui" ) // PlanStep is a single entry in the agent's task plan, surfaced via update_plan. diff --git a/internal/agent/plan_test.go b/internal/agent/plan_test.go index adff775..9744b2c 100644 --- a/internal/agent/plan_test.go +++ b/internal/agent/plan_test.go @@ -5,7 +5,7 @@ import ( "strings" "testing" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) func TestParsePlanSteps_Valid(t *testing.T) { diff --git a/internal/agent/retry.go b/internal/agent/retry.go index 85787a1..a6a0b7a 100644 --- a/internal/agent/retry.go +++ b/internal/agent/retry.go @@ -7,7 +7,7 @@ import ( "strconv" "time" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/tui" ) const maxAPIRetries = 3 diff --git a/internal/agent/tools.go b/internal/agent/tools.go index 2d877f9..8155587 100644 --- a/internal/agent/tools.go +++ b/internal/agent/tools.go @@ -15,11 +15,11 @@ import ( "strings" "time" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/httpx" - "github.com/qualitymax/qmax-code/internal/security" - "github.com/qualitymax/qmax-code/internal/sysutil" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/httpx" + "github.com/Quality-Max/qmax-code/internal/security" + "github.com/Quality-Max/qmax-code/internal/sysutil" + "github.com/Quality-Max/qmax-code/internal/tui" ) // jsonError formats msg as a JSON-encoded error object after redaction. diff --git a/internal/agent/tools_test.go b/internal/agent/tools_test.go index 05a61e9..9d667de 100644 --- a/internal/agent/tools_test.go +++ b/internal/agent/tools_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) func TestToolCost_Free(t *testing.T) { diff --git a/internal/api/auth.go b/internal/api/auth.go index 26303b6..29bd3f8 100644 --- a/internal/api/auth.go +++ b/internal/api/auth.go @@ -10,7 +10,7 @@ import ( "strings" "time" - "github.com/qualitymax/qmax-code/internal/httpx" + "github.com/Quality-Max/qmax-code/internal/httpx" ) // AuthConfig holds QualityMax authentication credentials. diff --git a/internal/api/claude_code_connection.go b/internal/api/claude_code_connection.go index 2312635..09b780f 100644 --- a/internal/api/claude_code_connection.go +++ b/internal/api/claude_code_connection.go @@ -8,8 +8,8 @@ import ( "io" "net/http" - "github.com/qualitymax/qmax-code/internal/httpx" - "github.com/qualitymax/qmax-code/internal/security" + "github.com/Quality-Max/qmax-code/internal/httpx" + "github.com/Quality-Max/qmax-code/internal/security" ) // ClaudeCodeConnection is the non-sensitive connection state returned by QualityMax. diff --git a/internal/api/client.go b/internal/api/client.go index cf01963..dc0f4f2 100644 --- a/internal/api/client.go +++ b/internal/api/client.go @@ -11,9 +11,9 @@ import ( "strings" "time" - "github.com/qualitymax/qmax-code/internal/httpx" - "github.com/qualitymax/qmax-code/internal/security" - "github.com/qualitymax/qmax-code/internal/sysutil" + "github.com/Quality-Max/qmax-code/internal/httpx" + "github.com/Quality-Max/qmax-code/internal/security" + "github.com/Quality-Max/qmax-code/internal/sysutil" ) // APIClient calls QualityMax REST API directly (no qmax CLI needed). diff --git a/internal/api/codex_connection.go b/internal/api/codex_connection.go index db73156..80a0c46 100644 --- a/internal/api/codex_connection.go +++ b/internal/api/codex_connection.go @@ -8,8 +8,8 @@ import ( "io" "net/http" - "github.com/qualitymax/qmax-code/internal/httpx" - "github.com/qualitymax/qmax-code/internal/security" + "github.com/Quality-Max/qmax-code/internal/httpx" + "github.com/Quality-Max/qmax-code/internal/security" ) // CodexConnection is the non-sensitive connection state returned by QualityMax. diff --git a/internal/gate/gate.go b/internal/gate/gate.go index 14371e1..6e1952c 100644 --- a/internal/gate/gate.go +++ b/internal/gate/gate.go @@ -14,7 +14,7 @@ import ( "time" "unicode" - "github.com/qualitymax/qmax-code/internal/security" + "github.com/Quality-Max/qmax-code/internal/security" ) const ( diff --git a/internal/httpx/httpx.go b/internal/httpx/httpx.go index 2b16114..275fb46 100644 --- a/internal/httpx/httpx.go +++ b/internal/httpx/httpx.go @@ -28,9 +28,9 @@ import ( "sync" "time" + "github.com/Quality-Max/qmax-code/internal/exposure" receipt "github.com/Quality-Max/qmax-receipt" "github.com/coder/websocket" - "github.com/qualitymax/qmax-code/internal/exposure" ) // NewClient returns an *http.Client whose Transport records every request into diff --git a/internal/mcp/cloud.go b/internal/mcp/cloud.go index cc369ad..2a6586f 100644 --- a/internal/mcp/cloud.go +++ b/internal/mcp/cloud.go @@ -12,10 +12,10 @@ import ( "time" "unicode" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/exposure" - "github.com/qualitymax/qmax-code/internal/httpx" - "github.com/qualitymax/qmax-code/internal/security" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/exposure" + "github.com/Quality-Max/qmax-code/internal/httpx" + "github.com/Quality-Max/qmax-code/internal/security" ) const ( diff --git a/internal/mcp/cloud_test.go b/internal/mcp/cloud_test.go index 3e82030..ff8b695 100644 --- a/internal/mcp/cloud_test.go +++ b/internal/mcp/cloud_test.go @@ -10,7 +10,7 @@ import ( "sync/atomic" "testing" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) func authenticatedTestState(cloudURL string) *serverState { diff --git a/internal/mcp/compat.go b/internal/mcp/compat.go index 8e4acd9..16e7f2f 100644 --- a/internal/mcp/compat.go +++ b/internal/mcp/compat.go @@ -6,7 +6,7 @@ import ( "strconv" "strings" - "github.com/qualitymax/qmax-code/internal/agent" + "github.com/Quality-Max/qmax-code/internal/agent" ) type compatibilityAlias struct { diff --git a/internal/mcp/server.go b/internal/mcp/server.go index 6b86f3d..7b80ba2 100644 --- a/internal/mcp/server.go +++ b/internal/mcp/server.go @@ -10,10 +10,10 @@ import ( "strconv" "strings" - "github.com/qualitymax/qmax-code/internal/agent" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/security" - "github.com/qualitymax/qmax-code/internal/sysutil" + "github.com/Quality-Max/qmax-code/internal/agent" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/security" + "github.com/Quality-Max/qmax-code/internal/sysutil" ) // RunServer starts an MCP (Model Context Protocol) server over stdin/stdout. diff --git a/internal/mcp/server_test.go b/internal/mcp/server_test.go index b558673..fc9c355 100644 --- a/internal/mcp/server_test.go +++ b/internal/mcp/server_test.go @@ -11,7 +11,7 @@ import ( "testing" "time" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) func TestHandleLineReturnsParseErrorForMalformedJSON(t *testing.T) { diff --git a/internal/repl/backend_switch_test.go b/internal/repl/backend_switch_test.go index 096db0b..e6f8d09 100644 --- a/internal/repl/backend_switch_test.go +++ b/internal/repl/backend_switch_test.go @@ -3,7 +3,7 @@ package repl import ( "testing" - "github.com/qualitymax/qmax-code/internal/agent" + "github.com/Quality-Max/qmax-code/internal/agent" ) func TestDeactivateEmbeddedBackendsClearsCerebrasAndOllamaMode(t *testing.T) { diff --git a/internal/repl/browserfeed.go b/internal/repl/browserfeed.go index f175eae..8a0ef94 100644 --- a/internal/repl/browserfeed.go +++ b/internal/repl/browserfeed.go @@ -22,7 +22,7 @@ import ( tea "github.com/charmbracelet/bubbletea" "golang.org/x/term" - "github.com/qualitymax/qmax-code/internal/vnc" + "github.com/Quality-Max/qmax-code/internal/vnc" ) type blockMode int diff --git a/internal/repl/cli_continuity_test.go b/internal/repl/cli_continuity_test.go index c7b7a90..0d15a91 100644 --- a/internal/repl/cli_continuity_test.go +++ b/internal/repl/cli_continuity_test.go @@ -3,9 +3,9 @@ package repl import ( "testing" - "github.com/qualitymax/qmax-code/internal/agent" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/agent" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/tui" ) func TestAPIModelSelectionUpdatesRoutingAndStartupPreference(t *testing.T) { diff --git a/internal/repl/gate_test.go b/internal/repl/gate_test.go index ee98e84..0037c82 100644 --- a/internal/repl/gate_test.go +++ b/internal/repl/gate_test.go @@ -3,7 +3,7 @@ package repl import ( "testing" - "github.com/qualitymax/qmax-code/internal/gate" + "github.com/Quality-Max/qmax-code/internal/gate" ) func TestParseGateCommand(t *testing.T) { diff --git a/internal/repl/live_feed.go b/internal/repl/live_feed.go index ef18f3f..1df7673 100644 --- a/internal/repl/live_feed.go +++ b/internal/repl/live_feed.go @@ -6,9 +6,9 @@ import ( "fmt" "time" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/tui" - "github.com/qualitymax/qmax-code/internal/vnc" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/vnc" ) // maybeLaunchLiveFeed opens /browserfeed using a pre-established VNCStream diff --git a/internal/repl/live_feed_test.go b/internal/repl/live_feed_test.go index 42fee44..ee4e402 100644 --- a/internal/repl/live_feed_test.go +++ b/internal/repl/live_feed_test.go @@ -12,9 +12,9 @@ import ( "github.com/coder/websocket" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/tui" - "github.com/qualitymax/qmax-code/internal/vnc" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/vnc" ) // Tests for the REPL-side live-feed plumbing (maybeLaunchLiveFeed, diff --git a/internal/repl/planwindow_turn_test.go b/internal/repl/planwindow_turn_test.go index 91e7b23..ea872bc 100644 --- a/internal/repl/planwindow_turn_test.go +++ b/internal/repl/planwindow_turn_test.go @@ -5,7 +5,7 @@ import ( "testing" "time" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) // limitReporter is a CLI agent stub that reports a plan-limit hit. diff --git a/internal/repl/repl.go b/internal/repl/repl.go index 7ea63f8..7df668d 100644 --- a/internal/repl/repl.go +++ b/internal/repl/repl.go @@ -19,15 +19,15 @@ import ( "syscall" "time" - "github.com/qualitymax/qmax-code/internal/agent" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/gate" - "github.com/qualitymax/qmax-code/internal/session" - "github.com/qualitymax/qmax-code/internal/setup" - "github.com/qualitymax/qmax-code/internal/sysutil" - "github.com/qualitymax/qmax-code/internal/tui" - "github.com/qualitymax/qmax-code/internal/update" - "github.com/qualitymax/qmax-code/internal/vnc" + "github.com/Quality-Max/qmax-code/internal/agent" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/gate" + "github.com/Quality-Max/qmax-code/internal/session" + "github.com/Quality-Max/qmax-code/internal/setup" + "github.com/Quality-Max/qmax-code/internal/sysutil" + "github.com/Quality-Max/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/update" + "github.com/Quality-Max/qmax-code/internal/vnc" ) // Run is the REPL entrypoint. version is the qmax-code build version, diff --git a/internal/repl/repl_set_test.go b/internal/repl/repl_set_test.go index 170164e..1334bf5 100644 --- a/internal/repl/repl_set_test.go +++ b/internal/repl/repl_set_test.go @@ -3,9 +3,9 @@ package repl import ( "testing" - "github.com/qualitymax/qmax-code/internal/agent" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/agent" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/tui" ) func TestHandleSetCommandCloudSyncDocumentedKey(t *testing.T) { diff --git a/internal/repl/settings_test.go b/internal/repl/settings_test.go index 9f7f1f1..0d021f3 100644 --- a/internal/repl/settings_test.go +++ b/internal/repl/settings_test.go @@ -4,9 +4,9 @@ import ( "strings" "testing" - "github.com/qualitymax/qmax-code/internal/agent" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/agent" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/tui" ) // TestApplySettingStrictNumericParsing pins the Sscanf-to-Atoi fix: partial diff --git a/internal/session/cloud_session.go b/internal/session/cloud_session.go index 973942a..39d91b1 100644 --- a/internal/session/cloud_session.go +++ b/internal/session/cloud_session.go @@ -6,7 +6,7 @@ import ( "strings" "time" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) // PromptCloudSyncConsent asks the user once whether they want sessions synced diff --git a/internal/session/cloud_session_test.go b/internal/session/cloud_session_test.go index a7d9389..3ff8d98 100644 --- a/internal/session/cloud_session_test.go +++ b/internal/session/cloud_session_test.go @@ -7,7 +7,7 @@ import ( "os" "testing" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) // newTestClient wires an api.APIClient to a local httptest.Server so callers diff --git a/internal/session/conversation_test.go b/internal/session/conversation_test.go index 6f9e307..e587216 100644 --- a/internal/session/conversation_test.go +++ b/internal/session/conversation_test.go @@ -8,7 +8,7 @@ import ( "testing" "time" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) func TestDurableSessionIsAtomicPrivateAndRetained(t *testing.T) { diff --git a/internal/session/session.go b/internal/session/session.go index e842c43..13d221d 100644 --- a/internal/session/session.go +++ b/internal/session/session.go @@ -12,8 +12,8 @@ import ( "strings" "time" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/security" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/security" ) // Session represents a saved conversation session. diff --git a/internal/session/session_test.go b/internal/session/session_test.go index 8f40496..0715319 100644 --- a/internal/session/session_test.go +++ b/internal/session/session_test.go @@ -7,7 +7,7 @@ import ( "testing" "time" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) func TestGenerateSessionID(t *testing.T) { diff --git a/internal/session/stdin_queue_unix.go b/internal/session/stdin_queue_unix.go index 5b50b35..a1e4274 100644 --- a/internal/session/stdin_queue_unix.go +++ b/internal/session/stdin_queue_unix.go @@ -11,7 +11,7 @@ import ( "golang.org/x/sys/unix" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/tui" ) // StartQueueReader starts a background goroutine that reads chars from stdin diff --git a/internal/session/stdin_queue_windows.go b/internal/session/stdin_queue_windows.go index 88af413..c26c854 100644 --- a/internal/session/stdin_queue_windows.go +++ b/internal/session/stdin_queue_windows.go @@ -2,7 +2,7 @@ package session -import "github.com/qualitymax/qmax-code/internal/tui" +import "github.com/Quality-Max/qmax-code/internal/tui" // StartQueueReader is a no-op on Windows; the prompt queue still works via // /queue but concurrent stdin reading while streaming is not supported. diff --git a/internal/setup/agy.go b/internal/setup/agy.go index 7d94220..ea7c361 100644 --- a/internal/setup/agy.go +++ b/internal/setup/agy.go @@ -8,7 +8,7 @@ import ( "strings" "sync/atomic" - "github.com/qualitymax/qmax-code/internal/agent" + "github.com/Quality-Max/qmax-code/internal/agent" "golang.org/x/term" ) diff --git a/internal/setup/consent.go b/internal/setup/consent.go index db1a406..5a9a5f7 100644 --- a/internal/setup/consent.go +++ b/internal/setup/consent.go @@ -6,7 +6,7 @@ import ( "os" "strings" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) // ConsentResult is what activateBackend gets back from the consent prompt. diff --git a/internal/setup/framework_detect_test.go b/internal/setup/framework_detect_test.go index 26065ec..d08b5e3 100644 --- a/internal/setup/framework_detect_test.go +++ b/internal/setup/framework_detect_test.go @@ -5,7 +5,7 @@ import ( "path/filepath" "testing" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) // TestDetectProjectFramework exercises the first-run wizard's language diff --git a/internal/setup/interactive.go b/internal/setup/interactive.go index c9b0f4c..5750957 100644 --- a/internal/setup/interactive.go +++ b/internal/setup/interactive.go @@ -17,9 +17,9 @@ import ( "strings" "time" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/httpx" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/httpx" + "github.com/Quality-Max/qmax-code/internal/tui" ) var ( diff --git a/internal/setup/interactive_test.go b/internal/setup/interactive_test.go index b7dd38d..b196376 100644 --- a/internal/setup/interactive_test.go +++ b/internal/setup/interactive_test.go @@ -11,7 +11,7 @@ import ( "strings" "testing" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) func TestMintCLIAPIToken(t *testing.T) { diff --git a/internal/setup/orch.go b/internal/setup/orch.go index 99d23a8..b3519ae 100644 --- a/internal/setup/orch.go +++ b/internal/setup/orch.go @@ -7,9 +7,9 @@ import ( "path/filepath" "strings" - "github.com/qualitymax/qmax-code/internal/agent" - "github.com/qualitymax/qmax-code/internal/skills" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/agent" + "github.com/Quality-Max/qmax-code/internal/skills" + "github.com/Quality-Max/qmax-code/internal/tui" ) // InstallResult describes what autosetup did so the caller can display it. diff --git a/internal/sysutil/error_reporting.go b/internal/sysutil/error_reporting.go index 2f65a07..d7acdf4 100644 --- a/internal/sysutil/error_reporting.go +++ b/internal/sysutil/error_reporting.go @@ -8,8 +8,8 @@ import ( "github.com/getsentry/sentry-go" - "github.com/qualitymax/qmax-code/internal/httpx" - "github.com/qualitymax/qmax-code/internal/security" + "github.com/Quality-Max/qmax-code/internal/httpx" + "github.com/Quality-Max/qmax-code/internal/security" ) const ( diff --git a/internal/tui/media.go b/internal/tui/media.go index b707a16..80a8460 100644 --- a/internal/tui/media.go +++ b/internal/tui/media.go @@ -9,7 +9,7 @@ import ( "strings" "time" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) const largePastedTextThreshold = 8 * 1024 diff --git a/internal/tui/terminal.go b/internal/tui/terminal.go index 2cf3165..59e71a3 100644 --- a/internal/tui/terminal.go +++ b/internal/tui/terminal.go @@ -16,7 +16,7 @@ import ( "github.com/charmbracelet/lipgloss" "github.com/chzyer/readline" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) // ANSI color codes (kept for prompt and readline which don't use lipgloss) diff --git a/internal/tui/theme.go b/internal/tui/theme.go index 8b324eb..4830b29 100644 --- a/internal/tui/theme.go +++ b/internal/tui/theme.go @@ -6,7 +6,7 @@ import ( "github.com/charmbracelet/lipgloss" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) // Theme defines the full color palette for the terminal UI. diff --git a/internal/tui/tui_backend.go b/internal/tui/tui_backend.go index 17a3008..9d5611a 100644 --- a/internal/tui/tui_backend.go +++ b/internal/tui/tui_backend.go @@ -9,9 +9,9 @@ import ( tea "github.com/charmbracelet/bubbletea" "github.com/charmbracelet/lipgloss" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/httpx" - "github.com/qualitymax/qmax-code/internal/sysutil" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/httpx" + "github.com/Quality-Max/qmax-code/internal/sysutil" ) // ─── Styles ─────────────────────────────────────────────────────────────────── diff --git a/internal/tui/tui_backend_cc_test.go b/internal/tui/tui_backend_cc_test.go index 12eb3cc..9949d39 100644 --- a/internal/tui/tui_backend_cc_test.go +++ b/internal/tui/tui_backend_cc_test.go @@ -3,8 +3,8 @@ package tui import ( "testing" - "github.com/qualitymax/qmax-code/codexrunner" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/codexrunner" + "github.com/Quality-Max/qmax-code/internal/api" ) func TestPickerIncludesClaudeCodeFableSonnet5AndOpus55(t *testing.T) { diff --git a/internal/update/update.go b/internal/update/update.go index 1cdeecf..95fcfd4 100644 --- a/internal/update/update.go +++ b/internal/update/update.go @@ -19,15 +19,15 @@ import ( "strings" "time" - "github.com/qualitymax/qmax-code/internal/httpx" + "github.com/Quality-Max/qmax-code/internal/httpx" ) func bytesReader(b []byte) io.Reader { return bytes.NewReader(b) } const ( - releasesRepo = "Quality-Max/qmax-code-releases" - checkInterval = 24 * time.Hour - downloadLimit = 128 << 20 // 128 MiB cap for the asset download + releasesRepo = "Quality-Max/qmax-code-releases" + checkInterval = 24 * time.Hour + downloadLimit = 128 << 20 // 128 MiB cap for the asset download requestTimeout = 10 * time.Second ) diff --git a/internal/vnc/stream.go b/internal/vnc/stream.go index 99bd4da..2810323 100644 --- a/internal/vnc/stream.go +++ b/internal/vnc/stream.go @@ -23,8 +23,8 @@ import ( "sync" "time" + "github.com/Quality-Max/qmax-code/internal/httpx" "github.com/coder/websocket" - "github.com/qualitymax/qmax-code/internal/httpx" ) // VNCFrame is a snapshot of the framebuffer after one or more updates. diff --git a/main.go b/main.go index c70a84e..4939ea5 100644 --- a/main.go +++ b/main.go @@ -11,14 +11,14 @@ import ( xterm "golang.org/x/term" - "github.com/qualitymax/qmax-code/internal/agent" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/mcp" - "github.com/qualitymax/qmax-code/internal/repl" - "github.com/qualitymax/qmax-code/internal/session" - "github.com/qualitymax/qmax-code/internal/setup" - "github.com/qualitymax/qmax-code/internal/sysutil" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/agent" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/mcp" + "github.com/Quality-Max/qmax-code/internal/repl" + "github.com/Quality-Max/qmax-code/internal/session" + "github.com/Quality-Max/qmax-code/internal/setup" + "github.com/Quality-Max/qmax-code/internal/sysutil" + "github.com/Quality-Max/qmax-code/internal/tui" ) // Version is set at build time via -ldflags "-X main.Version=x.y.z" diff --git a/main_models.go b/main_models.go index 1bf9d76..bc51a64 100644 --- a/main_models.go +++ b/main_models.go @@ -3,8 +3,8 @@ package main import ( "fmt" - "github.com/qualitymax/qmax-code/codexrunner" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/codexrunner" + "github.com/Quality-Max/qmax-code/internal/api" ) // resolveSessionModel applies CLI selection to the active harness and returns diff --git a/main_models_test.go b/main_models_test.go index fadc047..6de95e2 100644 --- a/main_models_test.go +++ b/main_models_test.go @@ -3,7 +3,7 @@ package main import ( "testing" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) func TestResolveSessionModel(t *testing.T) { diff --git a/main_oneshot_test.go b/main_oneshot_test.go index a7e1554..7104670 100644 --- a/main_oneshot_test.go +++ b/main_oneshot_test.go @@ -5,10 +5,10 @@ import ( "os" "testing" - "github.com/qualitymax/qmax-code/internal/agent" - "github.com/qualitymax/qmax-code/internal/api" - "github.com/qualitymax/qmax-code/internal/session" - "github.com/qualitymax/qmax-code/internal/tui" + "github.com/Quality-Max/qmax-code/internal/agent" + "github.com/Quality-Max/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/session" + "github.com/Quality-Max/qmax-code/internal/tui" ) func TestSaveSessionFlagOverridesAutoSaveWithoutChangingOtherConfig(t *testing.T) { diff --git a/main_validation_test.go b/main_validation_test.go index df98b62..c8097b9 100644 --- a/main_validation_test.go +++ b/main_validation_test.go @@ -3,7 +3,7 @@ package main import ( "testing" - "github.com/qualitymax/qmax-code/internal/agent" + "github.com/Quality-Max/qmax-code/internal/agent" ) // TestIsValidModelName is the regression test for QUA-579: pre-fix, the diff --git a/resolve_model_test.go b/resolve_model_test.go index 435cd20..256e2e9 100644 --- a/resolve_model_test.go +++ b/resolve_model_test.go @@ -3,7 +3,7 @@ package main import ( "testing" - "github.com/qualitymax/qmax-code/internal/api" + "github.com/Quality-Max/qmax-code/internal/api" ) func TestResolveModelUsesCentralModelConstants(t *testing.T) {