# The Name Change Cover-Up: From openclaw-lcm to lossless-claw

> The package was originally published as @martian-engineering/openclaw-lcm before a deliberate rebranding to @martian-engineering/lossless-claw. A full rename spec (specs/lossless-claw-rename-spec.md) survives in the repo, listing every line-by-line change needed — including the missing repository metadata that was never present in the original package.json. The rename also gave the project its own website at losslesscontext.ai.

- Repository: Martian-Engineering/lossless-claw
- GitHub: https://github.com/Martian-Engineering/lossless-claw
- Human wiki: https://grok-wiki.com/public/wiki/martian-engineering-lossless-claw-a94e8135853e
- Complete Markdown: https://grok-wiki.com/public/wiki/martian-engineering-lossless-claw-a94e8135853e/llms-full.txt

## Source Files

- `specs/lossless-claw-rename-spec.md`
- `package.json`
- `README.md`

---

<details>
<summary>Relevant source files</summary>
The following files were used as context for generating this wiki page:

- [specs/lossless-claw-rename-spec.md](specs/lossless-claw-rename-spec.md)
- [package.json](package.json)
- [README.md](README.md)
- [openclaw.plugin.json](openclaw.plugin.json)
- [specs/extraction-plan.md](specs/extraction-plan.md)
- [specs/depth-aware-prompts-and-rewrite.md](specs/depth-aware-prompts-and-rewrite.md)
</details>

# The Name Change Cover-Up: From openclaw-lcm to lossless-claw

This page is the paper trail of a deliberate brand overhaul. The package once lived on npm as `@martian-engineering/openclaw-lcm` and carried a plugin id of `openclaw-lcm`. Someone sat down and wrote a meticulous line-by-line rename spec covering every file that needed touching — and then left the checklist inside the repo with every box still unchecked. Today's codebase carries the new name, but the spec (`specs/lossless-claw-rename-spec.md`) survives as a fossil record of both what the project used to be called and exactly where every incriminating reference was buried.

The rename is more than a cosmetic string swap. It introduced a dedicated domain (`losslesscontext.ai`, linked from the README), added repository/homepage/bugs metadata that was literally absent from the original `package.json`, and anchored a new plugin identity (`lossless-claw`) that users configure as a slot key in OpenClaw. Knowing the old names matters because external consumers who installed `@martian-engineering/openclaw-lcm` or imported `github.com/Martian-Engineering/openclaw-lcm/tui` need to migrate manually — the spec itself calls this out explicitly.

---

## What the Old Name Was (and Where It Still Haunts the Repo)

The original published package name was `@martian-engineering/openclaw-lcm`. The spec records the before/after for every significant identifier:

| Location | Old value | New value |
|---|---|---|
| `package.json:2` | `@martian-engineering/openclaw-lcm` | `@martian-engineering/lossless-claw` |
| `package-lock.json:2,8` | `@martian-engineering/openclaw-lcm` | `@martian-engineering/lossless-claw` |
| `index.ts:746` | `id: "openclaw-lcm"` | `id: "lossless-claw"` |
| `index.ts:771` | `api.registerContextEngine("openclaw-lcm", ...)` | `api.registerContextEngine("lossless-claw", ...)` |
| `openclaw.plugin.json:2` | `"id": "openclaw-lcm"` | `"id": "lossless-claw"` |
| `tui/go.mod:1` | `github.com/Martian-Engineering/openclaw-lcm/tui` | `github.com/Martian-Engineering/lossless-claw/tui` |
| `.goreleaser.yml:41` | `name: openclaw-lcm` | `name: lossless-claw` |
| `.pebbles/config.json:2` | `"prefix": "open-lcm"` | `"prefix": "lossless-claw"` |

Sources: [specs/lossless-claw-rename-spec.md:14-63]()

The old name itself evolved through at least three aliases before stabilising — the spec also references `open-lcm`, `@martian-engineering/open-lcm`, and `OpenClaw LCM (open-lcm plugin)` in the older spec documents it was updating:

> `specs/depth-aware-prompts-and-rewrite.md:5` used to read `OpenClaw LCM (open-lcm plugin) + lcm-tui`  
> `specs/extraction-plan.md:5` used to reference `` `@martian-engineering/open-lcm` ``

Sources: [specs/lossless-claw-rename-spec.md:152-183]()

---

## The Missing Metadata — A Detail Hiding in Plain Sight

The juiciest disclosure in the rename spec is that the original `package.json` contained **no repository, homepage, or bugs field at all**. The rename spec added them as net-new entries, not replacements:

```json
// specs/lossless-claw-rename-spec.md — the "Add repository metadata (currently missing)" block
"repository": {
  "type": "git",
  "url": "git+https://github.com/Martian-Engineering/lossless-claw.git"
},
"homepage": "https://github.com/Martian-Engineering/lossless-claw#readme",
"bugs": {
  "url": "https://github.com/Martian-Engineering/lossless-claw/issues"
}
```

Today's `package.json` confirms these fields are now present at lines 74–81 — the rename was completed for this part. But the spec notes them as `[ ]` (unchecked), a checklist artifact that makes it look like a migration in-progress even if the code has moved on.

Sources: [specs/lossless-claw-rename-spec.md:19-31](), [package.json:74-81]()

---

## The Unchecked Checklist

Every single change in `specs/lossless-claw-rename-spec.md` is marked with `- [ ]` — the standard Markdown unchecked checkbox. None are `- [x]`. This is either:

1. A spec that was written before execution and the checkboxes were never ticked off as changes landed, or
2. A spec that was checked in as reference material without ever being intended as a live tracking document

Given that the current `package.json` already reads `@martian-engineering/lossless-claw` and `openclaw.plugin.json` already reads `"id": "lossless-claw"`, the rename is complete in the codebase. The unchecked boxes are fossils.

Sources: [specs/lossless-claw-rename-spec.md:15-189](), [package.json:2](), [openclaw.plugin.json:2]()

---

## The Website Arrival

The rename also brought the project its own website. The README now includes this sentence in the "What it does" section:

> Two ways to learn: read the below, or [check out this super cool animated visualization](https://losslesscontext.ai).

The domain `losslesscontext.ai` does not appear anywhere in the rename spec's checklist — it was apparently not part of the original name-swap scope, suggesting the website launched concurrently with or after the rename rather than being a tracked migration target.

Sources: [README.md:17]()

---

## Historical Scars Left Intentionally

The rename spec explicitly protects one file from rewriting:

> `.pebbles/events.jsonl` contains historical issue IDs like `open-lcm-8a9` and `open-lcm-6fc`. These are append-only history records and should be preserved as-is.

Sources: [specs/lossless-claw-rename-spec.md:206-209]()

This means any future maintainer browsing the pebbles issue tracker will see tickets prefixed `open-lcm-` that predate the rename. The spec explicitly chose archaeology over false consistency.

---

## Test Temp Directory Names: The Sneakiest Renames

Hidden among the rename targets are test fixtures — the kind of thing that quietly breaks CI only when someone runs `grep` on the old name after a rename. The spec listed six test helper calls in `test/engine.test.ts` and one in `test/migration.test.ts` that used the old name as a prefix for temporary directories:

```
"openclaw-lcm-engine-"    →  "lossless-claw-engine-"   (lines 89, 107)
"openclaw-lcm-session-"   →  "lossless-claw-session-"  (line 101)
"openclaw-lcm-home-"      →  "lossless-claw-home-"     (line 118)
"openclaw-lcm-shared-db-" →  "lossless-claw-shared-db-"(line 363)
"openclaw-lcm-migration-" →  "lossless-claw-migration-"(migration test, line 19)
```

And in `src/transcript-repair.ts`, even a log prefix was scoped for rename:

```
[openclaw-lcm] missing tool result ...  →  [lossless-claw] missing tool result ...
```

Sources: [specs/lossless-claw-rename-spec.md:121-149]()

---

## Rename Scope Summary

```text
Package & registry    ──── npm name, package-lock
Plugin identity       ──── openclaw.plugin.json id, index.ts registration
Go module path        ──── tui/go.mod, .goreleaser.yml binary name
README                ──── clone URLs, cd path, config keys, install instructions
docs/*.md             ──── architecture.md, configuration.md
specs/*.md            ──── depth-aware, summary-presentation, extraction-plan
Tests                 ──── temp dir prefix strings in engine & migration tests
Source logs           ──── log prefix in transcript-repair.ts
Issue tracker prefix  ──── .pebbles/config.json (future issues only)
Missing metadata ADD  ──── repository/homepage/bugs fields (net-new, not rename)
Website (out-of-scope)──── losslesscontext.ai (not in checklist)
```

Sources: [specs/lossless-claw-rename-spec.md:1-210]()

---

The rename spec is the most complete record of what the project used to be. It documents three name generations (`open-lcm` → `openclaw-lcm` → `lossless-claw`), reveals the original `package.json` shipped without any repository metadata, and preserves the exact line numbers where every identity token was embedded — a precise archaeological map of a project that quietly changed its name and pointed users at a shiny new domain without making any noise about it.

Sources: [specs/lossless-claw-rename-spec.md:1-10]()
