Skip to content

DD-338 Phase C W2B catalog flips — syncthing + tailscale + caldav#25

Merged
piersdd merged 1 commit into
mainfrom
feat/dd-338-c-w2b-catalog
May 23, 2026
Merged

DD-338 Phase C W2B catalog flips — syncthing + tailscale + caldav#25
piersdd merged 1 commit into
mainfrom
feat/dd-338-c-w2b-catalog

Conversation

@piersdd
Copy link
Copy Markdown
Contributor

@piersdd piersdd commented May 23, 2026

Summary

Catalog companion to the 3 sibling blade-mcp PRs (Subagent B half of DD-338 Phase C Wave 2 network+IoT cohort). Flips audit_surface: minimal → structured for 12 tools, plus 1 honest scope_filtering correction.

syncthing-blade-mcp (0.7.0 → 0.8.0) — 4 tools:

  • syncthing_folder_errors
  • syncthing_browse_folder
  • syncthing_folder_need
  • syncthing_remote_need

tailscale-blade-mcp (0.4.0 → 0.5.0) — 1 tool:

  • ts_device_routes

caldav-blade-mcp (0.1.1 → 0.2.0) — 7 tools + 1 scope flip:

  • cal_calendars (audit_surface)
  • cal_events (audit_surface)
  • cal_events_batch (audit_surface)
  • cal_search (audit_surface + scope_filtering: client-side → server-side per OQ-1; underlying CalDAV REPORT honours all named args server-side)
  • cal_today (audit_surface)
  • cal_week (audit_surface)
  • cal_freebusy (audit_surface)

cal_event (single-record by UID) stays audit_surface: minimal — non-trivial envelope value would be redundant on a point-fetch.

Test plan

  • python3 -c "import json; json.load(...)" per file — JSON validity
  • node scripts/build-catalog.js — Built catalog: 59 plugins + 11 packs = 70 entries, 37 services
  • node scripts/build-forge-context.js — generated scripts/generated/declared-services.js
  • npm test — 122/122 pass (after build-forge-context generates the missing dep)

Sibling per-blade PRs:

Spec: 2026-05-23-dd-338-c-w2-network-iot.md (vault)
DD: DD-338 Phase C Wave 2 Subagent B

Flips `audit_surface: minimal → structured` for 12 tools across 3 blade-mcps
(Subagent B half of Wave 2). Plus 1 honest scope_filtering correction on
cal_search per OQ-1 ratification.

**syncthing-blade-mcp** (0.7.0 → 0.8.0) — 4 tools:
- syncthing_folder_errors
- syncthing_browse_folder
- syncthing_folder_need
- syncthing_remote_need

**tailscale-blade-mcp** (0.4.0 → 0.5.0) — 1 tool:
- ts_device_routes

**caldav-blade-mcp** (0.1.1 → 0.2.0) — 7 tools + 1 scope flip:
- cal_calendars (audit_surface)
- cal_events (audit_surface)
- cal_events_batch (audit_surface)
- cal_search (audit_surface + scope_filtering: client-side → server-side
  per OQ-1; underlying CalDAV REPORT honours all named args server-side)
- cal_today (audit_surface)
- cal_week (audit_surface)
- cal_freebusy (audit_surface)

Sibling per-blade PRs ship the wire-side emitter changes (`_meta` envelope
via `_append_meta`/`append_meta`/`append_meta_envelope` helpers, latency
wrapping, filtered_by content). `cal_event` (single-record by UID) stays
`audit_surface: minimal` — non-trivial envelope value would be redundant.

Catalog build green; `npm test` 122/122 pass.

Spec: [[2026-05-23-dd-338-c-w2-network-iot]]
DD: [[DD-338]] Phase C Wave 2 Subagent B

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@piersdd piersdd merged commit 685f966 into main May 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant