Install the surface that starts a capture, not only the ones that finish it - #538
Merged
Conversation
CommitLore — record lintTrailers: clean — 1 commit in Active constraints for the paths this PR touchesLimits (127)
Ruled out (288)
Truncated: 190 lines omitted — the comment hit GitHub's 65000 character limit. Trailer violations fail this check. Active constraints are informational — they are what the repository already decided, not a verdict on this PR. |
…ish it `init` installed the hooks that apply and finalise a record, the hook that delivers context before an edit, the index and the policy -- and nothing that lets a capture begin. The tools that start one reach a host only when the repository advertises the MCP server, and no step wrote that file. So the promise the policy file makes was not one the install could keep. Four repositories ran with unattended capture authorised and produced no records, and setting them up meant hand-writing the registration into each one. A step that has to be done by hand after `init` is a step the product has not taken. The registration merges rather than replaces. A repository may already point other servers, or point this one somewhere deliberately, and neither is ours to overwrite; an entry already present is reported and left alone. The file is committed with the repository, like the capture policy, because it describes what the repository offers rather than what one machine has. Failing to register does not fail the install. A repository without it is degraded and `doctor` says so, which is a different thing from broken. Limit: this registers for hosts that read a repository-scoped `.mcp.json`; a host keeping its configuration elsewhere still needs its own installation, and this cannot tell whether any host ever loaded the file Ruled-out: writing into a user's host configuration from `init` | a repository may describe itself, but reaching into the machine that opened it is not the same act and not one an `init` should take unasked Blast: module Undo: easy Certainty: firm Verified: one hundred and twenty-five cases pass across the init, doctor and mcp suites; a fresh repository reaches `init: ready` from one command with hooks, index, trust, delivery hook, registration and policy in place, and doctor's initiator check moves from warn to ok; typecheck clean and two builds produce a byte-identical dist Provenance: authored Record-Id: r-initmcp1
MongLong0214
force-pushed
the
init-registers-capture
branch
from
August 11, 2026 09:12
9a3d212 to
e601ad3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
initinstalled the hooks that apply and finalise a record, the hook that delivers context before an edit, the index and the policy — and nothing that lets a capture begin.The tools that start one (
commitlore_prepare_captureand the rest) reach a host only when the repository advertises the MCP server, and no step wrote that file.So the promise the policy file makes was not one the install could keep. Four repositories ran with
unattended: trueand produced no records; setting them up meant hand-writing.mcp.jsoninto each. A step that has to be done by hand afterinitis a step the product has not taken.After
A fresh repository, one command, and
doctor'sunattended-initiatorcheck moves from warn to ok.initnow exits 0 where it previously exited 1 on that warning.Merge, never replace
A repository may already point other servers, or point this one somewhere deliberately, and neither is ours to overwrite. Every existing server survives; an existing
commitloreentry is reported and left exactly as it was; running twice changes nothing.The file is committed with the repository, like
.commitlore-policy.json, because it describes what the repository offers rather than what one machine happens to have.Failure is not fatal
A registration that cannot be written is reported and the install continues. A repository without it is degraded, and
doctorsays so — which is a different thing from broken, and the install should not conflate them.Boundary
Limit:this registers for hosts that read a repository-scoped.mcp.json. A host keeping its configuration elsewhere still needs its own installation, and nothing here can tell whether any host ever loaded the file.Ruled-out:writing into a user's host configuration frominit. A repository may describe itself; reaching into the machine that opened it is a different act, and not one aninitshould take unasked.125 cases pass across the init, doctor and mcp suites; typecheck clean; two builds produce a byte-identical
dist.