Skip to content

Cross-service linker plumbing (PR 1/5)#376

Open
Shidfar wants to merge 2 commits into
DeusData:mainfrom
hodizoda:oss/pr1-plumbing
Open

Cross-service linker plumbing (PR 1/5)#376
Shidfar wants to merge 2 commits into
DeusData:mainfrom
hodizoda:oss/pr1-plumbing

Conversation

@Shidfar
Copy link
Copy Markdown

@Shidfar Shidfar commented May 26, 2026

Summary

Pure plumbing for cross-service protocol linking — the framework only, no protocol linkers yet. Splits the 24K-line bundle from #295 into 5 reviewable PRs per your guidance; this is the foundation.

What this adds

  • src/pipeline/servicelink.h — shared types (endpoint, endpoint-list, config), 14 protocol edge constants, helper inlines
  • src/pipeline/pass_servicelinks.c — pipeline pass that loads .cgrconfig, iterates a (currently empty) LINKERS dispatch table. Each protocol linker registers its row in PR 2.
  • src/mcp/mcp.c — registers the cross_project_links MCP tool and its handler. The handler returns "No cross-project links found" since no writer exists yet — wired in PR 3 and migrated to the unified storage in PR 5.
  • src/store/store.c — adds the protocol_endpoints table to the project schema
  • tests/test_endpoint_registry.c — covers cbm_sl_endpoint_list_* helpers
  • tests/test_endpoint_persistence.c is intentionally not here — it tests cbm_persist_endpoints which lives in PR 3

What's NOT in this PR

The empty LINKERS table makes pass_servicelinks a no-op until PR 2 lands the 14 protocol linker .c files and restores the full 14-row dispatch. The MCP tool exists but answers empty until PR 3 wires the writer, and PR 5 rewires the reader to the unified storage.

Note on #295's URL flag

PR #295 substituted DeusDatahodizoda across server.json / scripts/setup*.sh / SECURITY.md / etc. My local fork was rebased onto fresh upstream after that comment and the URL-substitution commits were dropped in the process; this PR (and the 4 stacked behind it) carry none of those changes — install paths, registry URLs, and security-audit allowlists all remain pointed at DeusData/codebase-memory-mcp. Verified with git diff upstream/main -- server.json scripts/setup*.sh scripts/security-*.sh scripts/security-allowlist.txt SECURITY.md README.md CONTRIBUTING.md docs/index.html .github/workflows/release.yml returning empty.

Test plan

  • ./scripts/test.sh passes (3620/3620, ASan + UBSan)
  • Builds in isolation — no undefined references to protocol-linker symbols

PR stack

This is the bottom of a 5-PR stack. The remaining PRs (drafts):

  • PR 2 (draft): 14 protocol linkers (graphql/grpc/kafka/sqs/sns/ws/sse/pubsub/rabbitmq/eventbridge/mqtt/nats/redis_pubsub/trpc) — wired into the dispatch table
  • PR 3 (draft): cross-repo pass + community detection + MCP cross_project_links integration
  • PR 4 (draft): HTTP cross-project edges (4-signal endpoint registration)
  • PR 5 (draft): storage unification + incremental parity + MCP reader migration

Each will be un-drafted as the chain merges.

Core framework for 14 protocol linkers:
- servicelink.h: shared types, endpoint registry, pattern matching helpers
- pass_servicelinks: pipeline pass that dispatches to per-protocol linkers
- Endpoint persistence: protocol_endpoints table in each project DB
- MCP tool registration and cross_project_links handler
- Build system, test harness, and CI integration
Removes stale-fact drift from the fork era (language/agent counts,
install one-liner, feature bullets) flagged in PR DeusData#295's close comment.
No URL substitutions involved — README's links already pointed at
DeusData; this only reverts the content body.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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