|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## 0.18.0 |
| 4 | + |
| 5 | +### Minor Changes |
| 6 | + |
| 7 | +- 7c57018: Replace the AGENTS.md content-normalization logic with a shared-path rewrite skip. When two or more active targets emit the same root-instruction path (most commonly `AGENTS.md`), every copy keeps canonical `.agentsmesh/...` references instead of being rewritten to target-specific paths. The collision resolver then merges the byte-identical copies trivially. |
| 8 | + |
| 9 | + **User-visible behavior change** |
| 10 | + |
| 11 | + The single `AGENTS.md` at the project root now contains references like `.agentsmesh/skills/<name>/SKILL.md` rather than the previous `.agents/skills/<name>/SKILL.md` (or any other target-specific prefix). Tools reading `AGENTS.md` follow the path literally and find the file under `.agentsmesh/`, which is always present as the canonical source of truth. Each target's own directory (`.agents/skills/`, `.factory/skills/`, etc.) is still generated and its files still receive normal per-target reference rewriting — only the shared root-instruction file uses canonical paths. |
| 12 | + |
| 13 | + **Why** |
| 14 | + |
| 15 | + The previous approach generated N copies of `AGENTS.md`, rewrote their references to N different target-specific paths, and then ran ~200 lines of fragile reverse-normalization to prove they were "actually the same". That logic carried hardcoded target IDs, regex bare-path anchoring, and reverse reference maps — every new target risked breaking it. The new approach is structural: skip rewriting when a path is claimed by 2+ targets as their root instruction (detected via descriptor `rootInstructionPath` + `outputFamilies` of kind `'additional'`), so the content stays byte-identical and collision merge is a no-op. Plugin targets that declare a `rootInstructionPath` get the same treatment automatically — no per-target opt-in needed. |
| 16 | + |
| 17 | + **Internal** |
| 18 | + - Drops `src/targets/catalog/agents-md-overlap.ts` (199 lines) and its test file |
| 19 | + - Adds `computeSharedRootInstructionPaths()` to `engine.ts` (descriptor-driven, no hardcoded target IDs) |
| 20 | + - Adds an optional `skipPaths: ReadonlySet<string>` parameter to `rewriteGeneratedReferences()` |
| 21 | + - Drops gemini-cli's legacy pre-emptive `.agentsmesh/skills/` → `.agents/skills/` substitution in `generateRules` — no longer needed under the new approach |
| 22 | + - 28 new tests across `tests/unit/core/shared-root-instruction-paths.test.ts`, `reference-rewriter-shared-paths.test.ts`, and `tests/contract/shared-agents-md.test.ts` |
| 23 | + |
| 24 | +- 7c57018: Add six new built-in targets: `deepagents-cli`, `factory-droid`, `jules`, `pi-agent`, `replit-agent`, and `rovodev`. Each ships with project and global mode support, full feature generators (rules, skills, MCP, hooks, ignore, permissions where applicable), an importer, capability-focused unit tests, and integration coverage for the import + generate round-trip. The new targets appear automatically in the support matrix, the import target table, and every auto-generated tool list — no manual doc edits required to discover them. |
| 25 | +- 7c57018: Add a required `metadata` field to `TargetDescriptor` and a new `TARGET_REGISTRY` aggregator that drives every user-facing target listing in README and the website. Plugin and built-in targets now declare display name, category, official URL, and a one-line description in a single place; the TypeScript compiler enforces completeness. |
| 26 | + |
| 27 | + **New public surface** |
| 28 | + - `TargetMetadata` interface (`displayName`, `category: 'cli' | 'ide' | 'agent-platform'`, `officialUrl`, `shortDescription`) exported from `src/targets/catalog/target-descriptor.ts`. |
| 29 | + - `TARGET_REGISTRY: Readonly<Record<BuiltinTargetId, TargetEntry>>` plus `listTargets()`, `targetsByCategory()`, and `primaryImportRoot()` helpers exported from `src/targets/catalog/target-metadata-registry.ts`. |
| 30 | + - Every `TargetDescriptor.metadata` is required at compile time; the field is now part of the contract for plugin authors. |
| 31 | + |
| 32 | + **Plugin authors — what to do** |
| 33 | + |
| 34 | + If you ship a `TargetDescriptor` from a plugin package, add the `metadata` block immediately after `id:`: |
| 35 | + |
| 36 | + ```typescript |
| 37 | + export const descriptor = { |
| 38 | + id: 'my-tool', |
| 39 | + metadata: { |
| 40 | + displayName: 'My Tool', |
| 41 | + category: 'cli', |
| 42 | + officialUrl: 'https://example.com', |
| 43 | + shortDescription: 'One-line description used in tool lists', |
| 44 | + }, |
| 45 | + // ...rest unchanged |
| 46 | + } satisfies TargetDescriptor; |
| 47 | + ``` |
| 48 | + |
| 49 | + The TypeScript compiler will fail if any field is missing or mistyped. The metadata appears in any auto-generated tool list a consumer renders — there is no separate registration step. |
| 50 | + |
| 51 | + **Tooling updates** |
| 52 | + - `agentsmesh target scaffold <id>` now emits a `metadata` block with `TODO(agentsmesh-scaffold)` markers that fail to compile until the author fills them in. |
| 53 | + - The `add-agent-target` skill and `target-addition-checklist.md` reference list the metadata fields in Phase 1 research; the `add-new-target-playbook.md` walks through filling them. |
| 54 | + |
| 55 | +### Patch Changes |
| 56 | + |
| 57 | +- 7c57018: Auto-generate every user-facing target listing from `TARGET_REGISTRY`, and reposition install methods so AgentsMesh is no longer presented as Node-only. |
| 58 | + |
| 59 | + **Auto-generated target listings** |
| 60 | + |
| 61 | + `pnpm matrix:generate` now writes three new auto-generated marker blocks in addition to the existing project/global feature matrices: |
| 62 | + - `tool-list` (README + homepage) — every target grouped by category with links to the official tool URL |
| 63 | + - `import-targets` (`cli/import.mdx`) — all 30 targets with their primary read path |
| 64 | + - `tool-details` (`reference/supported-tools.mdx`) — uniform per-target sections with display name, category, official URL, project + global root paths, and skill directory |
| 65 | + |
| 66 | + `pnpm matrix:verify` (CI gate) fails the build whenever any of the four documents drift from the catalog. The render script was split into `scripts/support-matrix-blocks.ts` (pure builders) and a slim orchestrator. |
| 67 | + |
| 68 | + **Hardcoded enumerations removed** |
| 69 | + |
| 70 | + Replaced with links to the support matrix or generated content: |
| 71 | + - README import-target list (was 13/30) and tool-format examples |
| 72 | + - Homepage prose enumeration of 15+ tools |
| 73 | + - `cli/import.mdx` per-target source→canonical mapping tables (only 7/30 documented) — collapsed into a single canonical-pattern table plus editorial caveats for the 5 targets with real implementation quirks |
| 74 | + - `cli/init.mdx` auto-detection list (12 hardcoded paths) and starter-config example |
| 75 | + - `cli/generate.mdx` output-locations table (was 12/30) |
| 76 | + - `canonical-config/commands.mdx` + `canonical-config/hooks.mdx` per-target feature support enumerations |
| 77 | + - `reference/supported-tools.mdx` per-tool detail sections (was 24/30 hand-written, ~494 lines) replaced with the auto-generated `tool-details` block covering all 30 targets uniformly |
| 78 | + |
| 79 | + **Install repositioning** |
| 80 | + |
| 81 | + AgentsMesh now presents three install methods as equals — Homebrew (no Node.js required), standalone binary (no Node.js required), and npm/pnpm/yarn (Node.js 20+). The `getting-started/installation.mdx` page rewrite uses a Tabs block with a "which method should I use?" comparison table. The README install section was reordered (Homebrew first, npm last) and `npx agentsmesh ...` was stripped from every non-install code sample — `npx` survives only in the two explicit "run without installing" snippets where it's the legitimate use. CI workflow examples, guides, and command-reference pages now use the plain `agentsmesh` binary, which works after any install method (with `npx` documented as the prefix for users who chose `npm install -D`). |
| 82 | + |
3 | 83 | ## 0.17.0 |
4 | 84 |
|
5 | 85 | ### Minor Changes |
|
0 commit comments