feat(FN-2202): reposition and restyle task card agent badge
- Move the assigned agent badge out of the card header into a dedicated metadata row below task details - Add a new .card-agent-row container to control spacing and alignment for the badge block - Update .card-agent-badge styling to use token-aligned pill radius and color-mix backgrounds while removing monospace/fixed-width conventions - Expand TaskCard agent badge tests to verify new DOM placement and enforced badge style rules
This commit is contained in:
@@ -59,28 +59,110 @@ function configurePiPackage(): void {
|
||||
|
||||
configurePiPackage();
|
||||
|
||||
// Dynamic imports so the pi-coding-agent config module sees PI_PACKAGE_DIR
|
||||
const { runDashboard } = await import("./commands/dashboard.js");
|
||||
const { runServe } = await import("./commands/serve.js");
|
||||
const { runDaemon } = await import("./commands/daemon.js");
|
||||
const { runDesktop } = await import("./commands/desktop.js");
|
||||
const { runTaskCreate, runTaskList, runTaskMove, runTaskMerge, runTaskUpdate, runTaskLog, runTaskLogs, runTaskShow, runTaskAttach, runTaskPause, runTaskUnpause, runTaskImportFromGitHub, runTaskDuplicate, runTaskArchive, runTaskUnarchive, runTaskRefine, runTaskPlan, runTaskDelete, runTaskRetry, runTaskComment, runTaskComments, runTaskSteer, runTaskPrCreate } = await import("./commands/task.js");
|
||||
const { runSettingsShow, runSettingsSet } = await import("./commands/settings.js");
|
||||
const { runSettingsExport } = await import("./commands/settings-export.js");
|
||||
const { runSettingsImport } = await import("./commands/settings-import.js");
|
||||
const { runGitStatus, runGitFetch, runGitPull, runGitPush } = await import("./commands/git.js");
|
||||
const { runBackupCreate, runBackupList, runBackupRestore, runBackupCleanup } = await import("./commands/backup.js");
|
||||
const { runMissionCreate, runMissionList, runMissionShow, runMissionDelete, runMissionActivateSlice } = await import("./commands/mission.js");
|
||||
const { runProjectList, runProjectAdd, runProjectRemove, runProjectShow, runProjectInfo, runProjectSetDefault, runProjectDetect } = await import("./commands/project.js");
|
||||
const { runNodeList, runNodeConnect, runNodeDisconnect, runNodeShow, runNodeHealth, runMeshStatus } = await import("./commands/node.js");
|
||||
const { runInit } = await import("./commands/init.js");
|
||||
const { runAgentStop, runAgentStart } = await import("./commands/agent.js");
|
||||
const { runAgentImport } = await import("./commands/agent-import.js");
|
||||
const { runAgentExport } = await import("./commands/agent-export.js");
|
||||
const { runMessageInbox, runMessageOutbox, runMessageSend, runMessageRead, runMessageDelete, runAgentMailbox } = await import("./commands/message.js");
|
||||
const { runPluginList, runPluginInstall, runPluginUninstall, runPluginEnable, runPluginDisable } = await import("./commands/plugin.js");
|
||||
const { runPluginCreate } = await import("./commands/plugin-scaffold.js");
|
||||
const { runSkillsSearch, runSkillsInstall } = await import("./commands/skills.js");
|
||||
// Command handlers are loaded lazily so --help can return immediately
|
||||
// without importing the full command graph.
|
||||
async function loadCommandHandlers() {
|
||||
const { runDashboard } = await import("./commands/dashboard.js");
|
||||
const { runServe } = await import("./commands/serve.js");
|
||||
const { runDaemon } = await import("./commands/daemon.js");
|
||||
const { runDesktop } = await import("./commands/desktop.js");
|
||||
const { runTaskCreate, runTaskList, runTaskMove, runTaskMerge, runTaskUpdate, runTaskLog, runTaskLogs, runTaskShow, runTaskAttach, runTaskPause, runTaskUnpause, runTaskImportFromGitHub, runTaskDuplicate, runTaskArchive, runTaskUnarchive, runTaskRefine, runTaskPlan, runTaskDelete, runTaskRetry, runTaskComment, runTaskComments, runTaskSteer, runTaskPrCreate } = await import("./commands/task.js");
|
||||
const { runSettingsShow, runSettingsSet } = await import("./commands/settings.js");
|
||||
const { runSettingsExport } = await import("./commands/settings-export.js");
|
||||
const { runSettingsImport } = await import("./commands/settings-import.js");
|
||||
const { runGitStatus, runGitFetch, runGitPull, runGitPush } = await import("./commands/git.js");
|
||||
const { runBackupCreate, runBackupList, runBackupRestore, runBackupCleanup } = await import("./commands/backup.js");
|
||||
const { runMissionCreate, runMissionList, runMissionShow, runMissionDelete, runMissionActivateSlice } = await import("./commands/mission.js");
|
||||
const { runProjectList, runProjectAdd, runProjectRemove, runProjectShow, runProjectInfo, runProjectSetDefault, runProjectDetect } = await import("./commands/project.js");
|
||||
const { runNodeList, runNodeConnect, runNodeDisconnect, runNodeShow, runNodeHealth, runMeshStatus } = await import("./commands/node.js");
|
||||
const { runInit } = await import("./commands/init.js");
|
||||
const { runAgentStop, runAgentStart } = await import("./commands/agent.js");
|
||||
const { runAgentImport } = await import("./commands/agent-import.js");
|
||||
const { runAgentExport } = await import("./commands/agent-export.js");
|
||||
const { runMessageInbox, runMessageOutbox, runMessageSend, runMessageRead, runMessageDelete, runAgentMailbox } = await import("./commands/message.js");
|
||||
const { runPluginList, runPluginInstall, runPluginUninstall, runPluginEnable, runPluginDisable } = await import("./commands/plugin.js");
|
||||
const { runPluginCreate } = await import("./commands/plugin-scaffold.js");
|
||||
const { runSkillsSearch, runSkillsInstall } = await import("./commands/skills.js");
|
||||
|
||||
return {
|
||||
runDashboard,
|
||||
runServe,
|
||||
runDaemon,
|
||||
runDesktop,
|
||||
runTaskCreate,
|
||||
runTaskList,
|
||||
runTaskMove,
|
||||
runTaskMerge,
|
||||
runTaskUpdate,
|
||||
runTaskLog,
|
||||
runTaskLogs,
|
||||
runTaskShow,
|
||||
runTaskAttach,
|
||||
runTaskPause,
|
||||
runTaskUnpause,
|
||||
runTaskImportFromGitHub,
|
||||
runTaskDuplicate,
|
||||
runTaskArchive,
|
||||
runTaskUnarchive,
|
||||
runTaskRefine,
|
||||
runTaskPlan,
|
||||
runTaskDelete,
|
||||
runTaskRetry,
|
||||
runTaskComment,
|
||||
runTaskComments,
|
||||
runTaskSteer,
|
||||
runTaskPrCreate,
|
||||
runSettingsShow,
|
||||
runSettingsSet,
|
||||
runSettingsExport,
|
||||
runSettingsImport,
|
||||
runGitStatus,
|
||||
runGitFetch,
|
||||
runGitPull,
|
||||
runGitPush,
|
||||
runBackupCreate,
|
||||
runBackupList,
|
||||
runBackupRestore,
|
||||
runBackupCleanup,
|
||||
runMissionCreate,
|
||||
runMissionList,
|
||||
runMissionShow,
|
||||
runMissionDelete,
|
||||
runMissionActivateSlice,
|
||||
runProjectList,
|
||||
runProjectAdd,
|
||||
runProjectRemove,
|
||||
runProjectShow,
|
||||
runProjectInfo,
|
||||
runProjectSetDefault,
|
||||
runProjectDetect,
|
||||
runNodeList,
|
||||
runNodeConnect,
|
||||
runNodeDisconnect,
|
||||
runNodeShow,
|
||||
runNodeHealth,
|
||||
runMeshStatus,
|
||||
runInit,
|
||||
runAgentStop,
|
||||
runAgentStart,
|
||||
runAgentImport,
|
||||
runAgentExport,
|
||||
runMessageInbox,
|
||||
runMessageOutbox,
|
||||
runMessageSend,
|
||||
runMessageRead,
|
||||
runMessageDelete,
|
||||
runAgentMailbox,
|
||||
runPluginList,
|
||||
runPluginInstall,
|
||||
runPluginUninstall,
|
||||
runPluginEnable,
|
||||
runPluginDisable,
|
||||
runPluginCreate,
|
||||
runSkillsSearch,
|
||||
runSkillsInstall,
|
||||
};
|
||||
}
|
||||
|
||||
const HELP = `
|
||||
fn — AI-orchestrated task board
|
||||
@@ -315,6 +397,85 @@ async function main() {
|
||||
await checkAndMigrate();
|
||||
}
|
||||
|
||||
const {
|
||||
runDashboard,
|
||||
runServe,
|
||||
runDaemon,
|
||||
runDesktop,
|
||||
runTaskCreate,
|
||||
runTaskList,
|
||||
runTaskMove,
|
||||
runTaskMerge,
|
||||
runTaskUpdate,
|
||||
runTaskLog,
|
||||
runTaskLogs,
|
||||
runTaskShow,
|
||||
runTaskAttach,
|
||||
runTaskPause,
|
||||
runTaskUnpause,
|
||||
runTaskImportFromGitHub,
|
||||
runTaskDuplicate,
|
||||
runTaskArchive,
|
||||
runTaskUnarchive,
|
||||
runTaskRefine,
|
||||
runTaskPlan,
|
||||
runTaskDelete,
|
||||
runTaskRetry,
|
||||
runTaskComment,
|
||||
runTaskComments,
|
||||
runTaskSteer,
|
||||
runTaskPrCreate,
|
||||
runSettingsShow,
|
||||
runSettingsSet,
|
||||
runSettingsExport,
|
||||
runSettingsImport,
|
||||
runGitStatus,
|
||||
runGitFetch,
|
||||
runGitPull,
|
||||
runGitPush,
|
||||
runBackupCreate,
|
||||
runBackupList,
|
||||
runBackupRestore,
|
||||
runBackupCleanup,
|
||||
runMissionCreate,
|
||||
runMissionList,
|
||||
runMissionShow,
|
||||
runMissionDelete,
|
||||
runMissionActivateSlice,
|
||||
runProjectList,
|
||||
runProjectAdd,
|
||||
runProjectRemove,
|
||||
runProjectShow,
|
||||
runProjectInfo,
|
||||
runProjectSetDefault,
|
||||
runProjectDetect,
|
||||
runNodeList,
|
||||
runNodeConnect,
|
||||
runNodeDisconnect,
|
||||
runNodeShow,
|
||||
runNodeHealth,
|
||||
runMeshStatus,
|
||||
runInit,
|
||||
runAgentStop,
|
||||
runAgentStart,
|
||||
runAgentImport,
|
||||
runAgentExport,
|
||||
runMessageInbox,
|
||||
runMessageOutbox,
|
||||
runMessageSend,
|
||||
runMessageRead,
|
||||
runMessageDelete,
|
||||
runAgentMailbox,
|
||||
runPluginList,
|
||||
runPluginInstall,
|
||||
runPluginUninstall,
|
||||
runPluginEnable,
|
||||
runPluginDisable,
|
||||
runPluginCreate,
|
||||
runSkillsSearch,
|
||||
runSkillsInstall,
|
||||
} = await loadCommandHandlers();
|
||||
|
||||
try {
|
||||
switch (command) {
|
||||
case "init": {
|
||||
|
||||
Reference in New Issue
Block a user