Conversation
Rename all references from tinyclaw/TinyClaw/TINYCLAW to tinyagi/TinyAGI/TINYAGI across the entire codebase: - Package names: @tinyclaw/* → @tinyagi/* - Config directory: .tinyclaw/ → .tinyagi/ - Environment variables: TINYCLAW_* → TINYAGI_* - CLI entry point: tinyclaw → tinyagi - Database file: tinyclaw.db → tinyagi.db - Skill directory: tinyclaw-admin → tinyagi-admin Adds scripts/migrate.sh for existing installations to safely rename ~/.tinyclaw → ~/.tinyagi, migrate the database, and clean up old CLI symlinks. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Greptile SummaryThis PR performs a complete rebrand of the project from TinyClaw to TinyAGI across 83 files. It renames all package names ( Key observations:
Confidence Score: 4/5
Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[migrate.sh] --> B{~/.tinyclaw exists?}
B -- Yes, ~/.tinyagi absent --> C[mv ~/.tinyclaw → ~/.tinyagi]
B -- Both exist --> D[⚠ Warn: manual reconcile needed]
B -- ~/.tinyagi exists --> E[✓ Skip dir rename]
B -- Neither exist --> F[Nothing to migrate]
C --> G{tinyclaw.db in ~/.tinyagi?}
E --> G
G -- "OLD_DB exists, NEW_DB absent" --> H[mv tinyclaw.db → tinyagi.db\nalso rename -wal / -shm]
G -- "NEW_DB exists ✓" --> I["✓ Skip DB rename\n⚠ BUG: also catches 'both exist' case\n — warning never shown"]
G -- "Neither exist" --> J[No DB to rename]
H --> K{Old CLI symlinks?}
I --> K
J --> K
K -- "/usr/local/bin/tinyclaw exists" --> L[rm old symlink]
K -- "~/.local/bin/tinyclaw exists" --> L
K --> M{TINYCLAW_* env vars?}
M -- Yes --> N[⚠ Warn: update to TINYAGI_ prefix]
M -- No --> O[✓ Migration complete]
N --> O
Last reviewed commit: a485378 |
| # Also rename WAL/SHM files if they exist (SQLite) | ||
| [ -f "$DATA_DIR/${OLD_DB}-wal" ] && mv "$DATA_DIR/${OLD_DB}-wal" "$DATA_DIR/${NEW_DB}-wal" | ||
| [ -f "$DATA_DIR/${OLD_DB}-shm" ] && mv "$DATA_DIR/${OLD_DB}-shm" "$DATA_DIR/${NEW_DB}-shm" | ||
| changes=$((changes + 1)) | ||
| elif [ -f "$DATA_DIR/$NEW_DB" ]; then | ||
| echo -e "${GREEN}✓${NC} $NEW_DB already exists — skipping database rename." | ||
| elif [ -f "$DATA_DIR/$OLD_DB" ] && [ -f "$DATA_DIR/$NEW_DB" ]; then | ||
| echo -e "${YELLOW}Warning: Both $OLD_DB and $NEW_DB exist in $DATA_DIR${NC}" | ||
| echo " Please reconcile manually." |
There was a problem hiding this comment.
Unreachable "both files exist" warning (dead code)
The third elif condition on line 64 can never be reached. The logic is:
if(line 57):OLD_DBexists ANDNEW_DBdoesn't → renameelif(line 62):NEW_DBexists → skip (this catches bothNEW_DB-only and both files existing, sinceNEW_DBexists in both cases)elif(line 64):OLD_DBexists ANDNEW_DBexists → ⚠ warning — DEAD CODE: to reach here, the secondelifmust have been false (i.e.,NEW_DBdoesn't exist), but this condition requiresNEW_DBto exist — a contradiction.
When both tinyclaw.db and tinyagi.db are present, users will silently see "skipping database rename" instead of the intended warning to reconcile manually.
Fix by swapping the order of the second and third conditions:
| # Also rename WAL/SHM files if they exist (SQLite) | |
| [ -f "$DATA_DIR/${OLD_DB}-wal" ] && mv "$DATA_DIR/${OLD_DB}-wal" "$DATA_DIR/${NEW_DB}-wal" | |
| [ -f "$DATA_DIR/${OLD_DB}-shm" ] && mv "$DATA_DIR/${OLD_DB}-shm" "$DATA_DIR/${NEW_DB}-shm" | |
| changes=$((changes + 1)) | |
| elif [ -f "$DATA_DIR/$NEW_DB" ]; then | |
| echo -e "${GREEN}✓${NC} $NEW_DB already exists — skipping database rename." | |
| elif [ -f "$DATA_DIR/$OLD_DB" ] && [ -f "$DATA_DIR/$NEW_DB" ]; then | |
| echo -e "${YELLOW}Warning: Both $OLD_DB and $NEW_DB exist in $DATA_DIR${NC}" | |
| echo " Please reconcile manually." | |
| elif [ -f "$DATA_DIR/$OLD_DB" ] && [ -f "$DATA_DIR/$NEW_DB" ]; then | |
| echo -e "${YELLOW}Warning: Both $OLD_DB and $NEW_DB exist in $DATA_DIR${NC}" | |
| echo " Please reconcile manually." | |
| elif [ -f "$DATA_DIR/$NEW_DB" ]; then | |
| echo -e "${GREEN}✓${NC} $NEW_DB already exists — skipping database rename." |
mczabca-boop
left a comment
There was a problem hiding this comment.
Review
I reviewed this PR assuming the GitHub repo rename from TinyAGI/tinyclaw to TinyAGI/tinyagi will be handled separately.
Findings
-
Blocking: migration path for existing users is incomplete
This PR changes the runtime home directory from
~/.tinyclawto~/.tinyagiand also renames the queue DB fromtinyclaw.dbtotinyagi.db, but the migration script is not wired into any install/start/update path.Relevant files:
The repo does include a migration script, but nothing appears to invoke it from:
- install flow
- remote install flow
- update flow
- startup flow
As written, an existing user upgrading from
~/.tinyclawwill likely boot into a fresh~/.tinyagistate and lose access to their previous:settings.jsonpairing.json- queue database
- other persisted runtime state
I think this needs to be fixed before merge, either by:
- automatically running
scripts/migrate.shfrom install/update/startup, or - adding explicit backward-compat fallback reads from
.tinyclawwhen.tinyagidoes not exist.
Notes
- Other than the migration gap, the internal rename looks mostly consistent.
- I did not complete a full build verification in the review worktree because dependencies were not installed there (
tsc: not found).
Adds a bin/tinyclaw shim that prints a deprecation notice and forwards all arguments to tinyagi. Install script now symlinks both commands. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Take rebranded names (tinyagi) with main's version bump (0.0.11) and .js file rename. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Take main's new features (dev script, runSkills, symlinked skills, setup page, projects, agent-messages, memory) and apply tinyagi rebrand to all new code. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Take main's fix removing unused updateAgentTeammates import, apply tinyagi rename. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Take main's TinyOffice branding updates (title, icon). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Take main's major restructuring (packages/tinyagi CLI, schedule system, services, chatroom updates, new release workflow) and apply tinyagi rebrand to all new code. Remove deleted scripts (remote-install.sh, uninstall.sh). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary
Complete rebrand from TinyClaw to TinyAGI across the entire codebase. Renames all package names, environment variables, CLI commands, configuration directories, and documentation to reflect the new project name.
Changes
Testing
Checklist