16j-beam-mcp-dep: depend on beam_mcp 0.1.0 from Hex, not an in-tree copy - #13
Merged
Conversation
Deletes the four in-tree MCP protocol modules and depends on the published package. mix.lock records :hex and the registry's own outer checksum b8c351933260d90844eae1614ae4759cf979d4a524ee139fbbef1c2dfaab5e7f, so the build fetches what hex.pm serves rather than a local tree. The domain the package deliberately shed comes back here: per-tool input_schemas become catalog data on the ToolSpecs, captured from the deleted server.ex rather than retyped, and the "contain" -> :contain coercion moves into dispatch. tools/list is byte-identical across the swap - six tools, field by field, 0 differences, compared against a recording whose provenance was proved against b425f63 rather than assumed. The client revision moves 2024-11-05 -> 2025-11-25. Acceptance criteria: 1, 2, 4, 5, 6 met. Criterion 3 was amended by the owner after round 1 - the package shed this tree's domain, so every test reaching into that domain through a deleted module has to reach it through the catalog; twelve tests, measured, not the two originally scoped. Seven rounds, fourteen lane verdicts, twelve rejections. The mechanism has been green since round 2; every rejection after it was the section 10 surface disclosure or the record describing it. Four drafts of that disclosure each asserted a completeness its enumeration did not have, so the owner ruled it out of prose entirely: it lives in tests that ship, and one BACKLOG line carrying no count and no verb about what the swap did beyond "changed". A row cannot be over-generalised, because it is not a generalisation. Four tests pin the changes nothing else pinned - the bare default revision, the modern-era resultType decoration, content[0].text no longer carrying inspect/1 output, and an unsupported revision via _meta being refused. Each was proved red against base b425f63, 4 of 4, and each was killed by reverting the behaviour it pins. ping carrying a _meta revision is deliberately pinned by nothing: it is a defect in beam_mcp 0.1.0, and a test would pin the defect. 269 tests, 0 failures. credo held at 76, dialyzer at 43, both baseline callers rc=0. 17 files, 340 insertions, 632 deletions. Evidence: internal/slices/16j-beam-mcp-dep/FINDINGS.md Reviewed-diff: sha256:4e2cab172a3f773e8be48f1b8a987ae54cb0d79afb109dd198906df69df8d1a4
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.
Replaces the in-tree MCP protocol core with the published
beam_mcp 0.1.0, from Hex, not a path dep.mix.lockrecords:hexand the registry's own outer checksumb8c351933260d90844eae1614ae4759cf979d4a524ee139fbbef1c2dfaab5e7f.Deletes
apps/hacktui_agent/lib/hacktui_agent/mcp/{server,stdio,schema,tool_spec}.ex. The domain the package deliberately shed comes back here: per-toolinput_schemas become catalog data on theToolSpecs, captured from the deletedserver.exrather than retyped, and the"contain"→:containcoercion moves into dispatch.tools/listis byte-identical across the swap — six tools, field by field, 0 differences, against a recording whose provenance was proved againstb425f63rather than assumed.Client revision moves
2024-11-05→2025-11-25.Review
Seven rounds, fourteen lane verdicts, twelve rejections. The mechanism has been green since round 2; every rejection after it was the §10 surface disclosure or the record describing it.
Four drafts of that disclosure each asserted a completeness its enumeration did not have — two methods claimed against six, one behavioural change against seven, nine table rows against thirteen clauses, then a tenth change. The owner ruled it out of prose: the disclosure lives in tests that ship, plus one
BACKLOG.mdline carrying no count and no verb about what the swap did beyond "changed". A row cannot be over-generalised, because it is not a generalisation.Four tests pin what nothing else pinned — the bare default revision, the modern-era
resultTypedecoration,content[0].textno longer carryinginspect/1output, and an unsupported revision via_metabeing refused. Each proved red against baseb425f63(4 of 4) and each killed by reverting the behaviour it pins.pingcarrying a_metarevision is deliberately pinned by nothing: it is a defect inbeam_mcp 0.1.0, and a test would pin the defect. Filed upstream.Round 7: PASS / PASS, both lanes on tree
45e853ed, signoff written bytools/signoff.shafter it refused an earlier attempt over a moved index.Gates
269 tests, 0 failures. credo held at 76, dialyzer at 43, both
baselinecallers rc=0. Compile, format, secret-scan, review-signoff and review-tree all pass. 17 files, 340 insertions, 632 deletions.Advisory, unchanged by this diff:
deps.audit12,hex.audit21,sobelow7.Acceptance criteria
1, 2, 4, 5, 6 met. Criterion 3 was amended by the owner after round 1 — the package shed this tree's domain, so every test reaching into that domain through a deleted module has to reach it through the catalog. Twelve tests, measured, not the two originally scoped.
Evidence:
internal/slices/16j-beam-mcp-dep/FINDINGS.md.🤖 Generated with Claude Code
https://claude.ai/code/session_01VNdY6wVS773UJgrHUeBN3Y