Skip to content
This repository was archived by the owner on Sep 11, 2026. It is now read-only.

feat(taze): cross-repo migration cache + signal-safe worktree cleanup - #152

Merged
vitaliytv merged 1 commit into
mainfrom
claude/taze-efficiency-fixes
Jul 19, 2026
Merged

vitaliytv merged 1 commit into
mainfrom
claude/taze-efficiency-fixes

Conversation

@vitaliytv

Copy link
Copy Markdown
Member

Summary

  • Adds a cross-repo migration cache (migration-cache.mjs) keyed on (pkg, from, to): when sibling repos share the same major dependency bump (e.g. mlmail/myllm/myshare all pinned to @7n/tauri-components ^0.8.0), only the first repo's n-taze run does the full CHANGELOG/breaking-change investigation — the rest get that summary prepended to their prompt instead of rediscovering it from scratch.
  • Adds SIGINT/SIGTERM handling around the auto-created worktree in runTazeOrchestrator. Previously an interrupted process (Ctrl-C, an external timeout) skipped the finally cleanup entirely and left an orphaned .worktrees/<branch>-taze with partial edits — reproduced live during a taze run on vitaliytv/myllm. The signal handler now runs the same bring-changes-back + worktree-remove path before exiting.

Test plan

  • npx vitest run npm/skills/taze/js/tests/orchestrate.test.mjs npm/skills/taze/js/tests/migration-cache.test.mjs — 278 passed, including 10 new tests (cache hit/miss, cache write-after-success, SIGTERM cleanup)
  • npx vitest run (full repo suite) — all green
  • npx eslint on all touched files — clean
  • Verified no real filesystem writes occur under test (default cache dir untouched)

🤖 Generated with Claude Code

Running n-taze across sibling repos that share the same major dependency
bump (e.g. mlmail/myllm/myshare all on @7n/tauri-components ^0.8.0) made
the runner rediscover the same breaking-change analysis from scratch in
every repo. readMigrationCache/writeMigrationCache key on (pkg, from, to)
so the first repo's analysis is reused as prompt context by the rest.

Also: ensureRunningInWorktree's auto-created worktree was only cleaned up
in the try/finally — a SIGINT/SIGTERM (Ctrl-C, an external timeout) skipped
it entirely and left an orphaned worktree with partial edits. Reproduced
this live during a taze run on vitaliytv/myllm. Added a signal handler that
runs the same bring-changes-back + worktree-remove path before exiting.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@vitaliytv
vitaliytv merged commit 9c7f591 into main Jul 19, 2026
4 of 7 checks passed
vitaliytv added a commit that referenced this pull request Jul 19, 2026
#153)

Follow-up to #152 — the merge exposed 6 delta-lint violations in the new
test mocks (oxlint require-await on async stubs with no await inside,
no-empty-function on a bare async () => {}). Also hardens the new SIGTERM
test against the ensureRunningInWorktree async-ification from #151: the
signal handler now registers after a microtask hop, so the test polls for
it instead of asserting synchronously right after the call.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
@vitaliytv
vitaliytv deleted the claude/taze-efficiency-fixes branch July 25, 2026 05:03
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant