gitflic-cli-mcp 0.4.1 → 0.4.2

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/package.json +2 -2
  2. package/slim.mjs +9 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gitflic-cli-mcp",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "MCP server wrapping the gitflic CLI — exposes the GitFlic REST API as typed tools for AI agents (Claude Code, Cursor, etc.)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -46,7 +46,7 @@
46
46
  },
47
47
  "dependencies": {
48
48
  "@modelcontextprotocol/sdk": "^1.0.0",
49
- "gitflic-cli": "^0.3.3",
49
+ "gitflic-cli": "0.3.5",
50
50
  "zod": "^3.25.76"
51
51
  }
52
52
  }
package/slim.mjs CHANGED
@@ -79,7 +79,12 @@ const P = {
79
79
  status: statusId(i.status),
80
80
  labels: labelTitles(i.labels) ?? [],
81
81
  assignedUsers: (i.assignedUsers || []).map(userName).filter(Boolean),
82
- author: i.userAlias ?? userName(i.createdBy),
82
+ // NOT i.userAlias: on an issue that is the *project owner's* alias (the
83
+ // `<userAlias>/<projectAlias>` path), identical on every issue in the repo —
84
+ // using it would report the owner as the author of everyone's issues.
85
+ // GitFlic's issue API exposes no author at all, so this stays undefined
86
+ // (key dropped on serialize) unless the API ever starts sending createdBy.
87
+ author: userName(i.createdBy),
83
88
  ...(i.updatedBy ? { updatedBy: userName(i.updatedBy) } : {}),
84
89
  createdAt: i.createdAt, updatedAt: i.updatedAt,
85
90
  ...(i.description != null ? { description: i.description } : {}),
@@ -209,7 +214,9 @@ export function applyListFilters(items, args = {}) {
209
214
  let out = items;
210
215
  if (args.label) out = out.filter((i) => (labelTitles(i.labels) || []).some((t) => ci(t).includes(ci(args.label))));
211
216
  if (args.assignee) out = out.filter((i) => (i.assignedUsers || []).some((u) => ci(userName(u)) === ci(args.assignee)));
212
- if (args.author) out = out.filter((i) => ci(userName(i.createdBy) || userName(i.user) || i.userAlias || i.authorIdent?.name).includes(ci(args.author)));
217
+ // Mirrors the author resolution in P.mr / slimCommit. i.userAlias is NOT in
218
+ // the chain on purpose — it is the project owner's alias, not an author.
219
+ if (args.author) out = out.filter((i) => ci(userName(i.createdBy) || userName(i.author) || userName(i.user) || i.authorIdent?.name).includes(ci(args.author)));
213
220
  if (args.status) out = out.filter((i) => ci(statusId(i.status)) === ci(args.status));
214
221
  if (args.targetBranch) out = out.filter((i) => ci(branchName(i.targetBranch)).includes(ci(args.targetBranch)));
215
222
  if (args.sourceBranch) out = out.filter((i) => ci(branchName(i.sourceBranch)).includes(ci(args.sourceBranch)));