openclaw/docs/refactor/tlon-package-migration.md

74 lines
2.9 KiB
Markdown
Raw Normal View History

---
title: "Tlon Package Migration"
summary: "Plan for migrating the Tlon plugin package from @openclaw/tlon to @tloncorp/openclaw"
read_when:
- Updating Tlon onboarding/install metadata
- Migrating existing Tlon plugin installs
---
# Tlon Package Migration
This document captures the OpenClaw-side plan for migrating the Tlon plugin package from
`@openclaw/tlon` to `@tloncorp/openclaw` without breaking existing installs.
## Goals
- Keep the plugin id and channel id as `tlon`.
- Switch new onboarding and docs to install `@tloncorp/openclaw`.
- Auto-migrate existing `plugins.installs.tlon` records that still point at `@openclaw/tlon`.
- Preserve version continuity on the Tlon side so pinned or version-qualified specs can move cleanly.
- Keep local checkout installs (`./extensions/tlon`) working as before.
## Required invariants
The published `@tloncorp/openclaw` package must remain a drop-in replacement for the Tlon plugin.
- `package.json.name` should be `@tloncorp/openclaw`.
- `package.json.version` should continue the existing `2026.x.y` line instead of resetting to `0.x`.
- `openclaw.channel.id` must stay `tlon`.
- `openclaw.install.npmSpec` must be `@tloncorp/openclaw`.
- `openclaw.extensions` must point at the real published entrypoint.
- `openclaw.plugin.json.id` must stay `tlon`.
- `openclaw.plugin.json.channels` must contain `tlon`.
## OpenClaw migration behavior
On config load, OpenClaw should detect old Tlon npm install specs and rewrite them in place.
- Rewrite `plugins.installs.tlon.spec` from `@openclaw/tlon` to `@tloncorp/openclaw`.
- Rewrite version-qualified specs the same way, preserving the suffix after the package name.
- Apply this to any `plugins.installs.tlon` record that still references the old package name.
- Clear stale npm resolution metadata so the next `openclaw plugins update tlon` resolves against the
new package without comparing the old package integrity hash to the new package artifact.
Fields to clear when the spec is rewritten:
- `resolvedName`
- `resolvedVersion`
- `resolvedSpec`
- `integrity`
- `shasum`
- `resolvedAt`
Fields to preserve:
- `source`
- `installPath`
- `sourcePath`
- `version`
- `installedAt`
## Rollout
1. Publish `@tloncorp/openclaw` with the correct manifest and version continuity.
2. Update OpenClaw onboarding metadata and docs to point new installs at `@tloncorp/openclaw`.
3. Ship the config migration so existing installs start updating from the new package name.
4. Keep `@openclaw/tlon` available during the transition window.
5. Deprecate `@openclaw/tlon` after OpenClaw releases with the migration have had time to land.
## External follow-up in tloncorp/openclaw-tlon
- Publish the next `2026.x.y` version under `@tloncorp/openclaw`.
- Update the README to say the plugin is installed separately, not “included with OpenClaw”.
- Verify the published tarball contains the correct `openclaw.plugin.json`.