frontier-mcp 0.5.0 → 0.6.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 (45) hide show
  1. package/README.md +33 -15
  2. package/dist/domain.d.ts +11 -0
  3. package/dist/domain.d.ts.map +1 -1
  4. package/dist/domain.js.map +1 -1
  5. package/dist/frontier.d.ts +8 -0
  6. package/dist/frontier.d.ts.map +1 -1
  7. package/dist/frontier.js +33 -4
  8. package/dist/frontier.js.map +1 -1
  9. package/dist/server.d.ts.map +1 -1
  10. package/dist/server.js +12 -1
  11. package/dist/server.js.map +1 -1
  12. package/dist/storage/driver.d.ts +25 -0
  13. package/dist/storage/driver.d.ts.map +1 -1
  14. package/dist/storage/driver.js +14 -0
  15. package/dist/storage/driver.js.map +1 -1
  16. package/dist/storage/markdown/create.d.ts +2 -1
  17. package/dist/storage/markdown/create.d.ts.map +1 -1
  18. package/dist/storage/markdown/create.js +2 -1
  19. package/dist/storage/markdown/create.js.map +1 -1
  20. package/dist/storage/markdown/driver.d.ts.map +1 -1
  21. package/dist/storage/markdown/driver.js +128 -27
  22. package/dist/storage/markdown/driver.js.map +1 -1
  23. package/dist/storage/markdown/migrate.d.ts +2 -0
  24. package/dist/storage/markdown/migrate.d.ts.map +1 -1
  25. package/dist/storage/markdown/migrate.js +3 -2
  26. package/dist/storage/markdown/migrate.js.map +1 -1
  27. package/dist/storage/markdown/ticket.d.ts +2 -0
  28. package/dist/storage/markdown/ticket.d.ts.map +1 -1
  29. package/dist/storage/markdown/ticket.js +5 -0
  30. package/dist/storage/markdown/ticket.js.map +1 -1
  31. package/dist/tools/create-tickets.d.ts +12 -1
  32. package/dist/tools/create-tickets.d.ts.map +1 -1
  33. package/dist/tools/create-tickets.js +22 -5
  34. package/dist/tools/create-tickets.js.map +1 -1
  35. package/dist/tools/get-tickets.d.ts.map +1 -1
  36. package/dist/tools/get-tickets.js +30 -6
  37. package/dist/tools/get-tickets.js.map +1 -1
  38. package/dist/tools/migrate-effort.js +3 -0
  39. package/dist/tools/migrate-effort.js.map +1 -1
  40. package/dist/tools/update-ticket.js +3 -3
  41. package/dist/tools/update-ticket.js.map +1 -1
  42. package/dist/tools/workspace-line.d.ts +2 -2
  43. package/dist/tools/workspace-line.js +2 -2
  44. package/docs/agents/issue-tracker.md +49 -22
  45. package/package.json +1 -1
@@ -18,20 +18,32 @@ export function renderTickets(requested, found) {
18
18
  // Addressable by id when it has one, and by its handle either way — an
19
19
  // id-less Legacy Ticket has no other route to its own body.
20
20
  const byName = new Map();
21
+ const add = (name, ticket) => {
22
+ const claimants = byName.get(name) ?? [];
23
+ if (!claimants.includes(ticket))
24
+ claimants.push(ticket);
25
+ byName.set(name, claimants);
26
+ };
21
27
  for (const ticket of found) {
22
- byName.set(ticket.handle, ticket);
28
+ add(ticket.handle, ticket);
23
29
  if (ticket.id !== undefined)
24
- byName.set(ticket.id, ticket);
30
+ add(ticket.id, ticket);
25
31
  }
26
32
  const blocks = [];
27
33
  const missing = [];
28
34
  for (const name of requested) {
29
- const ticket = byName.get(name);
30
- if (ticket === undefined) {
35
+ const claimants = byName.get(name);
36
+ if (claimants === undefined) {
31
37
  missing.push(name);
32
38
  continue;
33
39
  }
34
- blocks.push(renderOne(ticket));
40
+ // Every claimant of a duplicated id, never silently the first.
41
+ if (claimants.length > 1) {
42
+ blocks.push(`${name} is carried by ${String(claimants.length)} Tickets — writes to it are refused ` +
43
+ 'until all but one are renumbered by hand');
44
+ }
45
+ for (const ticket of claimants)
46
+ blocks.push(renderOne(ticket));
35
47
  }
36
48
  if (missing.length > 0)
37
49
  blocks.push(`not found: ${missing.join(' ')}`);
@@ -51,6 +63,18 @@ function renderOne(ticket) {
51
63
  ticket.droppedReason === undefined ? undefined : `dropped_reason=${ticket.droppedReason}`,
52
64
  ticket.legacy ? 'legacy' : undefined,
53
65
  ].filter(field => field !== undefined);
54
- return `# ${ticket.handle} — ${ticket.title}\n${fields.join(' ')}\n\n${ticket.body}`;
66
+ const head = `# ${ticket.handle} — ${ticket.title}\n${fields.join(' ')}\n\n${ticket.body}`;
67
+ return ticket.foreignFence === undefined
68
+ ? head
69
+ : `${head}\n\n${renderFence(ticket.foreignFence)}`;
70
+ }
71
+ /**
72
+ * The fence verbatim, never re-serialized. Its delimiter outruns any backtick
73
+ * run inside it, so YAML holding a code fence cannot close the block early.
74
+ */
75
+ function renderFence(raw) {
76
+ const longest = Math.max(0, ...(raw.match(/`+/g) ?? []).map(run => run.length));
77
+ const delimiter = '`'.repeat(Math.max(3, longest + 1));
78
+ return `## Foreign frontmatter (not imported; file unchanged)\n\n${delimiter}yaml\n${raw}\n${delimiter}`;
55
79
  }
56
80
  //# sourceMappingURL=get-tickets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-tickets.js","sourceRoot":"","sources":["../../src/tools/get-tickets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-tickets.js","sourceRoot":"","sources":["../../src/tools/get-tickets.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,9 @@ function renderChange(change) {
47
47
  was,
48
48
  rename,
49
49
  edges,
50
+ change.duplicateFiles === undefined
51
+ ? undefined
52
+ : `duplicate id, carried by ${change.duplicateFiles.join(', ')} — a real run refuses`,
50
53
  ]
51
54
  .filter(part => part !== undefined)
52
55
  .join(' ');
@@ -1 +1 @@
1
- {"version":3,"file":"migrate-effort.js","sourceRoot":"","sources":["../../src/tools/migrate-effort.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrate-effort.js","sourceRoot":"","sources":["../../src/tools/migrate-effort.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { STATUSES, TRIAGE_ROLES } from '../domain.js';
3
3
  import { cycleThrough, renderCycle } from '../edges.js';
4
- import { indexById } from '../frontier.js';
4
+ import { claimantsById, edgesOfClaimants } from '../frontier.js';
5
5
  export const updateTicketInputSchema = z.object({
6
6
  id: z.string().describe('Ticket id, or the <effort>#<order> handle of a Legacy Ticket.'),
7
7
  claim: z
@@ -173,8 +173,8 @@ function edgesFor(ticket, all, request) {
173
173
  // Nothing can name an id-less Legacy Ticket, so no path leads back to it.
174
174
  if (ticket.id === undefined)
175
175
  return blockedBy;
176
- const byId = indexById(all);
177
- const edgesOf = id => (id === ticket.id ? blockedBy : (byId.get(id)?.blockedBy ?? []));
176
+ const byId = claimantsById(all);
177
+ const edgesOf = id => (id === ticket.id ? blockedBy : edgesOfClaimants(byId, id));
178
178
  const cycle = cycleThrough(ticket.id, edgesOf);
179
179
  if (cycle !== undefined) {
180
180
  throw new Error(`Those Edges would close a cycle: ${renderCycle(cycle)}. Nothing in a cycle is ever ` +
@@ -1 +1 @@
1
- {"version":3,"file":"update-ticket.js","sourceRoot":"","sources":["../../src/tools/update-ticket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-ticket.js","sourceRoot":"","sources":["../../src/tools/update-ticket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAgB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEjE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;IACxF,KAAK,EAAE,CAAC;SACL,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;SAC/D,QAAQ,EAAE;SACV,QAAQ,CAAC,0DAA0D,CAAC;IACvE,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QACtF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;KAC3F,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,0CAA0C,CAAC;IACvD,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC,EAAE,CAAC;SACnF,QAAQ,EAAE;SACV,QAAQ,CAAC,8CAA8C,CAAC;IAC3D,MAAM,EAAE,CAAC;SACN,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;SAC3E,QAAQ,EAAE;SACV,QAAQ,CAAC,8CAA8C,CAAC;IAC3D,OAAO,EAAE,CAAC;SACP,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,EAAE;SACV,QAAQ,CACP,sFAAsF,CACvF;IACH,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,QAAQ,CAAC;SACd,QAAQ,EAAE;SACV,QAAQ,CACP,6FAA6F,CAC9F;IACH,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,YAAY,CAAC;SAClB,QAAQ,EAAE;SACV,QAAQ,CAAC,+EAA+E,CAAC;IAC5F,UAAU,EAAE,CAAC;SACV,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACxB,QAAQ,EAAE;SACV,QAAQ,CACP,uFAAuF;QACrF,kCAAkC,CACrC;IACH,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,uDAAuD,CAAC;IACpE,IAAI,EAAE,CAAC;SACJ,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACxB,QAAQ,EAAE;SACV,QAAQ,CACP,uFAAuF;QACrF,yFAAyF;QACzF,8FAA8F,CACjG;IACH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACzE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACnF,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,qEAAqE,CAAC;IAClF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;CAChG,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAClC,gGAAgG;IAChG,+FAA+F;IAC/F,8FAA8F;IAC9F,iGAAiG;IACjG,0CAA0C,CAAC;AAkB7C;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CACrB,MAAqB,EACrB,GAA6B,EAC7B,OAAsB,EACtB,GAAW;IAEX,6EAA6E;IAC7E,+EAA+E;IAC/E,wEAAwE;IACxE,mBAAmB;IACnB,MAAM,WAAW,GAAe;QAC9B,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;QAC/B,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;QACtE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7D,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;KAC3F,CAAC;IAEF,yEAAyE;IACzE,6EAA6E;IAC7E,gDAAgD;IAChD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,4EAA4E;YAC1E,IAAI,OAAO,CAAC,MAAM,+CAA+C,CACpE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG;QACd,OAAO,CAAC,KAAK;QACb,OAAO,CAAC,OAAO;QACf,OAAO,CAAC,IAAI;QACZ,OAAO,CAAC,MAAM;QACd,OAAO,CAAC,OAAO;KAChB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,6FAA6F;gBAC3F,UAAU,CACb,CAAC;QACJ,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,EAAE,GAAG,WAAW,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;IACzE,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,4EAA4E;QAC5E,0DAA0D;QAC1D,OAAO;YACL,GAAG,WAAW;YACd,MAAM,EAAE,UAAU;YAClB,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW;YACvC,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;YACf,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SACpF,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO;YACL,GAAG,WAAW;YACd,MAAM,EAAE,SAAS;YACjB,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;YAClC,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzD,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAC5C,MAAM,OAAO,GACX,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7F,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC;QACnD,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,EAAE,GAAG,WAAW,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;IACpD,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,WAAW,CAAC,MAAqB,EAAE,OAAsB;IAChE,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC;IAElD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CACb,IAAI,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,oEAAoE;YACnG,uCAAuC,CAC1C,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;IAExE,OAAO;QACL,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAChE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7D,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7D,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,QAAQ,CACf,MAAqB,EACrB,GAA6B,EAC7B,OAAsB;IAEtB,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;IAC3C,0EAA0E;IAC1E,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE9C,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,OAAO,GAAY,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAE3F,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,oCAAoC,WAAW,CAAC,KAAK,CAAC,+BAA+B;YACnF,mCAAmC,CACtC,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAS,SAAS,CAAC,MAAqB,EAAE,EAAU,EAAE,GAAW;IAC/D,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,CAAC,MAAM,0BAA0B,MAAM,CAAC,SAAS,EAAE;YAC1D,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,SAAS,EAAE,IAAI;YACzE,4EAA4E,CAC/E,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,eAAe,MAAM,CAAC,MAAM,iCAAiC,CAAC,CAAC;IACjG,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,SAAS,UAAU,CAAC,MAAqB,EAAE,MAAc;IACvD,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,CAAC,MAAM,OAAO,MAAM,CAAC,MAAM,gDAAgD;YAClF,sBAAsB,CACzB,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC;IACxC,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,OAAO;QACL,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,IAAI;QAChB,aAAa,EAAE,IAAI;QACnB,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;KAC5B,CAAC;AACJ,CAAC;AAED,uFAAuF;AACvF,SAAS,WAAW,CAAC,MAAqB;IACxC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,CAAC,MAAM,OAAO,MAAM,CAAC,MAAM,mDAAmD;YACrF,cAAc,CACjB,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAqB,EAAE,QAAQ,GAAsB,EAAE;IAClF,MAAM,MAAM,GAAG;QACb,UAAU,MAAM,CAAC,MAAM,EAAE;QACzB,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,SAAS,EAAE;QAC7E,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,MAAM,CAAC,SAAS,EAAE;QAC7E,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,MAAM,CAAC,UAAU,EAAE;QAChF,MAAM,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,MAAM,CAAC,aAAa,EAAE;KAC1F,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;IAEvC,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,aAAa,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,GAAG,IAAI,gBAAgB,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACrF,CAAC"}
@@ -3,8 +3,8 @@
3
3
  * every write say it the same way and in the same place.
4
4
  *
5
5
  * A read has never needed it for safety — wrong repository, visibly wrong
6
- * content. A write is the opposite: Ticket ids are not repo-unique, since every
7
- * Effort numbers from T1, so `T10 updated` is exactly as plausible against the
6
+ * content. A write is the opposite: Ticket ids are unique within a repository,
7
+ * not across repositories, so `T10 updated` is exactly as plausible against the
8
8
  * wrong repository as the right one. It is the one result a caller cannot check
9
9
  * from what it got back, which is how the T10 worktree escape stayed invisible.
10
10
  */
@@ -3,8 +3,8 @@
3
3
  * every write say it the same way and in the same place.
4
4
  *
5
5
  * A read has never needed it for safety — wrong repository, visibly wrong
6
- * content. A write is the opposite: Ticket ids are not repo-unique, since every
7
- * Effort numbers from T1, so `T10 updated` is exactly as plausible against the
6
+ * content. A write is the opposite: Ticket ids are unique within a repository,
7
+ * not across repositories, so `T10 updated` is exactly as plausible against the
8
8
  * wrong repository as the right one. It is the one result a caller cannot check
9
9
  * from what it got back, which is how the T10 worktree escape stayed invisible.
10
10
  */
@@ -1,8 +1,12 @@
1
1
  # Issue tracker — FrontierMCP and file fallback
2
2
 
3
+ Tracker doc revision 2. To check a vendored copy, compare this number with the one in the
4
+ `frontier://tracker-doc` resource of the server you run; a lower number, or no revision line, is
5
+ stale.
6
+
3
7
  Use **FrontierMCP** as the issue tracker. Its canonical storage is markdown under `.scratch/`.
4
8
  Vocabulary is defined in the project's `CONTEXT.md` when present — Effort, Board, Header doc, Map,
5
- Spec, Ticket, Edge, Frontier.
9
+ Spec, Ticket, Edge, Frontier, Handle, Temporary key.
6
10
 
7
11
  When **FrontierMCP** (server name `frontier`) is loaded in your session, use the tools below. They
8
12
  own the schema, compute the graph, and answer orientation questions for a fraction of the token cost
@@ -30,7 +34,7 @@ session.** Moving to another worktree mid-session does not retarget it: pass `ro
30
34
  reports no Efforts — that is the worktree being served correctly, not the tracker going missing.
31
35
 
32
36
  **Every call that writes opens with `root: <path>`**, naming the repository it just changed. Read it
33
- — a Ticket id is not repo-unique, so `T10 updated` looks the same whichever repository answered, and
37
+ — a Ticket id is unique within a repository, not across them, so `T10 updated` looks the same whichever repository answered, and
34
38
  this line is the only part of the result that tells you. Reads do not carry it, and neither do the
35
39
  read paths of write-capable tools: `edit_map` with no section fields, `spec` with no `content`, and
36
40
  `migrate_effort` with `preview`.
@@ -78,6 +82,14 @@ Eight tools permanently. Optional arguments extend an existing tool; there is no
78
82
  | write or read the Spec | `spec` |
79
83
  | normalize legacy files | `migrate_effort` |
80
84
 
85
+ Two Ticket files carrying one id are listed in each Board's warnings, with claimant files for the
86
+ first few, and every write addressed to that id is refused. Fix it by hand, giving all but one a new id; the server never
87
+ renumbers. Under a pattern whose only variable token is `<N>`, every `create_tickets` result carries
88
+ a standing warning that the pattern collides across branches — it describes the configuration, not
89
+ that call; the remedy is a mixed pattern such as `T<N>-<b36{4}>`. When a Ticket's frontmatter fence
90
+ is not in the schema, `get_tickets` appends it, unimported, as a fenced `yaml` block under a Foreign
91
+ frontmatter heading; the read leaves the file unchanged.
92
+
81
93
  Claims are compare-and-set — a parallel session that already holds the Ticket wins. Writes carry the
82
94
  `revision` from the last read; a mismatch is refused, never retried over the caller's edit.
83
95
 
@@ -87,41 +99,56 @@ These conventions are canonical whether FrontierMCP is loaded or not. FrontierMC
87
99
  the same files; a session without the server still produces valid Tickets by following this section.
88
100
 
89
101
  **Canonical is not licence to allocate ids by hand.** When FrontierMCP is loaded, ids come from
90
- `create_tickets` and are never derived by scanning. The server allocates each candidate under a
91
- repo-global `.scratch/.frontier-id-T<n>.guard` and re-scans while holding every guard; a file
92
- written straight to disk takes part in none of that, so it is the naive `max + 1` that
93
- [ADR 0005](../adr/0005-ids-are-allocated-under-a-guard-and-a-rescan.md) was written against —
94
- measured there, four processes creating three Tickets each produced thirteen files carrying four
95
- distinct ids, and duplicates are silent. A *guessed* id passed to `create_tickets` costs nothing;
96
- the server allocates and discards the guess. Only the hand-written file breaks.
102
+ `create_tickets`, and you never scan for one: the server mints every id it is present for. It knows
103
+ the repo's id pattern, and under a pattern containing `<N>` it counts under a guard
104
+ (`.scratch/.frontier-id-N-<n>.guard`, keyed on the counter value) that a file written straight to
105
+ disk cannot take — ADR 0006 in the frontier-mcp repository. Hand-writing while the server is loaded
106
+ bypasses the mint whatever the pattern.
97
107
 
98
108
  ### Layout
99
109
 
100
- - One Effort per directory: `.scratch/<effort-slug>/`
110
+ - One Effort per directory: `.scratch/<effort-slug>/`.
111
+ - `.scratch/frontier.yml`, beside the Effort directories, is the one other file FrontierMCP reads.
112
+ Its one key, `id_pattern`, shapes Ticket ids. The server reads it once at start; restart a running
113
+ server after editing it.
101
114
  - The header doc is `spec.md` (from `/to-spec`) or `map.md` (from `/wayfinder`). An Effort charted as a
102
115
  Map may later gain a Spec — that is wayfinder's handoff, not a mistake.
103
116
  - Tickets are one file per Ticket under `.scratch/<effort-slug>/issues/` — never a single combined
104
117
  tickets file.
105
- - Ticket filenames are `<NN>-T<n>-<slug>.md`. `NN` is sort order only and may be rewritten. `T<n>` is
106
- the identity and never changes.
107
- - **Ticket ids are `T<n>`, unique across the whole repo.** With FrontierMCP loaded, `create_tickets`
108
- assigns them and you never scan for the next one. Only when the server is absent: before creating
109
- a Ticket by hand, scan every `.scratch/*/issues/` for the highest existing `T` number and continue
110
- from there — ids do not restart per Effort. A bare `T47` therefore resolves anywhere in the repo,
111
- including in commit messages.
118
+ - Ticket filenames are `<NN>-<id>-<slug>.md`. `NN` is sort order only and may be rewritten. The id
119
+ is the identity and never changes.
120
+ - **Ticket ids are unique across the whole repo**, so a bare id resolves anywhere in it, including
121
+ in commit messages. With FrontierMCP loaded, `create_tickets` assigns them. Only when the server is
122
+ absent, mint one by hand:
123
+ 1. Read `id_pattern` from `.scratch/frontier.yml`. No file or no key means `T<b36{6}>`.
124
+ 2. Check the pattern is legal: it begins with a literal letter or underscore; literals are only
125
+ `A-Z a-z 0-9 . _ -`; the tokens are `<N>`, `<b36{n}>` and `<b16{n}>` with n from 1 to 64, and
126
+ `<effort>` is refused; at most one `<N>`; at least one `<N>` or random token; a minted id is at
127
+ most 64 characters, counting `<N>` as one. If the file is not valid YAML, is not a mapping,
128
+ `id_pattern` is not a string, or the pattern breaks a rule, **do not mint** — fix the file first.
129
+ Never fall back to the default: an id minted in a format nobody asked for is permanent.
130
+ 3. Render it. Every `<b36{n}>` is exactly n characters from `0-9a-z`, every `<b16{n}>` exactly n
131
+ from `0-9a-f`, lowercase always. `<N>` is decimal with no leading zeros. Anything outside `<>`
132
+ is literal.
133
+ 4. **No `<N>` in the pattern:** draw the random tokens. Do not scan for a highest id.
134
+ 5. **`<N>` in the pattern:** scan every `.scratch/*/issues/` for the highest `<N>` among ids that
135
+ match the whole pattern and add one; under a mixed pattern, count first, then draw the random
136
+ part. A hand-writer cannot take the server's guard, so if any session might be minting at the
137
+ same time you can both reach the same number unseen.
138
+ 6. Check the id is not already in use anywhere in `.scratch/`.
112
139
  - Formal metadata goes in YAML frontmatter. Prose stays prose.
113
140
 
114
141
  ### Ticket frontmatter
115
142
 
116
143
  ```yaml
117
144
  ---
118
- id: T12 # T<n>, repo-unique, never reused
145
+ id: T12 # shaped by id_pattern; repo-unique, never reused or changed
119
146
  title: Parse legacy tickets without frontmatter
120
147
  kind: build # build | decision
121
148
  type: research # decision only: research | prototype | grilling | task
122
149
  status: open # open | claimed | resolved | dropped
123
150
  triage: ready-for-agent # see triage-labels.md
124
- blocked_by: [T09, T11] # plain ids, resolved repo-wide
151
+ blocked_by: [T9, T11] # plain ids, resolved repo-wide
125
152
  claimed_by: # required when status: claimed
126
153
  claimed_at: # timestamp, set with claimed_by
127
154
  answer_gist: # required when status: resolved — one line, every kind
@@ -164,8 +191,8 @@ When FrontierMCP is loaded, prefer the MCP calls in the table above over hand-ed
164
191
 
165
192
  **Everything below holds only while FrontierMCP is absent from the session.** With the server
166
193
  loaded, `create_tickets` publishes the breakdown and is the only thing that may allocate an id;
167
- hand-writing the file bypasses the guards, per the File conventions preamble.
194
+ hand-writing the file bypasses the mint, per the File conventions preamble.
168
195
 
169
196
  When a skill says "publish to the issue tracker" and FrontierMCP is not loaded, create
170
- `.scratch/<effort-slug>/issues/<NN>-T<n>-<slug>.md` (creating directories as needed), assign the next
171
- repo-global `T<n>` by scanning as described above, and write frontmatter matching the template above.
197
+ `.scratch/<effort-slug>/issues/<NN>-<id>-<slug>.md` (creating directories as needed), mint the id
198
+ as the Layout steps above describe, and write frontmatter matching the template above.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "frontier-mcp",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "An MCP server exposing the markdown issue tracker under a repo's .scratch/ as a queryable graph",
5
5
  "license": "MIT",
6
6
  "repository": {