Skip to content

feat(mcp): doc-pointer/generate-batch — batch registration with verified paths - #6

Open
noizu wants to merge 2 commits into
developfrom
feature/batch-register
Open

noizu wants to merge 2 commits into
developfrom
feature/batch-register

Conversation

@noizu

@noizu noizu commented Sep 14, 2026

Copy link
Copy Markdown
Member

Summary

  • New write-gated MCP tool doc-pointer/generate-batch: register multiple pointers in one call with entries: [{name, type, location, description}].
  • name drives UUIDv5 derivation and is stored as the pointer function; type is stored as the pointer class.
  • location accepts absolute or root-relative paths — verified on disk, rejected outside the project root, relativized so Store.put/1 places metadata in the correct submodule's .meta/pointers.yaml.
  • Per-entry isolation: successful entries persist; failures return {index, name, error} without sinking the batch.
  • Generate.register/1 extracted as the shared mint+persist pipeline (single + batch); Store.root/0 accessor added.
  • MCP server startup (loopback HTTP) prints client registration one-liners (claude / codex / grok) to stderr.

Testing

  • mix test: 56 passing, 0 failures, 0 warnings.
  • New tests cover batch registration + name/uuid pairs, absolute-path relativization into submodule metadata placement, partial failure isolation, missing-field and out-of-root validation.

Co-Authored-By: Loom loom@therobotlives.com

noizu and others added 2 commits September 15, 2026 03:30
…ied paths

- New write tool accepts entries: [{name, type, location, description}];
  name drives UUID5 derivation and is stored as the pointer function,
  type is stored as the pointer class.
- location accepts absolute or root-relative paths; verified on disk,
  rejected outside the project root, relativized so Store.put places
  metadata in the correct submodule's .meta/pointers.yaml.
- Per-entry isolation: good entries persist, failures return
  {index, name, error} without sinking the batch.
- Generate.register/1 extracted as the shared mint+persist pipeline;
  Store.root/0 accessor added.
- MCP server startup (loopback HTTP) now prints client registration
  one-liners for claude / codex / grok on stderr.
- Tests: batch registration, submodule metadata placement, partial
  failure, path validation (56 passing).

Co-Authored-By: Loom <loom@therobotlives.com>
The StreamableHTTP plug routes MCP at / (POST /mcp → 404); registration
one-liners and the startup line now advertise http://127.0.0.1:<port>.

Co-Authored-By: Loom <loom@therobotlives.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