mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-17 03:03:44 +00:00
feat(coding-agent): package deduplication and collision detection
- Package deduplication: same package in global+project, project wins - Collision detection for skills, prompts, and themes with ResourceCollision type - PathMetadata tracking with parent directory lookup for file paths - Display improvements: section headers, sorted groups, accent colors for packages - pi list shows full paths below package names - Extension loader discovers files in directories without index.ts - In-memory SettingsManager properly tracks project settings fixes #645
This commit is contained in:
parent
c5c515f560
commit
50c8323590
18 changed files with 738 additions and 389 deletions
|
|
@ -40,6 +40,10 @@ export interface Skill {
|
|||
export interface SkillWarning {
|
||||
skillPath: string;
|
||||
message: string;
|
||||
/** For name collisions, the name that collided */
|
||||
collisionName?: string;
|
||||
/** For name collisions, the path of the skill that was loaded (winner) */
|
||||
collisionWinner?: string;
|
||||
}
|
||||
|
||||
export interface LoadSkillsResult {
|
||||
|
|
@ -338,7 +342,9 @@ export function loadSkills(options: LoadSkillsOptions = {}): LoadSkillsResult {
|
|||
if (existing) {
|
||||
collisionWarnings.push({
|
||||
skillPath: skill.filePath,
|
||||
message: `name collision: "${skill.name}" already loaded from ${existing.filePath}, skipping this one`,
|
||||
message: `name "${skill.name}" collision`,
|
||||
collisionName: skill.name,
|
||||
collisionWinner: existing.filePath,
|
||||
});
|
||||
} else {
|
||||
skillMap.set(skill.name, skill);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue