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 / 13 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 9c80b29, 2026-10-27): 192 lines / 93 files (cmd/pro 121, pkg/provider 15 (test, T3 provider "pro"), cmd/workspace 10, pkg/ide 6 (3rd-party "One Dark Pro"/posit server-pro, keep), cmd/root.go 5, pkg/workspace 4, pkg/config 4, CONTRIBUTING 4, .goreleaser.yml 4, providers 3, pkg/platform 3, mise.toml 3)
- most remaining cmd/pro hits are import paths (
cmd/pro/...) 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:
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, merged 06dad0d after the ssh provider release was repaired and a fresh rebased head went green). 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 - Pro T2:
devsy workspace list --skip-pro->--skip-platformwith hidden--skip-proalias;names.SkipPlatform/SkipProAlias; desktop test + mock updated (refactor(cmd): rename --skip-pro flag to --skip-platform with hidden alias #1639, merged dbfc5ca). Pending:desktop/src/main/watcher.ts:267still passes--skip-pro(file in open PR fix(workspace): validate IDs and recover interrupted launches #1609; works via alias; switch after fix(workspace): validate IDs and recover interrupted launches #1609 merges) - Pro T2:
DEVSY_PRO_RUNNER->DEVSY_PLATFORM_RUNNERwith legacy fallback (config.IsPlatformRunner) + stray comment renames (refactor(config): rename DEVSY_PRO_RUNNER to DEVSY_PLATFORM_RUNNER with fallback #1649, merged 372d182). Remaining DEVSY_PRO_*: ENABLED (cmd/root.go, open PRs), NS (.goreleaser.yml, mise.toml) - Pro T1:
Pro login lockerror text in cmd/pro/login.go + 'Pro-only'/'Devsy Pro workspaces' in .agents/skills refs and hack/ci/agent-skill-evaluation.md (refactor(pro): rename Pro to Platform in login lock errors and agent docs #1658, merged 1d61e36). Skipped: pkg/platform/client/client.go (devsy pro login/starthints; in open feat(dependencies): build provider dependency foundations #1588), CONTRIBUTING.md (docs(contributing): document testing agent changes against a remote provider #832), .goreleaser.yml/mise.toml DEVSY_PRO_NS (.goreleaser.yml in feat(update): add Homebrew readiness contract #1253) - Pro T1:
cmd/pro/proutilpackage ->cmdutil(refactor(cmd): rename proutil package to cmdutil #1672, merged 2ea3322; 100 non-test lines, 17 files). Next: the cmd/pro -> cmd/platform move once feat(container): show SSH connection information #1581/feat(dependencies): build provider dependency foundations #1588 release cmd/root.go - Pro T1:
proflagsimport alias ->platformflags(20 files in cmd/pro, 56 lines; refactor(cmd): rename proflags import alias to platformflags #1686, merged b80762f; CodeRabbit free quota rate-limited ~2h, retried until completed). Next: cmd/pro -> cmd/platform move once cmd/root.go is free (feat(container): show SSH connection information #1581/feat(dependencies): build provider dependency foundations #1588 still open).desktop/src/main/watcher.ts--skip-procan now switch to--skip-platform(fix(workspace): validate IDs and recover interrupted launches #1609 merged) - Pro T2: desktop watcher
workspace list --skip-pro->--skip-platform(refactor(desktop): pass --skip-platform in workspace watcher #1691, merged 8b89b0f; 6 non-test lines). Onlydesktop/e2e/fixtures/mock-devsy.cjsstill mentions--skip-pro(accepts both, intentional) - 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 (still blocked 2026-10-22 by cmd/root.go in open feat(container): show SSH connection information #1581/feat(dependencies): build provider dependency foundations #1588; ~150 of the 217 remaining Pro hits are cmd/pro import paths/aliases that vanish with it; blocked: importers cmd/root.go in open PRs feat(container): show SSH connection information #1581/feat(dependencies): build provider dependency foundations #1588, pkg/platform/form/form.go in refactor(platform): pass instance identity and selection to builder #1630; also cmd/mcp/tools_provider.go, cmd/workspace/troubleshoot.go, pkg/daemon/local/daemon.go, cmd/env_flags_test.go, mise.toml, go.mod, hack docs); DEVSY_PRO_* envs (ENABLED in cmd/root.go, RUNNER in pkg/config/env.go, NS in .goreleaser.yml/mise.toml); user-visible text - hack/pro, desktop
- Docs/sites, README/CONTRIBUTING (last)
Needs workflow edit (CI bot)
- build-cli (pr-ci.yml; intermittent since ~2026-10-21T05:00Z, passed again at ~02:40 local after a fresh merge ref; same failure hit devsy-provider-ssh Release): ubuntu
disk quota exceededon cold Go build (no setup-go Linux cache left; macOS 2GB + Windows 1.2GB caches fill the 10GB cap) -- free runner disk / GOTMPDIR off /tmp / shrink caches (CI bot notified 2026-10-21) - .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) |
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.)
skevetter commentedon Oct 24, 2026
Run update (bot, 2026-10-24): #1691 merged (desktop watcher --skip-platform, T2 backward compatible). Counts on origin/main 8b89b0f: Loft 39 lines/13 files (all T3/kept); Pro 205 lines/94 files. Remaining Pro is dominated by cmd/pro import paths (the cmd/pro -> cmd/platform move, still blocked by cmd/root.go in open #1581/#1588), DEVSY_PRO_ENABLED (cmd/root.go), DEVSY_PRO_NS (.goreleaser.yml in #1253, mise.toml in #1690), pkg/platform/client/client.go + pkg/provider/dir.go (#1588), GetProInstance (up_client.go in #1503), T3 provider/on-disk names. No new boundary decisions needed.
skevetter commentedon Oct 25, 2026
Run update (bot, 2026-10-25): no unblocked high-value slice left; the remainder is blocked by open PRs (cmd/root.go in #1581/#1588 blocks the cmd/pro -> cmd/platform move + DEVSY_PRO_ENABLED; ProProvider in providers.go in #757; pathmanager test + pkg/platform/client/client.go + pkg/provider/dir.go in #1588; GetProInstance caller in stale draft #1503; .goreleaser.yml in #1253; CONTRIBUTING in #832) or by T3 (provider "pro", pro.json, pro_instances, pro-instance lock,
devsy-proimage/release name, DevsyProInstances troubleshoot JSON key). In flight: #1696 (T1:listProWorkspacesForProvider->listPlatformWorkspacesForProviderwith params struct + arbitrary fixture hostnames; 44 non-test lines; CI green on ffa6a99, ready; waiting on CodeRabbit which is rate limited for hours). Counts on origin/main bec651d: Pro 205 lines/94 files (unchanged until #1696 merges); Loft all T3/kept. Suggestion for the user: merge/close #1581 and #1588 (and #1503/#757 if stale) to unblock the dir move. Open T3 items still need your approval comments.skevetter commentedon Oct 25, 2026
#1696 merged (c7b5de6, T1, 44 non-test lines). CodeRabbit completed with no findings after the rate limit cleared (~3h). Checklist: [x] Pro T1 pkg/workspace list helper + fixture hostnames. Skipped (open PRs): ProProvider (#757), pathmanager test (#1588).
skevetter commentedon Oct 25, 2026
Run update (bot, 2026-10-25 evening): no PR this run. #1581 and #1630 merged, but the cmd/pro -> cmd/platform move is still blocked by open drafts #1588 (cmd/root.go) and #1705 (pkg/platform/form/form.go); DEVSY_PRO_ENABLED (cmd/root.go) too. Other remaining hits are blocked by open PRs (.goreleaser.yml #1253, CONTRIBUTING #832, ProProvider #757, up_client.go #1503) or T3/kept (provider "pro", pro.json, pro_instances,
devsy-prorelease name, One Dark Pro / posit server-pro). Counts on origin/main 780b086: Loft 39 lines/14 files (all T3/kept); Pro 192 lines/93 files (cmd/pro 121).Decision wanted (low stakes):
troubleshootInfo.DevsyProInstancesJSON key in hiddendevsy workspace troubleshootoutput (cmd/workspace/troubleshoot.go, 3 lines). Options: (a) rename toDevsyPlatformInstances(output-only diagnostic, no in-repo consumer) (b) keep. Reply "approve troubleshoot key rename" to proceed. Ping: please merge/close drafts #1588 and #1705 to unblock the directory move.skevetter commentedon Oct 26, 2026
Run update (bot, 2026-10-26): no PR this run; nothing unblocked is left. #1705 merged. Remaining blockers for the cmd/pro -> cmd/platform move and DEVSY_PRO_ENABLED: open draft #1588 (cmd/root.go). .goreleaser.yml (DEVSY_PRO_NS, devsy-pro-dev build id, mise task cli:build:dev:pro) blocked by #1253; CONTRIBUTING.md by #832; ProProvider in providers.go by #757; GetProInstance caller in #1503; pkg/platform/client/client.go + pkg/provider/dir.go by #1588. Everything else free is T3/kept (provider "pro", providers/pro + hack/pro provider name devsy-pro, pro.json, pro-instance lock, ghcr.io/devsy-org/devsy-pro image, DevsyProInstances troubleshoot key, One Dark Pro / posit server-pro, intentional legacy aliases/tests).
Counts on origin/main c9a7e55: Loft 36 lines/12 files (all T3/kept); Pro 192 lines/93 files (cmd/pro ~121, mostly import paths + package name).
Decisions wanted: (1) merge or close draft #1588 (it is MERGEABLE/CLEAN, last updated 2026-10-20) so the directory move can proceed; also #1253/#832/#757/#1503 for the remaining hits. (2) Reply "approve troubleshoot key rename" to rename troubleshootInfo.DevsyProInstances JSON key (3 lines, cmd/workspace/troubleshoot.go).
skevetter commentedon Oct 27, 2026
Run update (bot, 2026-10-27): no PR this run; nothing unblocked is left. Same blockers as 2026-10-26: draft #1588 (cmd/root.go, pkg/platform/client/client.go, pkg/provider/dir.go; MERGEABLE/CLEAN, no update since 2026-10-20) blocks the
cmd/pro->cmd/platformmove, DEVSY_PRO_ENABLED, and thedevsy pro login/starthint text; #1253 (.goreleaser.yml DEVSY_PRO_NS / devsy-pro-dev, mise.toml task pairs with it); #832 (CONTRIBUTING); #757 (ProProvider); #1503 (GetProInstance caller). All other remaining hits are T3/kept (provider "pro", pro.json, pro_instances, pro-instance lock,devsy-proprovider name/image/release name,json:"pro"tag, One Dark Pro, posit server-pro, intentional alias tests).Counts on origin/main 9c80b29: Loft 39 lines/14 files (all T3/kept); Pro 192 lines/93 files (cmd/pro ~121, mostly import paths +
package pro).Decisions wanted: (1) merge or close #1588 (also #1253/#832/#757/#1503) to unblock the directory move; alternatively reply "ok to touch cmd/root.go despite #1588" and I will do the move now and leave a trivial conflict (import line + one call) for #1588. (2) Reply "approve troubleshoot key rename" for
troubleshootInfo.DevsyProInstances(3 lines). (3) T3 items #1-#3 still need explicit approval + server-image answer.