@meltstudio/meltctl 4.160.0 → 4.161.0

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.
Files changed (2) hide show
  1. package/dist/index.js +6 -19
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var CLI_VERSION;
14
14
  var init_version = __esm({
15
15
  "src/utils/version.ts"() {
16
16
  "use strict";
17
- CLI_VERSION = "4.160.0";
17
+ CLI_VERSION = "4.161.0";
18
18
  }
19
19
  });
20
20
 
@@ -954,8 +954,6 @@ function createPmResource(config) {
954
954
  params.set("category", filters.category);
955
955
  if (filters?.currentStage)
956
956
  params.set("currentStage", filters.currentStage);
957
- if (filters?.targetStage)
958
- params.set("targetStage", filters.targetStage);
959
957
  const res = await apiFetch(config, `/pm/features?${params}`);
960
958
  return unwrap("list features", res);
961
959
  },
@@ -3912,8 +3910,6 @@ function createPmResource2(config) {
3912
3910
  params.set("category", filters.category);
3913
3911
  if (filters?.currentStage)
3914
3912
  params.set("currentStage", filters.currentStage);
3915
- if (filters?.targetStage)
3916
- params.set("targetStage", filters.targetStage);
3917
3913
  const res = await apiFetch2(config, `/pm/features?${params}`);
3918
3914
  return unwrap2("list features", res);
3919
3915
  },
@@ -5061,7 +5057,6 @@ var createFeatureInputSchema = z4.object({
5061
5057
  description: z4.string().optional(),
5062
5058
  prdPath: z4.string().url().optional(),
5063
5059
  currentStage: z4.enum(STAGE_VALUES2).optional(),
5064
- targetStage: z4.enum(STAGE_VALUES2).optional(),
5065
5060
  startingPoint: z4.enum(STARTING_POINT_VALUES).optional(),
5066
5061
  status: z4.string().optional(),
5067
5062
  clientNotes: z4.string().optional(),
@@ -5076,25 +5071,22 @@ var updateFeatureInputSchema = z4.object({
5076
5071
  description: z4.string().optional(),
5077
5072
  prdPath: z4.string().url().optional(),
5078
5073
  currentStage: z4.enum(STAGE_VALUES2).optional(),
5079
- targetStage: z4.enum(STAGE_VALUES2).optional(),
5080
5074
  startingPoint: z4.enum(STARTING_POINT_VALUES).optional(),
5081
5075
  status: z4.string().optional(),
5082
- clientNotes: z4.string().optional(),
5083
- linearEpicUrl: z4.string().url().nullable().optional()
5076
+ clientNotes: z4.string().optional()
5084
5077
  });
5085
5078
  function registerFeatureTools(server, getClient2) {
5086
5079
  server.registerTool(
5087
5080
  "list_features",
5088
5081
  {
5089
5082
  title: "List features",
5090
- description: "Lists features on the project. Each entry has id, name, category, description, current_stage, target_stage, status, prd_path, client_notes, and Linear epic url if synced. Optional filters narrow server-side: phaseId returns only features assigned to that phase; status / category / currentStage / targetStage filter on the matching column.",
5083
+ description: "Lists features on the project. Each entry has id, name, category, description, current_stage, status, prd_path, client_notes, and starting_point. Per-phase target stage + Linear epic live on the phase membership (see list_phases), not the feature row. Optional filters narrow server-side: phaseId returns only features assigned to that phase; status / category / currentStage filter on the matching column.",
5091
5084
  inputSchema: {
5092
5085
  projectId: z4.number().int().positive(),
5093
5086
  phaseId: z4.string().uuid().optional().describe("Limit to features assigned to this phase (phase_features join)."),
5094
5087
  status: z4.string().optional().describe("Filter by status \u2014 typically not_started / in_progress / done."),
5095
5088
  category: z4.string().optional().describe("Filter by roadmap category, exact match."),
5096
- currentStage: z4.enum(STAGE_VALUES2).optional().describe("Filter by current_stage."),
5097
- targetStage: z4.enum(STAGE_VALUES2).optional().describe("Filter by target_stage.")
5089
+ currentStage: z4.enum(STAGE_VALUES2).optional().describe("Filter by current_stage.")
5098
5090
  }
5099
5091
  },
5100
5092
  withClientArgs(getClient2, listFeatures)
@@ -5111,7 +5103,6 @@ function registerFeatureTools(server, getClient2) {
5111
5103
  description: z4.string().optional().describe("One-sentence summary for the roadmap row."),
5112
5104
  prdPath: z4.string().url().optional().describe(PRD_PATH_DESC),
5113
5105
  currentStage: z4.enum(STAGE_VALUES2).optional().describe(`Default idea. ${STAGE_DESC}`),
5114
- targetStage: z4.enum(STAGE_VALUES2).optional().describe(`Default mv. ${STAGE_DESC}`),
5115
5106
  startingPoint: z4.enum(STARTING_POINT_VALUES).optional().describe(`Default unknown. ${STARTING_POINT_DESC}`),
5116
5107
  status: z4.string().optional().describe("Default not_started. Common values: not_started, in_progress, done."),
5117
5108
  clientNotes: z4.string().optional().describe("Free-text. What blockers from the client side, if any."),
@@ -5154,7 +5145,7 @@ Mandatory caller behavior: present the feature's name + id + every phase it curr
5154
5145
  "update_feature",
5155
5146
  {
5156
5147
  title: "Update feature",
5157
- description: "Patches fields on an existing feature. Pass only the fields you want to change. Common uses: advancing current_stage as work progresses, flipping status to in_progress/done, wiring linearEpicUrl after the Linear epic exists. The PM should review the proposed change before this is called \u2014 this is a write operation. Pass linearEpicUrl=null to clear the Linear link.",
5148
+ description: "Patches fields on an existing feature. Pass only the fields you want to change. Common uses: advancing current_stage as work progresses, flipping status to in_progress/done, setting starting_point. The PM should review the proposed change before this is called \u2014 this is a write operation. Per-phase target stage + Linear epic are NOT set here \u2014 they live on the phase membership; use update_phase_feature for those.",
5158
5149
  inputSchema: {
5159
5150
  id: z4.string().uuid().describe("Feature id from list_features or create_feature."),
5160
5151
  name: z4.string().min(1).optional(),
@@ -5162,13 +5153,9 @@ Mandatory caller behavior: present the feature's name + id + every phase it curr
5162
5153
  description: z4.string().optional(),
5163
5154
  prdPath: z4.string().url().optional().describe(PRD_PATH_DESC),
5164
5155
  currentStage: z4.enum(STAGE_VALUES2).optional().describe(STAGE_DESC),
5165
- targetStage: z4.enum(STAGE_VALUES2).optional().describe(STAGE_DESC),
5166
5156
  startingPoint: z4.enum(STARTING_POINT_VALUES).optional().describe(STARTING_POINT_DESC),
5167
5157
  status: z4.string().optional().describe("Common values: not_started, in_progress, done."),
5168
- clientNotes: z4.string().optional(),
5169
- linearEpicUrl: z4.string().url().nullable().optional().describe(
5170
- "Linear epic URL for the feature. Pass null to clear. Setting this also marks the feature as synced (synced_to_linear_at = now); clearing it also clears that timestamp."
5171
- )
5158
+ clientNotes: z4.string().optional()
5172
5159
  }
5173
5160
  },
5174
5161
  withClientArgs(getClient2, updateFeature)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meltstudio/meltctl",
3
- "version": "4.160.0",
3
+ "version": "4.161.0",
4
4
  "description": "AI-first development tools for teams - set up AGENTS.md, Claude Code, Cursor, and OpenCode standards",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",