refactor(guild-discovery): drop serviceEndpoint (no longer needed)

Pairs with Dialectic.Backend@5cf4302 which removes the backend-driven
broadcast that was the only consumer of serviceEndpoint. With agent-
driven recruitment broadcasts via fabric-send-message, the
service-to-service URL distinction goes away (agents use the regular
guild endpoint).

Removed:
  - GuildNode.serviceEndpoint column (TypeORM will drop on next sync)
  - GET /api/auth/me/guilds + /api/nodes response fields
  - NodeAdminService.setServiceEndpoint()
  - cli 'node set-service-endpoint' subcommand

Kept:
  - GuildNode.purpose (used by fabric-guild-list for intent-based
    channel discovery — still wanted)
This commit is contained in:
h z
2026-05-23 23:48:19 +01:00
parent 3058bccfb6
commit 9e1909a7e8
5 changed files with 0 additions and 58 deletions

View File

@@ -20,27 +20,6 @@ export class GuildNode {
@Column()
endpoint!: string;
// Service-to-service endpoint: how *another service inside the same
// deployment* reaches this guild. Distinct from `endpoint` because
// that one is the client-facing URL (browser, remote openclaw plugin,
// anything outside compose), which lives on a different network than
// services co-located with the guild backend.
//
// Concrete examples:
// - sim sim-guild-1: endpoint=http://server.t3:7002 (dind /etc/hosts alias),
// serviceEndpoint=http://fabric-backend-guild:7002 (compose service name)
// - prod t3-node: endpoint=https://fabric-api.hangman-lab.top (public CF),
// serviceEndpoint=http://backend-guild:7002 (compose service name)
//
// Used by dialectic-backend (and any other in-deployment service) to
// post broadcasts to a guild's announce channel. Plugin's
// fabric-guild-list returns this so agents can plumb the right URL
// into announce_guild_base_url on dialectic_propose_topic.
// Null when the admin hasn't filled it in (broadcasts will fail until
// it's set; cli: `node set-service-endpoint --node-id X --endpoint URL`).
@Column({ type: 'varchar', length: 255, nullable: true })
serviceEndpoint!: string | null;
// Free-form description of this guild's purpose — what it's used for,
// who its agents/users serve. Surfaced to agents via /auth/me/guilds so
// the cross-guild/cross-channel announce-target picker can find the