Skip to content

MCP++ Sessions 81–84: Complete API surface for MergeResult, IPFSReloadResult, PubSubBus, ComplianceChecker#1138

Draft
Copilot wants to merge 7 commits intomainfrom
copilot/refactor-ipfs-datasets-mcp-server
Draft

MCP++ Sessions 81–84: Complete API surface for MergeResult, IPFSReloadResult, PubSubBus, ComplianceChecker#1138
Copilot wants to merge 7 commits intomainfrom
copilot/refactor-ipfs-datasets-mcp-server

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 23, 2026

Incremental build-out of the MCP++ spec across four sessions (81–84), adding 168 new tests and completing the primary API surface for four core mcp_server modules.

MergeResult (ucan_delegation.py) — full dict protocol

  • __iter__ — yields (key, value) pairs
  • keys() + __getitem__ — required pair; keys() alone breaks dict(result) since Python's mapping protocol needs subscript support
  • values()[added_count, conflict_count, revocations_copied]
  • items()list(__iter__()), completing the trio; dict(r.items()) == dict(r)

IPFSReloadResult (nl_ucan_policy.py) — iteration + flat access

  • iter_failed()(name, error) for None CIDs
  • iter_succeeded()(name, cid) complement
  • iter_all()yield from pin_results.items(); covers full batch
  • as_dict()dict(pin_results), flat shallow copy safe for JSON/mutation

PubSubBus (mcp_p2p_transport.py) — SID-level introspection + dashboard helpers

  • subscriber_ids(topic) — sorted SID list per topic
  • topic_sid_map(){topic: sorted_sid_list} mapping
  • total_subscriptions()len(_sid_map); counts registrations, not unique handlers
  • topics_with_count()[(topic, count)] sorted by subscriber count descending

ComplianceChecker (compliance_checker.py) — backup name utilities

  • backup_summary(path){count, newest, oldest, newest_age, oldest_age}
  • backup_names(path) — basenames only, path-safe for logging
  • newest_backup_name(path) / oldest_backup_name(path) — basename of primary/oldest .bak or None
  • Bug fix: removed duplicate dead-code block in backup_summary (unreachable copy after return)
# MergeResult now supports full dict protocol
r = MergeResult(added_count=3, conflict_count=1, revocations_copied=0)
dict(r)          # {"added_count": 3, "conflict_count": 1, "revocations_copied": 0}
r.items()        # [("added_count", 3), ("conflict_count", 1), ("revocations_copied", 0)]

# IPFSReloadResult unified batch reporting
for name, cid in result.iter_all():
    status = "ok" if cid else "FAILED"

# PubSubBus dashboard view
for topic, count in bus.topics_with_count():   # sorted highest-first
    ...

# ComplianceChecker backup introspection
ComplianceChecker.newest_backup_name("/data/rules.enc")  # "rules.enc.bak" or None
ComplianceChecker.oldest_backup_name("/data/rules.enc")  # "rules.enc.bak.2" or None

Four session plan docs (MASTER_IMPROVEMENT_PLAN_2026_v37–v40.md) track progress and define next steps.


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

…failed(), PubSubBus.subscriber_ids(), ComplianceChecker.backup_summary()

Co-authored-by: endomorphosis <3405202+endomorphosis@users.noreply.github.com>
Copilot AI changed the title [WIP] Refactor and improve IPFS datasets MCP server structure MCP++ Session 81: MergeResult.__iter__, IPFSReloadResult.iter_failed(), PubSubBus.subscriber_ids(), ComplianceChecker.backup_summary() Feb 23, 2026
Copilot AI requested a review from endomorphosis February 23, 2026 08:21
…sult.iter_succeeded(), PubSubBus.topic_sid_map(), ComplianceChecker.backup_names()

Co-authored-by: endomorphosis <3405202+endomorphosis@users.noreply.github.com>
Copilot AI changed the title MCP++ Session 81: MergeResult.__iter__, IPFSReloadResult.iter_failed(), PubSubBus.subscriber_ids(), ComplianceChecker.backup_summary() MCP++ Sessions 81–82: Complete dict-protocol, iter generators, PubSubBus SID map, backup utilities Feb 23, 2026
Copilot AI and others added 2 commits February 23, 2026 09:54
…all(), PubSubBus.total_subscriptions(), ComplianceChecker.newest_backup_name()

Co-authored-by: endomorphosis <3405202+endomorphosis@users.noreply.github.com>
…all(), PubSubBus.total_subscriptions(), ComplianceChecker.newest_backup_name()

Co-authored-by: endomorphosis <3405202+endomorphosis@users.noreply.github.com>
Copilot AI changed the title MCP++ Sessions 81–82: Complete dict-protocol, iter generators, PubSubBus SID map, backup utilities MCP++ Sessions 81–83: Complete dict protocol, iter generators, PubSubBus SID APIs, backup utilities Feb 23, 2026
Copilot AI changed the title MCP++ Sessions 81–83: Complete dict protocol, iter generators, PubSubBus SID APIs, backup utilities MCP++ Sessions 81–83: Complete API surface for MergeResult, IPFSReloadResult, PubSubBus, and ComplianceChecker Feb 23, 2026
…t(), PubSubBus.topics_with_count(), ComplianceChecker.oldest_backup_name()

Co-authored-by: endomorphosis <3405202+endomorphosis@users.noreply.github.com>
Copilot AI changed the title MCP++ Sessions 81–83: Complete API surface for MergeResult, IPFSReloadResult, PubSubBus, and ComplianceChecker MCP++ Sessions 81–84: Complete API surface for MergeResult, IPFSReloadResult, PubSubBus, ComplianceChecker Feb 23, 2026
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.

2 participants