Skip to content
Agentmart
Submit a tool

openamer-update-recovery

Recover from a failed or broken `openamer update`.

Skill by openamer

IndexedMIT★ 8
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/openamer-openamer-update-recovery

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Recover from a failed or broken `openamer update`.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/openamer-update-recovery

What's inside

Skill name
openamer-update-recovery
Description
Recover from a failed or broken `openamer update`.
License
MIT
Instructions
168 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# OpenAmer Update Recovery Skill

Recover from a failed or interrupted `openamer update`. The update is a
multi-stage process (git pull → dependency install → optional ZIP fallback),
and any stage can fail partway, leaving the install in a half-updated state
that then misbehaves on every subsequent launch. This skill diagnoses the
marker lifecycle and walks through a clean reinstall.

## When to Use

- `openamer update` printed `✗ ZIP update failed` / `Git update failed` / a
  non-zero exit.
- Every `openamer` launch now prints `⚠ A previous openamer update was
  interrupted mid-install — finishing dependency installation now...` and then
  `✗ Could not auto-recover the interrupted install.`
- `openamer --version` shows "Up to date" but the recovery warning still fires.

## Prerequisites

- A working `git` checkout of the install (the git stage usually succeeds even
  when deps fail).
- The managed `uv` binary (see "Locating the install" below).
- Shell access to the install directory.

## Locating the install

The install directory and the managed `uv` binary are platform-specific. Do
NOT hardcode `~/.openamer/openamer-agent` — that is the *data* directory, not
the install. The reliable way to find the install directory is:

```bash
openamer --version
# → "Install directory: <path>"  ← this is the install dir (contains openamer_cli/)
```

Typical locations:

- **Windows (native):** `%LOCALAPPDATA%\openamer-laptop\openamer-agent`
- **Linux/macOS (managed):** `~/.openamer/openamer-agent` (or `$OPENAMER_HOME/openamer-agent`)

The managed `uv` binary lives at `$OPENAMER_HOME/bin/uv` (on Windows
`%LOCALAPPDATA%\openamer-laptop\bin\uv.exe`), NOT inside the install dir.

## How to Run

Run the recovery steps below with the `terminal` tool. On Windows the venv
Python lives at `venv/Scripts/python.exe` (NOT `venv/bin/`). The `VIRTUAL_ENV`
env var is required so `uv` targets the project venv instead of creating a new
one.

## Quick Reference

```bash
cd <install-dir>                 # from `openamer --version` → "Install directory:"
VIRTUAL_ENV="$(pwd)/venv" <uv> pip install -e ".[all]"
rm -f .update-incomplete .update-incomplete.lock .lazy-refresh-incomplete
rm -rf apps.openamer-update-staging apps.openamer-update-old
openamer --version   # must print version with NO ⚠ warning
```

## Procedure

### The marker lifecycle (root cause of the "stuck" symptom)

A failed update writes a breadcrumb file at the **install directory root**
(the directory that contains `openamer_cli/`), NOT under `$OPENAMER_HOME`.
On every launch, `openamer_cli/main.py::_recover_from_interrupted_install()`
sees the marker and tries to finish the install. If that recovery itself
fails, it **leaves the marker in place**, so the next launch tries again —
forever. The fix is to make the install actually succeed, THEN delete the
marker.

Key facts (from `openamer_cli/main.py` and `_early_recovery.py`):

- `.update-incomplete` → core `.[all]` install was interrupted. Recovered ONLY
  by a full `.[all]` reinstall; narrow import-probe repair never clears it.
- `.lazy-refresh-incomplete` → lazy-backend refresh may have corrupted
  packages; recovered by import-probe repair.
- `.update-incomplete.lock` → single-flight guard (O_EXCL); a stale lock is
  broken after 1 hour (3600s).
- The marker is intentionally NOT cleared by the stdlib-only early-recovery
  pass — only the full recovery in `main.py` clears it, and only on success.

### Recovery steps

1. **Confirm the code is actually current** — the git stage often succeeds even
   when deps fail:
   ```bash
   cd <install-dir>
   git log --oneline -3
   openamer --version              # shows "Up to date" if git pulled fine
   ```

2. **Run the full `.[all]` reinstall manually** (this is what the auto-recovery
   tries and fails at). Use the managed uv binary, not a bare `pip`:
   ```bash
   cd <install-dir>
   VIRTUAL_ENV="$(pwd)/venv" <uv> pip install -e ".[all]"
   # fallback if uv is missing:
   ./venv/Scripts/python.exe -m pip install -e ".[all]"
   ```

3. **Delete the marker** once the install succeeds:
   ```bash
   rm -f .update-incomplete .update-incomplete.lock .lazy-refresh-incomplete
   ```

4. **Clean up update leftovers** (staging/old dirs the ZIP fallback leaves):
   ```bash
   rm -rf apps.openamer-update-staging apps.openamer-update-old
   ```

## Pitfalls

- **`openamer update` says "Already up to date!" but the marker is still there** —
  when git has no new commit, the update path skips the dependency reinstall
  entirely and does NOT clear `.update-incomplete`. The marker then keeps
  firing the recovery warning on every launch. Fix: run the manual `.[all]`
  reinstall yourself (step 2), then delete the marker. Do NOT rely on

From openamer/openamer, MIT.

Signals

Stars
8
Forks
4
Open issues
44
Last commit (this folder)
Oct 22, 2026 (6 days ago)
Last release
Oct 24, 2026 (4 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from openamer

Cite this page

openamer-update-recovery skill. Agent Mart. https://agentmart.dev/skills/openamer-openamer-update-recovery (last updated 2026-10-24)