fix(worktree): address CodeRabbit PR review feedback
- Document --branch override in npx-cli help text - Guard ContextBuilder against empty projects[] override; fall back to cwd-derived primary - Ensure merged_into_project indexes are created even if ALTER ran in a prior partial migration - Reject adopt --branch/--cwd flags with missing or flag-like values - Use defined --color-border-primary token for merged badge border Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -52,7 +52,7 @@ ${pc.bold('Runtime Commands')} (requires Bun, delegates to installed plugin):
|
||||
${pc.cyan('npx claude-mem restart')} Restart worker service
|
||||
${pc.cyan('npx claude-mem status')} Show worker status
|
||||
${pc.cyan('npx claude-mem search <query>')} Search observations
|
||||
${pc.cyan('npx claude-mem adopt [--dry-run]')} Stamp merged worktrees into parent project
|
||||
${pc.cyan('npx claude-mem adopt [--dry-run] [--branch <name>]')} Stamp merged worktrees into parent project
|
||||
${pc.cyan('npx claude-mem transcript watch')} Start transcript watcher
|
||||
|
||||
${pc.bold('IDE Identifiers')}:
|
||||
|
||||
@@ -136,8 +136,8 @@ export async function generateContext(
|
||||
// `project` (used for header + single-project query) is always the last entry
|
||||
// of `projects` so the empty-state header and the query target stay in sync
|
||||
// when a caller passes `projects` without a matching cwd (e.g. worker route).
|
||||
const projects = input?.projects ?? context.allProjects;
|
||||
const project = projects[projects.length - 1];
|
||||
const projects = input?.projects?.length ? input.projects : context.allProjects;
|
||||
const project = projects[projects.length - 1] ?? context.primary;
|
||||
|
||||
// Full mode: fetch all observations but keep normal rendering (level 1 summaries)
|
||||
if (input?.full) {
|
||||
|
||||
@@ -937,19 +937,19 @@ export class MigrationRunner {
|
||||
.all() as TableColumnInfo[];
|
||||
if (!obsCols.some(c => c.name === 'merged_into_project')) {
|
||||
this.db.run('ALTER TABLE observations ADD COLUMN merged_into_project TEXT');
|
||||
this.db.run(
|
||||
'CREATE INDEX IF NOT EXISTS idx_observations_merged_into ON observations(merged_into_project)'
|
||||
);
|
||||
}
|
||||
this.db.run(
|
||||
'CREATE INDEX IF NOT EXISTS idx_observations_merged_into ON observations(merged_into_project)'
|
||||
);
|
||||
|
||||
const sumCols = this.db
|
||||
.query('PRAGMA table_info(session_summaries)')
|
||||
.all() as TableColumnInfo[];
|
||||
if (!sumCols.some(c => c.name === 'merged_into_project')) {
|
||||
this.db.run('ALTER TABLE session_summaries ADD COLUMN merged_into_project TEXT');
|
||||
this.db.run(
|
||||
'CREATE INDEX IF NOT EXISTS idx_summaries_merged_into ON session_summaries(merged_into_project)'
|
||||
);
|
||||
}
|
||||
this.db.run(
|
||||
'CREATE INDEX IF NOT EXISTS idx_summaries_merged_into ON session_summaries(merged_into_project)'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1211,11 +1211,21 @@ async function main() {
|
||||
case 'adopt': {
|
||||
const dryRun = process.argv.includes('--dry-run');
|
||||
const branchIndex = process.argv.indexOf('--branch');
|
||||
const onlyBranch = branchIndex !== -1 ? process.argv[branchIndex + 1] : undefined;
|
||||
const branchValue = branchIndex !== -1 ? process.argv[branchIndex + 1] : undefined;
|
||||
if (branchIndex !== -1 && (!branchValue || branchValue.startsWith('--'))) {
|
||||
console.error('Usage: adopt [--dry-run] [--branch <branch>] [--cwd <path>]');
|
||||
process.exit(1);
|
||||
}
|
||||
const onlyBranch = branchValue;
|
||||
// Honor an explicit --cwd override so the NPX CLI can pass through the
|
||||
// user's working directory (the spawn sets cwd to the marketplace dir).
|
||||
const cwdIndex = process.argv.indexOf('--cwd');
|
||||
const repoPath = cwdIndex !== -1 ? process.argv[cwdIndex + 1] : process.cwd();
|
||||
const cwdValue = cwdIndex !== -1 ? process.argv[cwdIndex + 1] : undefined;
|
||||
if (cwdIndex !== -1 && (!cwdValue || cwdValue.startsWith('--'))) {
|
||||
console.error('Usage: adopt [--dry-run] [--branch <branch>] [--cwd <path>]');
|
||||
process.exit(1);
|
||||
}
|
||||
const repoPath = cwdValue ?? process.cwd();
|
||||
|
||||
const result = await adoptMergedWorktrees({ repoPath, dryRun, onlyBranch });
|
||||
|
||||
|
||||
@@ -1139,7 +1139,7 @@
|
||||
letter-spacing: 0.02em;
|
||||
color: var(--color-text-muted);
|
||||
background: var(--color-type-badge-bg);
|
||||
border: 1px solid var(--color-border);
|
||||
border: 1px solid var(--color-border-primary);
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user