Rebrand: Nexus Terminal → Alchementary Link

Renames the product across the codebase: Go module path, config/data
paths, keychain service name, export file extension, build tooling,
docs, and UI text. Sidebar brand mark now reads ">_ AlchementaryLink"
with "Alchementary" in the connection-group gold accent colour, and
the window title is "Alchementary Link".

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019T8bJS8BCtY5GeSG2HBj1n
This commit is contained in:
Andy Dixon
2026-09-03 16:41:23 +01:00
co-authored by Claude Sonnet 5
parent 114060127f
commit 1a380a0e99
135 changed files with 678 additions and 674 deletions
+18 -18
View File
@@ -24,17 +24,17 @@ import (
"github.com/pquerna/otp/totp"
wailsRuntime "github.com/wailsapp/wails/v2/pkg/runtime"
"github.com/andydixon/nexus/internal/audit"
"github.com/andydixon/nexus/internal/exportimport"
"github.com/andydixon/nexus/internal/localshell"
"github.com/andydixon/nexus/internal/models"
"github.com/andydixon/nexus/internal/preferences"
"github.com/andydixon/nexus/internal/secrets"
"github.com/andydixon/nexus/internal/sessions"
"github.com/andydixon/nexus/internal/sshconfig"
"github.com/andydixon/nexus/internal/storage"
"github.com/andydixon/nexus/internal/updater"
"github.com/andydixon/nexus/internal/validation"
"github.com/andydixon/link/internal/audit"
"github.com/andydixon/link/internal/exportimport"
"github.com/andydixon/link/internal/localshell"
"github.com/andydixon/link/internal/models"
"github.com/andydixon/link/internal/preferences"
"github.com/andydixon/link/internal/secrets"
"github.com/andydixon/link/internal/sessions"
"github.com/andydixon/link/internal/sshconfig"
"github.com/andydixon/link/internal/storage"
"github.com/andydixon/link/internal/updater"
"github.com/andydixon/link/internal/validation"
"github.com/google/uuid"
)
@@ -1291,9 +1291,9 @@ func (s *Service) ExportProfilesEncrypted(profileIDs []string, password string)
// Prompt for save location.
path, err := wailsRuntime.SaveFileDialog(s.ctx, wailsRuntime.SaveDialogOptions{
Title: "Export Encrypted Profiles",
DefaultFilename: "nexus-profiles.nexus",
DefaultFilename: "link-profiles.link",
Filters: []wailsRuntime.FileFilter{
{DisplayName: "Nexus Export (*.nexus)", Pattern: "*.nexus"},
{DisplayName: "Link Export (*.link)", Pattern: "*.link"},
},
})
if err != nil {
@@ -1303,9 +1303,9 @@ func (s *Service) ExportProfilesEncrypted(profileIDs []string, password string)
return "", fmt.Errorf("export cancelled")
}
// Ensure .nexus extension.
if filepath.Ext(path) != ".nexus" {
path += ".nexus"
// Ensure .link extension.
if filepath.Ext(path) != ".link" {
path += ".link"
}
if err := exportimport.EncryptAndExport(profiles, password, path); err != nil {
@@ -1327,7 +1327,7 @@ func (s *Service) ImportProfilesEncrypted(password string, strategy string) (int
path, err := wailsRuntime.OpenFileDialog(s.ctx, wailsRuntime.OpenDialogOptions{
Title: "Import Encrypted Profiles",
Filters: []wailsRuntime.FileFilter{
{DisplayName: "Nexus Export (*.nexus)", Pattern: "*.nexus"},
{DisplayName: "Link Export (*.link)", Pattern: "*.link"},
},
})
if err != nil {
@@ -2023,7 +2023,7 @@ func (s *Service) GenerateSSHKey(name string, keyType string, bits int, passphra
}
// Build ssh-keygen arguments
args := []string{"-t", keyType, "-f", keyPath, "-C", name + "@nexus-terminal"}
args := []string{"-t", keyType, "-f", keyPath, "-C", name + "@alchementary-link"}
if passphrase != "" {
args = append(args, "-N", passphrase)
} else {
+4 -4
View File
@@ -7,10 +7,10 @@ import (
"strings"
"testing"
"github.com/andydixon/nexus/internal/audit"
"github.com/andydixon/nexus/internal/leviathan/document"
"github.com/andydixon/nexus/internal/models"
"github.com/andydixon/nexus/internal/storage"
"github.com/andydixon/link/internal/audit"
"github.com/andydixon/link/internal/leviathan/document"
"github.com/andydixon/link/internal/models"
"github.com/andydixon/link/internal/storage"
)
type closeTrackingWriter struct {
+11 -11
View File
@@ -17,17 +17,17 @@ import (
wailsRuntime "github.com/wailsapp/wails/v2/pkg/runtime"
"github.com/andydixon/nexus/internal/leviathan/analysis"
"github.com/andydixon/nexus/internal/leviathan/binsnoop"
"github.com/andydixon/nexus/internal/leviathan/disasm"
"github.com/andydixon/nexus/internal/leviathan/document"
"github.com/andydixon/nexus/internal/leviathan/parsers"
"github.com/andydixon/nexus/internal/leviathan/patch"
"github.com/andydixon/nexus/internal/leviathan/pdf"
"github.com/andydixon/nexus/internal/leviathan/spectrogram"
"github.com/andydixon/nexus/internal/leviathan/squashfs"
"github.com/andydixon/nexus/internal/leviathan/stego"
"github.com/andydixon/nexus/internal/leviathan/transforms"
"github.com/andydixon/link/internal/leviathan/analysis"
"github.com/andydixon/link/internal/leviathan/binsnoop"
"github.com/andydixon/link/internal/leviathan/disasm"
"github.com/andydixon/link/internal/leviathan/document"
"github.com/andydixon/link/internal/leviathan/parsers"
"github.com/andydixon/link/internal/leviathan/patch"
"github.com/andydixon/link/internal/leviathan/pdf"
"github.com/andydixon/link/internal/leviathan/spectrogram"
"github.com/andydixon/link/internal/leviathan/squashfs"
"github.com/andydixon/link/internal/leviathan/stego"
"github.com/andydixon/link/internal/leviathan/transforms"
)
type leviathanState struct {