feat(ui): add tag indicator to all CLI commands
- shows 🏷️ tag: tagname for complete context visibility across 15+ commands
This commit is contained in:
@@ -699,7 +699,6 @@ function registerCommands(programInstance) {
|
||||
const force = options.force || false;
|
||||
const append = options.append || false;
|
||||
const research = options.research || false;
|
||||
const tag = options.tag;
|
||||
let useForce = force;
|
||||
const useAppend = append;
|
||||
|
||||
@@ -709,6 +708,12 @@ function registerCommands(programInstance) {
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Resolve tag using standard pattern
|
||||
const tag = options.tag || getCurrentTag(projectRoot) || 'master';
|
||||
|
||||
// Show current tag context
|
||||
displayCurrentTagIndicator(tag);
|
||||
|
||||
// Helper function to check if there are existing tasks in the target tag and confirm overwrite
|
||||
async function confirmOverwriteIfNeeded() {
|
||||
// Check if there are existing tasks in the target tag
|
||||
@@ -855,7 +860,6 @@ function registerCommands(programInstance) {
|
||||
const fromId = parseInt(options.from, 10); // Validation happens here
|
||||
const prompt = options.prompt;
|
||||
const useResearch = options.research || false;
|
||||
const tag = options.tag;
|
||||
|
||||
const projectRoot = findProjectRoot();
|
||||
if (!projectRoot) {
|
||||
@@ -863,6 +867,12 @@ function registerCommands(programInstance) {
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Resolve tag using standard pattern
|
||||
const tag = options.tag || getCurrentTag(projectRoot) || 'master';
|
||||
|
||||
// Show current tag context
|
||||
displayCurrentTagIndicator(tag);
|
||||
|
||||
// Check if there's an 'id' option which is a common mistake (instead of 'from')
|
||||
if (
|
||||
process.argv.includes('--id') ||
|
||||
@@ -942,7 +952,6 @@ function registerCommands(programInstance) {
|
||||
.action(async (options) => {
|
||||
try {
|
||||
const tasksPath = options.file || TASKMASTER_TASKS_FILE;
|
||||
const tag = options.tag;
|
||||
|
||||
const projectRoot = findProjectRoot();
|
||||
if (!projectRoot) {
|
||||
@@ -950,6 +959,12 @@ function registerCommands(programInstance) {
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Resolve tag using standard pattern
|
||||
const tag = options.tag || getCurrentTag(projectRoot) || 'master';
|
||||
|
||||
// Show current tag context
|
||||
displayCurrentTagIndicator(tag);
|
||||
|
||||
// Validate required parameters
|
||||
if (!options.id) {
|
||||
console.error(chalk.red('Error: --id parameter is required'));
|
||||
@@ -1108,7 +1123,6 @@ function registerCommands(programInstance) {
|
||||
.action(async (options) => {
|
||||
try {
|
||||
const tasksPath = options.file || TASKMASTER_TASKS_FILE;
|
||||
const tag = options.tag;
|
||||
|
||||
const projectRoot = findProjectRoot();
|
||||
if (!projectRoot) {
|
||||
@@ -1116,6 +1130,12 @@ function registerCommands(programInstance) {
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Resolve tag using standard pattern
|
||||
const tag = options.tag || getCurrentTag(projectRoot) || 'master';
|
||||
|
||||
// Show current tag context
|
||||
displayCurrentTagIndicator(tag);
|
||||
|
||||
// Validate required parameters
|
||||
if (!options.id) {
|
||||
console.error(chalk.red('Error: --id parameter is required'));
|
||||
@@ -2133,7 +2153,6 @@ ${result.result}
|
||||
const tasksPath = options.file || TASKMASTER_TASKS_FILE;
|
||||
const taskId = options.id;
|
||||
const dependencyId = options.dependsOn;
|
||||
const tag = options.tag;
|
||||
|
||||
const projectRoot = findProjectRoot();
|
||||
if (!projectRoot) {
|
||||
@@ -2141,6 +2160,12 @@ ${result.result}
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Resolve tag using standard pattern
|
||||
const tag = options.tag || getCurrentTag(projectRoot) || 'master';
|
||||
|
||||
// Show current tag context
|
||||
displayCurrentTagIndicator(tag);
|
||||
|
||||
if (!taskId || !dependencyId) {
|
||||
console.error(
|
||||
chalk.red('Error: Both --id and --depends-on are required')
|
||||
@@ -2179,7 +2204,6 @@ ${result.result}
|
||||
const tasksPath = options.file || TASKMASTER_TASKS_FILE;
|
||||
const taskId = options.id;
|
||||
const dependencyId = options.dependsOn;
|
||||
const tag = options.tag;
|
||||
|
||||
const projectRoot = findProjectRoot();
|
||||
if (!projectRoot) {
|
||||
@@ -2187,6 +2211,12 @@ ${result.result}
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Resolve tag using standard pattern
|
||||
const tag = options.tag || getCurrentTag(projectRoot) || 'master';
|
||||
|
||||
// Show current tag context
|
||||
displayCurrentTagIndicator(tag);
|
||||
|
||||
if (!taskId || !dependencyId) {
|
||||
console.error(
|
||||
chalk.red('Error: Both --id and --depends-on are required')
|
||||
@@ -2227,13 +2257,18 @@ ${result.result}
|
||||
)
|
||||
.option('--tag <tag>', 'Specify tag context for task operations')
|
||||
.action(async (options) => {
|
||||
const tag = options.tag;
|
||||
const projectRoot = findProjectRoot();
|
||||
if (!projectRoot) {
|
||||
console.error(chalk.red('Error: Could not find project root.'));
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Resolve tag using standard pattern
|
||||
const tag = options.tag || getCurrentTag(projectRoot) || 'master';
|
||||
|
||||
// Show current tag context
|
||||
displayCurrentTagIndicator(tag);
|
||||
|
||||
await validateDependenciesCommand(options.file || TASKMASTER_TASKS_FILE, {
|
||||
context: { projectRoot, tag }
|
||||
});
|
||||
@@ -2250,13 +2285,18 @@ ${result.result}
|
||||
)
|
||||
.option('--tag <tag>', 'Specify tag context for task operations')
|
||||
.action(async (options) => {
|
||||
const tag = options.tag;
|
||||
const projectRoot = findProjectRoot();
|
||||
if (!projectRoot) {
|
||||
console.error(chalk.red('Error: Could not find project root.'));
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Resolve tag using standard pattern
|
||||
const tag = options.tag || getCurrentTag(projectRoot) || 'master';
|
||||
|
||||
// Show current tag context
|
||||
displayCurrentTagIndicator(tag);
|
||||
|
||||
await fixDependenciesCommand(options.file || TASKMASTER_TASKS_FILE, {
|
||||
context: { projectRoot, tag }
|
||||
});
|
||||
@@ -2273,8 +2313,6 @@ ${result.result}
|
||||
)
|
||||
.option('--tag <tag>', 'Specify tag context for task operations')
|
||||
.action(async (options) => {
|
||||
const tag = options.tag;
|
||||
|
||||
const projectRoot = findProjectRoot();
|
||||
if (!projectRoot) {
|
||||
console.error(chalk.red('Error: Could not find project root.'));
|
||||
@@ -2282,7 +2320,10 @@ ${result.result}
|
||||
}
|
||||
|
||||
// Use the provided tag, or the current active tag, or default to 'master'
|
||||
const targetTag = tag || getCurrentTag(projectRoot) || 'master';
|
||||
const targetTag = options.tag || getCurrentTag(projectRoot) || 'master';
|
||||
|
||||
// Show current tag context
|
||||
displayCurrentTagIndicator(targetTag);
|
||||
|
||||
// Tag-aware report file naming: master -> task-complexity-report.json, other tags -> task-complexity-report_tagname.json
|
||||
const reportPath =
|
||||
@@ -2328,7 +2369,12 @@ ${result.result}
|
||||
const parentId = options.parent;
|
||||
const existingTaskId = options.taskId;
|
||||
const generateFiles = !options.skipGenerate;
|
||||
const tag = options.tag;
|
||||
|
||||
// Resolve tag using standard pattern
|
||||
const tag = options.tag || getCurrentTag(projectRoot) || 'master';
|
||||
|
||||
// Show current tag context
|
||||
displayCurrentTagIndicator(tag);
|
||||
|
||||
if (!parentId) {
|
||||
console.error(
|
||||
@@ -2769,7 +2815,6 @@ ${result.result}
|
||||
.action(async (options) => {
|
||||
const tasksPath = options.file || TASKMASTER_TASKS_FILE;
|
||||
const taskIdsString = options.id;
|
||||
const tag = options.tag;
|
||||
|
||||
const projectRoot = findProjectRoot();
|
||||
if (!projectRoot) {
|
||||
@@ -2777,6 +2822,12 @@ ${result.result}
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Resolve tag using standard pattern
|
||||
const tag = options.tag || getCurrentTag(projectRoot) || 'master';
|
||||
|
||||
// Show current tag context
|
||||
displayCurrentTagIndicator(tag);
|
||||
|
||||
if (!taskIdsString) {
|
||||
console.error(chalk.red('Error: Task ID(s) are required'));
|
||||
console.error(
|
||||
|
||||
Reference in New Issue
Block a user