Repository navigation
Rename tracker: Loft -> Devsy, Pro -> Platform #1551
Copy link
Copy link
Open
Labels
renameLoft/Pro renameLoft/Pro rename
Description
Tracks the repo-wide rename: Loft -> Devsy, product Pro -> Platform (devsy pro -> devsy platform). Maintained by the Devsy Rename bot; updated every run. Approve/decline T3 items in a comment.
Remaining (origin/main, excl. go.sum)
- Loft, case-insensitive substring: 39 lines / 14 files (was 217 / 41). All remaining hits are T3 literals/kept: cmd/pro 31 (helm release/chart
loft,loft-*secrets/ingress,loft-datavolume,/var/lib/loft,loft.my-domain.tldexample, test product), pkg/platform 2 (kubeconfig context,loft-p-), pkg/driver 2 + renovate.json 1 (kept), e2e 2 (examples URL), pkg/workspace 1 (test path/home/loft/devsy, incidental) - Pro (product tokens, PCRE per skill, excl .github/go.sum/renovate.json, origin/main after refactor(cmd): rename pro product text to platform in cmd/pro and workspace commands #1622, 2026-10-20): 277 lines / 99 files (cmd/pro ~190, mostly import paths
cmd/pro/.../proflags/proutilthat go with the dir move, anddevsy procommand strings; hack/pro 20, cmd/env_flags_test 15, pkg/provider 10 (test), providers 4, pkg/ide 4 (3rd-party "One Dark Pro", keep), cmd/root.go 5, CONTRIBUTING 4, goreleaser 4)- most remaining cmd/pro hits are import paths (
cmd/pro/...,proflags,proutil) that go away with the dir move, CLI command strings (devsy pro ..., T2) and thedevsy-proprovider YAML (T3)
- most remaining cmd/pro hits are import paths (
Checklist
- Loft T1: kube.Interface
Loft()accessor ->Devsy()+loftclientaliases (refactor(platform): rename kube Loft accessor to Devsy #1552, merged) - Loft T1: pkg/platform locals/comments/error text +
annotations.DirectClusterEndpoint(refactor(platform): rename loft to devsy in pkg/platform #1561, merged; leftovers kubeconfig context "loft" and "loft-p-" are T3) - Loft T1: cmd/pro, pkg/config, pkg/provider, pkg/workspace identifiers/comments/text +
EnvLoftProject->EnvProject,EnvLoftFilterByOwner->EnvFilterByOwner(values unchanged) (refactor(cli): rename loft to devsy in pro commands and env vars #1568, merged) - Loft consts:
EnvLoftProject->EnvProject,EnvLoftFilterByOwner->EnvFilterByOwner(in refactor(cli): rename loft to devsy in pro commands and env vars #1568; values unchanged, T1);LoftDirectClusterEndpointdone in refactor(platform): rename loft to devsy in pkg/platform #1561 - Pro T1:
ProWorkspaceInstance/status/types/methods ->WorkspaceInstancein pkg/daemon/platform and cmd/pro/provider/watch (refactor(platform): rename pro to platform in workspace instance types #1571, merged) - Pro T1: pkg/workspace unexported helpers/comments/log text,
ListProInstances->ListPlatformInstances,FindProviderProInstance->FindProviderPlatformInstance, pro.go->platform.go (refactor(workspace): rename pro to platform in pkg/workspace #1580, merged; 114 -> 23 hits) - Pro T1:
provider.ProMetadata/Workspace.Pro/IsPro()->PlatformMetadata/Workspace.Platform/IsPlatform()(json tagprokept, T3) (refactor(provider): rename ProMetadata and Workspace.Pro to Platform #1585, merged) - Pro T1: ProInstance family -> PlatformInstance (pkg/provider, pkg/config, pkg/platform, callers;
pro.json/pro_instanceson-disk names kept, T3) (refactor(provider): rename ProInstance to PlatformInstance #1593, merged) - Pro T1: cmd Go identifiers (NewProCmd, proCmd, FindProProvider, ...; values/text unchanged) -- refactor(cmd): rename Pro identifiers to Platform #1603 merged;
collectProWorkspaceInfo->collectPlatformWorkspaceInfo-- refactor(workspace): rename collectProWorkspaceInfo to collectPlatformWorkspaceInfo #1606 merged. Deferred:SkipPro/names.SkipPro(flag, T2), import aliases (with the dir move) - Pro T2: display text "Devsy Pro" -> "Devsy Platform" +
config.ProductNamePro->ProductNamePlatformin pkg/config, pkg/platform, pkg/devcontainer/buildkit, cmd/pro top-level files (refactor(config): rename Devsy Pro display text to Devsy Platform #1607, merged) - Pro T2: "Devsy Pro" text in cmd/pro subpackage Short texts + cmd/workspace ping/up_flags (refactor(cmd): rename Devsy Pro text to Devsy Platform in cmd/pro subpackages #1615, merged). Kept: cmd/pro/login.go YAML
description: Devsy Pro(persisted provider, T3), hack/pro + providers/pro descriptions (T3 with provider ID), CONTRIBUTING/sites (docs last) - Pro T2: "pro instance" help text, "Pro X" comments, log/error text in cmd/pro + cmd/workspace (refactor(cmd): rename pro product text to platform in cmd/pro and workspace commands #1622, merged). Deferred:
listProWorkspacesForProviderrename trips revive argument-limit (needs params struct) - Pro T2 (in flight):
devsy pro->devsy platformcommand name withprokept as cobra alias; command strings in messages, provider YAMLs (providers/pro, hack/pro, login.go fallback), pkg/devsyconfig (refactor(cmd): rename devsy pro command to devsy platform with pro alias #1632, draft; ubuntu/windows Build CLI fail repeatedly with runner "disk quota exceeded"/timeouts, same on refactor(platform): pass instance identity and selection to builder #1630 -- infra, rerun in progress). Not touched (open PRs): cmd/root.go (feat(container): show SSH connection information #1581/feat(dependencies): build provider dependency foundations #1588; DEVSY_PRO_ENABLED + comments), pkg/platform/client/client.go (feat(dependencies): build provider dependency foundations #1588; twodevsy promessages), cmd/pro -> cmd/platform dir move - Pro T1 leftovers in pkg/workspace:
GetProInstance(caller cmd/workspace/up/up_client.go is in open PR feat(wslg): discover display values for Windows Docker workspaces #1503),listProWorkspacesForProvider(needs params struct, revive argument-limit),IsPro()/Workspace.Pro/ProMetadata/provider.ProInstance(go with pkg/provider slice) - Pro T1 remaining: pkg/provider (ProInstance type, IsPro, ProMetadata, GetProInstancesDir, LoadProInstanceConfig), cmd/pro (377), cmd/workspace (avoid up/* while feat(wslg): discover display values for Windows Docker workspaces #1503 open), pkg/config, pkg/platform, ...
- Pro T2:
cmd/pro->cmd/platformverbatim move;devsy pro->devsy platform(+hidden alias);--skip-pro; DEVSY_PRO_*; user-visible text - hack/pro, desktop
- Docs/sites, README/CONTRIBUTING (last)
Needs workflow edit (CI bot)
- none yet (.github has 3
prohits; to be reviewed)
Decisions (from user in chat, 2026-10-18)
- Nothing uses the
loftrelease/context today; old, unmaintained path. No chart is served yet (charts.devsy.sh does not resolve; devsy-org/platform is private, README only). - Chart/release name:
platform. Namespace and resource prefix:devsy-platform,devsy-agent,devsy-p-,devsy-admin. - Hosting: OCI on ghcr.io (
oci://ghcr.io/devsy-org/charts/platform); no DNS/Netlify needed for now. - Chart source: new repo https://github.com/devsy-org/charts (created, public). Scaffold PR feat(platform): add platform chart scaffold charts#1 merged (user-authorized); next: tag
platform-v0.1.0to publish, verify ghcr package is public, then CLI switches to the oci:// reference. Placeholder arm64 Loft-based image; port/env names unverified. - Provider
pro: unused today; direction is a Devsy managed-service provider, name open (platformsuggested); may later move to its own repo like the microsandbox/other provider repos.
Findings that affect the T3 table
devsy pro startalready usesconfig.ProReleaseName=devsy-profor chart, release, namespace and product (notloft).loftappears incmd/pro/cluster/add.go(agent chart) andcmd/pro/user/reset_password.go,pkg/platform/kubeconfig.go, etc.- The server image
ghcr.io/devsy-org/devsy-pro:latestis upstream Loft v4.4.3 (cmdloft start, workdir/loft, PRODUCT=devpod-pro, arm64 only). In-clusterloft-*names are likely created by that binary, so renaming them CLI-side only is safe once the server image is replaced or rebuilt, not before.
Boundary decisions (T3) -- no action until you approve
| Item | Where | Options | Status |
|---|---|---|---|
Helm release/chart name loft, admin user loft-admin |
cmd/pro/cluster/add.go, add_flags.go, cmd/pro/start*.go | (a) keep permanently (b) coordinated chart release + dual-support | pending |
Cluster resources loft-password-* secret, namespace loft, loft-p- project ns prefix |
cmd/pro/user/reset_password.go, pkg/platform/project/project.go | (a) keep (b) dual-read + new names for new resources | pending |
kubeconfig context name "loft" (persisted in user kubeconfigs) |
pkg/platform/kubeconfig.go:478 | (a) keep (b) new name + migrate old | pending |
External repo github.com/loft-sh/examples |
e2e/tests/up/up.go | keep until examples repo moves | pending |
renovate.json matchPackageNames github.com/loft-sh/api/v4, go.sum |
root | keep (excluded by rule) | kept |
Test data loftsh/devsy docker image names |
pkg/driver/kubernetes/registry_test.go | keep (real registry namespace, not a rename target) | kept |
Provider ID "pro", providers/pro, user config contexts |
providers/, pkg/provider | (a) dual-support + one-time migration (b) keep | pending (analysis later) |
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
renameLoft/Pro renameLoft/Pro rename
Activity
skevetter commentedon Oct 18, 2026
Recording decisions given by the user in chat (2026-10-18): chart+release name
platform; namespace/prefixdevsy-platform,devsy-agent,devsy-p-,devsy-admin; hosting OCI on ghcr.io; chart source in new repo devsy-org/charts (created); providerprounused, new name open. Items #1-#3 still need the server-image question (body, Findings) answered before the CLI side is implemented. Bot will not treat this as T3 approval until confirmed here.skevetter commentedon Oct 19, 2026
Run 73e9475 (bot): concurrent run 90e4342 opened #1571 (pkg/daemon/platform + cmd/pro/provider/watch WorkspaceInstance rename) while I was starting the same area. One-in-flight rule: I dropped my duplicate and am not opening a PR this run. Next slice after #1571 merges: Pro T1 in pkg/workspace (unexported helpers proWorkspace*/proInstance*, ListProInstances/GetProInstance/FindProviderProInstance + callers, pro.go -> platform.go, comments/log text); candidate files: pkg/workspace/{list,pro,provider,provider_update,rename,workspace}.go + callers cmd/provider/{delete,rename}.go, cmd/workspace/{troubleshoot,up/up_client}.go, cmd/pro/{cluster/add,completion/suggestions,list,login}.go. No open PR touches them as of now.
skevetter commentedon Oct 19, 2026
Run update (bot, 2026-10-19): #1585 merged (ProMetadata -> PlatformMetadata). In flight: #1593 ProInstance -> PlatformInstance (draft, 22 files, 348 non-test lines = over the 300 cap -> needs human: size; CI still running on congested runners). Kept as T3: pro.json, pro_instances, lock file name, DevsyProInstances troubleshoot JSON field. Deferred: workspace.GetProInstance (up_client.go in #1503).
Remaining counts (origin/main after #1585): Loft 37 lines/13 files (all T3/kept); Pro 635 lines/122 files (cmd/pro 372, pkg/provider 45, cmd/workspace 41, env_flags_test 25, pkg/platform 24, hack 21, pkg/config 20). After #1593 pkg/provider/config/platform ProInstance hits drop ~136 -> 7.
(Body PATCH failed repeatedly with TLS bad record MAC; checklist in body is one run stale.)