@akira-tl/forgerelay 0.10.4 → 0.10.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ All notable ForgeRelay changes are documented here.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.10.5] - 2026-09-06
8
+
9
+ ### Changed
10
+
11
+ - All discovered Skills remain visible to the Agent for model-side matching; legacy `disable-model-invocation` frontmatter is ignored instead of hiding a Skill from `open_workspace` discovery.
12
+
7
13
  ## [0.10.4] - 2026-09-06
8
14
 
9
15
  ### Added
@@ -42,9 +42,7 @@ export async function presentLocalWorkspaceOpen(options, input, contextData) {
42
42
  root: workspace.root,
43
43
  });
44
44
  }
45
- const cardSkills = workspace.skills
46
- .filter((skill) => !skill.disableModelInvocation)
47
- .map((skill) => ({
45
+ const cardSkills = workspace.skills.map((skill) => ({
48
46
  name: skill.name,
49
47
  description: skill.description,
50
48
  }));
package/dist/server.js CHANGED
@@ -323,9 +323,10 @@ export function createMcpServer(config, workspaces, reviewCheckpoints, processSe
323
323
  const availableAgentsFiles = opened.availableAgentsFiles.map((file) => ({
324
324
  path: formatAgentsPath(file.path, workspace.root),
325
325
  }));
326
- const skills = workspace.skills
327
- .filter((skill) => !skill.disableModelInvocation)
328
- .map((skill) => ({ name: skill.name, description: skill.description }));
326
+ const skills = workspace.skills.map((skill) => ({
327
+ name: skill.name,
328
+ description: skill.description,
329
+ }));
329
330
  const capabilityGuides = workspace.capabilityGuides.map((guide) => ({
330
331
  name: guide.name,
331
332
  description: guide.description,
@@ -404,9 +405,10 @@ export function createMcpServer(config, workspaces, reviewCheckpoints, processSe
404
405
  providerUnavailableReason: availability?.reason,
405
406
  };
406
407
  });
407
- const skills = workspace.skills
408
- .filter((skill) => !skill.disableModelInvocation)
409
- .map((skill) => ({ name: skill.name, description: skill.description }));
408
+ const skills = workspace.skills.map((skill) => ({
409
+ name: skill.name,
410
+ description: skill.description,
411
+ }));
410
412
  return compactWorkspacePresentation({
411
413
  workspaceId: workspace.id,
412
414
  root: workspace.root,
@@ -34,7 +34,6 @@ export function bootstrapContextFingerprints(workspace, agentsFiles, availableAg
34
34
  name: skill.name,
35
35
  description: skill.description,
36
36
  filePath: resolve(skill.filePath),
37
- disableModelInvocation: skill.disableModelInvocation ?? false,
38
37
  }))
39
38
  .sort((left, right) => left.name.localeCompare(right.name) || left.filePath.localeCompare(right.filePath)),
40
39
  skillDiagnostics: workspace.skillDiagnostics,
@@ -348,17 +348,16 @@ function formatSkillMetadataDelta(change) {
348
348
  if (JSON.stringify(oldSummary) === JSON.stringify(newSummary))
349
349
  return undefined;
350
350
  if (!oldSummary) {
351
- return `Skill metadata added: ${change.displayPath}\n+ name: ${newSummary?.name ?? change.skillName ?? "unknown"}\n+ description: ${newSummary?.description ?? ""}\n+ disable-model-invocation: ${newSummary?.disableModelInvocation === true}`;
351
+ return `Skill metadata added: ${change.displayPath}\n+ name: ${newSummary?.name ?? change.skillName ?? "unknown"}\n+ description: ${newSummary?.description ?? ""}`;
352
352
  }
353
353
  if (!newSummary)
354
354
  return `Skill removed: ${change.displayPath}`;
355
355
  const lines = [`Skill metadata delta: ${change.displayPath}`];
356
- for (const field of ["name", "description", "disableModelInvocation"]) {
356
+ for (const field of ["name", "description"]) {
357
357
  if (oldSummary[field] === newSummary[field])
358
358
  continue;
359
- const label = field === "disableModelInvocation" ? "disable-model-invocation" : field;
360
- lines.push(`- ${label}: ${String(oldSummary[field])}`);
361
- lines.push(`+ ${label}: ${String(newSummary[field])}`);
359
+ lines.push(`- ${field}: ${String(oldSummary[field])}`);
360
+ lines.push(`+ ${field}: ${String(newSummary[field])}`);
362
361
  }
363
362
  return lines.join("\n");
364
363
  }
@@ -173,7 +173,6 @@ function skillSummaryFromFrontmatter(frontmatter, filePath) {
173
173
  return {
174
174
  name: normalizedSkillName(frontmatter.name, filePath),
175
175
  description: typeof frontmatter.description === "string" ? frontmatter.description.trim() : "",
176
- disableModelInvocation: frontmatter["disable-model-invocation"] === true,
177
176
  };
178
177
  }
179
178
  function parseSkillFrontmatter(content) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akira-tl/forgerelay",
3
- "version": "0.10.4",
3
+ "version": "0.10.5",
4
4
  "description": "Local development control plane for MCP coding agents.",
5
5
  "type": "module",
6
6
  "homepage": "https://github.com/Akira-TL/forgerelay#readme",