@burdenoff/mcp-libs 2026.802.1 → 2026.805.1

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.
@@ -565,7 +565,12 @@ function registerCircleTools(server, ctx, track) {
565
565
  {
566
566
  title: "Archive Circle",
567
567
  description: "Archive (soft-delete) a circle. Returns true on success.",
568
- inputSchema: { id: zod.z.string().describe("Circle ID") }
568
+ inputSchema: { id: zod.z.string().describe("Circle ID") },
569
+ // BOFF-5868/BOFF-3907: the fleet destructiveHint inference (tool-name.ts)
570
+ // only matches a `delete` name segment, so an irreversible `archive` call
571
+ // needs an explicit annotation to be caught by the confirmation gate that
572
+ // comradecircle-mcp/src/index.ts enables via enforceDestructiveConfirmation.
573
+ annotations: { destructiveHint: true }
569
574
  },
570
575
  async ({ id }) => {
571
576
  try {
@@ -702,7 +707,12 @@ function registerMembershipTools(server, ctx, track) {
702
707
  {
703
708
  title: "Leave Circle",
704
709
  description: "Leave a circle as the calling member. Returns true on success.",
705
- inputSchema: { circleId: zod.z.string().describe("Circle ID to leave") }
710
+ inputSchema: { circleId: zod.z.string().describe("Circle ID to leave") },
711
+ // BOFF-5868/BOFF-3907: `leave` is not caught by the fleet's name-based
712
+ // destructiveHint inference. Gated conservatively — a sole OWNER leaving
713
+ // orphans the circle, and an unattended agent leaving communities on the
714
+ // user's behalf is exactly the outcome the confirmation gate exists for.
715
+ annotations: { destructiveHint: true }
706
716
  },
707
717
  async ({ circleId }) => {
708
718
  try {
@@ -986,7 +996,10 @@ function registerPostTools(server, ctx, track) {
986
996
  {
987
997
  title: "Remove Post",
988
998
  description: "Remove (soft-delete) a post. Returns true on success.",
989
- inputSchema: { id: zod.z.string().describe("Post ID") }
999
+ inputSchema: { id: zod.z.string().describe("Post ID") },
1000
+ // BOFF-5868/BOFF-3907: see circles_archive — `remove` is not caught by
1001
+ // the fleet's name-based destructiveHint inference.
1002
+ annotations: { destructiveHint: true }
990
1003
  },
991
1004
  async ({ id }) => {
992
1005
  try {