Move the canonical host to git.zacharyzhang.com and follow the module path
ci / backend (push) Failing after 3m25s
ci / mcp (push) Successful in 21s
ci / interface (push) Successful in 19s
ci / image (push) Failing after 1m5s

The GitHub account that hosted this repository is suspended, so the remote
is dead and the vanity import github.com/ZacharyZhang-NY/ely-eye/... no
longer resolves. The Go module path is that import, so it moves with the
host: git.zacharyzhang.com serves a go-import meta tag for the nested
ely-eye-mcp submodule, which go build and go get both need.

The installers read release assets from the host too, so their API and
download URLs move with it. The release workflow's -ldflags symbol path is
the module path, so it moves as well; a build stamped with the new path
prints the stamped version.
This commit is contained in:
ZacharyZhang-NY committed 2026-10-10 11:26:19 -04:00
1 parent 3b87b77b7f
commit eb50367921
28 files changed
+44 -41

No files matched your search

+1 -1
View File
@@ -37,7 +37,7 @@ jobs:
version="${GITHUB_REF_NAME#mcp-}"
binary="ely-eye-mcp"
if [ "$GOOS" = "windows" ]; then binary="ely-eye-mcp.exe"; fi
ldflags="-s -w -X github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/cli.version=${version}"
ldflags="-s -w -X git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/cli.version=${version}"
mkdir -p dist
go build -trimpath -ldflags "$ldflags" -o "dist/${binary}" ./cmd/ely-eye-mcp
base="ely-eye-mcp_${GOOS}_${GOARCH}"
+4 -1
View File
@@ -70,7 +70,10 @@ go run ./cmd/ely-eye-mcp server --ely-eye-home /path/to/.ely_eye
## Releases
Pushing a `mcp-v*` tag runs `.github/workflows/mcp-release.yml`, which cross-compiles the pure-Go server (CGO disabled) for Linux, macOS, and Windows on amd64 and arm64, then publishes the archives with a `SHA256SUMS` manifest to a GitHub Release. The installers consume those assets.
Pushing a `mcp-v*` tag runs `.github/workflows/mcp-release.yml`, which Gitea Actions
picks up, cross-compiles the pure-Go server (CGO disabled) for Linux, macOS, and
Windows on amd64 and arm64, then publishes the archives with a `SHA256SUMS`
manifest to a release on git.zacharyzhang.com. The installers consume those assets.
## Security posture
+1 -1
View File
@@ -5,7 +5,7 @@ import (
"fmt"
"os"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/cli"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/cli"
)
func main() {
+1 -1
View File
@@ -1,4 +1,4 @@
module github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp
module git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp
go 1.25.0
+3 -3
View File
@@ -55,7 +55,7 @@ function Get-Platform {
function Resolve-Version {
if ($Version) { return $Version }
try {
$releases = Invoke-RestMethod -Uri "https://api.github.com/repos/$Repo/releases" -Headers @{ "User-Agent" = "ely-eye-mcp-installer" }
$releases = Invoke-RestMethod -Uri "https://git.zacharyzhang.com/api/v1/repos/$Repo/releases" -Headers @{ "User-Agent" = "ely-eye-mcp-installer" }
}
catch { return "" }
$match = $releases | Where-Object { $_.tag_name -like "mcp-*" } | Select-Object -First 1
@@ -79,8 +79,8 @@ function Build-FromSource {
function Download-Binary([string]$Tag) {
$platform = Get-Platform
$asset = "ely-eye-mcp_$platform.zip"
$url = "https://github.com/$Repo/releases/download/$Tag/$asset"
$sumsUrl = "https://github.com/$Repo/releases/download/$Tag/ely-eye-mcp_SHA256SUMS.txt"
$url = "https://git.zacharyzhang.com/$Repo/releases/download/$Tag/$asset"
$sumsUrl = "https://git.zacharyzhang.com/$Repo/releases/download/$Tag/ely-eye-mcp_SHA256SUMS.txt"
$tmp = Join-Path ([IO.Path]::GetTempPath()) ("ely-eye-mcp-" + [Guid]::NewGuid().ToString("N"))
New-Item -ItemType Directory -Force -Path $tmp | Out-Null
try {
+4 -4
View File
@@ -3,7 +3,7 @@ set -euo pipefail
# Ely-Eye MCP installer for Linux and macOS.
#
# curl -fsSL https://raw.githubusercontent.com/ZacharyZhang-NY/ely-eye/main/ely-eye-mcp/install.sh | bash
# curl -fsSL https://git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/raw/branch/main/ely-eye-mcp/install.sh | bash
#
# By default it downloads a prebuilt, checksum-verified binary for this platform
# and needs no toolchain. Run with --method source from a repository checkout to
@@ -79,7 +79,7 @@ sha256() {
resolve_version() {
if [[ -n "$VERSION" ]]; then echo "$VERSION"; return 0; fi
local body
body="$(curl -fsSL "https://api.github.com/repos/${REPO}/releases" 2>/dev/null)" || return 0
body="$(curl -fsSL "https://git.zacharyzhang.com/api/v1/repos/${REPO}/releases" 2>/dev/null)" || return 0
printf '%s\n' "$body" \
| grep -oE '"tag_name": *"mcp-[^"]*"' \
| head -n 1 \
@@ -97,8 +97,8 @@ download_binary() {
local tag="$1" platform asset url sums tmp
platform="$(detect_platform)"
asset="ely-eye-mcp_${platform}.tar.gz"
url="https://github.com/${REPO}/releases/download/${tag}/${asset}"
sums="https://github.com/${REPO}/releases/download/${tag}/ely-eye-mcp_SHA256SUMS.txt"
url="https://git.zacharyzhang.com/${REPO}/releases/download/${tag}/${asset}"
sums="https://git.zacharyzhang.com/${REPO}/releases/download/${tag}/ely-eye-mcp_SHA256SUMS.txt"
tmp="$(mktemp -d)"
trap 'rm -rf "$tmp"' RETURN
echo "Downloading $asset from release $tag."
+1 -1
View File
@@ -16,7 +16,7 @@ import (
"strings"
"time"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
)
const maxErrorBody = 4096
+4 -4
View File
@@ -8,10 +8,10 @@ import (
"fmt"
"os"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/config"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/mcpserver"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/setup"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/store"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/config"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/mcpserver"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/setup"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/store"
)
// version is stamped at release build time via -ldflags -X. The default is the
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"strings"
"unicode/utf8"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
)
var profileBudgets = map[string]int64{
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"context"
"strings"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"github.com/modelcontextprotocol/go-sdk/mcp"
)
@@ -8,7 +8,7 @@ import (
"strings"
"testing"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
)
const storeCardBody = `{"schema_version":11,"atoms":3,"sources":3,"modalities":{"text":2,"image":1},
@@ -4,7 +4,7 @@ import (
"context"
"errors"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"github.com/modelcontextprotocol/go-sdk/mcp"
)
@@ -9,7 +9,7 @@ import (
"strings"
"testing"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
)
func directoryServer(t *testing.T, body string, seen *[]string) *httptest.Server {
@@ -4,7 +4,7 @@ import (
"context"
"errors"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"github.com/modelcontextprotocol/go-sdk/mcp"
)
@@ -7,7 +7,7 @@ import (
"strings"
"testing"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
)
const manifestBody = `{"cartridge_id":"home_1","name":"home","created_at":"2026-05-01T12:00:00Z",` +
@@ -8,7 +8,7 @@ import (
"strings"
"testing"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
)
func searchTestServer(t *testing.T, recorded *map[string]any) *httptest.Server {
+3 -3
View File
@@ -8,9 +8,9 @@ import (
"path/filepath"
"strings"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/config"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/store"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/config"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/store"
"github.com/modelcontextprotocol/go-sdk/mcp"
)
+1 -1
View File
@@ -3,7 +3,7 @@ package mcpserver
import (
"context"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"github.com/modelcontextprotocol/go-sdk/mcp"
)
@@ -6,7 +6,7 @@ import (
"net/http/httptest"
"testing"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
)
// askingServer records the path and query string of every request so a test can
+3 -3
View File
@@ -4,9 +4,9 @@ import (
"context"
"errors"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/contextpack"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/contextpack"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"github.com/modelcontextprotocol/go-sdk/mcp"
)
@@ -4,7 +4,7 @@ import (
"context"
"errors"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"github.com/modelcontextprotocol/go-sdk/mcp"
)
@@ -9,7 +9,7 @@ import (
"strings"
"testing"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/apiclient"
)
func recordingServer(t *testing.T, status int, body string, seen *[]string) *httptest.Server {
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"path/filepath"
"strings"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/config"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/config"
)
type Options struct {
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"errors"
"strings"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
)
func (s *Store) FetchAtom(ctx context.Context, atomID string) (domain.Atom, error) {
+1 -1
View File
@@ -8,7 +8,7 @@ import (
"os"
"path/filepath"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
)
func (s *Store) ListCartridges(ctx context.Context, limit int) ([]domain.Cartridge, error) {
+1 -1
View File
@@ -11,7 +11,7 @@ import (
"strconv"
"strings"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
)
func (s *Store) evalProofsRoot() string {
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"sort"
"time"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
)
type proofDir struct {
+2 -2
View File
@@ -7,8 +7,8 @@ import (
"net/url"
"path/filepath"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/config"
"github.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/config"
"git.zacharyzhang.com/ZacharyZhang-NY/ely-eye/ely-eye-mcp/internal/domain"
_ "modernc.org/sqlite"
)