Canonical merge of #871 - #872
Merged
Merged
Conversation
`.mcp.json` named `./dist/commitlore.mjs` and set `"cwd": "."`, and both of
those resolve against the *session's* working directory rather than the
plugin's install directory. The plugin MCP server therefore died at launch
with MODULE_NOT_FOUND in every session whose cwd was not a built commitlore
checkout. Capture is MCP-only, so those sessions committed no records, and the
only visible symptom was one line about a cached connection failure. The one
cwd where the defect cannot appear is this repository, which is where every
existing check ran.
The entry point is now `${CLAUDE_PLUGIN_ROOT:-.}/dist/commitlore.mjs` and there
is no `cwd` — the form ADR-0026 and the F14 ticket already documented. The
default is what keeps this repository's own registration working when a host
loads it as an ordinary project file, where nothing sets that variable.
Readers of a registration now expand `${VAR}` and `${VAR:-default}` the way a
host expands them before it spawns. Without that, doctor's unattended-initiator
probe launched the literal `${...}` as a path and reported a working
registration unhealthy — a report that sends an operator to repair the one
thing that is not broken. An unset placeholder with no default is left as
written: a host refuses that registration outright, and expanding it to nothing
would turn the refusal into a plausible-looking path whose failure names a file
nobody wrote.
The manifest checks now launch from a directory that is not a checkout, and one
of them drives the server to an MCP initialize — the launch the old
configuration could not complete and the old check never attempted.
Closes #870
Claude-Session: https://claude.ai/code/session_01USc9G3aJ1s8pnhWy5K5hLr
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Version fields, install pins and the changelog entry for 1.2.2. The release carries one fix: the plugin's MCP server resolved its entry point against the session's working directory, so it died at launch with MODULE_NOT_FOUND in every session that was not a built commitlore checkout (#870). Capture is MCP-only, so those sessions recorded nothing. The install pins move; the field-report paragraph in each README keeps saying v1.2.1, because that is the version the run it describes was made on and a measurement does not follow the version number. `dist/` is deliberately not in this branch. `canonical-merge.yml` rebuilds the bundle from the merged tree and refuses a pull request that touches it, so the committed bundle matches the source it lands with. Claude-Session: https://claude.ai/code/session_01USc9G3aJ1s8pnhWy5K5hLr Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
`build:canonical` on the merged tree, so the commit that lands matches the source it lands with. The pull request carried source only, which is what a contributor on a host that cannot run a linux/amd64 Docker build can produce (#720). Limit: this proves the bundle matches this tree; whether this tree is what a reviewer wants is what the pull request is for Blast: system Undo: easy Certainty: firm Record-Id: r-canonmerge871 Provenance: authored Verified: artifact:verify passed against the regenerated manifest in the same job, before any credential was available to it CommitLore-Version: 2.0.0
CommitLore — record lintTrailers: clean — 4 commits in Active constraints for the paths this PR touchesLimits (392)
Truncated: 837 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. |
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.
The commit that will land for #871:
mainplus that source plus a canonical rebuild, built together so all eleven required contexts run on the tree that merges rather than on one that resembles it.#871 carries source only, which is what a contributor on a host that cannot run a
linux/amd64Docker build can produce (#720). Nothing was rebuilt by hand.Merge this with a merge commit, not a squash. This branch merged #871 with
--no-ff, so its head commit is an ancestor here: a merge commit lands that commit onmain, and GitHub then records #871 as merged because its head is reachable -- which is what T-1502 asks for. A squash lands new bytes instead, and #871 stays open with nothing to point at.This body deliberately carries no closing keyword. GitHub binds one only to the number straight after it, and a pull request closed by keyword is recorded closed rather than merged -- the opposite of the line above. Reachability does the closing here.
Opened by
canonical-merge.ymlfor #719.