From b5a29a525cdc8f18877e5be52b7c31206b4edcf3 Mon Sep 17 00:00:00 2001 From: spacedandy-agents-simplex <342056592+spacedandy-agents-simplex@users.noreply.github.com> Date: Fri, 23 Oct 2026 00:47:11 +0000 Subject: [PATCH] docs: narrow the later-move seeding rule in the several-directories plan --- plans/2026-10-22-directories-in-operators.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plans/2026-10-22-directories-in-operators.md b/plans/2026-10-22-directories-in-operators.md index 4d3002bfe9..b2a4bfc7bb 100644 --- a/plans/2026-10-22-directories-in-operators.md +++ b/plans/2026-10-22-directories-in-operators.md @@ -166,7 +166,7 @@ ep's direction makes a role a set of required tools and lets any service whose t If ep later picks services, as the services design plans them (section 12: services in each operator's servers and under Your servers, each with its tools and the roles the user turned on), from this design: - Kept: the stored rows (one migration copies `directories` into a services table: nothing references them), the start-up pass and merge (they work for any kind configured per operator), validation, the search (fan-out, per-directory state, order, retry rows, load row, consent naming each receiver, submenu, bounds), the screens' places, and the request format: the apps already send ep's envelope with the same tool contract, and "Test directory" already reads a service's tools. -- Changed or added: the "Directories" sections and the New directory screen become "Services" in the same places, with a switch per role and the roles a service can fill (~200 lines per platform); each service's tools and roles are stored, and the migration seeds them without contacting anyone (a preset takes its preset's tools and every user-added row the directory tool, since it was already being searched; each gets the directory role if it was in use; tools change afterwards only when the user runs a test); the apps pick a role's services by their tools (~100 per platform); CI adds its test directories through the renamed screens (~100 per platform); the `directories` key in `/_servers` stays a release beside a new key, for older apps and remote desktops, with the migration and tests (~600 in the core). +- Changed or added: the "Directories" sections and the New directory screen become "Services" in the same places, with a switch per role and the roles a service can fill (~200 lines per platform); each service's tools and roles are stored, and the migration seeds them without contacting anyone (a preset takes its preset's tools and every user-added row the directory tool, since it was already being searched; each gets the directory role if it was in use; a user-added row's tools change afterwards only when the user tests it); the apps pick a role's services by their tools (~100 per platform); CI adds its test directories through the renamed screens (~100 per platform); the `directories` key in `/_servers` stays a release beside a new key, for older apps and remote desktops, with the migration and tests (~600 in the core). - Cost: ~1,400 lines, ~800 in the apps and ~600 in the core, keeping this design's "Test directory". If ep also wants the core to build and check every request, as the services design does (one parser, and the core refusing a call to a service not in use for its role), and its "Test service", which requires the address's profile to declare `protocols.mcp`: add the `protocols` key and its MCP client in the core (~700 lines: its plan gives ~1,000 for those and the bot helper, which is ~300 here and already built), its role call (its slice B4, ~200 lines by our estimate), and remove this design's ~150-line request command and the apps' request code (~150 per platform): ~1,400 + 700 + 200 + 150 + 300 ≈ 2,750 changed lines in all (removed lines count as changed, as in every estimate here). A directory added or re-tested after that move must then declare the protocol in its profile, which a core without the key can't publish (`toChatPrefs` drops untyped preference keys, Types/Preferences.hs:539-550); migrated directories keep being searched, since that design's role call reads their seeded tools, except that under its rule directories of an operator whose servers are off stop being searched (open question 9). Had the apps kept today's request, the move would also keep both request forms in both apps for as long as any directory a user added spoke only the old one (~150 lines per platform, with no end date), and every directory operator would implement the protocol twice. Choices in this design that keep the move cheap: