fix: duplicate banner

This commit is contained in:
Ralph Khreish
2025-09-13 12:46:48 -07:00
parent 6b73c42dbd
commit 8765832a49
3 changed files with 9 additions and 73 deletions

View File

@@ -262,13 +262,10 @@ export class ListTasksCommand extends Command {
// Get file path for display
const filePath = this.tmCore ? `.taskmaster/tasks/tasks.json` : undefined;
// Display header with Task Master banner
// Display header without banner (banner already shown by main CLI)
displayHeader({
version: '0.26.0', // You may want to get this dynamically
projectName: 'Taskmaster',
tag: tag || 'master',
filePath: filePath,
showBanner: true
filePath: filePath
});
// No tasks message
@@ -303,13 +300,13 @@ export class ListTasksCommand extends Command {
showComplexity: true // Enable complexity column
})
);
// Display recommended next task section immediately after table
if (nextTask) {
// Find the full task object to get description
const fullTask = tasks.find(t => String(t.id) === String(nextTask.id));
const fullTask = tasks.find((t) => String(t.id) === String(nextTask.id));
const description = fullTask ? getTaskDescription(fullTask) : undefined;
displayRecommendedNextTask({
...nextTask,
status: 'pending', // Next task is typically pending
@@ -318,7 +315,7 @@ export class ListTasksCommand extends Command {
} else {
displayRecommendedNextTask(undefined);
}
// Display suggested next steps at the end
displaySuggestedNextSteps();
}

View File

@@ -4,76 +4,26 @@
*/
import chalk from 'chalk';
import boxen from 'boxen';
import figlet from 'figlet';
import gradient from 'gradient-string';
import packageJson from '../../../package.json';
/**
* Header configuration options
*/
export interface HeaderOptions {
title?: string;
version?: string;
projectName?: string;
tag?: string;
filePath?: string;
showBanner?: boolean;
}
/**
* Create the Task Master ASCII art banner
*/
function createBanner(): string {
const bannerText = figlet.textSync('Task Master', {
font: 'Standard',
horizontalLayout: 'default',
verticalLayout: 'default'
});
// Create a cool gradient effect
const coolGradient = gradient(['#0099ff', '#00ffcc']);
return coolGradient(bannerText);
}
/**
* Display the Task Master header with project info
*/
export function displayHeader(options: HeaderOptions = {}): void {
const {
version = packageJson.version,
projectName = 'Taskmaster',
tag,
filePath,
showBanner = true
} = options;
// Display the ASCII banner if requested
if (showBanner) {
console.log(createBanner());
// Add creator credit line below the banner
console.log(
chalk.dim('by ') + chalk.cyan.underline('https://x.com/eyaltoledano')
);
}
// Create the version and project info box
const infoBoxContent = chalk.white(
`${chalk.bold('Version:')} ${version} ${chalk.bold('Project:')} ${projectName}`
);
console.log(
boxen(infoBoxContent, {
padding: { left: 1, right: 1, top: 0, bottom: 0 },
margin: { top: 1, bottom: 1 },
borderStyle: 'round',
borderColor: 'cyan'
})
);
const { filePath, tag } = options;
// Display tag and file path info
if (tag || filePath) {
if (tag) {
let tagInfo = '';
if (tag && tag !== 'master') {
@@ -95,10 +45,3 @@ export function displayHeader(options: HeaderOptions = {}): void {
console.log(); // Empty line for spacing
}
}
/**
* Display a simple header without the ASCII art
*/
export function displaySimpleHeader(options: HeaderOptions = {}): void {
displayHeader({ ...options, showBanner: false });
}

View File

@@ -20,11 +20,7 @@
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"types": ["node"],
"paths": {
"@tm/core": ["../../packages/tm-core/src/index.ts"],
"@tm/core/*": ["../../packages/tm-core/src/*"]
}
"types": ["node"]
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist", "tests"]