NVIDIA / NVIDIA/NemoClaw

rebuild(hermes): kanban.db and kanban/ missing from backup manifest — board data lost on every rebuild

Open
#7,095 3 comments 0 reactions 1 assignee Claimed by @tyeth-ai-assisted View on GitHub
area: sandbox integration: hermes
Dominant language
TypeScript
Stars
22.5k
Forks
3.1k
Avg merge
1d 1h
Merged PRs (30d)
715

Description

### Investigation Summary

- `nemohermes hermes rebuild` restores "15 directories, 3 files" but the Hermes kanban board is empty afterwards — `hermes kanban list` returns `(no matching tasks)` for tasks that existed before the rebuild
- Root cause confirmed: `agents/hermes/manifest.yaml` drives the backup contract, and neither `kanban.db` nor the `kanban/` directory appears in `state_dirs` / `state_files`
- The pre-rebuild backup under `~/.nemoclaw/rebuild-backups///` and its `rebuild-manifest.json` confirm the board was never captured (only `SOUL.md`, `.hermes_history`, `runtime/state.db` plus the 15 listed dirs)
- Reproduced on NemoClaw main (`d034b7f0e`) with Hermes Agent v0.18.0 (calver 2026.7.1), OpenShell 0.0.72, Docker driver on WSL2/docker-desktop

### Description

The rebuild backup/restore mechanism is designed to carry the Hermes agent's durable state across sandbox rebuilds (profiles, sessions, memories, skills, dashboard-home, etc., plus `runtime/state.db` via SQLite online backup). However the Hermes kanban board — which its own CLI help describes as a "Durable SQLite-backed task board" — is not part of the manifest's state contract:

- `kanban.db` (tasks, comments, events, runs) is not in `state_files`
- `kanban/` (per-task worker workspaces and run artifacts) is not in `state_dirs`

As a result every rebuild silently drops the entire board while the rest of the agent state comes back, which contradicts the board's durability contract and the mechanism's data-preservation intent (cf. the strict pre-upgrade backup gate and #7005's "abort when all state dirs fail to back up").

The kanban feature landed in the Hermes 0.16-era while the manifest's dir list predates it, so this looks like an oversight rather than a design decision.

### Steps to Reproduce

1. Onboard a Hermes sandbox and create a task: `hermes kanban create "test task"`
2. `nemohermes hermes rebuild --yes`
3. After the rebuild completes (state restored successfully), run `hermes kanban list`

### Expected Behavior

The kanban board (tasks, comments, events, runs, and any worktree/dir workspaces) survives the rebuild like sessions and profiles do.

### Actual Behavior

`hermes kanban list` returns `(no matching tasks)`; `kanban.db` is a freshly initialized empty database. The rebuild backup directory contains no copy of the board, so the data is unrecoverable unless the user took a manual `docker cp` snapshot beforehand.

### Environment

- NemoClaw: main @ `d034b7f0e` (post v0.0.84)
- Hermes Agent: v0.18.0 (calver 2026.7.1)
- OpenShell: 0.0.72 (docker driver)
- Host: WSL2 Ubuntu on Windows 11, Docker Desktop

### Proposed Fix

Add to `agents/hermes/manifest.yaml`: `kanban` in `state_dirs`, and `kanban.db` in `state_files` with `strategy: sqlite_backup` (same treatment as `runtime/state.db`; the zero-byte `kanban.db.*.lock` files can be omitted). PR incoming, intentionally scoped to the kanban items only.

---

Responsible human: @tyeth (please review) — filed on their behalf by `tyeth-ai-assisted`.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.